什么是UML
UML不是一个程序设计语言
UML不是一个形式化语言
UML统一建模语言是用来设计软件蓝图的可视化建模语言(Booch方法、OMT方法、OOSE方法)
UML描述了一个系统的静态结构和动态行为
UML从不同的角度为系统建模,并形成系统的不同视图(类图、时序图、协作图、状态图)
软件过程
软件危机的主要特征
- 软甲开发周期大大超过规定日期
- 软件开发成本严重超标
- 软件质量难于保证
统一软件过程RUP
是一个开发和维护的过程产品
特点:用例驱动、以架构为中心、采用迭代和增量
四个阶段循环:初始、细化、构造、移交
每个阶段又包括多个迭代过程
UML工具
什么是Rational Rose
是一种工具,它可以在Rose建模中提供建立、视图、修改和操作组件的能力
支持Unified、Booch、OMT标记法
UML的构成
UML的基本构造块
事物:构成模型图的一些基本图示符号,表示一些面向对象的基本概念
关系:基本图示符号之间的关系
图:特定的视角对系统所作的抽象描述
事务时对模型中最具有代表性的成分的抽象;关系把事物结合在一起;图聚集了相关的事物
结构事物
类(class):具有相同属性、方法、关系和语义的一组对象的集合,一个类可以实现一个或多个接口
接口(interface):指类或组件所提供的、可以完成特定功能的一组操作的集合
协作(collaboration):定义了交互的操作,表示一些角色和其他元素一起工作,提供一些合作的动作。一个给定的类可以参与几个协作
用例(use case):定义了系统执行的一组操作,对特定的用户产生可以观察的结果
活动类(active class):对象至少拥有一个进程或线程,这样才能启动控制活动
组件(component):构件是系统中物理的、可替代的部件,实现了一个或多个接口的系统元素
节点(node):节点是在运行时存在的物理元素,表示了一种可计算的资源,它通常至少有一些记忆能力处理能力,一个构件集可以驻留在一个节点内,也可以从一个节点迁移到另一个节点
行为事物
是UML模型的动态部分,是模型中的动词,描述了跨越时间和空间的行为
交互(interaction):是在特定上下文中的一组对象,为共同完成一定的任务而进行的一系列消息交换所组成的动作(一个群体行为或单个操作行为),包括信息、动作序列、对象之间的连接
状态机(state machine):是对象的一个或多个状态的集合
组织事物(分组事物)
是UML模型的组织部分,最主要的分组事物是包(包是把元素组织成组的机制)
辅助事物(注释事物)
是UML模型的解释部分
UML中的关系
关联关系:描述了两个或多个类 之间的结构性关系
泛化关系:定义了一般元素和特殊元素之间的分类关系,分为普通泛化和受限泛化
普通泛化:就是没有给泛化添加约束
受限泛化:可以给泛化关系附加约束条件(多重、不相交、完全和不完全)
依赖关系:描述了类和用例之间的语义关系:其中一个模型元素是独立的,另一个模型元素不是独立的
实现关系:是类元之间的语义关系,在该关系中一个类元描述了另一个类元保证实现的契约
两种地方遇到实现关系:一种是在接口和实现它们的类或构件之间;另一种是在用例和实现它们的协作之间
UML中的图
用例图:用来描述用户的需求,从用户的角度描述系统的功能,并指出各功能的执行者
静态图:类图:用于定义系统中的类,描述类的内部结构和类之间的关系
对象图:是类图的一个实例,描述了系统在具体时间点上所包含的对象以及各个对象之间的关系
行为图:用来描述系统的动态模型和对象之间的交互关系
状态图:用来描述类的对象所有可能的状态以及事件发生时状态的转移条件
活动图:用来描述满足用例要求所要进行的活动以及活动间的约束关系
交互图:用来描述对象之间的交互关系(序列图和协作图可以相互转化)
序列图:描述对象之间的交互顺序,体现对象间消息传递的时间顺序
协作图:对象之间的合作关系,说明哪些对象之间有消息的传递
实现图:构件图:描述代码构件的物理结构以及各构件之间的依赖关系。一个构件可以使一个资源文件、一个二进制文件或者一个可执行文件
实施图:描述实际的物理设备以及他们之间的连接关系