构件图
用来表示系统中构件与构件之间,类或接口与构件之间的关系图
构件图之间的关系表现为依赖关系,定义的类或接口与类之间的关系表现为依赖关系或实现关系
软件构件
- 原构件:仅在编译时有意义
- 二进制构件:典型情况下,二进制构件是对象代码,它是源构件的编译结果
- 可执行构件:可执行构件是一个可执行的程序文件,它是链接所有二进制构件所得到的结果
构件图只把构件显示成类型,为显示构件的实例必须使用部署图
部署图
描述了系统运行时进行处理的节点以及在节点上活动的构件的配置,强调了物理设备以及之间的连接关系
- 可以很好的描述系统是如何部署的;
- 显示硬件中的软件以及各种连接协议
- 平衡系统运行时的计算资源分布;
- 通过连接描述组织的硬件网络结构;
- 具有多种硬件和软件相关的系统运行模型。
描述符号
节点:代表一个物理设备及在其上运行的软件系统,用一个立方体表示
节点之间的连线:表示系统之间进行交互的通信线路,在UML中成为连接
通信类型:用构造型表示,写在表示连接的线旁,以指定所用的通信协议或网络类型
构件和接口:
- 在部署图中,构件代表可执行的物理代码模块,逻辑上与类图中的包或类对应
- 类、构件等元素对外提供的可见操作和属性成为接口,接口用一端是小圆圈的直线来表示
复合构件的内部构件图
部署图例
UML模型
用例模型
- 用例模型从用户的角度描述系统需求,是所有开发活动的指南
- 用例模型定义了系统的用例、行为者及行为者与用例之间的交互行为
- 将用例按优先级分类:优先级高的、必须首先实现的功能最先开发
- 区分用例在体系结构方面的风险大小
- 对用例所需的工作量进行估算,合理安排工作计划
静态模型
- 静态模型描述系统的元素及元素间的关系
- 它定义了类、对象,以及它们之间的关系和组件模型
- 静态模型主要描述类、接口、用例、协作、组件、结点等体现系统结构的事物
- 静态模型使用的图,包括用例图、类图、包图、对象图、构件图、部署图
动态模型
- 动态模型描述系统随时间的推移发生的行为
- 动态模型可以使用的UML图有状态图、顺序图、活动图、协作图
- 动态模型主要描述两种动作:消息交互和状态机
实现模型
- 实现模型包括构件图和部署图
- 构件图显示代码本身的逻辑结构
- 部署图显示系统运行时的结构
UML视图
- Use-Case View即用例视图:描述项目相关人的需求,该视图把系统的基本需求捕获为用例并提供构造其他视图的基础
- Logical View即逻辑视图:描述系统功能和词汇
- Process View即过程视图:描述系统性能、可伸缩性和吞吐量
- Implementation View即实现视图:描述系统组装和配置管理,对组成基于系统的物理代码的文件和组件进行建模
- Deployment View即部署视图:描述系统的拓扑结构、分布、移交和安装
UML使用准则
- 不要试图使用所有的图形和符号
- 不要为每个事物都画一个模型
- 应该分层次地画模型图
- 模型应该具有协调性
- 模型和模型元素的大小应该适中
扩展机制
- 标签值:附属于UML元素的性质,通过它可以增加关于模型元素的信息
- 约束:UML中限制元素语义的机制
- 构造型:最复杂的扩展机制,使用构造型能够把UML中已经定义元素的语义专有化
应用领域
- 需求分析:可以用用例来捕获用户的需求
- 设计:把分析阶段的结果扩展成技术解决方案,加入新的类来定义软件系统的技术方案细节
- 构造:这个阶段的任务是把来自设计阶段的类转换成某种面向对象程序设计语言的代码
- 测试:UML模型可作为测试阶段的依据,不同测试小组使用不同的UML图作为他们工作的依据