视图
建模方法由建模语言和建模过程2部分组成。
建模语言是表述设计方法的表示法,加墨过程是对设计中所应采取的步骤的描述。
实际建模过程中,UML用于用例驱动的、以体系结构为中心的,迭代的和渐增式的开发过程。
模型是对现实的简化
建模是为了能够更好地理解正在开发的系统。
通过建模,要达到4个目的:
(1)模型有助于按照实际情况或按照所需要的样式对系统进行可视化。
(2)模型能够规约系统的结构或行为。
(3)模型给出了指导构造系统的模板。
(4)模型对做出的决策进行文档化。
因为不能完整地理解一个复杂的系统,所以要对它建模。
统一建模语言(Unified Modeling Language),绘制软件蓝图的标准语言,对软件密集型系统的制品进行可视化、详细、构造和文档化。
UML是一种可用于可视化的语言
清晰地模型有利于交流。
UML是一种可用于详细描述的语言
UML是一种可用于构造的语言
UML主要用于软件密集型系统。
UML构造块:
(1)事物:模型中主要成分的抽象
(2)关系:把事物结合在一起
(3)图:聚集了相关的事物
事物:
(1)结构事物(structural things):模型的静态部分,描述概念元素或物理元素。结构事物总称为类目(classifier)。
- 类(class)是对一组具有相同属性,相同操作,相同关系和相同语义的对象的描述。类实现一个或多个接口。在图形上,把类画成一个矩形,矩形通常包括类的名称、属性和操作。
- 接口(interface)是一组操作的集合,每个操作描述了类或构件的一个服务。接口描述了元素的外部可见行为。一个接口可以描述一个类或构件的全部行为或部分行为。接口定义了一组操作规约,而不是操作的实现。把由类提供的对外接口表示成用线连接到类框的一个小圆圈,把类向其他类请求的接口表示成用线连接到类框的半个小圆圈。
- 协作(collaboration)定义了一个交互,由一组共同工作以提供某种协作行为的角色和其他元素构成的一个群体,这些协作行为大于所有元素的各自行为的总和。协作具有结构、行为和维度。在图形上,把协作画成虚线椭圆。
- 用例图(use case)是对一组动作序列的描述,系统执行这些动作将产生对特定参与者有价值而且可观察的结果。用例用于构造模型中的行为事物。用例是通过协作实现的。
- 主动类(active class):其对象至少拥有一个进程或线程,因此它能够启动控制活动。
- 构件(component):是系统设计的模块化部件,在一个系统中,共享相同接口的构件可以相互替换。
- 制品或者产物(artifact):系统物理的可替代的部件,包括物理信息(比特),系统中的部署制品:源代码文件、可执行程序和脚本。制品通常代表源码信息或运行时信息的物理打包。
- 节点(node):运行时存在的物理元素,表示一个计算机资源,只少有一些记忆能力和处理能力,一个组件可以驻留在一个节点内,也可以从一个节点迁移到另一个节点。
行为事物(behavioral thing)是UML模型的动态部分,是模型中的动词,代表了跨越时间和空间的行为。
- 交互(interaction):在特定语境中共同完成一定认为的一组对象或角色之间交换的消息组成。
- 状态机(state machine):描述了一个对象或一个交互在生命周期内相应时间所经历的状态序列以及对这些事件的响应。
- 活动(activity):描述了计算过程执行的步骤序列。交互注重一系列相互作用的对象,状态机注重一定时间内一个对象的生命周期,活动注重的是步骤之间的流而不关心哪个对象执行哪个步骤。活动的一个步骤称为一个动作。
分组事物(grouping thing)是UML模型中的组织部分,由一些模型分解成的“盒子”,主要的分组事物是包。
- 包(package)用于对设计本身进行组织的通用机制。类是用来组织实现构造物。结构事物、行为事物甚至其他的分组事物都可以放在包内。包纯粹是概念上的。
注释事物(annotational thing)是UML模型的解释部分。用来描述、说明和标注模型的任何元素。
- 注解(note)是依附在一个元素或一组元素之上对其进行约束或解释的简单符号。
UML中的关系:
- 依赖(dependency)是2个模型元素之间的语义关系,其中一个元素发生变化会影响另一个元素的语义。
- 关联(association)是类之间的结构关系,描述了一组链,链式对象之间的连接。聚合是一种特殊类型的关联,描述了整体和部分之间的结构关系。
- 泛化(generalization)是一种特殊/一般关系。
- 实现(realization)是类目之间的语义关系,一个类目指定了由另一个类目保证执行的合约。接口和类之间存在实现关系,用例和实现它们的协助之间。
UML中的图
图(diagram)是一组元素的图形表示,大多数情况把图画成顶点(代表事物)和弧(代表关系)的连通图。
UML包含13种图:
- 类图
- 对象图
- 构件图
- 组合结构图
- 用例图
- 顺序图
- 通信图
- 状态图
- 活动图
- 部署图
- 包图
- 定时图
- 交互该概览图
类图(class diagram)展现了一组类、接口、协作和它们之间的关系。类图给出系统的静态设计视图,包含主动类的类图给出系统的额静态进程视图。构件图是类图的变体。
对象图(object diagram)展现了一组对象以及它们之间的关系。对象图描述了在类图中所建立的事物的实例的静态快照。
构件图(conponent diagram)展现了一个封装的类和它的接口、端口以及由内嵌的构件和连接构件的内部结构,构件图用于表示系统的静态设计实现视图。
软件开发生命周期
UML很大程度上独立于过程,意味着它不依赖于任何特殊的软件开发生命周期。
- 用例驱动(use case drivern):把用例作为一种基本的制品,用于建立所要求的而系统行为、验证和确认系统的体系结构、测试以及在项目组成员间进行交流。
- 以体系结构为中心(archtecture-centric)意味着以系统的体系作为一种基本制品,对被开发的而系统进行概念化、构造、管理和演化。
- 迭代过程(iterative process):涉及到系统体系结构的持续集成,以产生各种发布,每个新的发布都比上一个发布有所改善。迭代和增量的过程是风险驱动的(risk-drivern),每个新的发布都致力于处理和降低对项目成功影响最显著的风险。