有了需求和Use Case之后,接下来就要对需求进行分析.
分析的方法很多种如:E-R模型,概念模型,对象模型. 在这里我们只谈面向对象的分析.
面向对象的分析的过程,就是对象建模的过程.
其产出主要是:类模型图(Class Daigram). 当然还有活动图,时序图等.总之就是要找出系统当中有什么类.类有什么属性和操作.
分析时要从两个方面去看:
1.看对象包含有哪些数据(这是静态方面的分析,反映在类中,它是一个属性或成员变量).如:学生有学号,姓名.班级等属性.
2.对象的动态的操作(这是动态方面的分析,反映在类中,它是一个方法和函数).如学生注册一门课程,学生从学校毕业.
如何找出正确的类是分析中最重要也是最复杂的部分. 它对分析人员要求较高,往往要靠有经验的人带头来做.
这里介绍一种最简单易学的方法:名词或名词短语分析法:
从需求文档中,
1. 找出关键的名词或名词短语,它们中一些通常就是系统中的类(至少也是候选类). 另外一些就是类中的属性
2. 找出关键的动词,它们通常就是类的方法
如:前面提过的,在一个"学生注册系统"中.学生就是系统中的一个类.姓名.班级等都是学生类的属性. 而"学生注册一门课程"这句话中,"注册"这个动词就是学生类的一个方法. 它有一个参数:一门课程.
当类确定下来后,我们还要决定类间关联,决定类是如何交互的.通常采用研究动词短语的方法.
如:学生"选择一个导师",它反映了学生和导师之间的*:1关系.
这里介绍一种,简单易学的方法:关联矩阵法.创建一个n*n的矩阵,n是类的个数.
学生类 | 导师类 | 课程类 | |
学生类 | 被指导 | 注册 | |
导师类 | 指导 | 上课 | |
课程类 | 被注册 | 由导师上 |
注:当关联名称比较怪异时,简单地打个勾就行了.