第十章:面向对象分析.ppt

上传人:sccc 文档编号:6010598 上传时间:2023-09-14 格式:PPT 页数:37 大小:784.04KB
返回 下载 相关 举报
第十章:面向对象分析.ppt_第1页
第1页 / 共37页
第十章:面向对象分析.ppt_第2页
第2页 / 共37页
第十章:面向对象分析.ppt_第3页
第3页 / 共37页
第十章:面向对象分析.ppt_第4页
第4页 / 共37页
第十章:面向对象分析.ppt_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《第十章:面向对象分析.ppt》由会员分享,可在线阅读,更多相关《第十章:面向对象分析.ppt(37页珍藏版)》请在三一办公上搜索。

1、第十章 面向对象分析Object-Oriented Analysis),10.1 面向对象分析的基本过程10.2 需求陈述10.3 建立对象模型10.4 建立动态模型10.5 建立功能模型10.6 定义服务,第十章 面向对象分析Object-Oriented Analysis),不论采用哪种方法开发软件,分析的过程都是提取系统需求的过程。分析工作主要包括3项内容,这就是理解、表达和验证。面向对象分析(OOA)的关键是识别出问题域内的类与对象,并分析它们相互间的关系,最终建立起问题域的简洁、精确、可理解的正确模型。在用面向对象观点建立起的3种模型中,对象模型是最基本、最重要、最核心的。,1.基本

2、过程:,需求陈述 快速原型 模型 需求陈述是理解用户需求的出发点。在分析中对于需求要经历理解、表述、验证的循环过程。,面向对象建模得到的模型有三个:Object model:最重要,开发任何系统都需要;都需要从客观世界实体及实体间相互关系抽象出极有价值的对象模型;Dynamic model:对于开发交互式系统(interactive system)很重要;Function model:对于开发大运算量问题(如科学计算、编译系统等)很重要。动态模型和功能模型中都包含了对象模型中的操作(即服务或方法)。,1.基本过程,Object model 由五个层次:主题层、类与对象层、结构层、属性层和服务层

3、组成,相当于把五张透明胶片叠在一起,每一层显示更多的细节。主题是指导读者理解大型、复杂模型的一种机制。也就是说,通过划分主题把一个大型、复杂的对象模型分解成几个不同的概念范畴。,1.基本过程,上述5个层次对应着在面向对象分析过程中建立对象模型的5项主要活动:找出类与对象,识别结构,识别主题,定义属性,定义服务。在概念上可以认为,面向对象分析大体上按照下列顺序进行:寻找类与对象,识别结构,识别主题,定义属性,建立动态模型,建立功能模型,定义服务。但是,分析不可能严格地按照预定顺序进行,大型、复杂系统的模型需要反复构造多遍才能建成。,2.需求陈述,第三章中已介绍过,需求陈述的内容包括:问题范围、功

4、能需求、性能要求、应用环境、假设条件等等。陈述方式可繁可简,说明What 而不是 How。不应把实际需求和设计决策混为一谈。,例:教材p.226-227,对Automated Teller Machine(ATM)的需求陈述。,3.建立 Object Model,如前所述,对象模型通常有5个层次。典型的工作步骤是:首先确定对象类和关联(因为它们影响系统整体结构和解决问题的方法),对于大型复杂问题还要进一步划分出若干个主题;然后给类和关联增添属性,以进一步描述它们;接下来利用适当的继承关系进一步合并和组织类。而对类中操作的最后确定,则需等到建立了动态模型和功能模型之后,因为这两个子模型更准确地描

5、述了对类中提供的服务的需求。,3.建立 Object Model,1、确定Class-&-Object:,第1步:列出所有候选对象(candidates),它们可能是 物理实体 人或组织 应该记忆的事件 对象间的作用 抽象概念 等等,非正式分析:从需求陈述中挑出 名词 Class-&-Object 形容词 Attribute 动词 Method,3.建立 Object Model,第2步:去粗取精,例:从ATM需求分析中提出的名词集合,银行、ATM、系统、中央计算机、分行计算机、柜员终端、网络、总行、分行、软件、成本、市、街道、营业厅、储蓄所、柜员、储户、现金、支票、账户、事务、现金兑换卡、余

6、额、磁卡、分行代码、卡号、用户、副本、信息、密码、类型、取款额、账单、访问,筛选时依下列标准删除:,、通信链路、事务日志,冗余,无关,笼统,属性,既可为名词又可为动词的词,应慎重考虑。,实现,操作,3.建立 Object Model,2、确定关联 结构层,第1步:收集,需求陈述中涉及objets的动词短语:,需求陈述中隐含的关联 总行由各个分行组成 系统维护事务日志 分行保管账户 系统提供必要的安全性 总行拥有中央计算机 储户拥有现金兑换卡,3.建立 Object Model,根据问题域知识得出的关联 现金兑换卡访问账户 分行雇用柜员,第2步:筛选删除,3.建立 Object Model,与已

7、删去的object 有关的关联,与问题无关的或应在实现阶段考虑的关联,3.建立 Object Model,瞬时事件:注意关联描述静态结构,3.建立 Object Model,三元关联:分解为二元关联或限定关联 柜员输入针对账户的事务=柜员输入事务+事务修改账户 分行计算机处理针对账户的事务=分行计算机处理事务+事务修改账户 ATM与中央计算机交换关于事务的信息=ATM与中央计算机通信+在ATM上输入事务,注:识别链属性 某实体仅用于描述另两个实体的关系,且该实体本身不包含属性。例如“公司付给员工工资”可分解为“公司雇用员工”,附链属性“工资”。,3.建立 Object Model,派生关联:即

8、可用其它关联定义的冗余关联,3.建立 Object Model,第3步:完善,正名:分行提供分行计算机和柜员终端=分行拥有分行计算机+分行拥有柜员终端,分解:适当分解前面确定的class-&-objects,使其适用于不同的关联 事务=远程事务+柜员事务,补充 柜员输入柜员事务 在ATM上输入远程事务 柜员事务输进柜员终端 远程事务由现金兑换卡授权,标明阶数(可能经常变动,不要花太多时间),3.建立 Object Model,1.总 行 2.分 行3.ATM,ATM系统原始的类图,3.建立 Object Model,3、划分主题注意:按问题域而不是按功能分解 主题间的依赖和交互尽可能少4、确立

9、属性 分析:通常,在需求陈述中用名词词组表示属性,例如,“汽车的颜色”或“光标的位置”。往往用形容词表示可枚举的具体属性,例如,“红色的”、“打开的”。选择:认真考察经初步分析而确定下来的那些属性,从中删掉不正确的或不必要的属性。注意:Attribute 不表示 objects 之间的关系,只表示其本质性质,不要与链属性、限定词混淆。暂不考虑纯用于实现的 attributes(即单纯的内部状态)。需求陈述中与已确定的 objects 有关的名词、形容词可能是选择的线索。,5、识别继承关系及其它修改 Bottom-up:将具有相同属性的classes向上归纳出父类。例如,在ATM系统中,“远程事

10、务”和“柜员事务”是类似的,可以泛化出父类“事务”;类似地,可以从“ATM”和“柜员终端”泛化出父类“输入站”。Top-down:将现有classes向下细化出子类(但分析阶段避免过度细化)。,3.建立 Object Model,若某class中具有几个独立的功能,则考虑分为几个classes。如把“现金兑换卡”类分解为“卡权限”和“现金兑换卡”两个类,对于某class中具有自己特有属性的部分,可考虑将之列为独立存在的class,且是原有class的组成。如“事务”由“更新”组成。合并无须分别考虑的若干classes。如把“分行”与“分行计算机”合并,“总行”和“中央计算机”合并。,归 纳,组

11、 成,分 解,合 并,4.建立动态模型 Dynamic Model,1、编写脚本(scenarios),描述event 序列:Event=Activator+Receiver+Parameters 事件=触发者+接收者+参数组,基本类型:正常情况脚本;特殊情况脚本(输入输出取边界值时);异常情况脚本(应允许用户异常中止或取消一个操作),4.建立 Dynamic Model,例:ATM系统的正常、异常情况脚本(p.222-223),4.建立 Dynamic Model,3、画事件跟踪图(event tracing diagram ETD),4.建立 Dynamic Model,每个脚本对应一张图

12、,2、设想用户界面(user interface)rapid prototype.,4.建立 Dynamic Model,例:ATM系统的正常情况脚本的ETD,4、画状态图(event flow diagram),4.建立 Dynamic Model,每个具有交互行为的 class-&-object 对应一张图。各个类的状态图通过共享事件合并起来,构成了系统的动态模型。,4.建立 Dynamic Model,例:ATM类的的EFD,4.建立 Dynamic Model,总行类的状态图,注:一个event 若缺少activator 或 receiver,而对应 status 又不是在起点终点,则

13、发生错误。画状态图时应考虑所有的事件跟踪图脚本,包括异常处理。,4.建立 Dynamic Model,分行类的状态图,5.建立 Function Model,DFD+IPO+Pseudocode 1.画出基本系统模型图,ATM系统的基本系统模型,5.建立 Function Model,2.画出功能级数据流图,ATM系统的功能级数据流图,5.建立 Function Model,3.描述处理框功能 ATM系统数据流图中大多数处理框的功能都比较简单。作为一个例子,表10.3(见书246页)给出了对“更新账户”这个处理功能的描述。,6.定义服务,1、状态图(EFD)中的do:action 对应 met

14、hod。,2、DFD中的process 对应 method。,例,注:常规行为(读写内部属性)不在图中显示;每个method对应一段源程序代码,故应尽量利用inheritance抽象出父类,共享methods。,Project“面向对象分析报告”分组演讲,演讲题目:储蓄系统(P.36#2)机票预订系统(P.36#3)患者监护系统(P.36#4)房产管理系统(P.37#5)选票统计系统(P.77#7)自动售货机系统(P.231#4)(7)采购定货系统(P.25 例2.4.2)(8)家庭娱乐中心(P.77#6),Project,演讲内容 通过5层示意图介绍系统 正常情况脚本的事件跟踪图演示 状态图演示,演讲时间:下一次课时,每组10分钟演讲+2分钟听众提问,演讲题目分配及演讲顺序:抽签决定。,评分方法:8个组演讲结束后,分组讨论,按评分标准给除自己组外的7个组打分,写评语。本组成绩=其他7组给出的平均成绩 50%+主讲教师评定成绩 50%,Project,评分标准:,课后作业,P248:10-110-210-4,

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

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号