当前位置:文档之家› 软件工程导论第十章

软件工程导论第十章


识别主题 定义类与对象 识别结构 定义属性 定义服务
11
OOA的一般过程 OOA的一般过程
获取用户基本需求 标识类和对象 定义类的结构和层次 表示类(对象) 表示类(对象)间的关系 为对象行为建模
对象模型
2010-11-11
动态模型
liang@
功能模型
12
10.2 需求陈述

柜员职责:
把储户提交的存款或取款事务输进柜员终端 接收储户交来的现金或支票,或付给储户现金

柜员终端与相应的分行计算机通信,分行计算机具体处理针 对某个账户的事务并且维护账户。
liang@ 17
2010-11-11
10.2 需求陈述

储户有权申领现金兑换卡。使用该卡可通过ATM访问自己的 储户有权申领现金兑换卡。使用该卡可通过ATM访问自己的 账户,实现如下功能:
2010-11-11
liang@
6
10.1.2 三个子模型与五个层次 10. ► 面向对象建模得到பைடு நூலகம்模型包含对象的三个要素,即 静态结构(对象模型),交互次序(动态模型)和 数据变换(功能模型)。 ► 三个子模型的重要程度随问题不同而不同
对象模型:最核心、最基础、最重要; 动态模型:交互作用和时序(例如,用户界面及过程控 制等); 功能模型:解决运算量很大的问题(例如,高级语言编 译、科学与工程计算等); 动态模型和功能模型中都包含了对象模型中的操作(即 服务或方法)
2010-11-11
liang@
18
10.2 需求陈述

使用ATM过程 使用ATM过程
用户插卡 ATM要求用户输入密码 ATM要求用户输入密码 ATM把从这张卡上读到的信息以及用户输入的密码传给中央计算机, ATM把从这张卡上读到的信息以及用户输入的密码传给中央计算机, 请求中央计算机核对这些信息并处理这次事务 中央计算机根据卡上的分行代码确定这次事务与分行的对应关系,并 且委托相应的分行计算机验证用户密码。 如果用户输入的密码是正确的,ATM就要求用户选择事务类型(取款、 如果用户输入的密码是正确的,ATM就要求用户选择事务类型(取款、 查询等) 当用户选择取款时,ATM请求用户输入取款额 当用户选择取款时,ATM请求用户输入取款额 最后,ATM从现金出口吐出现金,并且打印出账单交给用户 最后,ATM从现金出口吐出现金,并且打印出账单交给用户
2010-11-11 liang@ 8
主题(Subject)层:主题给出分析模型的总体概貌,是控制读者 层 主题 在同一时间所能考虑的模型规模的机制。 对象(Class & Object)层:对象是数据及其处理的抽象。 类-&-对象 对象 层 它反映了保存有关信息和与现实世界交互的能力。 结构(Structure)层:结构表示问题域的复杂性。一般-特殊结构 层 结构 反映了继承关系,整体-部分结构反映了聚合的关系。 属性(Attribute)层 属性(Attribute)层:属性是数据元素,用来描述对象或分类结 构的实例,可在图中给出并在对象的储存中指定,即给出对象 定义的同时,指定属性。 服务(Serves)层:服务是接收到消息后必须执行的一些处理, 层 服务 可在图上标明它并在对象的储存中指定,即给出对象定义的同 时,定义服务。
2010-11-11 liang@ 5
10.1 面向对象分析的基本过程 10.



首先,系统分析员要对需求文档进行分析。通过分析可以发 现和改正需求文档中的歧义性、不一致性,剔除冗余的内容, 挖掘潜在的内容,弥补不足,从而使需求文档更完整、更准 确。 然后,是需求建模。系统分析员根据提取的用户需求,深入 理解用户需求,识别出问题域内的对象,并分析它们相互之 间的关系,抽象出目标系统应该完成的需求任务,并用OOA 模型准确地表示出来,即用面向对象观点建立对象模型、动 态模型和功能模型。 最后,是需求评审。通过用户、领域专家、系统分析员和系 统设计人员的评审,并进行反复修改后,确定需求规格说明。
2010-11-11
liang@
19
10.3 建立对象摸型 10.

对象模型通常有五个层次: 对象模型通常有五个层次:
确定类与对象 确定关联 划分主题 确定属性 确定 继承关系

典型的工作步骤是: 典型的工作步骤是:
首先确定对象类和关联(因为它们影响系统整体结构和 解决问题的方法),对于大型复杂问题还要进一步划分 出若干个主题; 然后给类和关联增添属性,以进一步描述它们; 接下来利用适当的继承关系进一步合并和组织类。 而对类中操作的最后确定,则需等到建立了动态模型和 功能模型之后,因为这两个子模型更准确地描述了对类 中提供的服务的需求。


2010-11-11
liang@
13
10.2 需求陈述

对系统性能及系统与外界环境交互协议的描述,是合适的 系统性能及系统与外界环境交互协议的描述,是合适的 需求。 此外,对采用的软件工程标准、模块构造准则、将来可能 做的扩充以及可维护性要求等方面的描述,也都是适当的 需求。
结构化分析对需求采取独特的“输入—加工—输出” 结构化分析对需求采取独特的“输入—加工—输出” 视角,数据被脱离数据的变换过程而单独考虑
系统行为虽然重要,但在结构化分析中往往扮演第二位 的角色,结构化分析方法着重功能分解的使用。
面向对象的目标是开发一系列模型,这些模型被用 来描述以满足一组客户需求的计算机软件。
► 自动取款机系统
自动取款机(ATM)+中央计算机+分行计算机+ 自动取款机(ATM)+中央计算机+分行计算机+柜员终端的 网络系统
► ATM和中央计算机由总行投资购买 ATM和中央计算机由总行投资购买
总行拥有多台 ATM,分别设在全市各主要街道上。 ATM,分别设在全市各主要街道上。
► 分行负责提供分行计算机和柜员终端
面向对象分析的基本过程 需求陈述 建立对象模型 建立动态模型 建立功能模型 定义服务 小结
liang@ 2
OOA及其所面对的问题 OOA及其所面对的问题
OOA相当于软件开发过程中的问题定义和 OOA相当于软件开发过程中的问题定义和需 求分析阶段 求分析阶段 OOA所面对的问题 OOA所面对的问题

2010-11-11
liang@
14
10.2.2 例子 10. 图10.2所示的自动取款机(ATM)系统,是本 10.2所示的自动取款机(ATM)系统,是本 书讲述面向对象分析和面向对象设计时使用的一个 实例。
2010-11-11
liang@
15
10.2 需求陈述
2010-11-11 liang@ 9
► 上述五个层次对应着在面向对象分析过程中
建立对象模型的五项主要活动
找出类找出类-&-对象 识别结构 识别主题 定义属性 定义服务
► 事实上,这五项工作完全没有必要顺序完成,
也无须彻底完成一项工作以后再开始另外一 项工作。
2010-11-11 liang@ 10
当开发一个新的产品或系统时,我们如何从遵循 OO软件工程的方式来刻画它? OO软件工程的方式来刻画它? 什么是相关的对象?他们如何相互关联? 对象如何在系统的范围内工作? 应如何对问题刻画或建模以使得我们可创建一个 有效的设计?
2010-11-11 liang@ 3
SA vs. OOA
在ATM上提取现金(即取款) ATM上提取现金(即取款) 查询有关自己账户的信息(例如,某个指定账户上的余额) 将来可能还要求使用ATM办理转账、存款等事务 将来可能还要求使用ATM办理转账、存款等事务

现金兑换卡:
一张特制的磁卡,上面有分行代码和卡号 分行代码唯一标识总行下属的一个分行,卡号确定了这张卡可以访问 哪些账户 通常,一张卡可以访问储户的若干个账户,但是不一定能访问这个储 户的全部账户 每张现金兑换卡仅属于一个储户所有,但是,同一张卡可能有多个副 本,因此,必须考虑同时在若干台ATM上使用同样的现金兑换卡的可 本,因此,必须考虑同时在若干台ATM上使用同样的现金兑换卡的可 能性。也就是说,系统应该能够处理并发的访问
OOA建造若干分析模型以满足这个目标。分析模型描述 OOA建造若干分析模型以满足这个目标。分析模型描述 信息(对象模型)、功能(功能模型)和行为(动态模 型)。
2010-11-11
liang@
4
OOA的主要工作 OOA的主要工作
► 三项内容:理解、表达和验证 ► 需求分析过程是系统分析员与用户及领域专家反复
► ►
书写要点 书写要点 通常,需求陈述的内容包括:问题范围,功能需求,性能 需求,应用环境及假设条件等。总之,需求陈述应该阐明 “做什么”而不是“怎样做”。 做什么”而不是“怎样做”。 描述用户的需求而不是提出解决问题的方法。应该指出哪 描述用户的需求而不是提出解决问题的方法。应该指出哪 些是系统必要的性质,哪些是任选的性质。 应该避免对设计策略施加过多的约束,也不要描述系统的 内部结构,这样做将限制实现的灵活性。
软件工程导论
梁文新 办公室:综合楼108 办公室:综合楼108 电 话: 87571625 liang@
第十章 面向对象分析(OOA) 面向对象分析(OOA)
► 10.1 ► 10.2 ► 10.3 ► 10.4 ► 10.5 ► 10.6 ► 10.7
2010-11-11
2010-11-11
liang@
20
10.3.1 确定类与对象 10. 1.找出候选的类与对象 对象是对问题域中有意义的事物的抽象,它们既可能是 物理实体,也可能是抽象概念。· 物理实体,也可能是抽象概念。·具体地说,大多数客观事物 可分为下述五类: (1)可感知的物理实体,例如,飞机、汽车、书、房屋等等。 可感知的物理实体,例如,飞机、汽车、书、房屋等等。 (2)人或组织的角色,例如,医生、教师、雇主、雇员、计 人或组织的角色,例如,医生、教师、雇主、雇员、计 算机系、财务处等等。 (3)应该记忆的事件,例如,飞行、演出、访问、交通事故 应该记忆的事件,例如,飞行、演出、访问、交通事故 等等。 (4)两个或多个对象的相互作用,通常具有交易或接触的性 两个或多个对象的相互作用,通常具有交易或接触的性 质,例如,购买、纳税、结婚等等。 (5)需要说明的概念,例如,政策、保险政策、版权法等等。 需要说明的概念,例如,政策、保险政策、版权法等等。
相关主题