《面向对象分析与设计》一1.6关于统一建模语言UML

简介: 本节书摘来自华章出版社《面向对象分析与设计》一书中的第1章,第1.6节,作者 麻志毅,更多章节内容可以访问云栖社区“华章计算机”公众号查看

1.6关于统一建模语言UML

UML最初是在多种面向对象分析与设计方法相互融合的基础上形成的,后来发展成为也可以用于业务建模以及其他非软件系统建模的语言。它于1997年11月被对象管理组织(Object Management Group)采纳为建模语言规范,随后被产业界和学术界广泛接受。
UML定义了建立系统模型所需要的概念并给出了表示法,但它并不涉及如何进行系统建模。因此它只是一种建模语言,而不是一种建模方法。UML是独立于开发过程的,也就是说它可以适用于不同的开发过程。
UML 2.4规范由四个部分组成:基础结构(infrastructure)、上层结构(superstructure)、对象约束语言(object constraint language)和图交换(diagram interchange)。简言之,基础结构给出了用于定义建模语言的核心构造物,上层结构定义了建模语言——UML,对象约束语言用于以精确的方式描述基础结构、上层结构以及用户建立的模型中的查询表达式和约束,图交换规定了如何定义用于数据交换的XML文件的格式。
可见UML 2.4不仅仅适用于软件系统建模,其中还包含了大量的用于定义自身的元素。关心如何构造建模语言以及开发建模工具的读者要掌握上述的四个部分;关心对应用系统建模的读者应该掌握上层结构部分,至少要掌握主要建模元素的定义,如果需要在模型中精确地定义查询表达式和约束,还要掌握对象约束语言。
尽管UML已经得到了广泛应用,但它还存在不少缺点。对于以前的UML 1.x,来自学术界的主要批评是其语法和语义不够严格;来自产业界的主要批评是它的内容过于庞大,概念过于复杂。至今UML已经开始了版本2x的发展,目前的UML 2.4就比以前的版本有了显著的改进和提高,然而仍有不少问题没有得到令人满意的解决。特别是,它的复杂性不但没有如人们的期望那样得到控制,反而比以往更为庞大和复杂。对于UML存在的问题以及解决方法的深入讨论,请参阅文献[17,18]。
针对庞大且复杂的UML,本书的原则是采用其中的在面向对象建模中常用的概念和表示法,并梳理出清楚的语义。
下面就UML 2.4对面向对象建模的支持而言,对UML 24支持的14种模型图予以简介,见图1.9。

image

UML 24支持的模型图在逻辑上分为两大类:结构图(structure diagram)和行为图(behavior diagram)。
结构图用于对系统的静态方面建模。结构图分为:
 类图(class diagram)。它是描述系统中各个对象的类型以及其间存在的各种关系的图。
 组合结构图(composite structure diagram)。它是描述类和构件的内部结构的图,其中包括与系统其他部分的交互点。
 构件图(component diagram)。它是描述构件的组织结构和相互关系的图,用于表达如何在实现时把系统元素组织成构件,从而支持以构件为单位进行软件制品的实现和发布。
 部署图(deployment diagram)。它是描述节点、节点间的关系以及构件和节点间的部署关系的图。
 对象图(object diagram)。它是描述在某一时刻一组对象以及它们之间的关系的图。
 包图(package diagram)。它是描绘模型元素分组(包)以及分组之间依赖的图。
 外扩图(profile diagram)。它是在UML 24 的基础上定义新建模元素的图,用以增加新的建模能力。
行为图用于对系统的动态方面建模。行为图分为:
 活动图(activity diagram)。它是描述活动、活动的执行顺序以及活动的输入与输出的图。
 用况图(use case diagram)。它是描述一组用况和参与者以及它们之间的关系的图。
 状态机图(state machine diagram)。它是描述一个对象或其他实体在其生命周期内所经历的各种状态以及状态变迁的图。
 交互图(interaction diagram)。它是顺序图、交互概览图、通信图和定时图的统称。
 顺序图(sequence diagram)。它是描述一组角色和由扮演这些角色的实例发送和接收的消息的图。
 交互概览图(interaction overview diagram)。它是以一种活动图的变种来描述交互的图,它关注于对控制流的概览,其中控制流的每个节点都可以是一个交互图。
 通信图(communication diagram)。它是描述一组角色、这些角色间的连接件以及由扮演这些角色的实例所收发的消息的图。
 定时图(timing diagram)。它是描述在线性时间上对象的状态或条件变化的图。

习题
1与传统软件开发方法相比,面向对象方法有什么优点?
2查阅资料,进一步讨论UML与面向对象方法的关系。
3封装的目的是什么?在面向对象方法中封装的目的是如何达到的?
4针对你过去使用传统开发方法所构造的系统的不足,总结一下问题的原因。考虑如果使用面向对象方法,在哪些方面可能会获益。
5面向对象方法的一个主要原则是抽象。思考一下在工作和学习中你经常在什么场合下运用抽象原则。

相关文章
|
2月前
|
机器学习/深度学习 人工智能 测试技术
【软件设计师备考 专题 】软件工程的未来:面向构件和统一建模语言(UML)
【软件设计师备考 专题 】软件工程的未来:面向构件和统一建模语言(UML)
73 0
|
4月前
|
测试技术 uml
UML面向对象建模题库
UML面向对象建模题库
42 0
|
测试技术 数据库 uml
【软件工程与UML】第2章 用例图、用例文档、活动图 -- 系统的功能需求建模
【软件工程与UML】第2章 用例图、用例文档、活动图 -- 系统的功能需求建模
493 0
【软件工程与UML】第2章 用例图、用例文档、活动图 -- 系统的功能需求建模
|
12月前
|
存储 Java 应用服务中间件
|
12月前
|
测试技术 数据库 uml
|
文件存储 uml
【UML建模】(8) UML建模之组件图
组件图是用来描述组件与组件之间关系的一种UML图,组件图在宏观层面上显示了构成系统某一特定方面的实现结构。它是一种结构型图表。
634 0
【UML建模】(8) UML建模之组件图
|
网络协议 uml
【UML建模】(7) UML建模之部署图
部署图是运行时进行处理的节点以及在节点上存在制品的配置的图。它阐述了在实际应用中软件和它的运行环境的关系,并且描述了软件部署在硬件上的具体方法。
426 0
【UML建模】(7) UML建模之部署图
|
测试技术 uml
【UML建模】(6) UML建模之状态机图
状态机图展示了一个对象如何根据当前状态对不同事件做出反应的动态行为。状态机图是一种行为图。
760 0
【UML建模】(6) UML建模之状态机图
|
测试技术 uml
【UML建模】(5) UML建模之活动图
活动图可以看成是面向对象版的流程图,它是一种行为型模型图,主要用于表达系统某个功能的流程。
287 0
【UML建模】(5) UML建模之活动图
|
数据建模 Java 项目管理
【UML建模】(X) UML建模之Enterprise Architect 15的使用
Enterprise Architect (后面简称EA)是一款优秀的UML建模软件。它兼容UML2.0中的所有图表。EA不同于普通的UML画图工具(如VISIO),它将支撑系统开发的全过程。在需求分析阶段,系统分析与设计阶段,系统开发与部署等方面有着强大的支持,同时加上对10种编程语言的正反向工程,项目管理,文档生成,数据建模等方面。
259 0
【UML建模】(X) UML建模之Enterprise Architect 15的使用