OOAD系统分析视频观看笔记

来源:互联网 发布:有了域名能干什么 编辑:程序博客网 时间:2024/06/08 06:40

系统分析和需求分析的区别在哪呢?就是一个是从用户的角度,从黑盒的视角来描述这系统,另外呢就是从开发人员的视角,从业务,问题域,系统责任这个角度,白盒视角,来描述系统中的各个组成部分

 

对象:是系统中用来描述客观事物的一个实体,是具有明确语义边界的实体;作为构成系统的一个基本单位,一个对象由一组属性和对这组属性进行操作的一组服务构成。

类:是具有相同属性、服务、关系和语义的一组对象的集合,可以从两方面描述,外延和内涵。

 

1.2 识别对象与类的方法

 研究用户需求,明确系统责任

 研究问题域

 考虑系统边界

 考虑系统责任

 名词技术

 CRC卡片

 Booch对识别类的方法总结

 Peter Coad的四色类图

 

参与者启发作为系统中的类的条件

l 管理信息

l 模拟行为

l 建立通讯

只要有其一,就可以定义为参与者

 

CRC卡片(类/责任/协作)

 方法:

 在一张CRC卡片上,记录类名并列出责任(提供那些服务)和

协作者;

 识别应该加入到已存在的CRC卡片集合中的尚未发现的类.寻

找已存在的类中的责任和还没有指派给某个责任的协作者.

一张卡片就映射到一个类

优缺点 

容易使用

 模拟通讯

 适合于考虑和设计对象和类,而不是识别它们

 开发者必须有一定的经验、创造力和直觉

 

名词技术

 从名词到对象或类通常有一对一的映射。

优缺点  优点

 叙述性语言可以被很好的理解

 名词到对象或类通常有一对一的关系

 简单\直接

 缺点

 盲目性

 寻找的对象或类不全或错误

 

属性的特征:

1:属性必须捕获与其对象所在的语义域相一致的特征。(程序员的年龄问题)。

2:任何时间一个实例为其每一个属性都精确地给出定义。

3:不包含内部结构。(人的姓和名)

4:属性必须是整个实体的特征。

5:对象的属性必须与该对象相关。

6:对象的属性值不能是与其有关的对象的值与其关系的值。(人的薪水和结婚日期)

 

– 操作:是类的行为特征,用于描述为了引发相关行为的名称、类型、参数与约束。(signature)

• 有名字和参数表; 有可见性和返回类型。

• 可见性的取值为+(公有的)、#(受保护的)、-(私有的)或~(包内的)。

• 可见性、参数表和返回类型可在类描述模板中描述。

• 抽象操作:把在一个类中没有实现的操作(即没有提供方法)。

• 服务:一个类为其他类所做的工作。一个对象的服务是当其他对象借助消息传递

机制请求它时,它愿意执行的所公布的或公开的工作。(可见性为公有的操作)

• 方法:是操作的实现。当一个对象请求另一个对象的服务时对象完成的详细的动

作集合(算法、过程)。

 

– 对象行为分类(主要识别与问题域或者抽象系统责任有关的行为,不考虑与实现有关的服务)

• 系统行为

 例:创建、删除、复制、转存

• 对象自身的行为——算法简单的服务

 例:读、写属性值

• 对象自身的行为——算法复杂的服务

 计算或监控

 

服务的命名和定位 

命名:动词或动宾结构; 外向性

 定位:

 与实际事物一致

 例:售货员——售货,商品——售出

 在泛化中的位置

 ——适合类的全部对象实例

 

.定义关系

 1 泛化关系(后代将具有祖先的所有的关联。具有反对称性和传递性)

 2 关联关系

 3 聚合关系

 4 依赖关系

 5 接口与实现

0 0
原创粉丝点击