没有合适的资源?快使用搜索试试~ 我知道了~
首页UML中文教程:从基础到实践详解
UML中文教程:从基础到实践详解
需积分: 9 0 下载量 25 浏览量
更新于2024-07-20
收藏 12.51MB PDF 举报
UML中文教程是一份全面介绍统一建模语言(Unified Modeling Language, UML)的教程,旨在帮助读者理解并掌握UML在软件开发中的应用。教程首先从背景知识入手,明确了UML的基本原理,强调其作为通用可视化建模语言的主要目标,即通过清晰的图形表示和文档化,支持软件系统的设计、理解、配置和维护。 第1章简要概述了UML,介绍了其基本概念。UML不仅是一个框架,它涵盖了静态结构(如类、对象、接口和包等)的描述,这些元素定义了系统的组成和它们之间的关系,展示了系统的静态视图。动态行为方面,UML关注对象的生命周期、交互和消息传递,通过活动图、序列图和协作图展现系统的动态流程。 UML并非一种编程语言,而是通过代码生成器和反向工程工具与编程语言相连,能够将模型转化为实际代码或反之。它不侧重于数学验证,而是为大多数面向对象开发过程提供支持,适应迭代开发的灵活性。尽管如此,对于特定领域如GUI设计、VLSI设计或规则驱动的人工智能,可能需要使用更专业且针对性的语言和工具。 UML的结构组件,如包,有助于组织和管理大型项目的复杂性,确保团队成员能够理解和控制模块间的依赖关系。同时,UML也关注系统的实现和运行环境,通过组件模型来展示系统内部的组织结构。 然而,UML作为一种离散建模语言,对于涉及连续性或物理特性的问题,如工程或物理学领域的系统,可能不够精确。因此,它最适合用来建模基于计算机软件、固件或数字逻辑的系统,提供了一种通用且综合的方法来表达和理解软件系统的设计。UML教程深入浅出地介绍了这个强大的工具,为软件开发者提供了丰富的建模手段和实践指导。
资源详情
资源推荐
下载
第3章
UML 初览
本章使用一个简单的例子对U M L中所使用的概念和视图进行初览。本章的目的是要将高层
U M L 概念组织成一系列较小的视图和图表来可视化说明这些概念,说明如何用各种不同的概念
来描述一个系统以及如何将各种视图组织在一起。概括性的说明不可能面面俱到,其中省略了
许多概念。要想得到更详细的说明,可参见下一章对U M L 各视图的说明和本书大全部分的有关
细节。
本章使用的例子是计算机管理的戏院售票系统。这是一个精心设计的例子,目的是用少
量篇幅来强调说明 U M L 的各个组件。这是一个经过有意简化的例子,忽略了有关细节。除非
进行大量的反复说明,否则一个实际系统的完整模型不可能用这么少的篇幅来对 U M L中使用
的每种组件进行介绍。
3.1 UML视图
U M L 中的各种组件和概念之间没有明显的划分界限,但为方便起见,我们用视图来划分
这些概念和组件。视图只是表达系统某一方面特征的 U M L建模组件的子集。视图的划分带有
一定的随意性,但我们希望这种看法仅仅是直觉上的。在每一类视图中使用一种或两种特定
的图来可视化地表示视图中的各种概念。
在最上一层,视图被划分成三个视图域:结构分类、动态行为和模型管理。
结构分类描述了系统中的结构成员及其相互关系。类元包括类、用例、构件和节点。类
元为研究系统动态行为奠定了基础。类元视图包括静态视图、用例视图和实现视图。
动态行为描述了系统随时间变化的行为。行为用从静态视图中抽取的系统的瞬间值的变
化来描述。动态行为视图包括状态机视图、活动视图和交互视图。
模型管理说明了模型的分层组织结构。包是模型的基本组织单元。特殊的包还包括模型
和子系统。模型管理视图跨越了其他视图并根据系统开发和配置组织这些视图。
U M L 还包括多种具有扩展能力的组件,这些扩展能力有限但很有用。这些组件包括约束、
构造型和标记值,它们适用于所有的视图元素。
表3 - 1列出了U M L的视图和视图所包括的图以及与每种图有关的主要概念。不能把这张表看
成是一套死板的规则,应将其视为对U M L常规使用方法的指导,因为U M L允许使用混合视图。
表3-1 UML视图和图
主 要 的 域 视 图 图 主要概念
结构 静态视图 类图 类、关联、泛化、依赖关系、实现、接口
用例视图 用例图 用例、参与者、关联、扩展、包括、用例泛化
实现视图 构件图 构件、接口、依赖关系、实现
部署视图 部署图 节点、构件、依赖关系、位置
动态 状态机视图 状态机图 状态、事件、转换、动作
活动视图 活动图 状态、活动、完成转换、分叉、结合
交互视图 顺序图 交互、对象、消息、激活
协作图 协作、交互、协作角色、消息
模型管理 模型管理视图 类图 包、子系统、模型
可扩展性 所有 所有 约束、构造型、标记值
3.2 静态视图
静态视图对应用领域中的概念以及与系统实现有关的内部概念建模。这种视图之所以被
称之为是静态的是因为它不描述与时间有关的系统行为,此种行为在其他视图中进行描述。
静态视图主要是由类及类间相互关系构成,这些相互关系包括:关联、泛化和各种依赖关系,
如使用和实现关系。类是应用领域或应用解决方案中概念的描述。类图是以类为中心来组织
的,类图中的其他元素或属于某个类或与类相关联。静态视图用类图来实现,正因为它以类
为中心,所以称其为类图。
在类图中类用矩形框来表示,它的属性和操作分别列在分格中。如不需要表达详细信息
时,分格可以省略。一个类可能出现在好几个图中。同一个类的属性和操作可只在一种图中
列出,在其他图中可省略。
关系用类框之间的连线来表示,不同的关系用连线上和连线端头处的修饰符来区别。
图3 - 1是售票系统的类图,它只是售票系统领域模型的一部分。图中表示了几个重要的类,
如C u s t o m e r、R e s e r v a t i o n、Ti c k e t 和P e r f o r m a n c e。一个顾客可多次订票,但每一次订票只
能由一个顾客来执行。有两种订票方式:个人票或套票,前者只是一张票,后者包括多张票。
每一张票不是个人票就是套票中的一张,但是不能又是个人票又是套票中的一张。每场演出
都有多张票可供预定,每张票对应一个唯一的座位号。每次演出用剧目名、日期和时间来标
识。
类可用不同的精确度和抽象级别来描述。在设计的初期阶段,所建立的模型只是问题的
逻辑模型,到了设计的后期,模型中会增添许多设计结论和有关系统实现的细节。 U M L 中的
大部分视图都可不断进行类似的细化。
20计计第二部分 基 本 概 念
下载
第3章 UML 初览计计21
下载
图3-1 类图
3.3 用例视图
用例视图是被称为参与者的外部用户所能观察到的系统功能的模型图。用例是系统中的
一个功能单元,可以被描述为参与者与系统之间的一次交互作用。用例模型的用途是列出系
统中的用例和参与者,并显示哪个参与者参与了哪个用例的执行。
图3 - 2是售票系统的用例图。参与者包括售票员、监督员和公用电话亭。公用电话亭是另
一个系统,它接受顾客的订票请求。在售票处的应用模型中,顾客不是参与者,因为顾客不
直接与售票处打交道。用例包括通过公用电话亭或售票员购票,购预约票(只能通过售票员)
以及售票监督(应监督员的要求)。购票和购预约票包括一个共同的部分
—
即通过信用卡来
付钱。(对售票系统的完整描述还要包括其他一些用例,例如换票和验票等。)
用例也可以有不同的层次。用例可以用其他更简单的用例进行说明。在交互视图中,用
类
属性
类的操作
角色名
关联
泛化
约束
多重性
限定符
操作
22计计第二部分 基 本 概 念
下载
例做为交互图中的一次协作来实现。
图3-2 用例图
3.4 交互视图
交互视图描述了执行系统功能的各个角色之间相互传递消息的顺序关系。类元是对在系
统内交互关系中起特定作用的一个对象的描述,这使它区别于同类的其他对象。交互视图显
示了跨越多个对象的系统控制流程。交互视图可用两种图来表示:顺序图和协作图,它们各
有不同的侧重点。
3.4.1 顺序图
顺序图表示了对象之间传送消息的时间顺序。每一个类元角色用一条生命线来表示
—
即用垂直线代表整个交互过程中对象的生命期。生命线之间的箭头连线代表消息。顺序图可
以用来进行一个场景说明
—
即一个事务的历史过程。
顺序图的一个用途是用来表示用例中的行为顺序。当执行一个用例行为时,顺序图中的
每条消息对应了一个类操作或状态机中引起转换的触发事件。
图3 - 3 是描述购票这个用例的顺序图。顾客在公用电话亭与售票处通话触发了这个用例的
系统
参与者
售票员
信用卡服务商
监督员
用例
关系
公用电话亭
第3章 UML 初览计计23
下载
执行。顺序图中付款这个用例包括售票处与公用电话亭和信用卡服务处的两个通信过程。这
个顺序图用于系统开发初期,未包括完整的与用户之间的接口信息。例如,座位是怎样排列
的;对各类座位的详细说明都还没有确定。尽管如此,交互过程中最基本的通信已经在这个
用例的顺序图中表达出来了。
图3-3 顺序图
3.4.2 协作图
协作图对在一次交互中有意义的对象和对象间的链建模。对象和关系只有在交互的语境
中才有意义。类元角色描述了一个对象,关联角色描述了协作关系中的一个链。协作图用几
何排列来表示交互作用中的各角色(如图 3 - 4 )。附在类元角色上的箭头代表消息。消息的发
生顺序用消息箭头处的编号来说明。
协作图的一个用途是表示一个类操作的实现。协作图可以说明类操作中用到的参数和局
部变量以及操作中的永久链。当实现一个行为时,消息编号对应了程序中嵌套调用结构和信
号传递过程。
图3 - 4 是开发过程后期订票交互的协作图。这个图表示了订票涉及的各个对象间的交互关
主动对象
生命线(活动的)
消息
剩余432页未读,继续阅读
在希望的田野上cgy
- 粉丝: 0
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C语言快速排序算法的实现与应用
- KityFormula 编辑器压缩包功能解析
- 离线搭建Kubernetes 1.17.0集群教程与资源包分享
- Java毕业设计教学平台完整教程与源码
- 综合数据集汇总:浏览记录与市场研究分析
- STM32智能家居控制系统:创新设计与无线通讯
- 深入浅出C++20标准:四大新特性解析
- Real-ESRGAN: 开源项目提升图像超分辨率技术
- 植物大战僵尸杂交版v2.0.88:新元素新挑战
- 掌握数据分析核心模型,预测未来不是梦
- Android平台蓝牙HC-06/08模块数据交互技巧
- Python源码分享:计算100至200之间的所有素数
- 免费视频修复利器:Digital Video Repair
- Chrome浏览器新版本Adblock Plus插件发布
- GifSplitter:Linux下GIF转BMP的核心工具
- Vue.js开发教程:全面学习资源指南
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功