系统分析和需求分析的区别在哪呢?就是一个是从用户的角度,从黑盒的视角来描述这系统,另外呢就是从开发人员的视角,从业务,问题域,系统责任这个角度,白盒视角,来描述系统中的各个组成部分
对象:是系统中用来描述客观事物的一个实体,是具有明确语义边界的实体;作为构成系统的一个基本单位,一个对象由一组属性和对这组属性进行操作的一组服务构成。
类:是具有相同属性、服务、关系和语义的一组对象的集合,可以从两方面描述,外延和内涵。
1.2 识别对象与类的方法
研究用户需求,明确系统责任
研究问题域
考虑系统边界
考虑系统责任
名词技术
CRC卡片
Booch对识别类的方法总结
Peter Coad的四色类图
参与者启发作为系统中的类的条件
l 管理信息
l 模拟行为
l 建立通讯
只要有其一,就可以定义为参与者
CRC卡片(类/责任/协作)
方法:
在一张CRC卡片上,记录类名并列出责任(提供那些服务)和
协作者;
识别应该加入到已存在的CRC卡片集合中的尚未发现的类.寻
找已存在的类中的责任和还没有指派给某个责任的协作者.
一张卡片就映射到一个类
优缺点
容易使用
模拟通讯
适合于考虑和设计对象和类,而不是识别它们
开发者必须有一定的经验、创造力和直觉
名词技术
从名词到对象或类通常有一对一的映射。
优缺点 优点
叙述性语言可以被很好的理解
名词到对象或类通常有一对一的关系
简单\直接
缺点
盲目性
寻找的对象或类不全或错误
属性的特征:
1:属性必须捕获与其对象所在的语义域相一致的特征。(程序员的年龄问题)。
2:任何时间一个实例为其每一个属性都精确地给出定义。
3:不包含内部结构。(人的姓和名)
4:属性必须是整个实体的特征。
5:对象的属性必须与该对象相关。
6:对象的属性值不能是与其有关的对象的值与其关系的值。(人的薪水和结婚日期)
– 操作:是类的行为特征,用于描述为了引发相关行为的名称、类型、参数与约束。(signature)
• 有名字和参数表; 有可见性和返回类型。
• 可见性的取值为+(公有的)、#(受保护的)、-(私有的)或~(包内的)。
• 可见性、参数表和返回类型可在类描述模板中描述。
• 抽象操作:把在一个类中没有实现的操作(即没有提供方法)。
• 服务:一个类为其他类所做的工作。一个对象的服务是当其他对象借助消息传递
机制请求它时,它愿意执行的所公布的或公开的工作。(可见性为公有的操作)
• 方法:是操作的实现。当一个对象请求另一个对象的服务时对象完成的详细的动
作集合(算法、过程)。
– 对象行为分类(主要识别与问题域或者抽象系统责任有关的行为,不考虑与实现有关的服务)
• 系统行为
例:创建、删除、复制、转存
• 对象自身的行为——算法简单的服务
例:读、写属性值
• 对象自身的行为——算法复杂的服务
计算或监控
服务的命名和定位
命名:动词或动宾结构; 外向性
定位:
与实际事物一致
例:售货员——售货,商品——售出
在泛化中的位置
——适合类的全部对象实例
.定义关系
1 泛化关系(后代将具有祖先的所有的关联。具有反对称性和传递性)
2 关联关系
3 聚合关系
4 依赖关系
5 接口与实现