UML(Unified Modeling Language),统一建模语言。图形化的语言表.它可以帮助我们在OOAD过程中标识元素、构建模块、分析过程并可通过文档说明系统中的重要细节
使用软件:startUml
1.面向对象是一种系统建模技术。
面向对象编程是按照oo的方法学来开发编程的过程。通过系统分析内在对象来描述或建模一个系统。
2.基本概念。
a.对象
是一个客观存在的,唯一的实体。 是面向对象编程过程中分析与解决问题的出发点与基础。
b.类
类是对象的模板。
对象通过类实例化一 个类可以创建多个对象。
OOA 分析阶段
1.建立针对业务问题域的清晰视图
2.列出系统必须要完成的核心
3.针对问题域建立公共词汇表
4.列出针对此问题域的最佳解决方案
OOD 设计阶段
1.如何解决具体的业务问题
2.引入系统工作所需的支持元素
3.定义系统的实现策略。
OOP的主要特征:
抽象(abstract):
忽略掉一个对象或实体的细节而只关注其本质特征的过程
封装(encapsulation):
隐藏数据和实现。
- 对外(外部视图):对象能做的工作
- 对内(内部视图):对象如何完成工作
继承(inheritance):
通过继承可实现代码重用,另外继承也是多态的基础.
多态(polymorphism):
一个名称,多种形式.
关联(association):
对象之间交互时的一种引用方式。
当一个对象通过对另一个对象的引用去使用另一个对象的服务或操作时,两个对象之间便产生了关联。如person使用computer,person与computer之间就存在了关联关系。
聚合(aggregation):
1.两个对象之间存在“has a”这样的关系.
2.如汽车与轮胎,轮胎作为汽车的一个组成部分,它和汽车可以分别生产以后装配起来使用,但汽车可以换新轮胎,轮胎也可以卸下来给其它汽车使用.
组合(composition):
如电视机与显示器。
域模型(可称为设计模型):
- 1.具有状态和行为的域对象
- 2.域对象之间的关系
域对象之间的关系:
关联(Association)
依赖(Dependency)
聚集(Aggregation 即 整体与部分之间的关系)
一般化(Generalization 即继承)
内聚:度量一个类独立完成某项工作的能力。
耦合:度量系统内或系统之间依赖关系的复杂度。
设计原则:高内聚,低耦合。
UML分类:
静态模型(static model):记录一个系统的静态特征
- 用例图(use case diagrams)
- 类图(class diagrams)
- 对象图(object diagrams)
- 组件图(component diagrams)
- 部署图(deployment diagrams)
动态模型(dynamic model):展示系统的行为。
- 时序图(sequence diagrams)
- 协作图(collaboration diagrams)
- 状态图(state chart diagrams)
- 活动图(activity diagrams)
用例图:
展示系统的核心功能及与其交互的用户。
类图:
1.表现类的特征
2.描述了多个类、接口的特征,以及对象之间的协作与交互。
类与接口实现关系:
对象图:展现了多个对象的特征及对象之间的交互。
组件图:软件组件之间的依赖关系。
注:组件2依赖组件1.
部署图:部署软件应用的物理设备信息。
时序图:
捉一段时间范围内多个对象之间的交互信息。
注:guest调用对象admin的check()方法,check()方法中调用了scaner对象的verify对象,然后将对象返回值到guest对象。
协作图:
表现一定范围内对象之间协作的信息.
强调参与信息交流的对象之间的组织结构.
状态转换图:
强调一个对象在不同事件触发时,其内部状态的转变过程
活动图: