1、UML基础 与Rose建模案例,主讲:王晓辉,参考书及网站,参考书: UML with Rational Rose从入门到精通(入门) UML参考手册(精通) UML面向对象设计基础 UML Programming Guide设计核心技术 参考网站(中文): http:/www. http:/ http:/ http:/,第一章 软件工程与UML概述,一、软件工程概述二、UML语言概述三、UML的应用领域,软件开发是一套关于软件开发各阶段的定义、任务、作用的,建立在理论上的一门工程学科。它对解决软件危机,指导人们利用科学、有效的方法来开发软件,提高及保证软件开发的效率和质量起到了一定的作用。
2、 经典的软件工程思想将软件开发分成以下5个阶段:需求分析(Requirements Capture)阶段、系统分析与设计(System Analysis and Design)阶段、系统实现(Implementation)阶段、测试(Testing)阶段和维护(Maintenance)阶段。,一、软件工程概述,模型是对现实的简化,常见的模型,生活相关:气象图、道路交通图、交通标志 展示相关:建筑物模型、沙盘、公司总部的3D复制品 数据分析相关:条形图、饼状图 业务分析相关:组织结构图、跨职能流程图 设计相关:建筑平面图、管线图、电路板设计图,谁应该建模,业务建模:以领域专家为主,需求分析人员是
3、主力,系统分析员、架构师可参与 需求模型:以需求分析人员为主,系统分析员是主力,领域专家提供指导,架构师和资深开发人员参与 设计模型:高层设计模型以架构师为主,系统分析员从需求方面提供支持,资深开发人员从技术实现方面提供支持。详细设计模型则以资深开发人员为主,架构师提供指导。 实现模型:以资深开发人员(设计人员)为主,架构师提供总体指导。 数据库模型:以数据库开发人员为主,架构师提供指导,资深开发人员(设计人员)予以配合。,1 建模的重要性,模型:为理解事物而对事物作出的一种抽象,是对事物规范、无歧异描述的一种工具。常见模型有数学模型、描述模型和图形模型。模型的实质:对现实的简化。 建模的用途
4、与作用:建模是为软件开发服务的。建模的使用是软件成功的一个基本因素,建模的最主要作用就是进行交流。 精确捕获和表达项目的需求与应用领域的知识,以使各方面的利益相关者能够理解并达成一致。 便于用户和各个领域的专家审查 降低复杂度提高开发效率和质量 模型可以作为软件系统维护和升级时的文档,2 建模四原则,准确原则:模型必须反映真实情况。选择建立什么样的模型对如何发现和解决问题具有重要的影响。 分层原则:必须有不同的模型以不同的抽象程度反映系统不同的侧面。 分治原则:软件系统是复杂的,对于软件模型的任意一个侧面,不可能用一个模型来反映所有整个系统的任何侧面。 标准原则:模型必须在某种程度上是通用的。
5、,3 面向对象建模,两种最常用的建模方法:基于算法的,如下图1和面向对象的如图2。随着需求的变化和系统的增长,运用基于算法的建模方法建立起来的系统很难维护。,图1,图2,在面向对象的建模方法中,主要的模块是对象或类。在开发早期就定义了一系列面向问题域的对象,即建立了一个对象模型。在整个开发过程统一使用了这些对象,并不断地充实和扩充对象模型。 所有其他概念,如属性、关系、事件、操作等也围绕对象模型组成的,使用统一的概念和描述符号,分析阶段得到的模型也适用于设计阶段和实现阶段。因此软件生命周期个阶段区分不明显,整个开放过程是无缝连接的。 面向对象软件开发特点:开发阶段界限模糊,开发过程逐步求精,开
6、发过程反复迭代。,二、 UML语言概述,1.UML的历史 UML:统一建模语言Unified Modeling Language UML是一种总结了以往建模技术的经验并吸收了当今优秀成果的标准建模技术,利用UML表达的软件模型,可以直接和某种设计语言建立映射关系,通过UML建造工具将UML模型转换为对应的程序设计语言的代码框架。 面向对象的分析与设计(OOA&D)方法的发展在20世纪80年代末至20世纪90年代中出现了一个高潮,UML是这个高潮的产物。它不仅统一了Booch、Rumbaugh和Jacobson的表示方法,而且对其做了进一步的发展,并最终统一为大众所接受的标准建模语言。,3位世界
7、级面向对象技术大师,Grady Booch,James Rumbaugh,Ivar Jacobson,UML已经迅速成长为一个事实上的工业标准。,1.UML的历史,不论在计算机学术界、软件产业界还是在商业界,UML已经逐渐成为人们为各种系统建模、描述系统体系结构、商业体系结构和商业过程时使用的统一工具,而且在实践过程中人们还在不断扩展它的应用领域。,UML形成,UML的定义包括UML语义和UML表示法两个部分。 UML语义:描述UML的精确元模型定义。 元模型:UML的所有元素在语法和语义上提供了简单的、一致的和通用的定义说明,使开发者在语义上取得一致,消除了因人而异的表达方式造成的影响。,2
8、.UML包含的内容,UML表示法:为开发者或者开发工具使用这些图形符号和文本语法建立提供的标准。图形符号和文本所表达的是应用级的模型,在语义上是UML元模型的实例。 如:UML由 视图(view) 图(diagram) 模型元素(model element) 通用机制(general mechanism)等几个部分组成。 这些就是UML的表示法。,3.UML的定义 UML(Unified Modeling Language)统一建模语言,是一种面向对象的建模语言。 它的主要作用是帮助用户对软件系统进行面向对象的描述和建模(建模是通过将用户的业务需求映射为代码,保证代码满足这些需求,并能方便地回
9、溯需求的过程),它可以描述这个软件开发过程从需求分析直到实现和测试的全过程。 UML通过建立各种联系如类与类之间的关系、类/对象怎样相互配合实现系统的行为状态(模型元素)来组建整个结构模型。 UML包含各种图形,把这些图形元素及其关系可视化,让人们可以清楚容易的理解模型。,3.1 UML的组成 UML由视图(View)、图(Diagram)、模型元素(Model Element)和通用机制(General Mechanism)等部分组成。 1.视图:为了完整地描述一个系统,往往需要描述该系统的许多方面。视图可以表示被建模系统的各个方面,即从不同角度为系统建立多个模型,这些模型都描述同一个系统,
10、仅描述的角度不同,相互间具有一致性。从某一个角度观察到的系统,称为一个视图。 包括五类视图: 用例视图 逻辑视图 并发视图 组件视图 配置视图,用例视图(use case view),是整个系统的核心,强调从用户的角度看到的或需要的系统功能,是被称为参与者的外部用户所能观察到的系统功能的模型图; 逻辑视图(logical view),展现系统的静态或结构组成及特征,也称为结构模型视图(structural model view)或静态视图(static view); 并发视图(concurrent view),体现了系统的动态或行为特征,也称为行为模型视图(behavioral model v
11、iew)、动态视图(dynamic view); 组件视图(component view),体现了系统实现的结构和行为特征,也称为实现模型视图(implementation model view) ; 配置视图(deployment view),体现了系统实现环境的结构和行为特征,也称为环境模型视图(environment model view)或物理视图(physical view)。,UML的视图模型,Use case View描述系统的外部特性、系统功能等。,Implementation View 表示系统的实现特征,常用构件图表示。,Design View 描述系统设计特征,包括结构模
12、型视图和行为模型视图,前者描述系统的静态结构(类图、对象图),后者描述系统的动态行为(交互图、状态图、活动图)。,Process View 表示系统内部的控制机制。常用类图描述过程结构,用交互图描述过程行为。,Deployment View 配置视图描述系统的物理配置特征。用配置图表示。,UML常用视图,2.图:图是用来表达一个视图的内容的,通常,一个视图由多张图组成。UML语言共定义了9种不同的图,把它们有机地结合起来就可以描述系统的所有视图。 分别是:用例图、类图、对象图、时序图、协作图、状态图、活动图、组件图和配置图。 根据它们不同的架构视图的应用,把9种图分成以下5类: 用户模型视图:
13、用例图 结构模型视图:类图和对象图 行为模型视图:时序图、协作图、状态图和活动图 实现模型视图:组件图 环境模型视图:配置图,第一类:用户模型视图:包括用例图(Use Case Diagram),从用户角度描述系统功能,并指出各功能的操作者。,UML可以由下列5类图来定义(以ATM为例),类图:描述系统中类的静态结构,不仅定义类,表示类之间的联系还包括内部结构(类的属性和操作)如下图 。对象图:是类图的实例, 使用与类图完全相同的标 识 包图:由包或类组成, 表示包与包之间关系,用 于描述系统的分层结构。,第二类:结构模型视图:静态图(Static diagram)包括类图、对象图和包图。,第
14、三类:行为模型视图 (1)行为图(Behavior diagram),描述系统 动态模型和组成对象间的交互关系,包括状态图和活动图。状态图:描述对象所 有可能的状态以及事 件发生时状态的转移 条件。如下图: 活动图: 描述满足用例要求所 要进行的活动及活动 间的约束关系,(2).交互图(Interactive diagram),描述对象 间的交互关系,包括 时序图和协作图。 时序图:显示对象间 的动态合作关系,强 调对象间消息发送顺 序及交互,协作图:除交换信息外,还显示对象及其关系(上下级)。不强调时序,组件图:描述代码部件的物理结构及各组件间的依赖关系、相互影响程度,第四类: 实现模型视图
15、: (Implementation diagram),包括组件图,第五类: 环境模型视图:包括配置图。 配置图:定义系统中软硬件的物理体系结构。,3.模型元素:可以在图中使用的概念(例如,用例、类、对象、消息和关系),统称为模型元素。模型元素在图中用相应的视图元素(图形符号)表示。一个模型元素可以用在多个不同的图中,不管怎样使用,它总是具有相同的含义和相同的符号表示。,4.通用机制: UML语言利用通用机制为图附加一些额外的信息,比如,可以在“笔记”中书写注释,或用“标签值”说明模型元素的性质等。此外,它还提供扩展机制(例如,版类、标签值、约束),使UML能够适应一种特殊方法或满足某些特殊用户
16、的需要。,UML组成,1.结构元素(类,接口,协作,用例,对象,构件,节点等) 2.行为元素(交互,状态机) 3.分组元素(包) 4.注解元素,1.关联 2.依赖 3.泛化 4.实现,1.静态模型(类图,构件图,部署图) 2.动态模型(对象图,用例图,顺序图,协作图,状态图,活动图),UML的内容结构,3.2 UML的建模机制 UML有两套建模机制:静态建模机制和动态建模机制。 静态建模机制包括用例图(Use Case Diagram)、类图(Class Diagram)、对象图(Object Diagram)、包(Package)、组件图(Component Diagram)和配置图(Dep
17、loyment Diagram)。 系统中的对象在执行期间的不同时间点如何通信以及通信的结果如何,就是系统的动态行为,即对象通过通信相互协作的方式以及系统中的对象在系统生命期中改变状态的方式,是系统的动态行为。动态建模机制包括消息(Message)、状态图(State Diagram)、时序图(Sequence Diagram)、协作图(Collaboration Diagram)和活动图(Activity Diagram)。,UML的特点,(1) 统一标准:统一了Booch、OMT和OOSE等方法中的基本概念,已成为OMG的正式标准,提供了标准的面向对象的模型元素的定义和表示。 (2) 面向
18、对象:UML还吸取了面向对象技术领域中其他流派的长处。UML符号表示考虑了各种方法的图形表示,删掉了大量易引起混乱的、多余的和极少使用的符号,也添加了一些新符号。 (3) 可视化、表示能力强:系统的逻辑模型或实现模型都能用UML模型清晰的表示,可用于复杂软件系统的建模。 (4) 独立于过程:UML是系统建模语言,独立于开发过程。 (5) 易掌握、易用:由于UML的概念明确,建模表示法简洁明了,图形结构清晰,易于掌握使用。,面向对象方法设计系统步骤,描述需求 根据需要建立系统的静态模型,以构造系统的结构 前2个步骤建立所建立的模型都是静态的,包括用例图、类图(包含包)、对象图、组件图和配置图,是
19、UML的静态建模机制。 描述系统的行为 这个步骤建立的模型或者可以执行或者是表示执行时的时序关系或交互关系。包括状态图、活动图、时序图、协作图,是UML的动态建模机制。,4 UML的应用领域,UML的目标是以面向对象图的方式来描述任何类型的系统。其中最常用的是建立软件系统的模型,也可以用于描述非软件领域的系统,如机械系统、企业机构或业务过程,以及处理复杂数据的信息系统、具有实时要求的工业系统或工业过程等。 UML是一个通用的标准建模语言,可以对任何具有静态结构和动态行为的系统进行建模。 UML的最终用途为不同领域的人提供统一的交流方法。 UML适用于系统开发的全过程,它的应用贯穿于从需求分析到系统建成后测试的各个阶段。,应用举例,需求分析:可以用用例来捕获用户的需求。通过用例建模,可以描述对系统感兴趣的外部角色及其对系统的功能要求(用例)。 UML模型还可以作为测试阶段的依据。不同的测试使用不同的UML图作为依据。 单元测试:类图和类规格说明 集成测试:部件图和协作图 系统测试:用例图验证系统的行为 验收测试:由用户进行,习题,作业题目: 在系统模型中为什么要使用多种UML图? 那种UML图给出了系统的静态视图? 哪种UML图提供了系统的动态视图? 题目:假设要构造一个和用户下棋的计算机习题,哪些种类的UML图对设计该系统有用处?为什么?,