4.7 面向对象的系统分析方法概述
随着软件工程的发展,逐渐形成了面向对象的软件技术,也因此产生了面向对象的系统分析方法。面向对象的系统分析方法就是在设计系统之前,定义清楚系统中存在的类(对象),以及对象之间的关系、交互方式等。面向对象的分析包括了用例分析、静态图、动态图等。通常采用统一建模语言UML来描述。
4.8 用例分析
用例(Use Case)是指用户角度看到的系统功能,也就是从用户视角整理的系统需求。它的本质上也是进行需求获取和分析的方法。用例的特点如下:
n 用例是对系统过程、工作流、场景的抽象描述,用来保证系统的行为是用户所需要的。
n 用例图包括了参与者(Actor)和用例,参与者是与系统交互的实体,可以是人或程序、机器等非人类。
典型的用例图如下:
用例图是逐步细化的,先画出主要的用例(常用的功能),然后再对其进行细化。
用例之间存在着扩展(Extend)和包含(Include)的关系。扩展是指用例之间一个用例是对另一个的扩充;包含是指一个用例包括了另一个。
对于用例的详细描述可以采用文字或者UML时序图的方式,
4.9 类建模
当系统的主要用例已获得,则开始标识候选类,并给出类的属性、协作者(其它类),也就是常用的CRC(Class-responsibility-collaboratro)建模。
类名 |
|
类的类型、特征等 |
|
责任: |
协作 |
责任1 |
协作A |
责任2 |
协作B |
… |
… |
CRC建模的目的是设计出系统中的类。定义出类之后,需要整理出类之间的结构,类之间有层次和组合,通常的层次关系是一般化/特殊化,结构关系是聚合关系(组合)等。
n 层次关系就是父类/子类的关系,比如:
汽车 |
小汽车 |
卡车 |
n 聚合关系就是整体与局部的关系,比如:
汽车 |
轮胎 |
车窗 |
除了层次和结构关系外,类之间还存在着其它关联关系,根据具体的情况进行分析。 关联关系的基数有0对1,1对1,0对多,1对多。
4.10 行为建模
(1)状态图
状态图类似于结构化分析中的系统状态图,区别是此处的状态图针对对象而言,描述着对象从一个状态向另一个状态的变迁。
(2)时序图
时序图(也称事件轨迹)表示了一个场景下各对象之间的协作过程。对于描述用例的场景非常有用,也有助于识别对象的责任,便于分析出类的行为。
4.11 面向对象分析小结
小结一下面向对象的分析过程:
1、 认真分析需求,提取出用例。
2、 需求和用例中的名词就是潜在的对象、类和属性。
3、 需求和用例中的动词就是潜在的对象责任/行为。
4、 开发用例场景的交互模型(行为建模)
5、 基于交互模型,识别类的协作和关系,以确定类的行为。
6、 重复以上行为,直到设计完成。