软件工程—第7章 统一建模语_lyh
1.简述统一建模语言

简述统一建模语言
统一建模语言(UML):是一种用于对软件密集系统进行可视化建模的标准语言。
它始于1997年,被采纳为OMG标准,是一种非专利的第三代建模和规约语言。
UML独立于任何具体程序设计语言,是面向对象设计的建模工具。
UML为面向对象开发系统的产品进行说明、可视化和编制文档,展现了一系列最佳工程实践,这些实践在对大规模、复杂系统进行建模方面已经被验证有效。
UML可以贯穿软件开发周期中的每一个阶段,从需求分析到规格,到构造和配置。
UML表示法集中了不同的图形表示方法,剔除了其中容易引起的混淆、冗余或者很少使用的符号,同时添加了一些新的符号。
其中的概念来自于面向对象技术领域中众多专家的思想。
总的来说,UML作为一种模型语言,使开发人员专注于建立产品的模型和结构,而不是选用什么程序语言和算法实现。
当模型建立之后,模型可以被UML 工具转化成指定的程序语言代码。
统一建模语言UML

进程视图
以图形方式说明了系统中进程的详细组织结构, 即建模公式中的“人”、“事”、“物”、
“规则”是如何交互的,它们的关系如何。 即分析设计视图
部署视图
以图形方式说明了处理活动在系统中各个节点 的分布,包括进程和线程的物理分布。
即建模公式中的“人”、“事”、“物”、 “规则”是如何部署在物理节点(主机、网络 环境)上的。
抽象层次
抽象层次越高,具体信息越少,但是概括能力 越强。
抽象层次越高,表达能力越丰富。 有时,抽象甚至比具体还容易让人理解。
适当采用合适的抽象层次。
软件开发中,主体上采用自顶向下的抽象法。 辅以自底向上方法,总结较低抽象层次的实践
经验来改进高抽象层次的概念,提高软件质量。
统一过程的一般抽象层次
实际工作中应该在什么地方应用视图、应用哪 一种视图、总共需要哪些视图?
视图
人们只会关心信息中他感兴趣的那部分视角, 因此在展示信息时应选择恰当的视角。
产品有着很多面,只有将这些方面都描述清楚, 用很多个不同的视图去展示软件的不同方面— 静态的、动态的、结构性的、逻辑性的等—才 能完整的建立模型。
怎么建?
采用不同的方法去认识和描述事物,将导致不 同的建模结果。
过程? 对象?
抽象角度的不同,决定了建模方向的不同。
先弄清楚要从什么角度抽象,再进行后续工作。
模是什么?
决定了抽象角度后,我们试图从该角度进行场 景模拟。
目的是从中得到“人”、“事”、“物”、 “规则”,这就是我们要得到的“模”。
对象分析法
一切都是对象 对象都是独立的 对象都具有原子性 对象都是可抽象的 对象都有层次性
统一建模语言

统一建模语言统一建模语言(UML)是一种定义良好、易于表达、功能强大且普遍适用的建模语言。
它融入了软件工程领域的新思想、新方法和新技术。
它的作用域不限于支持面向对象的分析与设计,还支持从需求分析开始的软件开发的全过程。
1.UML的结构UML的结构包括基本构造块、支配这些构造块如何放在一起的规则(体系架构)和一些运用于整个UML的机制。
(1)构造块。
UML有三种基本的构造块,分别是事物(thing)、关系(relationship)和图(diagram)。
事物是UML中重要的组成部分,关系把事物紧密联系在一起,图是很多有相互相关的事物的组。
(2)公共机制。
公共机制是指达到特定目标的公共UML方法,主要包括规格说明(详细说明)、修饰、公共分类(通用划分)和扩展机制四种。
●规格说明:规格说明是事物语义的文本描述,它是模型真正的核心。
●修饰:UML为每一个事物设置了一个简单的记号,还可以通过修饰来表达更多的信息。
●公共分类:包括类元与对象(类表示概念,而对象表示具体的实体)、接口和实现(接口用来定义契约,而实现就是具体的内容)两组公共分类。
●扩展机制:包括约束(添加新规则来扩展事物的语义)、构造型(用于定义新的事物)、标记值(添加新的特殊信息来扩展事物的规格说明)。
(3)规则。
UML用于描述事物的语义规则分别是为事物、关系和图命名。
给一个名字以特定含义的语境,即范围;怎样使用或看见名字,即可见性;事物如何正确、一致地相互联系,即完整性;运行或模拟动态模型的含义是什么,即执行。
UML对系统架构的定义是系统的组织结构,包括系统分解的组成部分、它们的关联性、交互、机制和指导原则等这些提供系统设计的信息。
而具体来说,就是指5个系统视图,分别是逻辑视图、进程视图、实现视图、部署视图和用例视图。
●逻辑视图:以问题域的语汇组成的类和对象集合。
●进程视图:可执行线程和进程作为活动类的建模,它是逻辑视图的一次执行实例,描绘了所设计的并发与同步结构。
统一建模语言

统一建模语言到了21世纪——准确地说是2003年,UML已经获得了业界的认同。
在我所见过的专业人员的简历中,75%都声称具备UML的知识。
然而,在同绝大多数求职人员面谈之后,可以明显地看出他们并不真正了解UML。
通常地,他们将UML 用作一个术语,或对UML一知半解。
大家对UML缺乏理解的这种状况,促进我撰写这篇关于UML 1.4的快速入门文章。
当阅读完本文时,您还不具备足够的知识可以在简历上声称自己掌握了UML,但是您已具有了进一步钻研该语言的良好起点。
背景知识正如前面曾提到过的,UML的本意是要成为一种标准的统一语言,使得IT专业人员能够进行计算机应用程序的建模。
UML的主要创始人是Jim Rumbaugh、Ivar Jacobson和Grady Booch,他们最初都有自己的建模方法(OMT、OOSE和Booch),彼此之间存在着竞争。
最终,他们联合起来创造了一种开放的标准。
(听起来是不是很熟悉?这个现象类似J2EE、SOAP和Linux的诞生。
)UML成为"标准"建模语言的原因之一在于,它与程序设计语言无关。
(IBM Rational的UML建模工具被广泛应用于J2EE和.NET开发。
)而且,UML符号集只是一种语言而不是一种方法学。
这点很重要,因为语言与方法学不同,它可以在不做任何更改的情况下很容易地适应任何公司的业务运作方式。
既然UML不是一种方法学,它就不需要任何正式的工作产品(即IBM Rational Unified Process术语中所定义的"工件")。
而且它还提供了多种类型的模型描述图(diagram),当在某种给定的方法学中使用这些图时,它使得开发中的应用程序的更易理解。
UML的内涵远不只是这些模型描述图,但是对于入门来说,这些图对这门语言及其用法背后的基本原理提供了很好的介绍。
通过把标准的UML图放进您的工作产品中,精通UML的人员就更加容易加入您的项目并迅速进入角色。
学习计算机程序设计中的统一建模语言

学习计算机程序设计中的统一建模语言计算机程序设计是现代社会中非常重要的一门学科,它涉及到各种各样的技术和方法。
其中,统一建模语言(Unified Modeling Language,简称UML)作为一种通用的建模语言,被广泛应用于软件开发过程中的需求分析、系统设计、系统实现和系统测试等各个阶段。
本文将聚焦于学习计算机程序设计中的统一建模语言,并探讨其在软件开发过程中的重要性和应用。
一、什么是统一建模语言?统一建模语言是一种用来描述系统结构和行为的标准建模语言,它起源于计算机科学和软件工程领域。
它提供了一套图形符号和表达方法,用于展示软件系统的各种关系和结构。
统一建模语言不仅可以帮助开发者更好地理解软件系统的设计和实现细节,还可以为开发团队提供清晰和一致的交流和文档化工具。
通过使用统一建模语言,开发者可以更好地跟进软件开发过程中的变化和需求,从而提高开发效率和软件质量。
二、统一建模语言的图形符号和表达方法统一建模语言通过一系列的图形符号和表达方法来描述软件系统的各种关系和结构。
其中,最常用的图形符号包括类图、用例图、活动图、时序图和状态图。
类图用于展示软件系统的静态结构,包括类、接口、关联、继承等。
用例图则用于展示系统的功能需求和用户交互,描述系统与外部实体的关系和交互。
活动图则用于展示系统的业务流程和操作过程,帮助开发者理解系统的执行逻辑。
时序图则用于展示系统中各个对象之间的交互和消息传递。
状态图则用于展示对象在不同状态下的行为和转换。
三、统一建模语言在软件开发中的应用统一建模语言作为一种通用的建模语言,被广泛应用于软件开发过程中的各个阶段。
首先,在需求分析阶段,开发者可以使用统一建模语言来创建用例图和活动图,明确系统的功能需求和操作流程,从而帮助开发团队更好地理解用户需求。
其次,在系统设计阶段,开发者可以使用统一建模语言来创建类图和时序图,详细描述软件系统的结构和交互过程,从而为系统实现提供清晰的目标和方向。
统一建模语言

统一建模语言1.统一建模语言英文名称:unified modeling language;UML定义:是一种面向对象的建模语言,它是运用统一的、标准化的标记和定义实现对软件系统进行面向对象的描述和建模。
2.标准建模语言UML的主要特点可以归结为三点:(1) 统一性:统一了Booch、OMT和OOSE的概念和方法,带来了广泛的认同,表达形式更加清晰、更加一致。
(2) 完整性:实用范围更加广泛(不仅用于信息系统建模,还可以用于机械系统、企业系统、商业系统等的建模);支持从需求、设计、实现直到系统的测试和维护的系统的全生命周期。
(3)发展实用性:UML在演变过程中还提出了一些新的概念。
在UML标准中新加了模板(Stereotypes)、职责(Responsibilities)、扩展机制(Extensibility mechanisms)、线程(Threads)、过程(Processes)、分布式(Distribution)、并发(Concurrency)、模式(Patterns)、合作(Collaborations)、活动图(Activity diagram)等新概念,并清晰地区分类型(Type)、类(Class)和实例(Instance)、细化(Refinement)、接口(Interfaces)和组件(Components)等概念。
因此可以认为,UML是一种先进实用的标准建模语言,但其中某些概念尚待实践来验证,UML也必然存在一个进化过程3.UML面向对象分析的一般过程1、调研、交流形成系统的问题域描述2、从用户的角度,确定系统的边界、主要功能和活动,建立用例模型3、深入分析用例中用户需求的功能,分析这些功能实现的活动。
使用顺序图、合作图和活动图来辅助进行。
4、分析用户功能的完成基础,建立类和对象模型。
5、对某些具有复杂状态变化关系的类建立状态图,深入分析它们的行为和状态的变化。
6、在上述过程中,要收集并整理系统的性能指标,研究系统的测试策略和测试方法,并对照用例模型检测系统需求结果。
统一建模语言UML概述

构造软件系统的产出。
UML不是可视化的编程语言,但它的模型可 以直接对应到各种各样的编程语言,即:可 以从UML的模型生成Java、C++等语言的 编码,甚至可以生成关系数据库中的表。
相关术语和概念
系统 由一组为了完成一定目标而组织起来的 元素构成的,这些元素是用一组模型分 别从不同的角度描述的。 子系统 系统的一部分,用来将一个复杂的系统 分解为几乎相互独立的部分。
识别下面的图形是哪种UML图,并识 别图中的UML元素:
创建支票
未付
付款
已付
是一个状态 图。未付和 已付是状态, 创建支票、 付款和销毁 支票是状态 之间的事件。
销毁支票
识别下面的图形是哪种UML图,并识 别图中的UML元素:
<<library>> commhandler.dll <<library>> graphics.dll <<library>> dbhandler.dll
UML的组成
UML的词汇表包括3种构造模块:元素、关 系和图。
元素
模型中重要的抽象。包括结构元素、行为元素、 分组元素和注释元素。
关系
说明元素之间的相互联系。包括依赖关系、关联 关系、类属关系和实现关系。
图
由一组元素和关系组成的连通图。包括静态结构 图和动态行为图。
UML的组成—元素
建模的重要性
模型是对现实世界的简化; 建模是为了更好地理解正在开发的系统。
模型帮助按照实际情况或所需要的情况对系 统进行可视化; 模型可以详细说明系统的结构和行为; 模型给出了一个指导系统构造的模版; 模型对作出的决策进行文档化。
统一建模语言UML

活动图
活动图描述为了完成某一个目标需要做的活动 以及这些活动的执行顺序。
活动图中的基本元素:
参考ppt UML-4
掌握如何对用例场景进行建模
状态图
显示一个状态机,用于对模型元素的动态行为 进行建模,即对系统行为中受事件驱动的方面 进行建模。
通常使用状态图来说明单个业务实体对象、或 分析类对象、或设计类对象在它的整个生命周 期内可能的状态,以及导致状态转换的事件和 状态转换引起的操作。
仅描述单个对象在其生命周期内状态的改变, 不用于描述对象间的交互。
状态图中的基本元素: 来自考ppt UML-4状态图示例
示例对电话工作的行为建模。
拨号 idle
dialing
拨号失败
拒接来电
来电
暂无人接听继续响铃
完成通话挂机
电话接通
ringing
摘机
talking
时序图
是交互图的一种,用于描述按时间顺序排列的 对象之间的交互模式。
统一
UML用一种统一的语言来覆盖整个软件过程 (需求、分析、设计……),让不同的开发团 队能顺畅沟通。
可视化
UML通过它的元模型和表示法,把文字等方式 很难表达清楚的,隐晦的潜台词用简单直观的 图形表达,准确直观的描述复杂的含义。
UML提供了相关元素来建立模型:
参与者
模型信息来源提供者,也是第一驱动者。 是整个建模过程的核心。 代表了现实世界中的“人”。
因此,这件事情是由很多不同的情况的集合构 成的,
在UML中称之为用例场景。 一个用例场景就是一个用例的实例。
用例的构成
用例的特征
1. 用例是相对独立的。 2. 用例的执行结果对参与者来说是可观测的和
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
UML是用Grady Booch、Ivar Jacobson、 Jim Rumbaugh三位 面向对象方法的专家,在多家软件公司组成的国际对象管理组织
(OMG)标准下研制的,从1997年的1.0版到现在的1.4版,经历逐
步完善的过程。目前,UML是业界共识的标准。
UML用于软件系统开发的不同阶段 :
①用户需求: 可使用用例图来捕获用户 的需求,用例图从用户的 角度来描述系统的功能, 表示了操作者与系统的一个 交互过程。
用例图举例
签定一份 保险单
销售统计
客户
客户统计
保险销 售人员
使用用例图举例(3)
《参与者》
保险销售人员
客戶
保险 销售人员
A
B
参与者表示法
*
1
Sale date time
1 Paid-by 1
1
Store Address name
1
Houses
1..*
Payment amout
Captured-on 1
POS
UML用于软件系统开发的不同阶段 :
② 系统分析:
可使用类图来描述系统的 静态模型。 为了实现用例,类之间需 要协作,可用动态模型的 状态图、顺序图、协作图 来描述。 分析阶段只考虑问题域的 对象建模。需要通过静态 模型和动态模型来描述系 统结构和系统行为。
State Transition框图 〈状态转换图〉 一个对象(类)的所有状态转换描述 状态是属性的值,可以刻划一个对象属性的值域 一个对象的状态图:
始点
状态1
状态2
状态3
终点
视图 • 用例视图表达从用户角度看到的系统应有的外部功能,有 时也叫用户模型视图;用用例图来描述。 • 逻辑视图主要用类图和对象图来描述系统的静态结构,它 同时也描述对象间为实现给定功能发送消息时出现的动态 协作关系,故称结构模型视图。它用状态图,时序图,协 作图和活动图来描述。 • 并发视图用于展示系统的行为及其并发性。也称模型视图。 它用状态图,时序图,协作图,活动图,构件图和部署图 来描述。 • 构件视图展示系统实现的结构和行为特征,包括实现模块 和他们之间的依赖关系,也称模型视图。构件视图用构件 图来描述。 • 部署视图显示系统地实现环境和构件被部署到物理结构中 的映射。它用部署图来描述。
(2)UML不仅仅是上述方法的简单汇合,而是扩展了 现有方法的应用范围; (3)UML是标准的建模语言,而不是标准的开发过程。
尽管UML的应用必然以系统的开发过程为背景,但由于不同的 组织和不同的应用领域,需要采取不同的开发过程。
UML的定义
(1) UML的语义 描述基于UML的精确元模型定义。 元模型为UML的所有元素在语法和语义上提供了简单、一致、 通用的定义性说明,使开发者能在语义上取得一致,消除了因人而 异的最佳表达方法所造成的影响。此外UML还支持对元模型的扩展 定义。 (2) UML表示法 定义UML符号的表示法,为开发者或开发工具使用这些图形符 号和文本语法为系统建模提供了标准。这些图形符号和文字所表 达的是应用级的模型,在语义上它是UML元模型的实例。
④
③ UML模型
图 静态图(用例图,类图,对象图,构件图,部署图) 用例图描述系统的功能; 类图描述系统的静态结构; 对象图描述系统在某个时刻的静态结构; 构件图描述实现系统的元素的组织; 部署图描述系统环境元素的配置。 动态图(状态图,时序图,协作图和活动图) 状态图描述系统元素的状态条件和响应; 时序图按时间顺序描述系统元素间的交互; 协作图按照时间和空间的顺序描述系统元素间的交互和关系; 活动图描述系统元素的活动。
事件轨迹
UML模型符号
Collaboration框图 〈合作图〉
(Sequence 对象(类)的另一种表示)
以不同方式表示的顺序图,强调每个对象(类)的事件,清 楚地表示出每个类上的作用事件,以及发出事件。 表示图符为:
自作用事件i
对象 B
对象 A
发出方
事件1 事件2 ..... 事件n
接受方
UML模型符号
银行储户
局域网
ATM数据 服务器
UML用于软件系统开发的不同阶段 :
⑤测试: 可使用类图进行单元测试; 可使用构件图、协作图进行集 成测试; 可使用用例图进行确认测试,
构件图(物理模型)举例:
财务系统.exe
教学管理.exe
课程管理.dll
成绩管理.dll
人事管理.dll
课程
开设课程
选课注册
教师
定货
dataReceived isPrepaid number:String price:Money dispatch( ) close( ) 1
顾客
*
1 name address creditRating( ):String
协作顾客
contactName creditRating creditLimit remind( ) billForMonth( )
第七章 统一建模语言 (Unified Modeling Language UML)
UML是一种定义良好,易于表达,功能强大且普遍实 用的建模语言,不是一种方法,它独立于过程。利用 它建模时,可遵循任何类型的建模过程。
UML的主要内容
(1)UML融合了Booch、OMT和OOSE方法中的基本 概念,而且这些基本概念与其他面向对象技术中的基本 概念大多相同;
实例连接示例及表示
教师为学生 授课:
教师
教学 0,m 0,n
学生
教师为学生 指导论文:
教师
指导论文 0,m 1
学生
关联关系(链属性)的表示 允许实例连接带有一组属性,这些属性通过关联 来描述
类1
连接名称 m n 连接 属性
类1
关联关系
(链属性)
教师
指导论文 0,m 1 题目 答辩时间 成绩
学生
销售代表
个人顾客
creditCard# {creditRating( ) ==“poor”}
物品
*
定货作业线
Quantity:Integer price:Money isSatisfied:Boolean
*
0 .. 1
雇员
*
1
产品
UML用于软件系统开发的不同阶段 :
③系统设计: 对类进行细化,如引入人 机交互的接口类、处理数 据类、处理通信类。
UML用于软件系统开发的不同阶段 :
④系统实现: 用构件图描述代码构件的 物理结构以及构件之间的 关系。 用配置图来描述和定义系 统中软硬件的物理通信结 构。
主机与外设配置图举例:
A 客户机
应用 服务器
网络
数据库 服务器
“TCP/IP”
B 客户机
ATM系统配置图:
ATM客户机
Internet
ATM应用 服务器
系统与子系统包图
§7.2 静态建模
1.用例模型
用于把应满足需求的基本功能聚合起来表示。对 于将要开发的新系统,用例描述系统应该做什么; 对于已构造完毕的系统,用例则反映了系统能够 完成什么样的功能。
金融机构类图举例 :
人员
* 所有人
借方
*
债权人
金融机构 *
抵押
本金 利率 到期
信贷银行
*{有次序的 }
银行
财产
*
房屋
保险机构类图举例 :
接电话的顺序图 :
受话者
{b-a<1}
交换机
远程交换机
受话者
a
拿起话筒
听通话声 拨号码 ...... <10 路径
b {c-b<10} c
{e-d<5}
亲自拜訪 电話客戶 的客戶 参与者之间的 一般 /特殊关系表示
完整需求定义要用五种图
• 用例图
• 类图 • 状态图 • 顺序图 • 协作图
建立概念模型(UML中的类图)
•确定并定义类 •建立关联 •添加属性 •描述系统行为:系统顺序图等
建立关联 对象之间的静态联系称为实例连接(Instance Connection) ,它通过对象的属性来表现对象 之间的依赖关系。 面向对象术语中把对象之间的实例连接称为 链接(Link),把类之间的实例连接称为关联 (Association)
UML模型符号
Use Case 框图 〈使用场景图〉 显示使用案例与角色之间的交互,从用户的角度对系统的要求。 使用案例: 表示功能
角色:
表示系统功能的直接使用者。可换成
关系说明:《use》使用关系 《include》包含关系 《extend》扩展关系 关系连线:
UML模型符号
Class框图 〈类图〉 对象类之间的关系,只反映静态的结构,用关联来表示 关联:表示对象类之间固有的联系 关联表示的图符: 对象是所有参与系统的实体,用
②
UML的元模型结构
按照UML的语义,UML模型可定义为4个抽象层次。 从低到高分别为 元元模型,元模型,模型和用户模型。 下一层是上一层的基础,上一层是下一层的实 例。
① ② ③
元元模型层:定义了用于描述元模型的语言,它是任何 模型的基础。 元模型层:定义了用于描述模型的语言,它组成了UML 的基本元素,包括面向对象和构件的概念。 模型层:定义了用于描述信息领域的语言,他组成了 UML的模型。模型是对现实世界的抽象,无论是问题与 还是解决方案,都可以抽象成模型。 用户模型层:是模型的实例,它用于表达一个模型的特 定情况。
(短式)
或
表示
(长式)
对象和类的关系: 类是对象的抽象概括 对象是类的实例 从若干对象中提取类