1 / 24
文档名称:

面向对象分析全解.docx

格式:docx   大小:424KB   页数:24页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

面向对象分析全解.docx

上传人:wz_198613 2022/3/28 文件大小:424 KB

下载得到文件列表

面向对象分析全解.docx

相关文档

文档介绍

文档介绍:第10章 面向对象分析

不论采用哪种软件工程方法开发软件,需求分析的主要工作都是:理解需求、表达需求和验证需求,下面的图概括地表示了参照当前系统建立目标系统的过程。
图: 参照当前系统建立目标系质。
一般来说,确定属性的过程包括分析和选择两个步骤:
1. 分析
通常用名词词组表示属性,如:“汽车的颜色”、“光标的位置”,而用形容词表示可枚举的具体属性,如:“红色的”、“白色的”。
在分析阶段应该仅考虑与具体应用直接相关的属性,而不要考虑那些纯粹用于实现的属性。
2. 选择
选择时要关注下述6个方面:
区分对象与属性(仅关注其值的是属性);
区分关联类属性与对象属性(例:依赖某个关联链的性质是关联类属性);
区分限定词和属性(能用限定词更好)
区分内部状态和属性(例:某性质是对象的内部状态)
忽略无影响的属性(在分析阶段应该忽略对大多数操作无影响的属性)
注意属性的相关性(分解该“类”)


识别继承关系
确定了类中的属性之后,就可以利用继承机制共享公共性质,并对众多的类重新加以组织。
一般来说,可以应用两种方式建立继承(即泛化)关系:
自底向上:抽象出现有类的共同性质泛化出父类;
自顶向下:把现有类细化成更具体的子类。

反复修改
对象模型的建立是一个反复修改、逐步完善的迭代过程。
对于初学者来说,可尝试用面向对象方法开发几个较小系统,取得一定的经验后,再总结更适合自己的工作方式。
1. 分解“现金兑换卡”类
2. “事务”由“更新”组成
3. 把“分行”与“分行计算机”合并


一般来说,建立动态模型的典型步骤如下:
编写脚本,确保不遗漏正常的交互行为;
从脚本中提取事件,确定每个事件的发送对象(触发该事件动作的对象)和接受对象;
画事件跟踪图(Sequence Diagram,时序图或顺序图,描述对象之间的时间顺序)
画状态图
审查状态图的完整性和一致性
编写脚本
脚本是指系统在某一执行期间内出现的一系列事件(脚本描述事件序列,是用例的实例,是系统的一种实际使用方法。),它描述用户(或其它外部设备)与系统之间的交互过程;对于每个事件,脚本都应该指明触发该事件的动作对象(如:系统、用户或其它外部事物)、接受事件的目标对象,以及该事件的参数。
[目的] 编写脚本的目的是保证不遗漏重要的交互步骤。
[实质] 编写脚本的实质是分析用户对与系统交互过程的要求。
编写脚本时,首先编写正常情况的脚本,其次考虑特殊情况,最后考虑出错情况;如有可能还应该允许用户“异常操作”。此外还应该提供“在线帮助”、状态查询等在基本交互行为之上的“通用”交互行为。
设想用户界面
用户界面是用户对系统的“第一感”,它往往对用户是否喜欢一个系统起很重要的作用,因此在分析阶段也不能完全忽略用户界面。设计用户界面时重要的是用户和系统进行信息交换的方式。
ATM的界面格式
画事件跟踪图
脚本为建立动态模型(状态图)提供了很好的基础,但用自然语言书写的脚本还不够简明,并且会有二义性,因此在画状态图前,我们往往先画出事件跟踪图[简化的UML顺序图(Sequence Diagram,时序图)],为此需进一步明确事件(事件就是引起系统做动作或(和)转换状态的控制信息)及事件与对象的关系。
1. 确定事件
事件包括系统与用户(或外部设备)交互的所有信号、输入、输出、中断、动作等,要注意的是(1)对象的动作也是事件 ;(2)对控制流产生相同效果的那些事件应作为一类事件。
经过分析要确定每类事件的发送对象和接受对象。
2. 画出事件跟踪图
从脚本中提取出各类事件,并确定每类事件的发送对象和接受对象,就可以用事件跟踪图把事件序列以及事件与对象的关系表示出来,事件跟踪图是扩充的脚本,更是简化了的UML顺序图。
(时序图)
画状态图
状态图描述了事件与对象状态(对象生命周期中的阶段)的关系。
UML用状态图来表示对象的动态行为,它确定了由事件序列引出的状态序列。系统分析员应仅考虑系统内具有重要交互行为的哪些类,即每个主动发送事件的对象类的动态行为用一张状态图来表示,各个类的状态图通过共享事件合并起来,从而构成系统的动态模型。
从一张事件跟踪图出发画状态图时,要关注影响一类对象的事件,即考虑指向某条竖线(对象)的箭头线,把这些事件作为状态图中的有向边(箭头线),边上