《UML建模语言及其开发工具Rose课件(完整版).pptx》由会员分享,可在线阅读,更多相关《UML建模语言及其开发工具Rose课件(完整版).pptx(327页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、内容简介 本书深入浅出地介绍了统一建模语言(UML)和Rational Rose软件的基础知识和方法,从实用的角度介绍了UML与Rose的有机结合在面向对象开发中的有效应用。主要内容包括UML 的基础知识和Rational Rose的使用方法、UML静态建模、UML动态建模、UML双向工程、RUP等。本书组织结构合理,语言简练易懂,内容深入浅出,并配有大量的实例分析。第1章 面向对象技术第2章 UML概述第3章RATIONAL ROSE简介第4章用例和用例图第5章类图和对象图第6章 包图第7章 交互图目 录第8章活动图第9章 状态机图第10章 构件图第11章 部署图第12章 双向工程第13章
2、UML与统一开发过程第14章 系统综合网上书店第1章面向对象技术第第1 1章章 面向对象技术面向对象技术1.11.1不同软件开发方法的比较分析不同软件开发方法的比较分析一般计算机软件的发展过程第一阶段,这个阶段计算机的应用领域比较窄,主要是科学计算,其研究、开发的主要内容是顺序程序,对数据的考虑非常少。在这个阶段主要是考虑程序设计,而数据是依附于程序中的,注重对系统功能的实现,是典型的面向过程的软件开发方式。第二阶段,这个阶段计算机应用领域逐步拓宽,出现了大量的数据处理问题。这个阶段的软件特点是数据量非常大,并要求把这些数据存储在文件系统及数据库中以实现数据的独立和共享,而对数据的处理则相对简
3、单。这个阶段主要考虑数据设计,而程序则是依附于数据的,注重对系统数据的实现,是典型的面向数据的软件开发方式。1.11.1不同软件开发方法的比较分析不同软件开发方法的比较分析常用软件开发方法面向过程的方法:面向过程的方法主要考虑事务流和要完成的功能,数据被当作系统整体的一个部分来处理,常常是分析过程的一个副产品。其代表方法是结构化分析与设计方法.面向数据的方法:面向数据的方法将数据作为一种独立的资源对待,数据是支持所有应用项目的基础,处理过程也是重要的,但是它们必须存取数据库中的数据。其代表方法是数据库设计方法。信息工程的方法:信息工程是在软件工程和数据库基础上形成和发展起来的,其方法采用的前提
4、是数据位于现代数据处理系统的中心,数据类型不会发生很大的变化,因此这种方法是面向数据的方法。1.11.1不同软件开发方法的比较分析不同软件开发方法的比较分析组成系统部分的稳定程度系统各部分之间的接口极其不稳定功能模块非常不稳定各模块的先后顺序非常不稳定一直保持的数据则较稳定问题空间的对象最稳定 1.11.1不同软件开发方法的比较分析不同软件开发方法的比较分析面向过程方法主要考虑事务流和需要完成的功能,它侧重于功能与功能抽象,而恰恰忽视了功能的主体对象,任何成功的系统在其生存期内不可避免地要经历多次变动,其中变动最多的是系统功能,而对象才是问题空间中最稳定的部分。由于面向过程的方法的基础建立在非
5、常不稳定的系统功能上,因此面向过程的方法不能解决数据抽象和信息隐藏,不能很好地适应极度复杂系统的扩展。1.11.1不同软件开发方法的比较分析不同软件开发方法的比较分析面向数据方法建立在较为稳定的系统数据基础上,将数据作为一种独立的资源对待,对数据进行抽象。但面向数据的方法在对数据进行抽象时只注重对客观实体及实体属性的抽象,而客观实体不仅有属性还有操作属性的行为,因为最终每个数据处理系统都必须有数据与处理。由于面向数据方法在系统开发过程中很少考虑实体的行为处理,因而只是部分地实现了问题空间到解空间的映射。1.11.1不同软件开发方法的比较分析不同软件开发方法的比较分析信息工程方法既是面向数据的方
6、法,又具有面向过程的特征,是一种比较灵活的系统开发方法。但该方法在对面向过程和面向数据的综合过程中,在进行数据抽象时,对属性和操作属性的方法(行为)是分开考虑的,而没有把属性和方法当作一个不可分割的整体,而这种属性和方法的封装对一个系统模型的稳定性有很大的影响,因此信息工程的方法也没能很好地解决数据抽象和信息隐藏问题,也是部分地实现了问题域空间到解空间的映射。1.11.1不同软件开发方法的比较分析不同软件开发方法的比较分析面向对象方法的特点与人类习惯的思维方法一致稳定性好可重用性好较易开发大型软件产品可维护性好1.2 1.2 面向对象的基本概念面向对象的基本概念对象对象面向对象方法进行软件开发
7、时,需要区分三种不同含义的对象:客观对象、问题对象和计算机对象。现实世界问题域计算机系统客观对象问题对象计算机对象抽象表示模拟1.2 1.2 面向对象的基本概念面向对象的基本概念 对象的表示应包括属性与行为(数据与操作),且对象之间并非彼此孤立,可以通过通信互相交互,因此计算机对象可以表示为一个三元组:对象(接口,数据,操作)即对象是面向对象系统中运行时刻的基本成分,它是属性和行为(数据和操作)的封装体,其中还包括和其他对象进行通信的设施。1.2 1.2 面向对象的基本概念面向对象的基本概念可从不同的角度来考察对象的概念:首先从宏观上看,对象是客观对象在计算机中的表示。其次从微观上看,对象是由
8、能对外通信的数据及其上的操作组成的封装体。最后从形式描述上看,对象是具有输入和输出的有限自动机。1.2 1.2 面向对象的基本概念面向对象的基本概念对象具有如下特点对象具有如下特点:(1)自治性:对象的自治性是指对象具有一定的独立计算能力。(2)封闭性:对象的封闭性指对象具有信息隐蔽的能力。(3)通信性:对象的通信性指对象具有与其他对象通信的能力。(4)被动性:对象的被动性指对象的存在和状态转换都是由来自外界的某种刺激引发的。(5)暂存性:对象的暂存性有两层含义。一是指对象的存在是可以动态地引发的,而不是必须在计算的一开始就存在;二是指对象随时可以消亡。1.2 1.2 面向对象的基本概念面向对
9、象的基本概念类类对象是系统中运行时刻的基本成分,它们在程序中又如何反映呢?事实上,系统中往往存在多个具有共同特性的对象,类刻划了一组具有共同特性的对象。类的作用可归纳为两种:一是作为对象的描述机制,刻划一组对象的公共属性和行为;二是作为程序的基本单位,它是支持模块化设计的设施,并且类上的分类关系是模块划分的规范标准。1.2 1.2 面向对象的基本概念面向对象的基本概念类有三个组成部分:数据、操作和接口。数据刻划对象的状态,操作刻划对象的行为,类中所有数据均为私有,接口使操作对外可见。从类自身的内容看,它描述了一组数据及其上的操作,这些数据为类所私有,只有操作对外可见。类的概念可从下面四个方面去
10、理解:(1)类是面向对象程序唯一的构造单位(2)类是面向对象程序设计语言的基本成分(3)类是抽象数据类型的具体实现(4)类描写了一组相似对象的共同特性 1.2 1.2 面向对象的基本概念面向对象的基本概念类与对象的关系类与对象的关系 类是面向对象程序中的概念,而对象则是面向对象程序运行时的概念。程序由一组相关的类构成,所以类是静态的。程序的执行体现为一组相互通信的对象的活动,所以对象是动态的。类描述了一组相似对象的共同特性,这一组相似的对象被称为该类的实例。类作为一种模式,对象是具有这种模式的具体例子。类与对象的关系很象类型与值的关系。事实上,完全可以把类理解成对象所具的类型,而把对象理解成是
11、相应类作为类型的值。1.2 1.2 面向对象的基本概念面向对象的基本概念消息消息 对象是一个相对独立的具有一定计算能力的自治体,对象之间不是彼此孤立而是互相通信的,面向对象程序的执行体现为一组相互通信的对象的活动。面向对象计算中,每一计算任务都表示为一消息,实施计算任务的若干相关联的对象组成一个面向对象系统。提交计算任务即由任务提交者(系统外对象)向承担计算任务的面向对象系统中的某对象发送表示该计算任务的消息。计算的实施过程是面向对象系统接收到该消息后所产生的状态变化过程,计算的结果通过面向对象系统中的对象向任务提交者回送的消息体现。1.2 1.2 面向对象的基本概念面向对象的基本概念消息一般
12、由三个部分组成:(接受消息的对象,接受对象应采用的方法,方法所需要的参数)。计算任务通常先由某一对象受理(该对象接收到某种消息),然后,通过对象间的通信,计算任务就分散到各个有关对象中,最后,再由某些对象给出结果(通过发送消息)。对象可以动态地创建,创建后即可以活动。对象在不同时刻可处于不同状态,对象的活动是指对象状态的改变,它是由对象所接收的消息引发的。对象一经创建,就能接收消息,并向其他对象发送消息。对象接收到消息后,可能出现:(1)自身状态改变(2)创建新对象(3)向其他对象发送消息。1.2 1.2 面向对象的基本概念面向对象的基本概念从对象之间的消息通信机制可反映出面向对象计算具有如下
13、特性:(1)协同性:协同性表现在计算是由若干对象共同协作完成的。(2)动态性:动态性表现在计算过程中对象依通信关系组成的结构会动态地改变,新对象会不断创建,老对象也会不断消亡。(3)封闭性:封闭性表现在计算是由一组相对封闭的对象完成的。(4)自治性:自治性表现在计算是由一组自治的对象完成的。1.2 1.2 面向对象的基本概念面向对象的基本概念方法方法方法反映对象的行为,是对象固有的动态表示,可审视并改变对象的内部状态。一个对象往往可以用若干方法表示其动态行为,在计算机中,方法也可称为操作。它的定义与表示包含两部分:一是方法的接口,它给出了方法的外部表示,包括方法的名称、参数及结果类型;二是方法
14、的实现,它用一段程序代码表示,这段代码实现了方法的功能。把所有对象抽象成各种类,每个类都定义一组方法,代表允许作用于该类对象上的各种操作。方法描述了对象执行操作的算法,响应消息的方法。1.2 1.2 面向对象的基本概念面向对象的基本概念继承继承 类之间的继承关系是现实世界中遗传关系的直接模拟,它表示类之间的内在联系以及对属性和操作的共享。继承是类与类之间的一种关系,它使程序人员可以在已有类的基础上定义和实现新类。继承是实现利用可重用软件构件构造系统的有效语言机制。继承能有效地支持软件构件的重用,使得当需要在系统中增加新特征时所需的新代码最少,并且当继承和多态、动态绑定结合使用时,为修改系统所需
15、变动的原代码最少。1.2 1.2 面向对象的基本概念面向对象的基本概念当类Y继承了类Z时,称Z是基类,Y是Z的子类。在这种情形下,Y由两部分组成,继承部分和新增部分。继承部分是从类Z继承得到的,新增部分是专为Y所编写的新代码。人教职员工学生教员行政人员工人研究生本科生1.2 1.2 面向对象的基本概念面向对象的基本概念多态多态多态的一般含义是,某一论域中的元素可以有多种解释,程序设计语言中的一名多用即是支持多态的设施,继承机制是面向对象程序设计语言中所特有的另一种支持多态的设施。在面向对象的软件技术中,多态是指在类继承层次中的类可以共享一个行为的名字,而不同层次的类却各自按自己的需要实现这个行
16、为。当对象接收到发送给它的消息时,根据该对象所属的类动态地选择在该类中定义的行为实现。1.2 1.2 面向对象的基本概念面向对象的基本概念动态绑定动态绑定 绑定是指结构成分与其有关性质的确定和关连。在程序设计语言中,通常是指变量与其值、过程调用与相应可执行代码的确定和关连。能在编译时刻完成的绑定称静态绑定,反之,则称动态绑定。动态绑定是与多态相关联的实现级的概念。既然变量或操作具有多态性,那么它们运行时的实际形态就无法在编译时刻确定。事实上,对多态变量来说,编译时刻只能确定其多态变化的范围(即动态类型集)。对多态操作来说,实现该操作的实际代码只能在运行时刻确定。1.3 1.3 面向对象的分析、
17、设计与实现面向对象的分析、设计与实现面向对象分析与设计方法迅速发展的重要因素软件领域中面向对象方法的基本概念经历了几十年的成长道路,人们的注意力逐渐从编码问题转移到设计与分析问题构造系统的基本技术变得更加有力,设计思想受预想的如何编码的思想影响,而编码思想受人们可用的程序设计语言的强烈影响。现代软件系统规模更大,更复杂也更多变,传统的软件分析与设计方法难以满足要求,而面向对象的分析与设计方法将导致比较稳定的系统。另外现代软件系统更注重系统用户界面的开发,对于此类系统采用面向对象方法进行分析、设计和编码是一种非常自然的途径。现代软件系统构造比七十年代和八十年代更加面向领域,对功能复杂性的关心比以
18、前少,数据建模的优先程度较为适当,问题域模型的理解及系统职能处于较高的优先地位。1.3 1.3 面向对象的分析、设计与实现面向对象的分析、设计与实现面向对象分析对象模型。对象模型表示静态的、结构化的系统的“数据”性质。它是对模拟客观世界实体的对象以及对象彼此间的关系的映射,描述了系统的静态结构。面向对象方法强调围绕对象而不是围绕功能来构造系统。对象模型为建立动态模型和功能模型,提供了实质性的框架。在建立对象模型时,人们的目标是从客观世界中提炼出对具体应用有价值的概念。动态模型。动态模型表示瞬时的、行为化的系统的“控制”性质,它规定了对象模型中的对象的合法变化序列。功能模型。功能模型表示变化的系
19、统的“功能”性质,它指明了系统应该“做什么”,因此更直接地反映了用户对目标系统的需求。1.3 1.3 面向对象的分析、设计与实现面向对象的分析、设计与实现面向对象的设计准则模块化抽象信息隐藏弱耦合强内聚可重用1.3 1.3 面向对象的分析、设计与实现面向对象的分析、设计与实现面向对象设计方法的具体分析步骤问题域部分的设计人一机界面部分的设计任务管理部分的设计数据管理部分的设计1.3 1.3 面向对象的分析、设计与实现面向对象的分析、设计与实现面向对象的实现任务是具体实现软件功能,包括每个对象的内部功能实现、确立对象的哪些处理功能应在哪些类中进行描述、确定并实现系统的界面、输出形式及其它控制机制
20、等,OOI可以采用不同的面向对象程序设计语言来实现。面向对象程序设计方法的主要特征识认性:系统中的基本构件可识认为一组离散的、可以识认的相异对象。类别性:系统中具有相同数据结构和行为的所有对象组成一类。多态性:论域中的同一元素可以有多种解释。继承性:在基于层次关系的不同的类中共享属性和操作。1.4 UML1.4 UML与面向对象的系统开发与面向对象的系统开发软件工程中的分析与设计软件工程包括技术和管理两方面的内容,是技术与管理紧密结合所形成的工程学科。所谓管理就是通过计划、组织和控制等一系列活动,合理地配置和使用各种资源,以达到既定目标的过程。通常把在软件生命周期全过程中使用的一整套技术方法的
21、集合称为方法学,也称为范型。软件工程方法学包含3个要素:方法、工具和过程。其中,方法是完成软件开发的各项任务的技术方法,回答“怎样做”的问题,工具是为运用方法而提供的自动的或半自动的软件工程支撑环境,过程是为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。目前使用得最广泛的软件工程方法学,分别是传统方法学和面向对象方法学。1.4 UML1.4 UML与面向对象的系统开发与面向对象的系统开发传统方法学传统方法学也称为生命周期方法学或结构化范型。它采用结构化技术(结构化分析、结构化设计和结构化实现)来完成软件开发的各项任务,并使用适当的软件工具或软件工程环境来支持结
22、构化技术的运用。这种方法学把软件生命周期的全过程依次划分为若干个阶段,然后顺序地完成每个阶段的任务。采用这种方法学开发软件的时候,从对问题的抽象逻辑分析开始,一个阶段一个阶段地顺序进行开发。前一个阶段任务的完成是开始进行后一个阶段工作的前提和基础,而后一阶段任务的完成通常是使前一阶段提出的解法更进一步具体化,加进了更多的实现细节。每一个阶段的开始和结束都有严格标准,对于任何两个相邻的阶段而言,前一阶段的结束标准就是后一阶段的开始标准。1.4 UML1.4 UML与面向对象的系统开发与面向对象的系统开发所有分析方法需要遵守下列准则:必须理解并描述问题的信息域,根据这条准则应该建立数据模型。必须定
23、义软件应完成的功能,根据这条准则应该建立功能模型。必须描述作为外部事件结果的软件行为,根据这条准则应该建立行为模型。1.4 UML1.4 UML与面向对象的系统开发与面向对象的系统开发数据模型结构化方法采用实体联系图来描绘数据对象及数据对象之间的关系,是用于建立数据模型的图形。数据模型中包含3种相互关联的信息:数据对象、数据对象的属性及数据对象彼此间的相互连接的关系。ER图被广泛使用是因为它可以提供要解决问题的总体概况,还因为当问题的需求发生变化时,该视图是相对稳定的,因此ER图更可能在需求过程的早期用于建模问题。但是ER表示法的简单性具有欺骗性,事实上在实践中有效地使用ER建模表示法是相当困
24、难的,即使只有三个主要的建模结构,在什么样的细节层次上建模具体的问题也并不是显而易见的。并且ER图不能有效地表示实体的动态行为,因此难以建立具有复杂结构和行为的模型。1.4 UML1.4 UML与面向对象的系统开发与面向对象的系统开发功能模型结构化方法采用数据流图来描绘当数据在软件系统中移动时被变换的逻辑过程,指明系统具有的变换数据的功能,因此,数据流图是建立功能模型的基础。数据流图的优势之一是提供关于被提议系统的高层功能的、以及各种加工之间的数据依赖关系的一个直观模型。但是对于不太熟悉正在建模问题的软件开发人员来说,数据流图是含糊不清的,特别对于需要处理细节描述的加工处理,数据流图并不适合描
25、述。1.4 UML1.4 UML与面向对象的系统开发与面向对象的系统开发行为模型结构化方法采用状态转换图:指明了作为外部事件结果的系统行为。为此,状态转换图描绘了系统的各种行为模式和在不同状态间转换的方式。状态转换图是行为建模的基础。在需求分析过程中应该建立起软件系统的行为模型,状态转换图通过描绘系统的状态及引起系统状态转换的事件,来表示系统的行为。此外,状态图还指明了作为特定事件的结果系统将做哪些动作。1.4 UML1.4 UML与面向对象的系统开发与面向对象的系统开发面向对象方法学把对象作为融合了数据及在数据上的操作行为的统一的软件构件。也就是说,用对象分解取代了传统方法的功能分解。把所有
26、对象都划分成类(class)。每个类都定义了一组数据和一组操作,类是对具有相同数据和相同操作的一组相似对象的定义。数据用于表示对象的静态属性,是对象的状态信息,而施加于数据之上的操作用于实现对象的动态行为。按照父类(或称为基类)与子类(或称为派生类)的关系,把若干个相关类组成一个层次结构的系统。在类等级中,下层派生类自动拥有上层基类中定义的数据和操作,这种现象称为继承。对象彼此间仅能通过发送消息互相联系。1.4 UML1.4 UML与面向对象的系统开发与面向对象的系统开发面向对象方法学开发软件的过程,是一个主动地多次反复迭代的演化过程。面向对象方法在概念和表示方法上的一致性,保证了在各项开发活
27、动之间的平滑(即无缝)过渡。面向对象方法普遍进行的对象分类过程,支持从特殊到一般的归纳思维过程;通过建立类等级而获得的继承性,支持从一般到特殊的演绎思维过程。面向对象的分析面向对象设计面向对象的编程面向对象的测试面向对象的维护1.4 UML1.4 UML与面向对象的系统开发与面向对象的系统开发常用面向对象分析与设计方法的比较Booch的分析与设计方法Coad与Yourdon的分析与设计方法Jacobson的分析与设计方法Rumbaugh的分析与设计方法Wirfs-Brock的分析与设计方法1.4 UML1.4 UML与面向对象的系统开发与面向对象的系统开发共同的特征集在面向对象分析方面,这些方
28、法都包含下列内容:类和类层次的表达、对象联系模型的建立、对象行为模型的推导。并且执行下列通用步骤:获取OO系统的客户需求、使用基本需求作为指南选择类和对象、为每个系统对象表示属性和操作、定义类组织结构和层次、建立对象联系模型、基于用例和情景审核OO分析模型。在面向对象设计方面,其处理过程可表示为由四层构成的金字塔:基础层注重实现主要系统功能的子系统设计、类层说明总的对象体系结构和实现系统所需的类层次、消息层指示对象间的协同如何实现、职责层标识刻划每个类的属性和操作。并且执行下列步骤:按照某种可实现的方式描述每个子系统、对象设计、消息设计、审核设计模型且必要时循环。1.4 UML1.4 UML与
29、面向对象的系统开发与面向对象的系统开发面向对象方法开发过程中概念的不一致由于存在数据性质的不同,因而对不同性质的数据将采用不同的方法与不同的工具由于不同方法之间对面向对象概念的理解可能不同,因而会引起方法间概念上的差异。由于不同的工具所支持的面向对象概念可能不同,因而引起实现工具间概念的差异。由于选择的面向对象方法可能与支持这种方法的工具间存在概念上的差异由于所选择的面向对象方法与基本面向对象概念可能存在理解上的差异由于所选择的面向对象工具所支持的概念与基本面向对象概念可能存在理解上的差异1.4 UML1.4 UML与面向对象的系统开发与面向对象的系统开发统一建模语言UML横向分析三种代表性的
30、面向对象建模语言:三种面向对象建模语言均是采用核心的面向对象概念进行模型描述,都可以用来建立面向对象的系统模型,且语言有很大程度的雷同,但其着重点各有千秋,在概念的理解和应用上存在一定的差异,不存在彼此含盖或替代的地方,不存在一种建模语言包含所有其它建模语言优点的现象。纵向分析三种代表性的面向对象建模语言:一般软件系统的开发需要经过需求分析、系统分析、系统设计、系统实现、测试验证、配置和部署等整个过程,上述三种面向对象建模语言要么侧重于系统设计,要么侧重于软件开发的分析、设计和实现,要么侧重于需求分析和测试验证,没有一种面向对象建模语言可以覆盖一个软件系统的整个开发过程。1.4 UML1.4
31、UML与面向对象的系统开发与面向对象的系统开发统一建模语言UML横向分析UML:UML融合了Booch、OOSE和OMT方法中的基本概念,而且这些基本概念与其他面向对象技术中的基本概念大多相同,因此UML必然策划能够为这些方法及其他方法的使用者乐于采用的一种简单一致的建模语言。纵向分析UML:UML通过定义用例图、静态图、交互图、行为图和实现图支持需求分析、系统分析、系统设计、系统实现、测试验证、配置和部署等整个软件开发过程。在需求分析阶段,可以用用例来捕获用户需求。通过用例建模,描述对系统感兴趣的外部角色及其对系统的功能要求。1.4 UML1.4 UML与面向对象的系统开发与面向对象的系统开
32、发统一建模语言(UML)的主要特点可以归结为三点:以用例为引导,以主结构为核心。UML吸取了面向对象技术领域中其他流派的长处,其中也包括非OO方法中的影响UML符号表示的各种方法的图形表示,删掉了大量易引起混乱的、多余的和极少使用的符号,也添加了一些新符号。UML在演变过程中还提出了一些新的概念。1.4 UML1.4 UML与面向对象的系统开发与面向对象的系统开发统一建模语言UML的重要内容可以由五类图来定义静态图用例图交互图行为图实现图1.4 UML1.4 UML与面向对象的系统开发与面向对象的系统开发在软件开发过程中使用UML运用UML进行面向对象的系统分析和设计识别系统的用例和角色进行系
33、统分析并抽象出类设计系统,并设计系统中的类及行为需求分析分析设计构造测试1.4 UML1.4 UML与面向对象的系统开发与面向对象的系统开发UML与Rose的有效结合Rose工具主要特点较为全面的支持UML 建模标准Rose 支持多种语言的代码生成及双向工程,实现代码和模型的互相转换,保证模型和代码的一致性支持关系数据库建模生成模型文档,支持模型的Web发布Rose提供的控制单元和模型集成功能允许进行团队开发,并对各个开发人员的模型进行比较或合并操作等1.5 UML1.5 UML的应用领域的应用领域UML应用领域信息系统技术系统嵌入式实时系统分布式系统系统软件商业系统复习思考题复习思考题1、什
34、么是面向对象方法学,与其它软件开发方法相比较,它有什么特点?2、什么是对象,与传统的数据有何异同?3、什么是类,继承和多态?4、什么是模型?开发软件为什么要建模?5、简述面向对象分析的基本过程。6、简述面向对象设计的基本过程。7、简述面向对象程序设计的基本特征。8、简述常用面向对象分析和设计方法的异同。9、简述UML与面向对象分析与设计的关系10、简述面向对象、UML与Rose之间的有机结合特性。第2章UMLUML概述第第2 2章章 UML UML概述概述2.1 2.1 什么是什么是UMLUMLUMLUnified Modeling Language(统一建模语言)UMLUML的特性的特性Un
35、ifiedUnified:工业标准,组合了业内最著名的面向对象软件建模方法ModelingModeling:建模专用LanguageLanguage:可视化建模语言,一种图形表示法2.1 2.1 什么是什么是UMLUML发展历程与现状发展历程与现状UML三剑客 1.OMT(James Rumbaugh)2.The Booch method(Grady Booch)3.OOSE(Ivar Jacobson)2.1 2.1 什么是什么是UMLUML发展历程UML现状应用领域逐渐扩展:软件密集型系统、嵌入式系统建模、业务建模、工作流程建模为基于MDA的“产生式编程”提供技术支持1995年OOPSLA
36、国际会议 United Methed0.82010年5月 UML2.32009年2月 UML2.22007年8月和11月 UML2.1.1&UML2.1.22005年7月 UML2.02003年3月 UML1.52004年7月 UML1.4.22001年9月 UML1.42000年3月 UML1.31997年11月 UML1.11997年1月 UML1.01996年6月和10月 UML0.9&UML0.91其他方法 Booch93 OMT-2OOSEUML合 作伙 伴 专 家意见方法学大战阶段统一阶段标准化阶段2.2 2.2 为什么学习为什么学习UMLUML建模建模什么是模型什么是模型模型是对
37、现实世界的简化和抽象模型是沟通的手段为什么要建模为什么要建模 例 盖房子:简陋小平房 与盖摩天大楼 目的:建模可以帮助开发者更好的理解正在开发的系统有助于开发者按照实际情况或所需样式对系统进行可视化;规范并约定系统的结构或行为;给出一个指导系统构造的模板;对开发者做出的决策进行文档化;使客户、涉众、开发人员之间对软件有更好的共识。2.2 2.2 为什么学习为什么学习UMLUML建模建模建模原则建模原则要认真选择模型每种模型可以在不同的精度级别上表示。开发人员应根据需要在不同的时间以不同的详细程度对系统进行可视化。切合实际孤立的模型或视图是不完整的,对每个重要的系统最好用一组几乎独立的模型从多个
38、视角去逼近。2.2 2.2 为什么学习为什么学习UMLUML建模建模UMLUML可以建立什么模型可以建立什么模型从整个软件开发的过程看:业务模型、需求模型、分析模型、设计模型、进程模型、实现模型、部署模型、测试模型等从模型的应用方式或者正式程度来看:草图、蓝图和编程语言2.3 UML2.3 UML概念模型概念模型构造块规则公共机制事物关系图命名范围可见性详述修饰通用划分完整性执行扩展机制UML2.3.1 2.3.1 事物事物-结构事物结构事物结构事物(structural thing):UML中的名词,通常是模型的静态部分,描述概念元素或物理元素。类:对一组具有相同属性、操作、关系和语义的对象
39、的抽象对象是类的一个实例 类对象2.3.1 2.3.1 事物事物-结构事物结构事物接口(interface):一个服务操作集合,每个操作描述了类或构件的一个服务。主动类(active class):其对象拥有一个或多个进程或线程的类。UML引入主动类的目的是因为在实际开发中需要一些类能够起到启动控制活动的作用。UML1.X表示法 UML2.X表示法 主动类接口2.3.1 2.3.1 事物事物-结构事物结构事物用例(use case):用例定义了一组用例实例,其中每个实例都是系统执行的一系列动作,这些动作将对特定参与者产生可见的有价值的结果。简单的说,用例用来表示系统向用户提供的功能。对于某个用
40、例的实现就可以表示为一个协作 协作定义了一个交互,它是由一组共同工作以提供某种协作行为的角色和其他元素构成的一个群体 用例2.3.1 2.3.1 事物事物-结构事物结构事物构件(component):或称组件,是系统设计的一个模块化部分,它隐藏了内部实现并对外提供一组外部接口。在一个系统中,实现相同接口的构件可互相替换。节点(node):运行时存在的物理对象,代表一种计算资源,通常具有存储空间和执行能力,例如一台打印机,服务器等等。UML1.x 表示法UML2.x 表示法构件节点2.3.1 2.3.1 事物事物-行为事物行为事物行为事物(behavioral thing):UML中的动词,是模
41、型的动态部分,代表了跨越时间和空间的行为。交互(interaction):交互描述了在特定语境中为了完成某个任务,消息在一组对象之间是如何交换的。状态机:一个对象或交互在其生命周期内响应事件所经历的状态序列以及对这些事件的响应。活动:对行为的说明,它描述了计算过程执行的步骤序列。消息状态活动2.3.1 2.3.1 事物事物-分组事物分组事物分组事物(grouping thing)是UML模型的组织部分,分组事物只有一种,称为包。软件系统中包含大量的类,因此存在众多的结构事物和行为事物。可以把包看作一个个的盒子(即容器),然后将这些结构事物和行为事物放入不同的盒子里进行整合。包的变体:如框架(或
42、称视图)、模型、子系统等。包2.3.1 2.3.1 事物事物-注释事物注释事物注释事物(annotational thing)UML模型中的“注释语句”,用来描述、说明或标注模型中的其他元素,这就是注释事物。UML中,主要的注释事物称为注解(note)。注解必须依附于一个或一组元素之上才有意义。注解2.3.22.3.2关系关系 种类变种表示法关键字或符号种类变种表示法关键字或符号抽象派生依赖关系derive导入 私有依赖关系access显现manifest公有import实现实现关系实现关系虚线加空心三角信息流flow精化依赖关系refine包含并merge跟踪trace许可permit关联关
43、联关系关联关系实线协议符合未指定绑定依赖关系bind(参数表)替换依赖关系substitute部署deploy使用调用call扩展Extendextend(扩展点)创建create扩展extension扩展关系扩展关系实线加实心三角实例化instantiate泛化泛化关系泛化关系实线加空间三角职责responsibility包含依赖关系include发送sendUML模型关系种类2.3.22.3.2关系关系 关联(association)关系关联关系表明两个对象之间存在语义上的联系。关联关系提供了通信路径。特殊关联关系:聚合(aggregation)和组合(composition)聚合和组合都
44、表示两个类之间“整体-部分”的关系;菱形都指向整体类差别:聚合中的部分可以独立于整体存在,而组合中的整体销毁时部分也将不复存在。2.3.22.3.2关系关系 泛化(generalization)关系泛化关系定义了一般元素(父元素)和特殊元素(子元素)之间的分类关系。子元素可以共享父元素的结构和行为。实现(realization)关系实现是规格说明和它的实现之间的关系,它表示不继承结构只继承行为。出现在两个地方:一种是在接口和实现接口的类或构件之间;另一种是在用例和实现它的协作之间。2.3.22.3.2关系关系 依赖(dependency)关系对于两个元素X、Y,如果元素X发生变化将会引起元素Y
45、的变化,又或者X向Y提供所需的信息,则称元素Y依赖于元素X。UML中,依赖关系使用一条带箭头的虚线表示,并从“Y”指向“X”。2.3.3 2.3.3 图图 名称名称功能功能类图描述系统中的类以及类之间的关系对象图类图的一个实例,显示某一时刻系统执行时的一个快照组合结构图显示结构化类或者协作的内部结构构件图描述构件类型的定义、内部结构和依赖部署图描述在各个节点的部署以及节点间的关系包图用于模型的组织管理,描述模型的层次结构用例图描述一组用例、参与者及他们之间的关系,组织系统行为顺序图描述对象之间的交互,重点强调对象间消息传递的时间次序通信图描述对象之间的交互,重点在于收发消息的对象的组织结构活动
46、图描述执行算法要进行的各项活动的执行流程状态机图描述一个特定对象的所有可能状态及其引起状态迁移的事件定时图描述对象之间的交互,重点在于定时交互概览图顺序图和活动图的混合UML2.x的正式图型2.3.42.3.4UMLUML规则规则 命名(name)范围(scope)可见性(visibility)完整性(integrity)执行(execution)可见性规则标准表示法Rose属性Rose方法public任一元素,若能访问包容器,就可以访问它+protected只有包容器中的元素或包容器的后代才能够看到它#private只有包容器中的元素才能够看得到它-package只有声明在同一个包中的元素才
47、能够看到该元素2.3.52.3.5公共机制公共机制 规格说明规格说明(specification)也称详述,用来对构造块的语法和语义进行文字叙述。在图形表示法的每个部分后面都有一个规格描述。这种构思使可视化视图和文字视图分离修饰修饰(adornment)为了更好的表示元素的特殊细节,可以把各种图形修饰符添加到元素的基本符号上,为模型元素增加语义。修饰2.3.52.3.5公共机制公共机制 通用划分通用划分(common division)型型-实例的划分实例的划分:描述了一个通用描述符和单个元素项之间的对应关系。通用描述符称为型元素,单个元素项是类目的实例。如类和对象、用例和用例实例如类和对象、
48、用例和用例实例、构件和构件实例、节点和节点实例等。接口和实现的分离接口和实现的分离:接口声明了一个合约,而实现则表示了对该合约的具体实施,它负责如实的实现接口的完整语义。2.3.52.3.5公共机制公共机制 扩展机制扩展机制(extensibility mechanism)构造型构造型:又称版型,用来创造新的构造块,但这个构造块必须从UML中已有的基本构造块上派生,解决特定问题。构造型可应用于所有类型的模型元素。UML中预定义的构造型:如接口、参与者是类的构造型用户自定义构造型Actor表示法自定义版型2.3.52.3.5公共机制公共机制 扩展机制扩展机制(extensibility mech
49、anism)标记值标记值(tagged value):用来为事物添加新特性。标记值的表示方法是用形如“tag=value”的字符串 约束约束(constraint):用某种文本语言中的陈述句表达模型元素的语义或限制。约束内容可使用由“”括起来的自由文本表示,也可以使用OCL(对象约束语言)精确定义。约束一般放在相关的元素旁边。2.4 UML2.4 UML体系结构与图体系结构与图 UMLUML体系结构体系结构“4+1”“4+1”视图视图每个视图从不同角度描述系统部署视图deployment view 设计视图design view进程视图process view实现视图Implementatio
50、n view 用例视图use case view2.4 UML2.4 UML体系结构与图体系结构与图 UMLUML图形分类图形分类结构图可用于对系统的静态方面进行建模行为图可用于对系统的动态方面进行建模2.5 UML2.5 UML中常用概念与面向对象概念的对应关系中常用概念与面向对象概念的对应关系 略复习思考题复习思考题1.什么是UML,它有哪些特点?2.请简要说明使用UML建模的目的以及建模的原则。3.请尝试绘制出类、用例、接口的图形符号。4.在UML中可以包含其它事物构造块,对模型进行组织和管 理的构造块是什么?它属于什么类型的事物构造块?5.在UML中定义了哪几种可见性规则?分别说明其含