版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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不同软件开发方法的比较分析一般计算机软件的发展过程第一阶段,这个阶段计算机的应用领域比较窄,主要是科学计算,其研究、开发的主要内容是顺序程序,对数据的考虑非常少。在这个阶段主要是考虑程序设计,而数据是依附于程序中的,注重对系统功能的实现,是典型的面向过程的软件开发方式。第二阶段,这个阶段计算机应用领域逐步拓宽,出现了大量的数据处理问题。这个阶段的软件特点是数据量非常大,并要求把这些数据存储在文件系统及数据库中以实现数据的独立和共享,而对数据的处理则相对简单。这个阶段主要考虑数据设计,而程序则是依附于数据的
3、,注重对系统数据的实现,是典型的面向数据的软件开发方式。1.1不同软件开发方法的比较分析常用软件开发方法面向过程的方法: 面向过程的方法主要考虑事务流和要完成的功能,数据被当作系统整体的一个部分来处理,常常是分析过程的一个副产品。其代表方法是结构化分析与设计方法.面向数据的方法: 面向数据的方法将数据作为一种独立的资源对待,数据是支持所有应用项目的基础,处理过程也是重要的,但是它们必须存取数据库中的数据。其代表方法是数据库设计方法。信息工程的方法:信息工程是在软件工程和数据库基础上形成和发展起来的,其方法采用的前提是数据位于现代数据处理系统的中心,数据类型不会发生很大的变化,因此这种方法是面向
4、数据的方法。1.1不同软件开发方法的比较分析组成系统部分的稳定程度系统各部分之间的接口极其不稳定功能模块非常不稳定各模块的先后顺序非常不稳定一直保持的数据则较稳定问题空间的对象最稳定 1.1不同软件开发方法的比较分析面向过程方法主要考虑事务流和需要完成的功能,它侧重于功能与功能抽象,而恰恰忽视了功能的主体对象,任何成功的系统在其生存期内不可避免地要经历多次变动,其中变动最多的是系统功能,而对象才是问题空间中最稳定的部分。由于面向过程的方法的基础建立在非常不稳定的系统功能上,因此面向过程的方法不能解决数据抽象和信息隐藏,不能很好地适应极度复杂系统的扩展。1.1不同软件开发方法的比较分析面向数据方
5、法建立在较为稳定的系统数据基础上,将数据作为一种独立的资源对待,对数据进行抽象。但面向数据的方法在对数据进行抽象时只注重对客观实体及实体属性的抽象,而客观实体不仅有属性还有操作属性的行为,因为最终每个数据处理系统都必须有数据与处理。由于面向数据方法在系统开发过程中很少考虑实体的行为处理,因而只是部分地实现了问题空间到解空间的映射。1.1不同软件开发方法的比较分析信息工程方法既是面向数据的方法,又具有面向过程的特征,是一种比较灵活的系统开发方法。但该方法在对面向过程和面向数据的综合过程中,在进行数据抽象时,对属性和操作属性的方法(行为)是分开考虑的,而没有把属性和方法当作一个不可分割的整体,而这
6、种属性和方法的封装对一个系统模型的稳定性有很大的影响,因此信息工程的方法也没能很好地解决数据抽象和信息隐藏问题,也是部分地实现了问题域空间到解空间的映射。1.1不同软件开发方法的比较分析面向对象方法的特点与人类习惯的思维方法一致稳定性好可重用性好较易开发大型软件产品可维护性好1.2 面向对象的基本概念对象面向对象方法进行软件开发时,需要区分三种不同含义的对象:客观对象、问题对象和计算机对象。 现实世界问题域计算机系统客观对象问题对象计算机对象抽象表示模拟1.2 面向对象的基本概念 对象的表示应包括属性与行为(数据与操作),且对象之间并非彼此孤立,可以通过通信互相交互,因此计算机对象可以表示为一
7、个三元组: 对象(接口,数据,操作) 即对象是面向对象系统中运行时刻的基本成分,它是属性和行为(数据和操作)的封装体,其中还包括和其他对象进行通信的设施。1.2 面向对象的基本概念可从不同的角度来考察对象的概念: 首先从宏观上看,对象是客观对象在计算机中的表示。 其次从微观上看,对象是由能对外通信的数据及其上的操作组成的封装体。 最后从形式描述上看,对象是具有输入和输出的有限自动机。 1.2 面向对象的基本概念对象具有如下特点:(1)自治性:对象的自治性是指对象具有一定的独立计算能力。 (2)封闭性:对象的封闭性指对象具有信息隐蔽的能力。 (3)通信性:对象的通信性指对象具有与其他对象通信的能
8、力 。(4)被动性:对象的被动性指对象的存在和状态转换都是由来自外界的某种刺激引发的。 (5)暂存性:对象的暂存性有两层含义。一是指对象的存在是可以动态地引发的,而不是必须在计算的一开始就存在;二是指对象随时可以消亡。 1.2 面向对象的基本概念类对象是系统中运行时刻的基本成分,它们在程序中又如何反映呢?事实上,系统中往往存在多个具有共同特性的对象,类刻划了一组具有共同特性的对象。类的作用可归纳为两种:一是作为对象的描述机制,刻划一组对象的公共属性和行为;二是作为程序的基本单位,它是支持模块化设计的设施,并且类上的分类关系是模块划分的规范标准。 1.2 面向对象的基本概念类有三个组成部分:数据
9、、操作和接口。数据刻划对象的状态,操作刻划对象的行为,类中所有数据均为私有,接口使操作对外可见。从类自身的内容看,它描述了一组数据及其上的操作,这些数据为类所私有,只有操作对外可见。类的概念可从下面四个方面去理解:(1)类是面向对象程序唯一的构造单位 (2)类是面向对象程序设计语言的基本成分 (3)类是抽象数据类型的具体实现 (4)类描写了一组相似对象的共同特性 1.2 面向对象的基本概念类与对象的关系 类是面向对象程序中的概念,而对象则是面向对象程序运行时的概念。程序由一组相关的类构成,所以类是静态的。程序的执行体现为一组相互通信的对象的活动,所以对象是动态的。类描述了一组相似对象的共同特性
10、,这一组相似的对象被称为该类的实例。类作为一种模式,对象是具有这种模式的具体例子。类与对象的关系很象类型与值的关系。事实上,完全可以把类理解成对象所具的类型,而把对象理解成是相应类作为类型的值。1.2 面向对象的基本概念消息 对象是一个相对独立的具有一定计算能力的自治体,对象之间不是彼此孤立而是互相通信的,面向对象程序的执行体现为一组相互通信的对象的活动。 面向对象计算中,每一计算任务都表示为一消息,实施计算任务的若干相关联的对象组成一个面向对象系统。提交计算任务即由任务提交者(系统外对象)向承担计算任务的面向对象系统中的某对象发送表示该计算任务的消息。计算的实施过程是面向对象系统接收到该消息
11、后所产生的状态变化过程,计算的结果通过面向对象系统中的对象向任务提交者回送的消息体现。 1.2 面向对象的基本概念消息一般由三个部分组成:(接受消息的对象,接受对象应采用的方法,方法所需要的参数)。计算任务通常先由某一对象受理(该对象接收到某种消息),然后,通过对象间的通信,计算任务就分散到各个有关对象中,最后,再由某些对象给出结果(通过发送消息)。对象可以动态地创建,创建后即可以活动。对象在不同时刻可处于不同状态,对象的活动是指对象状态的改变,它是由对象所接收的消息引发的。对象一经创建,就能接收消息,并向其他对象发送消息。对象接收到消息后,可能出现:(1)自身状态改变(2)创建新对象(3)向
12、其他对象发送消息。 1.2 面向对象的基本概念从对象之间的消息通信机制可反映出面向对象计算具有如下特性: (1)协同性:协同性表现在计算是由若干对象共同协作完成的。 (2)动态性:动态性表现在计算过程中对象依通信关系组成的结构会动态地改变,新对象会不断创建,老对象也会不断消亡。 (3)封闭性:封闭性表现在计算是由一组相对封闭的对象完成的。 (4)自治性:自治性表现在计算是由一组自治的对象完成的。 1.2 面向对象的基本概念方法方法反映对象的行为,是对象固有的动态表示,可审视并改变对象的内部状态。一个对象往往可以用若干方法表示其动态行为,在计算机中,方法也可称为操作。它的定义与表示包含两部分:一
13、是方法的接口,它给出了方法的外部表示,包括方法的名称、参数及结果类型;二是方法的实现,它用一段程序代码表示,这段代码实现了方法的功能。把所有对象抽象成各种类,每个类都定义一组方法,代表允许作用于该类对象上的各种操作。方法描述了对象执行操作的算法,响应消息的方法。 1.2 面向对象的基本概念继承 类之间的继承关系是现实世界中遗传关系的直接模拟,它表示类之间的内在联系以及对属性和操作的共享。继承是类与类之间的一种关系,它使程序人员可以在已有类的基础上定义和实现新类。继承是实现利用可重用软件构件构造系统的有效语言机制。继承能有效地支持软件构件的重用,使得当需要在系统中增加新特征时所需的新代码最少,并
14、且当继承和多态、动态绑定结合使用时,为修改系统所需变动的原代码最少。 1.2 面向对象的基本概念当类Y继承了类Z时,称Z是基类,Y是Z的子类。在这种情形下,Y由两部分组成,继承部分和新增部分。继承部分是从类Z继承得到的,新增部分是专为Y所编写的新代码。人教职员工学生教员行政人员工人研究生本科生1.2 面向对象的基本概念多态多态的一般含义是,某一论域中的元素可以有多种解释,程序设计语言中的一名多用即是支持多态的设施,继承机制是面向对象程序设计语言中所特有的另一种支持多态的设施。在面向对象的软件技术中,多态是指在类继承层次中的类可以共享一个行为的名字,而不同层次的类却各自按自己的需要实现这个行为。
15、当对象接收到发送给它的消息时,根据该对象所属的类动态地选择在该类中定义的行为实现。 1.2 面向对象的基本概念动态绑定 绑定是指结构成分与其有关性质的确定和关连。在程序设计语言中,通常是指变量与其值、过程调用与相应可执行代码的确定和关连。能在编译时刻完成的绑定称静态绑定,反之,则称动态绑定。动态绑定是与多态相关联的实现级的概念。既然变量或操作具有多态性,那么它们运行时的实际形态就无法在编译时刻确定。事实上,对多态变量来说,编译时刻只能确定其多态变化的范围(即动态类型集)。对多态操作来说,实现该操作的实际代码只能在运行时刻确定。1.3 面向对象的分析、设计与实现面向对象分析与设计方法迅速发展的重
16、要因素软件领域中面向对象方法的基本概念经历了几十年的成长道路,人们的注意力逐渐从编码问题转移到设计与分析问题构造系统的基本技术变得更加有力,设计思想受预想的如何编码的思想影响,而编码思想受人们可用的程序设计语言的强烈影响。现代软件系统规模更大,更复杂也更多变,传统的软件分析与设计方法难以满足要求,而面向对象的分析与设计方法将导致比较稳定的系统。另外现代软件系统更注重系统用户界面的开发,对于此类系统采用面向对象方法进行分析、设计和编码是一种非常自然的途径。现代软件系统构造比七十年代和八十年代更加面向领域,对功能复杂性的关心比以前少,数据建模的优先程度较为适当,问题域模型的理解及系统职能处于较高的
17、优先地位。1.3 面向对象的分析、设计与实现面向对象分析对象模型。对象模型表示静态的、结构化的系统的“数据”性质。它是对模拟客观世界实体的对象以及对象彼此间的关系的映射,描述了系统的静态结构。面向对象方法强调围绕对象而不是围绕功能来构造系统。对象模型为建立动态模型和功能模型,提供了实质性的框架。在建立对象模型时,人们的目标是从客观世界中提炼出对具体应用有价值的概念。动态模型。动态模型表示瞬时的、行为化的系统的“控制”性质,它规定了对象模型中的对象的合法变化序列。功能模型。功能模型表示变化的系统的“功能”性质,它指明了系统应该“做什么”,因此更直接地反映了用户对目标系统的需求。1.3 面向对象的
18、分析、设计与实现面向对象的设计准则模块化抽象信息隐藏弱耦合强内聚可重用1.3 面向对象的分析、设计与实现面向对象设计方法的具体分析步骤问题域部分的设计人一机界面部分的设计任务管理部分的设计数据管理部分的设计1.3 面向对象的分析、设计与实现面向对象的实现任务是具体实现软件功能,包括每个对象的内部功能实现、确立对象的哪些处理功能应在哪些类中进行描述、确定并实现系统的界面、输出形式及其它控制机制等,OOI可以采用不同的面向对象程序设计语言来实现。面向对象程序设计方法的主要特征识认性:系统中的基本构件可识认为一组离散的、可以识认的相异对象。类别性:系统中具有相同数据结构和行为的所有对象组成一类。多态
19、性:论域中的同一元素可以有多种解释。继承性: 在基于层次关系的不同的类中共享属性和操作。1.4 UML与面向对象的系统开发软件工程中的分析与设计软件工程包括技术和管理两方面的内容,是技术与管理紧密结合所形成的工程学科。所谓管理就是通过计划、组织和控制等一系列活动,合理地配置和使用各种资源,以达到既定目标的过程。通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称为范型。软件工程方法学包含3个要素:方法、工具和过程。其中,方法是完成软件开发的各项任务的技术方法,回答“怎样做”的问题,工具是为运用方法而提供的自动的或半自动的软件工程支撑环境,过程是为了获得高质量的软件所需要完成的
20、一系列任务的框架,它规定了完成各项任务的工作步骤。目前使用得最广泛的软件工程方法学,分别是传统方法学和面向对象方法学。1.4 UML与面向对象的系统开发传统方法学传统方法学也称为生命周期方法学或结构化范型。它采用结构化技术(结构化分析、结构化设计和结构化实现)来完成软件开发的各项任务,并使用适当的软件工具或软件工程环境来支持结构化技术的运用。这种方法学把软件生命周期的全过程依次划分为若干个阶段,然后顺序地完成每个阶段的任务。采用这种方法学开发软件的时候,从对问题的抽象逻辑分析开始,一个阶段一个阶段地顺序进行开发。前一个阶段任务的完成是开始进行后一个阶段工作的前提和基础,而后一阶段任务的完成通常
21、是使前一阶段提出的解法更进一步具体化,加进了更多的实现细节。每一个阶段的开始和结束都有严格标准,对于任何两个相邻的阶段而言,前一阶段的结束标准就是后一阶段的开始标准。1.4 UML与面向对象的系统开发所有分析方法需要遵守下列准则:必须理解并描述问题的信息域,根据这条准则应该建立数据模型。必须定义软件应完成的功能,根据这条准则应该建立功能模型。必须描述作为外部事件结果的软件行为,根据这条准则应该建立行为模型。1.4 UML与面向对象的系统开发数据模型结构化方法采用实体联系图来描绘数据对象及数据对象之间的关系,是用于建立数据模型的图形。数据模型中包含3种相互关联的信息:数据对象、数据对象的属性及数
22、据对象彼此间的相互连接的关系。ER图被广泛使用是因为它可以提供要解决问题的总体概况,还因为当问题的需求发生变化时,该视图是相对稳定的,因此ER图更可能在需求过程的早期用于建模问题。但是ER表示法的简单性具有欺骗性,事实上在实践中有效地使用ER建模表示法是相当困难的,即使只有三个主要的建模结构,在什么样的细节层次上建模具体的问题也并不是显而易见的。并且ER图不能有效地表示实体的动态行为,因此难以建立具有复杂结构和行为的模型。1.4 UML与面向对象的系统开发功能模型结构化方法采用数据流图来描绘当数据在软件系统中移动时被变换的逻辑过程,指明系统具有的变换数据的功能,因此,数据流图是建立功能模型的基
23、础。数据流图的优势之一是提供关于被提议系统的高层功能的、以及各种加工之间的数据依赖关系的一个直观模型。但是对于不太熟悉正在建模问题的软件开发人员来说,数据流图是含糊不清的,特别对于需要处理细节描述的加工处理,数据流图并不适合描述。1.4 UML与面向对象的系统开发行为模型结构化方法采用状态转换图:指明了作为外部事件结果的系统行为。为此,状态转换图描绘了系统的各种行为模式和在不同状态间转换的方式。状态转换图是行为建模的基础。在需求分析过程中应该建立起软件系统的行为模型,状态转换图通过描绘系统的状态及引起系统状态转换的事件,来表示系统的行为。此外,状态图还指明了作为特定事件的结果系统将做哪些动作。
24、1.4 UML与面向对象的系统开发面向对象方法学把对象作为融合了数据及在数据上的操作行为的统一的软件构件。也就是说,用对象分解取代了传统方法的功能分解。把所有对象都划分成类(class)。每个类都定义了一组数据和一组操作,类是对具有相同数据和相同操作的一组相似对象的定义。数据用于表示对象的静态属性,是对象的状态信息,而施加于数据之上的操作用于实现对象的动态行为。按照父类(或称为基类)与子类(或称为派生类)的关系,把若干个相关类组成一个层次结构的系统。在类等级中,下层派生类自动拥有上层基类中定义的数据和操作,这种现象称为继承。对象彼此间仅能通过发送消息互相联系。1.4 UML与面向对象的系统开发
25、面向对象方法学开发软件的过程,是一个主动地多次反复迭代的演化过程。面向对象方法在概念和表示方法上的一致性,保证了在各项开发活动之间的平滑(即无缝)过渡。面向对象方法普遍进行的对象分类过程,支持从特殊到一般的归纳思维过程;通过建立类等级而获得的继承性,支持从一般到特殊的演绎思维过程。面向对象的分析面向对象设计面向对象的编程面向对象的测试面向对象的维护1.4 UML与面向对象的系统开发常用面向对象分析与设计方法的比较Booch的分析与设计方法Coad与Yourdon的分析与设计方法Jacobson的分析与设计方法Rumbaugh的分析与设计方法Wirfs-Brock的分析与设计方法1.4 UML与
26、面向对象的系统开发共同的特征集在面向对象分析方面,这些方法都包含下列内容:类和类层次的表达、对象联系模型的建立、对象行为模型的推导。并且执行下列通用步骤:获取OO系统的客户需求、使用基本需求作为指南选择类和对象、为每个系统对象表示属性和操作、定义类组织结构和层次、建立对象联系模型、基于用例和情景审核OO分析模型。在面向对象设计方面,其处理过程可表示为由四层构成的金字塔:基础层注重实现主要系统功能的子系统设计、类层说明总的对象体系结构和实现系统所需的类层次、消息层指示对象间的协同如何实现、职责层标识刻划每个类的属性和操作。并且执行下列步骤:按照某种可实现的方式描述每个子系统、对象设计、消息设计、
27、审核设计模型且必要时循环。1.4 UML与面向对象的系统开发面向对象方法开发过程中概念的不一致由于存在数据性质的不同,因而对不同性质的数据将采用不同的方法与不同的工具由于不同方法之间对面向对象概念的理解可能不同,因而会引起方法间概念上的差异。由于不同的工具所支持的面向对象概念可能不同,因而引起实现工具间概念的差异。由于选择的面向对象方法可能与支持这种方法的工具间存在概念上的差异由于所选择的面向对象方法与基本面向对象概念可能存在理解上的差异由于所选择的面向对象工具所支持的概念与基本面向对象概念可能存在理解上的差异1.4 UML与面向对象的系统开发统一建模语言UML横向分析三种代表性的面向对象建模
28、语言: 三种面向对象建模语言均是采用核心的面向对象概念进行模型描述,都可以用来建立面向对象的系统模型,且语言有很大程度的雷同,但其着重点各有千秋,在概念的理解和应用上存在一定的差异,不存在彼此含盖或替代的地方,不存在一种建模语言包含所有其它建模语言优点的现象。纵向分析三种代表性的面向对象建模语言: 一般软件系统的开发需要经过需求分析、系统分析、系统设计、系统实现、测试验证、配置和部署等整个过程,上述三种面向对象建模语言要么侧重于系统设计,要么侧重于软件开发的分析、设计和实现,要么侧重于需求分析和测试验证,没有一种面向对象建模语言可以覆盖一个软件系统的整个开发过程。1.4 UML与面向对象的系统
29、开发统一建模语言UML横向分析UML: UML融合了Booch、OOSE和OMT方法中的基本概念,而且这些基本概念与其他面向对象技术中的基本概念大多相同,因此UML必然策划能够为这些方法及其他方法的使用者乐于采用的一种简单一致的建模语言。纵向分析UML: UML通过定义用例图、静态图、交互图、行为图和实现图支持需求分析、系统分析、系统设计、系统实现、测试验证、配置和部署等整个软件开发过程。在需求分析阶段,可以用用例来捕获用户需求。通过用例建模,描述对系统感兴趣的外部角色及其对系统的功能要求。1.4 UML与面向对象的系统开发统一建模语言(UML)的主要特点可以归结为三点:以用例为引导,以主结构
30、为核心。UML吸取了面向对象技术领域中其他流派的长处,其中也包括非OO方法中的影响UML符号表示的各种方法的图形表示,删掉了大量易引起混乱的、多余的和极少使用的符号,也添加了一些新符号。UML在演变过程中还提出了一些新的概念。1.4 UML与面向对象的系统开发统一建模语言UML的重要内容可以由五类图来定义静态图用例图交互图行为图实现图1.4 UML与面向对象的系统开发在软件开发过程中使用UML运用UML进行面向对象的系统分析和设计识别系统的用例和角色进行系统分析并抽象出类设计系统,并设计系统中的类及行为需求分析分析设计构造测试1.4 UML与面向对象的系统开发UML与Rose的有效结合Rose
31、工具主要特点较为全面的支持UML 建模标准Rose 支持多种语言的代码生成及双向工程,实现代码和模型的互相转换,保证模型和代码的一致性支持关系数据库建模生成模型文档,支持模型的Web发布Rose提供的控制单元和模型集成功能允许进行团队开发,并对各个开发人员的模型进行比较或合并操作等1.5 UML的应用领域UML应用领域信息系统技术系统嵌入式实时系统分布式系统系统软件商业系统复习思考题1、什么是面向对象方法学,与其它软件开发方法相比较,它有什么特点?2、什么是对象,与传统的数据有何异同?3、什么是类,继承和多态?4、什么是模型?开发软件为什么要建模?5、简述面向对象分析的基本过程。6、简述面向对
32、象设计的基本过程。7、简述面向对象程序设计的基本特征。8、简述常用面向对象分析和设计方法的异同。9、简述UML与面向对象分析与设计的关系10、简述面向对象、UML与Rose之间的有机结合特性。第2章UML概述第2章 UML概述2.1 什么是UMLUMLUnified Modeling Language(统一建模语言)UML的特性Unified:工业标准, 组合了业内最著名的面向对象软件建模方法Modeling:建模专用Language:可视化建模语言,一种图形表示法2.1 什么是UML发展历程与现状UML三剑客 1. OMT (James Rumbaugh) 2. The Booch meth
33、od (Grady Booch) 3. OOSE (Ivar Jacobson)2.1 什么是UML发展历程UML现状应用领域逐渐扩展:软件密集型系统、嵌入式系统建模、业务建模、工作流程建模为基于MDA的“产生式编程”提供技术支持1995年OOPSLA国际会议 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月
34、 UML1.01996年6月和10月 UML0.9 & UML0.91其他方法 Booch93 OMT-2OOSEUML合作伙伴专家意见方法学大战阶段统一阶段标准化阶段2.2 为什么学习UML建模什么是模型模型是对现实世界的简化和抽象模型是沟通的手段为什么要建模 例 盖房子:简陋小平房 与盖摩天大楼 目的:建模可以帮助开发者更好的理解正在开发的系统有助于开发者按照实际情况或所需样式对系统进行可视化;规范并约定系统的结构或行为;给出一个指导系统构造的模板;对开发者做出的决策进行文档化;使客户、涉众、开发人员之间对软件有更好的共识。2.2 为什么学习UML建模建模原则要认真选择模型每种模型可以在不
35、同的精度级别上表示。开发人员应根据需要在不同的时间以不同的详细程度对系统进行可视化。切合实际孤立的模型或视图是不完整的,对每个重要的系统最好用一组几乎独立的模型从多个视角去逼近。2.2 为什么学习UML建模UML可以建立什么模型从整个软件开发的过程看:业务模型、需求模型、分析模型、设计模型、进程模型、实现模型、部署模型、测试模型等从模型的应用方式或者正式程度来看:草图、蓝图和编程语言2.3 UML概念模型构造块规则公共机制事物关系图命名范围可见性详述修饰通用划分完整性执行扩展机制UML2.3.1 事物-结构事物结构事物(structural thing):UML中的名词,通常是模型的静态部分,
36、描述概念元素或物理元素。类:对一组具有相同属性、操作、关系和语义的对象的抽象对象是类的一个实例 类对象2.3.1 事物-结构事物接口(interface) :一个服务操作集合,每个操作描述了类或构件的一个服务。主动类(active class):其对象拥有一个或多个进程或线程的类。UML引入主动类的目的是因为在实际开发中需要一些类能够起到启动控制活动的作用。 UML1.X表示法 UML2.X表示法 主动类接口2.3.1 事物-结构事物用例(use case):用例定义了一组用例实例,其中每个实例都是系统执行的一系列动作,这些动作将对特定参与者产生可见的有价值的结果。简单的说,用例用来表示系统向
37、用户提供的功能。对于某个用例的实现就可以表示为一个协作 协作定义了一个交互,它是由一组共同工作以提供某种协作行为的角色和其他元素构成的一个群体 用例2.3.1 事物-结构事物构件(component):或称组件,是系统设计的一个模块化部分,它隐藏了内部实现并对外提供一组外部接口。在一个系统中,实现相同接口的构件可互相替换。节点(node):运行时存在的物理对象,代表一种计算资源,通常具有存储空间和执行能力,例如一台打印机,服务器等等。 UML1.x 表示法UML2.x 表示法构件节点2.3.1 事物-行为事物行为事物(behavioral thing):UML中的动词,是模型的动态部分,代表了
38、跨越时间和空间的行为。交互(interaction):交互描述了在特定语境中为了完成某个任务,消息在一组对象之间是如何交换的。状态机:一个对象或交互在其生命周期内响应事件所经历的状态序列以及对这些事件的响应。活动:对行为的说明,它描述了计算过程执行的步骤序列。 消息状态活动2.3.1 事物-分组事物分组事物(grouping thing)是UML模型的组织部分,分组事物只有一种,称为包。软件系统中包含大量的类,因此存在众多的结构事物和行为事物。可以把包看作一个个的盒子(即容器),然后将这些结构事物和行为事物放入不同的盒子里进行整合。包的变体:如框架(或称视图)、模型、子系统等。 包2.3.1
39、事物-注释事物注释事物(annotational thing)UML模型中的“注释语句”,用来描述、说明或标注模型中的其他元素,这就是注释事物。UML中,主要的注释事物称为注解(note)。注解必须依附于一个或一组元素之上才有意义。 注解2.3.2关系 种类变种表示法关键字或符号种类变种表示法关键字或符号抽象派生依赖关系derive导入 私有依赖关系access显现manifest公有import实现实现关系虚线加空心三角信息流flow精化依赖关系refine包含并merge跟踪trace许可permit关联关联关系实线协议符合未指定绑定依赖关系bind(参数表)替换依赖关系substitut
40、e部署deploy使用调用call扩展Extendextend(扩展点)创建create扩展extension扩展关系实线加实心三角实例化instantiate泛化泛化关系实线加空间三角职责responsibility包含依赖关系include发送sendUML模型关系种类2.3.2关系 关联(association)关系关联关系表明两个对象之间存在语义上的联系。关联关系提供了通信路径。特殊关联关系:聚合(aggregation)和组合(composition)聚合和组合都表示两个类之间“整体-部分”的关系;菱形都指向整体类差别:聚合中的部分可以独立于整体存在,而组合中的整体销毁时部分也将不复
41、存在。2.3.2关系 泛化(generalization)关系泛化关系定义了一般元素(父元素)和特殊元素(子元素)之间的分类关系。子元素可以共享父元素的结构和行为。实现(realization)关系实现是规格说明和它的实现之间的关系,它表示不继承结构只继承行为。出现在两个地方:一种是在接口和实现接口的类或构件之间;另一种是在用例和实现它的协作之间。2.3.2关系 依赖(dependency)关系对于两个元素X、Y,如果元素X发生变化将会引起元素Y的变化,又或者X向Y提供所需的信息,则称元素Y依赖于元素X。 UML中,依赖关系使用一条带箭头的虚线表示,并从“Y”指向“X”。2.3.3 图 名称功
42、能类图描述系统中的类以及类之间的关系对象图类图的一个实例,显示某一时刻系统执行时的一个快照组合结构图显示结构化类或者协作的内部结构构件图描述构件类型的定义、内部结构和依赖部署图描述在各个节点的部署以及节点间的关系包图用于模型的组织管理,描述模型的层次结构用例图描述一组用例、参与者及他们之间的关系,组织系统行为顺序图描述对象之间的交互,重点强调对象间消息传递的时间次序通信图描述对象之间的交互,重点在于收发消息的对象的组织结构活动图描述执行算法要进行的各项活动的执行流程状态机图描述一个特定对象的所有可能状态及其引起状态迁移的事件定时图描述对象之间的交互,重点在于定时交互概览图顺序图和活动图的混合U
43、ML2.x的正式图型2.3.4UML规则 命名(name)范围(scope)可见性(visibility)完整性(integrity)执行(execution)可见性规则标准表示法Rose属性Rose方法public任一元素,若能访问包容器,就可以访问它+ protected只有包容器中的元素或包容器的后代才能够看到它# private只有包容器中的元素才能够看得到它- package只有声明在同一个包中的元素才能够看到该元素2.3.5公共机制 规格说明(specification)也称详述,用来对构造块的语法和语义进行文字叙述。在图形表示法的每个部分后面都有一个规格描述。这种构思使可视化视图
44、和文字视图分离修饰(adornment)为了更好的表示元素的特殊细节,可以把各种图形修饰符添加到元素的基本符号上,为模型元素增加语义。修饰2.3.5公共机制 通用划分(common division)型-实例的划分:描述了一个通用描述符和单个元素项之间的对应关系。通用描述符称为型元素,单个元素项是类目的实例。如类和对象、用例和用例实例、构件和构件实例、节点和节点实例等。接口和实现的分离:接口声明了一个合约,而实现则表示了对该合约的具体实施,它负责如实的实现接口的完整语义。2.3.5公共机制 扩展机制(extensibility mechanism)构造型:又称版型,用来创造新的构造块,但这个构
45、造块必须从UML中已有的基本构造块上派生,解决特定问题。构造型可应用于所有类型的模型元素。UML中预定义的构造型:如接口、参与者是类的构造型用户自定义构造型Actor表示法自定义版型2.3.5公共机制 扩展机制(extensibility mechanism)标记值(tagged value):用来为事物添加新特性。标记值的表示方法是用形如“tag=value”的字符串 约束(constraint):用某种文本语言中的陈述句表达模型元素的语义或限制。约束内容可使用由“ ”括起来的自由文本表示,也可以使用OCL(对象约束语言)精确定义。约束一般放在相关的元素旁边。2.4 UML体系结构与图 UM
46、L体系结构“4+1”视图每个视图从不同角度描述系统部署视图deployment view 设计视图design view进程视图process view实现视图Implementation view 用例视图use case view2.4 UML体系结构与图 UML图形分类结构图可用于对系统的静态方面进行建模行为图可用于对系统的动态方面进行建模2.5 UML中常用概念与面向对象概念的对应关系 略复习思考题1.什么是UML,它有哪些特点?2.请简要说明使用UML建模的目的以及建模的原则。3.请尝试绘制出类、用例、接口的图形符号。4.在UML中可以包含其它事物构造块,对模型进行组织和管 理的构造
47、块是什么?它属于什么类型的事物构造块?5.在UML中定义了哪几种可见性规则?分别说明其含义。6.UML提供了哪几种扩展机制?其中可以创造新的构造块,解决某个领域特定问题的扩展机制是什么?7.UML2.x中定义了13种图,可划分为静态模型和动态模型两类。请指出两类模型中分别包括哪些图,并简要说明这些图的作用。8.约束有哪两种表示方法?9.在RUP“4+1”视图中,1代表了( ),它是核心视图。 A. 设计视图 B. 用例视图 C. 静态视图 D. 实现视图第3章RationalRose简介第3章RATIONALROSE简介3.1.1RationalRose的功能与特点Rational Rose是
48、目前使用最广泛的可视化建模工具之一。主要有以下特点:较为全面的支持UML 建模标准;Rose 支持双向工程,实现代码和模型的互相转换,保证模型和代码的一致性;支持关系数据库建模;生成模型文档,支持模型的Web发布;Rose提供的控制单元和模型集成功能允许进行团队开发。3.1.2RationalRose的获取与安装略3.2RationalRose的使用应用程序界面-启动Rose3.2.1 应用程序界面2、Rose主界面浏览器绘图工具栏文档窗口日志窗口绘图窗口标准工具栏系统菜单3.2.2 RationalRose视图的组织方法用例视图组织方法:用例视图中以分析模型为主,设计模型为辅。业务(分析)模
49、型和系统(分析)模型逻辑视图的组织方法领域模型(Business Object Model)分析模型(Analysis Model)设计模型(Design Model)其他视图的组织方法3.2.2 RationalRose视图的组织方法模型创建流程3.2.3 RationalRose建模基本操作模型的创建与保存导入导出模型发布模型图的设计删除模型元素或关系:浅删除和深度删除3.2.4 RationalRose建模辅助操作为模型添加文件和URL设置全局选项使用控制单元使用模型集成器复习思考题1.RationalRose的主界面有哪几部分组成。2.简要说明Rose中逻辑视图一般包含哪些内容,是如何
50、组织的。3.在Rose中,删除模型元素时有几种操作方式,它们之间有什么不同?第4章用例和用例图第4章 用例和用例图4.1 概述 用例模型是表达系统外部事物与系统之间交互的可视化工具。当用例模型在外部事物面前出现时,它捕获到系统、子系统或类的行为,将系统功能划分成对系统用户有用的需求。交互部分或功能被表示成用例。 用例图展示了系统边界、参与者(系统外部事物)、用例以及它们之间的关系,描述了参与者与系统交互的情况以及系统的功能。4.2 参与者参与者(actor):在系统外部与系统交互的人或事物,它以某种方式参与系统内用例的执行。位于系统(边界)之外表示的是人或事物与系统交互时所担任扮演的角色参与者
51、不仅可以由人承担,还可以是其他的外部系统,甚至是时间等。系统实际运作中,一个实际用户可能对应系统的多个参与者。如,一个人可以既是一个商店的售货员又是顾客4.2 参与者寻找和确定参与者 获取用例前,首先要确定系统的参与者。询问以下问题帮助确定参与者:谁使用系统的主要功能?谁改变系统的数据?谁从系统获取数据?谁需要系统的支持以完成日程工作任务?谁负责支持和维护系统?系统需要控制哪些外部资源或硬件设备?系统需要和哪些外部系统交互?谁对系统运行结果感兴趣?4.2 参与者参与者之间的关系 参与者实际上是版型化的类,因此多个参与者之间可以具有与类之间相同的关系。用例图中,使用泛化关系来描述多个参与者之间的
52、公共行为。参与者的泛化订餐系统参与者泛化4.3 用例定义 用例定义了一组用例实例,其中每个实例都是系统执行的一系列动作,这些动作可以对参与者产生有一定价值的可观察到的结果。采用用例进行需求分析的特点:1、用例由一组用例实例组成。用例实例也称为场景,是参与者和系统之间一系列特定的活动和交互。场景是使用系统的一个特定情节或用例的一条执行路径。 例 商场购物“付款”的用例场景一:使用现金成功付款场景二:银行卡付款被拒绝,付款失败。4.3 用例采用用例进行需求分析的特点:2、用例站在系统外部察看系统功能,而不考虑系统内部对该功能的具体实现。3、用例描述了用户提出的一些可见需求,对应一个具体的用户目标,
53、即用例的执行结果对参与者有意义。4、用例是对系统行为的动态描述,属于动态建模部分此外,用例不是全部的系统需求,只是功能性的需求。4.3 用例发现用例 用例的来源是参与者对系统的期望,所以识别用例最好的方法是从客户的需求入手。识别用例过程中,以下的问题可以帮助发现用例:参与者为什么要使用该系统?参与者打算在这个系统里做些什么事情?参与者是否会在系统中创建、修改、删除、访问、存储数据?如果是,如何来完成这些操作的? 参与者是否会将外部的某些事件通知给该系统? 系统是否会将内部的某些事件通知该参与者?4.4 用例间的关系泛化关系4.4 用例间的关系包含关系(Include)一个用例(基用例,基本用例
54、)可以包含其他用例(包含用例)具有的行为,并把它所包含的用例行为作为自身用例的一部分,这被称为包含关系。用例是一个事件流的集合,当某个事件流片段在多个用例中出现时,可以将这个事件流片段抽取出来,放在一个单独的包含用例中,简化基用例的描述。4.4 用例间的关系扩展关系(Extend)扩展关系表示基本用例在由扩展用例间接说明的一个位置上隐式的合并了另一个用例(扩展用例)的行为。基本用例不知道扩展用例的任何细节,没有扩展用例,基本用例是完整的。只有在特定条件下,它的行为可以被扩展用例的行为扩展,因此扩展关系处理事件流的异常或者可选事件。4.4 用例间的关系关联关系:参与者与用例之间的关系用例图中,关
55、联关系描述参与者与用例之间的关系,表示参与者和用例之间的通信。如果参与者启动了用例,箭头指向用例;如果参与者利用了用例提供的服务,箭头指向参与者;如果二者是互动的,则是直线。4.5 边界“系统边界” 用来定义系统的界限,系统用例都置于其中,参与者置于边界外。边界决定了抽象的层次。4.6 事件流与用例描述 用例描述的是一个系统做什么的信息,并不说明怎么做。用例是对使用场景进行抽象的总结,形成一组事件流。1、事件流前置条件:用例执行前系统和参与者应处于做什么状态。后置条件:用例结束后系统处于什么状态。基本事件流:对用例中常规、预期路径的描述,是大部分的时间所遇到的场景。扩展事件流:对一些异常情况、
56、选择分支进行描述。4.6 事件流与用例描述2、用例描述用例编号用例唯一标识符,通常格式为UCxx,在文档别处可以用标识符来引用该用例用例名称表明用户意图或用例的目标,一般是动词短语用例描述对用例目标的一个概要性的描述参与者列出该用例的参与者,尤其是主要参与者前置条件即启动该用例所应该满足的条件。后置条件即该用例完成之后,将执行什么动作。主要流程(基本事件流)步骤活动1在这里写出触发事件到目标完成以及清除的步骤。2(其中可以包含子事件流,以子事件流编号来表示)替代流程(扩展事件流)表示是对1的扩展,其中应说明条件和活动1b(其中可以包含子事件流,以子事件流编号来表示)子事件流对多次重复的事件流可
57、以定义为子事件流,这也是抽取被包含用例的地方。规则与约束对该用例实现时需要考虑的业务规则、非功能需求、设计约束等用例描述模板4.6 事件流与用例描述2、用例描述常见用例描述错误:只描述系统的行为,没有描述参与者的行为只描述参与者的行为,没有描述系统的行为在用例描述中就设定对用户界面的设计要求描述过于冗长编写用例描述应遵循以下几点:使用简单的语法,主语明确,语义易于理解;在事件流描述中让读者直观地了解是参与者在控制还是系统在控制;从第三者观察的角度指出参与者的动作,以及系统的响应;显示参与者的意图而非动作显示过程向前推移,每一步都有前进感;4.7 用例图建模要点构建结构良好的用例为系统和部分系统
58、中单个的、可标识的、合理的原子行为命名。将多个用例的公共的行为抽取出来放到一个被包含用例中。对于变化部分,将其抽取出来,放到扩展用例中。清晰的描述事件流。构建结构良好的用例图:摆放元素时应避免交叉线4.7 用例图建模要点根据系统实际情况控制用例的粒度用例定义2 用例是系统、子系统或类和外部参与者交互的动作序列的说明,包括可变的动作序列和会出现异常的动作序列。层次化用例图考虑在项目过程中根据不同的阶段,使用不同粒度和级别的用例。访客用例图4.8 用例图建模实例-实例分析:网上书店 1、识别参与者会员、访客(非会员)管理员:分为商品管理员、订单管理员和系统管理员2、识别用例并绘制用例图会员和访客属
59、于顾客购书子系统管理员属于书店内部管理子系统4.8 用例图建模实例-实例分析:网上书店 会员用例图4.8 用例图建模实例-实例分析:网上书店 书店管理员用例图4.8 用例图建模实例-实例分析:网上书店 3、用例描述(1)细化用例描述-搭框架用例名称:搜索图书概述:用户根据关键字搜索图书前置条件:无事件流: 基本事件流 扩展事件流后置条件: 无4.8 用例图建模实例-实例分析:网上书店 3、用例描述(2)细化用例描述-填血肉事件流: 基本事件流 1 用户点击“搜索图书”,用例开始。 2 系统显示搜索图书商品界面,提示用户输入商品关键字。 3 用户输入图书关键字,选择提交。 4 系统访问数据库,根
60、据关键字查询相关的图书商品信息, 并把查询出的图书信息显示搜索图书页面。 5 用例结束。 扩展事件流 4a) 系统未查出所要商品相关信息,显示提示信息,用例 结束。 4b) 系统查出用户输入的关键字为空,显示提示信息并返 回基本事件流2。4.8.2 在rose中创建用例图创建用例图工具栏介绍添加参与者与用例添加用例和参与者之间的关系添加用例之间的关系复习思考题1.用例图中的参与者是什么,它属于系统范围吗?2.用例是什么,它有哪些特点?3.用例之间的包含和扩展关系是什么,二者有何区别?请举例说明4.下列是一个ATM系统中可能的术语,哪些是有效用例,哪些不是?为什么? 支持跨行业务 插入卡片 输入
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年安装工程师专属劳动协议例本一
- 2024年度企业正式劳动协议范本版B版
- 2024年企业社会责任履行监督合同
- 2024年工程项目联合投标合作具体合同版B版
- 2024年外架工程劳务分包标准协议一
- 2024全职无固定期限劳动合同范本
- 2024年度一一互联网医疗服务平台合作协议
- 2024年定制:跨境电子商务平台运营合作合同
- 2024年专业劳务工协议样本版
- 2024年广告宣传合作协议范本版B版
- 2022年高考语文备考之考场中的曾巩文言文汇编
- 电声元器件项目创业计划书_参考范文
- 玩具专业英语
- 肺胀中医病历
- 风电场工作安全培训ppt课件
- 肌腱移位重建伸腕伸指功能ppt课件
- 行政事业单位财务人员三年工作总结
- 工程结算汇总表及工程结算明细表(范本)
- 同济大学 工程制图 习题解答
- 金融英语(术语)
- 天王补心丸和柏子养心丸
评论
0/150
提交评论