面向对象的基本概念
面向对象就是在模拟客观世界中的实体及其相互关系。
面向对象的软件开发方法通过提供对象、对象间消息传递等语言机制。
面向对象 = 对象 + 类 + 继承 + 聚合 + 多态 + 消息
对象、类、继承(泛化)没什么好说的;
聚合是一种组合关系;
多态就是多态,同一个函数名可重载;
消息是对象之间的消息传递机制。
建模是为了统一、可视化、多视点的描述一个软件系统
- 外部需求(功能、性能)
- 物理实现(代码、运行平台)
- 内部逻辑
静态逻辑结构(模块结构、接口等)
动态逻辑行为(运行流程、算法等)
UML的构成
需求视图
用例图
用例图描述从软件系统外部使用者的角度看到的各项系统功能,并清晰地说明软件系统的边界。
构成元素:
- 执行者(Actor):外部实体
- 用例(use case):系统功能
用例之间的关系:
结构视图
类图
类图在UML中处于核心地位,类图与面向对象软件实现结构之间的映射最为直观。
类之间的关系
对象图
包图
行为视图
交互图
交互图:为了完成软件系统的某一功能或任务,系统的一组对象之间进行交互和协作的过程。
根据描述的侧重点分为:
- 顺序图
- 通信图
- 交互概览图
- 时序图
最常用的是顺序图
状态图
状态图描述一个实体在时间激励下的反应式动态行为,它包含实体的可能状态,每个状态下可以响应的事件发生时的状态变迁与动作。
示例:
复合状态:AND和OR
活动图
主要描述一个系统行为的执行过程或步骤。
泳道:把动作按照该动作的对象进行划分,以明确活动中各个参与者的相应职责。
物理视图
构件图
构件图用来描述系统中存在的构件、构件的接口、以及各个构件怎么样通过接口连接起来形成一个完整的系统。
- 构件:是系统中一个具有良好封装、可替换的模块
- 接口:一个构件与其他构件之间通过具有规范定义的接口进行交互
- 依赖关系:一个构件用到另一个构件的信息
接口和连接子:构件提供服务也可以需要服务
装配连接子:
委托连接子:复杂构件
部署图
描述:
- 软件开发过程中生成的物理文件形式的软件或信息
- 运行平台中的物理节点和通信
- 软件文件到相应硬件节点的部署或映射
物理文件形式的软件或信息被称为制品(Artifact) - 例如模型文件、源代码文件、应用程序等
运行平台中的硬件称为节点
节点之间通过通信路径进行信息的传递