收藏 分享(赏)

9面向对象分析(13).ppt

上传人:dreamzhangning 文档编号:4052937 上传时间:2018-12-06 格式:PPT 页数:44 大小:1.61MB
下载 相关 举报
9面向对象分析(13).ppt_第1页
第1页 / 共44页
9面向对象分析(13).ppt_第2页
第2页 / 共44页
9面向对象分析(13).ppt_第3页
第3页 / 共44页
9面向对象分析(13).ppt_第4页
第4页 / 共44页
9面向对象分析(13).ppt_第5页
第5页 / 共44页
点击查看更多>>
资源描述

1、软件工程,第10章 面向对象分析,主要内容,面向对象分析的基本过程 需求陈述 建立对象模型 建立动态模型 建立功能模型 定义服务,面向对象分析,就是抽取和整理用户需求并建立问题域精确模型的过程。 从需求陈述出发与用户充分协商、讨论、信息,了解现有的类似系统。 如有可能,可建立一个快速原型系统。 向领域专家学习,深入理解用户需求。 研究以前的或他人的类似成果,看是否可重用。 由于面向对象分析与设计的概念一致性,过程无缝性,在分析时也可完成部分设计。,基本过程,三个子模型与五个层次 Object model:最重要,开发任何系统都需要; Dynamic model:对于开发交互式系统(intera

2、ctive system)很重要; Function model:对于开发大运算量问题(如科学计算、编译系统等)很重要。,基本过程,Object model 由五个层次组成(Coad&Yourdon, 1991)。,面向对象分析大体上可按照下列顺序进行: 寻找类对象 识别结构 识别主题 定义属性 建立动态模型 建立功能模型 定义服务 但是,分析过程不应该机械,而应该灵活主动,甚至不必拘泥于分析本身,当想到一个好的实现时,也可以进行设计活动。,基本过程,Feasibility study,Requirements elicitation & analysis,Requirements speci

3、fication,Requirements validation,Feasibility report,System models,User&system requirements,Requirements document,可行性分析,需求发现与分析,需求定义,需求确认,需求 文档,基本过程(与国外对比),Validity. Does the system provide the functions which bestsupport the customers needs? Consistency. Are there any requirements conflicts? Complet

4、eness. Are all functions required by the customer included? Realism. Can the requirements be implemented given available budget and technology Verifiability. Can the requirements be checked?,主要内容,面向对象分析的基本过程 需求陈述 建立对象模型 建立动态模型 建立功能模型 定义服务,如第三章所述,需求陈述的内容包括: 问题范围、功能需求、性能要求、应用环境、假设条件等等。陈述方式可繁可简,说明What

5、而不是 How。 例:ATM系统,需求陈述,请作用例图,请作用例图,主要内容,面向对象分析概述 面向对象分析的基本过程 需求陈述 建立对象模型 建立动态模型 建立功能模型 定义服务,面向对象分析的首要工作是建立问题域的对象模型。 对象模型描述了现实世界中的类对象以及它们之间的关系,表示了目标系统的静态数据结构。 静态数据结构对应用细节依赖较少,比较容易确定; 当需求变化时,静态数据结构相对来说比较稳定。 建立对象模型时的主要信息来源: 需求陈述 应用领域的专业知识 关于客观世界的常识,建立对象模型,1、确定类对象 第一步:列出所有候选对象,它们可能是: 可感知的物理实体 人或组织的角色 应该记

6、忆的事件 两个或多个对象的相互作用 需要说明的概念,非正式分析:从需求陈述中挑出名词 Class-&-Object形容词 Attribute动词 Method,建立对象模型,1、确定类对象 第二步:筛选,例:从ATM需求分析中提出的名词集合,银行、ATM、系统、中央计算机、分行计算机、 柜员终端、网络、总行、分行、软件、成本、市、 街道、营业厅、储蓄所、柜员、储户、现金、 支票、账户、事务、现金兑换卡、余额、磁卡、 分行代码、卡号、用户、副本、信息、密码、 类型、取款额、账单、访问,筛选时依下列标准删除:,、通信链路、事务日志, 冗余, 无关, 笼统, 属性, 操作 既可为名词又可为动词的词,

7、应慎重考虑。, 实现,2、确定关联结构层 第1步:收集关联, 需求陈述中涉及objets的动词短语:, 根据问题域知识得出的关联 现金兑换卡访问账户 分行雇用柜员, 需求陈述中隐含的关联 总行由各个分行组成 系统维护事务日志 分行保管账户 系统提供必要的安全性 总行拥有中央计算机 储户拥有现金兑换卡,2、确定关联结构层 第1步:收集关联,2、确定关联结构层 第2步:筛选删除 , 与已删去的object 有关的关联, ATM、中央计算机、分行计算机及柜员终端组成网络 总行拥有多台ATM ATM设在主要街道上 分行提供分行计算机和柜员终端 柜员终端设在分行营业厅及储蓄所内 分行分摊软件开发成本 储

8、户拥有账户 总行由各个分行组成, 分行计算机处理针对账户的事务 分行计算机维护账户 柜员终端与分行计算机通信 柜员输入针对账户的事务 ATM与中央计算机交换关于事 务的信息 中央计算机确定事务与分行的 对应关系 ATM读现金兑换卡 ATM与用户交互 ATM吐出现金 ATM打印账单 系统处理并发的访问, 现金兑换卡访问账户 系统维护事务日志 分行保管账户 系统提供必要的安全性 总行拥有中央计算机 储户拥有现金兑换卡 分行雇用柜员,瞬时事件:注意关联描述静态结构, 与问题无关的或应在实现阶段考虑的关联,三元关联:分解为二元关联或限定关联 柜员输入针对账户的事务= 柜员输入事务 + 事务修改账户 分

9、行计算机处理针对账户的事务= 分行计算机处理事务 + 事务修改账户 ATM与中央计算机交换关于事务的信息= ATM与中央计算机通信 + 在ATM上输入事务,注:识别链属性 某实体仅用于描述另两个实体的关系,且该实体本身不包含属性。例如“公司付给员工工资”可分解为“公司雇用员工”,附链属性“工资”。,2、确定关联结构层 第2步:筛选删除 ,派生关联:即可用其它关联定义的冗余关联,2、确定关联结构层 第2步:筛选删除 ,第3步:完善, 正名:分行提供分行计算机和柜员终端= 分行拥有分行计算机 + 分行拥有柜员终端, 分解:适当分解前面确定的class-&-objects ,使其适用于不同的关联事务

10、 = 远程事务 + 柜员事务,补充 柜员输入柜员事务 在ATM上输入远程事务 柜员事务输进柜员终端 远程事务由现金兑换卡授权,标明阶数(可能经常变动,不要花太多时间),2、确定关联结构层,3、划分主题,* 总 行 * 分 行 * ATM,4、确立属性,注意: Attribute 不表示 objects 之间的关系,只表示其本质性质,不要与链属性、限定词混淆。 暂不考虑纯用于实现的 attributes(即单纯的内部状态)。 需求陈述中与已确定的 objects 有关的名词、形容词可能是选择的线索。,5、识别继承关系及其它修改 Bottom-up:将具有相同属性的classes向上归纳出父类。

11、Top-down: 将现有classes向下细化出子类(但分析阶段避免过度细化)., 若某class中具有几个独立的功能,则考虑分为几个classes。 对于某class中具有自己特有属性的部分,可考虑将之列为独立存在的class,且是原有class的组成。 合并无须分别考虑的若干classes。,归 纳,组 成,分 解,合 并,主要内容,面向对象分析概述 面向对象分析的基本过程 需求陈述 建立对象模型 建立动态模型 建立功能模型 定义服务,在开发交互式系统时,动态模型起着很重要的作用。 建立动态模型的步骤: 编写典型交互行为的脚本 从脚本中提取事件,确定事件的触发对象和接收对象 排列事件发生

12、的次序,用状态图描绘每个对象的状态及状态间的转换关系 比较各个对象的状态图,检查它们的一致性,确保事件之间的匹配,建立动态模型,1、编写脚本 (scenarios),描述event 序列: Event = Activator + Receiver +Parameters 基本类型: 正常情况脚本; 特殊情况脚本(输入输出取边界值时); 异常情况脚本(应允许用户异常中止或取消一个操作),建立动态模型,建立动态模型,建立动态模型,2、设想用户界面(user interface) rapid prototype. 3、画事件跟踪图(event tracing diagram),每个脚本对应一张图,建

13、立动态模型,例:ATM系统的正常情况脚本的ETD,请指出:如何修改为“顺序图” ?,例:ATM系统的正常情况脚本的顺序图,4、画状态图(event flow diagram),每个具有交互行为的 class-&-object 对应一张图。 根据一张ETD画出EFD后,再把其它ETD合并到已画出的EFD中。,例:ATM类的的EFD,5、审查动态模型 一个event 若缺少activator 或 receiver,而对应 status 又不是在起点终点,则发生错误。画状态图时应考虑所有的事件跟踪图脚本,包括异常处理。,该事件缺少接收对象,应在ATM的状态图上增加接收者,建立动态模型,主要内容,面向

14、对象分析概述 面向对象分析的基本过程 需求陈述 建立对象模型 建立动态模型 建立功能模型 定义服务,画出基本系统模型图,建立功能模型,画出基本系统模型图 画出功能级数据流图 描述处理框功能,建立功能模型,主要内容,面向对象分析概述 面向对象分析的基本过程 需求陈述 建立对象模型 建立动态模型 建立功能模型 定义服务,常规行为 从事件导出的操作 与数据流图中处理框对应的操作 利用继承减少冗余操作,定义服务,例:状态图(EFD)中的do: action 对应 method。,定义服务,分析就是提取系统需求并建立问题域精确模型的过程,它包括理解、表达和验证等三项主要工作内容。面向对象分析的关键工作是分析、确定问题域中的对象及对象间的关系,并建立起问题域的对象模型。 大多数分析模型都不是一次完成的,必须反复多次地进行分析。 本章介绍了面向对象分析的基本步骤和方法,但是,需要指出的是,面向对象分析问题的思想是必须遵守的,而方法却不是一成不变的,大家应该在基本步骤的指导下灵活运用。 虽然分析的目的是用分析模型取代需求陈述,并把分析模型作为设计的基础,但是,在分析与设计之间并不存在绝对的界线。,小结,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 经营企划

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报