软件工程需求建模ppt课件.ppt
《软件工程需求建模ppt课件.ppt》由会员分享,可在线阅读,更多相关《软件工程需求建模ppt课件.ppt(124页珍藏版)》请在三一办公上搜索。
1、第5章 需求建模,主要内容,需求分析分析建模的方法数据建模的方法面向对象的分析基于场景建模面向流建模基于类的建模,5.1 需求分析,需求分析产生软件操作特征的规格说明,指明软件和其他系统元素的接口,建立软件必须满足的约束。分析时回答“做什么”,设计时回答“怎么做”。,5.1.1 整体目标和原理,三个目标:(1)描述客户需要什么(2)为软件设计奠定基础(3)定义在软件完成后可以被确认的一组需求 系统描述 分析模型 设计模型,图7-1 分析模型与其它过程的关系,5.1.2 分析的经验原则,模型的抽象度高于设计,不要太多细节分析模型的细致度要高于系统描述级关于基础结构和其他非功能性的模型应推延到设计
2、阶段再考虑应尽量使模型的不同部分独立确认模型充分考虑到了各方面的利益尽量简洁,5.1.3 域分析,分析模型通常在特定领域内的很多应用重复发生不同领域的要求和工作千差万别,软件实现起来各不相同。但是,往往还是能在其间找到一些共同的东西。域分析的目标:查找这些共同点,创造能复用的东西。,5.1.3 域分析,域分析:软件域分析师识别、分析和详细说明来自某个特定应用领域的公共需求,特别是那些在该应用领域内被多个项目重复使用的面向对象的域分析是在某个特定的应用领域内,根据通用的对象、类、部件和框架,识别、分析和详细说明公共的、可复用的能力,图 域分析过程的输入和输出,5.2 分析建模的方法,结构化分析:
3、着重考虑数据和处理。面向对象分析:对各种对象加以研究,包括其对应的数据和处理。关注于定义类和影响客户需求的类之间的协作方式,5.2 分析建模的方法(续),图: 分析模型的元素,分析模型将生成如下图所示元素的派生类:,5.3 数据建模概念,分析建模通常开始于数据建模数据建模的基本要素:数据对象、数据属性,对象之间的关系。对象/关系对是数据对象的基石。可以使用实体/关系图图形化地表示这些对象/关系对,5.3 数据建模概念(续),实体-联系图(Entity-Relationship Approach, ERD)是按照用户的观点对数据建立的模型数据模型包括三种互相关联的信息:数据对象,描述对象的属性,
4、描述对象间相互连接的关系。 不涉及数据世界的数据结构、存取路径、存取效率等问题。它可以转换成数据库中的数据模型。,5.3 数据建模概念(续),数据对象:是对软件必须理解的复合信息的抽象。所谓复合信息是指具有一系列不同性质或属性的事物,仅有单个值的事物(例如,宽度)不是数据对象。可以由一组属性来定义的实体都可以被认为是数据对象。如:外部实体(例如,产生或使用信息的任何事物);事物(例如,报表);行为(例如,打电话);事件(例如,响警报);角色(例如,教师、学生)只封装数据,在数据对象在内没有作用于数据的操作的引用,5.3 数据建模概念(续),属性属性定义了数据对象的性质。必须把一个或多个属性定义
5、为“标识符”,也就是说,当我们希望找到数据对象的一个实例时,用标识符属性作为“关键字”(通常简称为“键”)。,5.3 数据建模概念(续),联系/关系数据对象彼此之间相互连接的方式称为联系,也称为关系,E-R图中表示实体联系的符号,举例,例: 在教学管理中,一个教师可以教零门、一门或多门课程,每位学生也需要学习几门课程。因此,教学管理中涉及的对象(实体)有学生、教师和课程。,举例,解答:用E-R图描述它们之间的联系,得下图。其中,学生与课程是多对多的联系,而教师与课程的联系是零、一对多。,进一步,要确定属性。例如, 1.学生具有学号、姓名、性别、年龄、专业(其它略)等属性; 2.课程具有课程号、
6、课程名、学分、学时数等属性; 3. 教师具有职工号、姓名、年龄、职称等属性; 此外,学生通过学号、分数与课程发生联系。如此可得教学实体模型。,E-R方法,教学E-R图,5.4 面向对象的分析,面向对象(Object-oriented, OO)的目的是定义与即将解决的问题相关的所有类(以及与其相关的 关系与行为),为实现这点,必须完成如下工作:在客户和软件工程师之间必须对基本的用户需求进行交流。确定类(定义属性、方法)定义类的层次结构表现对象之间的关系为对象行为建模重复上述步骤,直至建模完成,5.4.1 面向对象分析的基本过程,面向对象分析,就是抽取和整理用户需求并建立问题域精确模型的过程。通常
7、,面向对象分析过程从分析陈述用户需求的文件开始。但是,不应该认为需求陈述是一成不变的,而应该把它作为细化和完善实际需求的基础。接下来,系统分析员应该深入理解用户需求,抽象出目标系统的本质属性,并用模型准确地表示出来,面向对象建模得到的模型包含对象的三个要素:静态结构(对象模型)交互次序(动态模型)数据变换(功能模型),三个子模型与五个层次,三个子模型与五个层次,解决的问题不同,这三个子模型的重要程度也不同:几乎解决任何一个问题,都需要从客观世界实体及实体间相互关系抽象出极有价值的对象模型;当问题涉及交互作用和时序时(例如,用户界面及过程控制等),动态模型是重要的;解决运算量很大的问题(例如,高
8、级语言编译、科学与工程计算等),则涉及重要的功能模型。动态模型和功能模型中都包含了对象模型中的操作(即服务或方法)。,复杂问题(大型系统)的对象模型由下述五个层次组成:,三个子模型与五个层次,在概念上,这5个层次是整张模型的5张水平切片,面向对象分析大体上按照下列顺序进行:寻找类一一对象,识别结构,识别主题,定义属性,建立动态模型,建立功能模型,定义服务。但是分析不可能严格地按照预定顺序进行,大型、复杂系统的模型需要反复构造多遍才能建成。通常,先构造出模型的子集,然后再逐渐扩充,直到完全、充分地理解了整个问题,才能最终把模型建立起来。,三个子模型与五个层次,5.4.2 需求陈述,书写要点通常,
9、需求陈述的内容包括:问题范围功能需求性能需求应用环境及假设条件等。总之,需求陈述应该阐明“做什么”而不是“怎样做”。,5.4.2 需求陈述(续),需求陈述注意事项:应该避免对设计策略施加过多的约束,也不要描述系统的内部结构,因为这样做将限制实现的灵活性对系统性能及系统与外界环境交互协议的描述,是合适的需求对采用的软件工程标准、模块构造准则,将来可能做的扩充以及可维护性要求等方面的描述,也是适当的需求。,例子自动取款机(ATM)系统,5.4.2 需求陈述(续),下面陈述对ATM系统的需求:,5.4.2 需求陈述(续),某银行拟开发一个自动取款机系统,它是一个由自动取款机、中央计算机、分行计算机及
10、柜员终端组成的网络系统。ATM和中央计算机由总行投资购买。总行拥有多台 ATM,分别设在全市各主要街道上。分行负责提供分行计算机和柜员终端。柜员终端设在分行营业厅及分行下属的各个储蓄所内。该系统的软件开发成本由各个分行分摊。 银行柜员使用柜员终端处理储户提交的储蓄事务。储户可以用现金或支票向自己拥有的某个账户内存款或开新账户。储户也可以从自己的账户中取款。通常,一个储户可能拥有多个账户。柜员负责把储户提交的存款或取款事务输进柜员终端,接收储户交来的现金或支票,或付给储户现金。柜员终端与相应的分行计算机通信,分行计算机具体处理针对某个账户的事务并且维护账户。,拥有银行账户的储户有权申请领取现金兑
11、换卡。使用现金兑换卡可以通过ATM访问自己的账户。目前仅限于用现金兑换卡在ATM上提取现金(即取款),或查询有关自己账户的信息(例如,某个指定账户上的余额)。将来可能还要求使用ATM办理转账、存款等事务。 所谓现金兑换卡就是一张特制的磁卡,上面有分行代码和卡号。分行代码唯一标识总行下属的一个分行,卡号确定了这张卡可以访问哪些账户。通常,一张卡可以访问储户的若干个账户,但是不一定能访问这个储户的全部账户。每张现金兑换卡仅属于一个储户所有,但是,同一张卡可能有多个副本,因此,必须考虑同时在若干台ATM上使用同样的现金兑换卡的可能性。也就是说,系统应该能够处理并发的访问。,5.4.2 需求陈述(续)
12、,当用户把现金兑换卡插入ATM之后,ATM就与用户交互,以获取有关这次事务的信息,并与中央计算机交换关于事务的信息。首先,ATM要求用户输入密码,接下来ATM把从这张卡上读到的信息以及用户输入的密码传给中央计算机,请求中央计算机核对这些信息并处理这次事务。中央计算机根据卡上的分行代码确定这次事务与分行的对应关系,并且委托相应的分行计算机验证用户密码。如果用户输入的密码是正确的,ATM就要求用户选择事务类型(取款、查询等)。当用户选择取款时,ATM请求用户输入取款额。最后,ATM从现金出口吐出现金,并且打印出账单交给用户。,5.4.2 需求陈述(续),5.4.3 建立对象摸型,面向对象分析的首要
13、工作,是建立问题域的对象模型,因为静态数据结构相对比较稳定对象模型通常有五个层次。典型的工作步骤是:首先确定对象类和关联(因为它们影响系统整体结构和解决问题的方法)对于大型复杂问题还要进一步划分出若干个主题;然后给类和关联增添属性,以进一步描述它们;接下来利用适当的继承关系进一步合并和组织类。而对类中操作的最后确定,则需等到建立了动态模型和功能模型之后。,确定类与对象(1)找出候选的类与对象具体地说,大多数客观事物可分为下述五类:可感知的物理实体,例如,飞机、汽车、书、房屋等等。人或组织的角色,例如,医生、教师、雇主、雇员、计算机系、财务处等等。应该记忆的事件,例如,飞行、演出、访问、交通事故
14、等等。两个或多个对象的相互作用,通常具有交易或接触的性质,例如,购买、纳税、结婚等等。需要说明的概念,例如,政策、保险政策、版权法等等。,5.4.3 建立对象摸型(续),另一种更简单的找出候选的类与对象的方法:非正式分析需求陈述为依据,把陈述中的名词作为类与对象的候选者,用形容词作为确定属性的线索,把动词作为服务(操作)的候选者。认真阅读上面给出的需求陈述,从陈述中找出下列名词,可以把它们作为类与对象的初步的候选者:银行,自动取款机(ATM),系统,中央计算机,分行计算机,柜员终端,网络,总行,分行,软件,成本,市,街道,营业厅,储蓄所,柜员,储户,现金,支票,账户,事务,现金兑换卡,余额,磁
15、卡,分行代码,卡号,用户,副本,信息,密码,类型,取款额,账单,访问。,5.4.3 建立对象摸型(续),(2)筛选出正确的类与对象接下来应该严格考察每个候选对象,从中去掉不正确的或不必要的,仅保留确实应该记录其信息或需要其提供服务的那些对象。,5.4.3 建立对象摸型(续),确定类与对象,筛选时主要依据下列标准,删除不正确或不必要的类与对象:冗余如果两个类表达了同样的信息,则应该保留在此问题域中最富于描述力的名称。以ATM系统为例,应该去掉“用户”、“磁卡”、“副本”等冗余的类,仅保留“储户”和“现金兑换卡”这两个类。,无关仅需要把与本问题密切相关的类与对象放进目标系统中。以ATM系统为例,因
16、此,应该去掉候选类“成本”、“市”、“街道”、“营业厅”和“储蓄所”。,确定类与对象,确定类与对象,笼统在需求陈述中常常使用一些笼统的、泛指的名词,虽然在初步分析时把它们作为候选的类与对象列出来了,但是,要么系统无须记忆有关它们的信息,要么在需求陈述中有更明确更具体的名词对应它们所暗示的事务,因此,通常把这些笼统的或模糊的类去掉。以ATM系统为例,应该去掉“银行”、“网络”、“系统”、“软件”、“信息”、“访问”等候选类。,属性在需求陈述中有些名词实际上描述的是其他对象的属性,应该把这些名词从候选类与对象中去掉。在ATM系统的例子中,“现金”、“支票”、“取款额”、“账单”、“余额”、“分行代
17、码”、“卡号”、“密码”、“类型”等,实际上都应该作为属性对待。,确定类与对象,确定类与对象,操作在需求陈述中有时可能使用一些既可作为名词,又可作为动词的词,应该慎重考虑它们在本问题中的含义,以便正确地决定把它们作为类还是作为类中定义的操作。,实现在分析阶段不应该过早地考虑怎样实现目标系统。因此,应该去掉仅和实现有关的候选的类与对象。在ATM系统的例子中,应该暂时去掉“事务日志”和“通信链路”这两个类,在设计或实现时再考虑它们,确定类与对象,2. 确定关联两个或多个对象之间的相互依赖、相互作用的关系就是关联。分析确定关联,能促使分析员考虑问题域的边缘情况,有助于发现那些尚未被发现的类与对象。,
18、5.4.3 建立对象摸型(续),(1)初步确定关联在需求陈述中使用的描述性动词或动词词组,通常表示关联关系。因此,在初步确定关联时,大多数关联可以通过直接提取需求陈述中的动词词组而得出。通过分析需求陈述,还能发现一些在陈述中隐含的关联。,确定关联,以ATM系统为例,经过分析初步确定出下列关联:,确定关联,ATM、中央计算机、分行计算机及柜员终端组成网络。总行拥有多台ATM。ATM设在主要街道上。分行提供分行计算机和柜员终端。柜员终端设在分行营业厅及储蓄所内。分行分摊软件开发成本。储户拥有账户。分行计算机处理针对账户的事务。,分行计算机维护账户。 柜员终端与分行计算机通信。柜员输入针对账户的事务
19、。 ATM与中央计算机交换关于事务的信息。中央计算机确定事务与分行的对应关系。 ATM读现金兑换卡。ATM与用户交互。ATM吐出现金。ATM打印账单。系统处理并发的访问。,直接提取动词短语得出的关联:,需求陈述中隐含的关联 总行由各个分行组成。 分行保管账户。 总行拥有中央计算机。 系统维护事务日志。 系统提供必要的安全性。 储户拥有现金兑换卡。根据问题域知识得出的关联 现金兑换卡访问账户。 分行雇用柜员。,确定关联,(2)筛选筛选时主要根据下述标准删除候选的关联:已删去的类之间的关联如果在分析确定类与对象的过程中已经删除了某个候选类,则与这个类有关的关联也应该删去。,确定关联,以ATM系统为
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 需求 建模 ppt 课件

链接地址:https://www.31ppt.com/p-1420335.html