1、第14 常用建模工具,本章内容,14.1 UML建模介绍 14.2 Rational Rose建模工具介绍 14.3 使用Rational Rose建模 14.4 EclipseUML建模工具介绍与使用,14.1 UML建模介绍,1、面向对象方法的出现和发展目前所开发的信息系统在功能等方面比以前变得很复杂且灵活多变,且系统的边界也更加难以界定。复杂性、多样性、相互关联性是各个信息系统的重要特征。为了解决这一问题,面向对象的方法应运而生。对象是客观世界的抽象,客观世界任何事物都是“对象”。面向对象方法简称为OO( Object Oriented )方法,它由面向对象分析(Object Orien
2、ted Analysis,OOA)、面向对象设计 (Object Oriented Design,OOD)、面向对象程序设计( Object Oriented Programming ,OPP)组成。,14.1.1 面向对象方法基础,2、面向对象的一些概念对象:是一些属性及操作行为的封装体,它是空间问题中一些东西的抽象。它具有一组属性和操作。属性的值表示对象的状态,操作是对象的行为。类:是对一组几乎相同的对象的描述。从一组对象中抽象出公共数据与方法,波那个将它们保存在一类中。类是面向对象功能的核心。类是创建对象的框架,而对象是类的实例。同一类中的对象也根据其他相似特征而分成子类,因此类具有层次
3、特征,子类可以继承父类的所有数据和操作。,属性:是以由静态的数据组成,用以描述类和对象所固有的特征,是类和对象的性质,并以此来区分不同类和对象。 抽象:抽象是人们认识客观世界复杂性的一种基本方法。抽象是事物或现象的简括描述,突出事物或现象之间的共性,而暂不考虑它们之间的差异。封装:封装即信息隐藏。封装使一个对象形成两个部分:接口部分和实现部分。对用户来说,接口部分是可见的,而具体实现部分则不可见。方法:是驻留在对象中的过程。方法是当对象接受消息时执行的操作,方法还能发送消息至其他请求动作或信息的对象。,继承:指对象继承它所在类的结构。体现父类和子类之间的共享机制。子类可以继承其父类的特性,同时
4、可以有自己的新特性和新方法。其作用在于信息组织和分类,简化对象及类的创建工作量。 消息与多态:完成一件事情的方法就是向有关对象发送消息,消息体现了对象的自治性和独立性。多态指不同事物具有不同表现形式的能力,多态机制使具有不同内部结构的对象可以共享相同的外部接口,不同对象接到同一个消息可以产生完全不同的结果。,3、面向对象方法与传统方法 (问答题:面向对象方法与传统方法比较有哪些优势?)1)与传统方法相比,面向对象具有显著的优点。它解决了信息系统工程中的两个主要问题 :软件维护的复杂性和提高生产率。2)它所表现出来的灵活性和各种性能使软件开发的风险降低、知识重用度提高。3)面向对象方法更接近自然
5、,实现更迅速,交互性更好,易于维护。4)面向对象分析法是一种全新的、不同于面向过程的分析方法,它更侧重于建模而不是分析流程。,4、面向对象方法的基本过程 (问答题:简述面向对象方法的基本过程。)面向对象方法的基本过程一般由4个步骤组成:1)标识和定义对象及类;2)组织类间的关系;3)在类中构造框架;4)建立可重用的类库和应用程序框架。,5、面向对象的系统分析设计方法将面向对象方法引入到软件开发的分析设计阶段的主要原因:1)面向对象方法表现出来的强大功能使得它的应用日渐广泛;2)当前的信息系统越来越复杂和大型化,系统的分析与设计变得越来越重要;3)面向对象方法更接近于自然,利于多次迭代和更新维护
6、。,(1)Booch方法Booch方法是一种实用的面向对象概念模型。包括四个步骤:1)确定对象和划分类。按性质不同把对象分为:一般类、抽象类、参数化类和类属等;类间的关系有:结合、拥有、使用和示例。2)确定类和对象含义。用模版来标识类和对象的含义。3)确定类和对象间的关系。用3种图确认类和对象间的关系。组件图:分配给不同组件的类和对象的分布情况。过程图:分配处理器的过程情况。时序图:描述一个对象图中不同对象间的动态的相互影响。4)说明类和对象的界面和实现。,(2)OMT方法OMT(Object Modeling Technologh,对象建模技术)是面向对象概念的图形模型方法。其开发过程分3个
7、步骤:1)需求描述。使用对象模型、动态模型、功能模型进行需要描述。对象模型:描述对象、类之间的静态数据结构。动态模型:描述系统内对象的相互作用。功能模型:描述系统内的数据变化。2)系统设计。完成子系统的划分。3)对象设计。对象的细节确定以便进一步实现。,(3)Coad/Yourdon方法Coad/Yourdon的系统分析分5个步骤:1)标识对象。从问题域中分析、找出筛选对象。2)标识结构。标识对象间的关系。3)标识主题。从较高的层次来描述系统总体模型。4)定义属性。对象的数据。5)定义服务。对象的操作。,(3)Coad/Yourdon方法Coad/Yourdon的系统设计分4个步骤:1)问题领
8、域的设计。在分析的基础上,面向实现的工作。2)人机接口的设计。确定人机接口的各细节。3)任务管理的设计。确定对象并发或互斥,设计管理方案。4)数据管理的设计。对象中数据和操作的设计。,(4)OOSE方法OOSE( Object Oriented Software Engineering,面向对象软件工程)方法从每个角色(Actors)出发,把使用过程看做角色的应用事件,从这个思路来构造系统。OOSE方法包括:区分系统、识别系统、外部角色、与系统相关的其他类别。,(问答题:什么是组件?它对程序设计有何意义? ) 组件是一个可重用的软件构件,一个预先构建的封装的代码模块,它能够与其他组件或硬编码一
9、起很快地生成定制的应用程序。 组件技术建立在对象技术之上,它是对象技术的进一步发展。类是组件技术中一个基础的概念,但它更核心的概念是接口。组件技术的主要目标是组件的复用。一个组件可以由一个或多个类及其他元素组成,它是一个独立的物理单元,经常以非源码的形式存在。一个完整的组件中一般有一个主类,而其他类和元素都是为了支持该类的功能实现而存在的。,14.1.2 组件思想,UML(Unified Modeling Language,统一建模语言),是一种面向对象的建模语言,它提供了描述软件系统模型的概念和图形表示法,采用了面向对象的技术和方法,体现面向对象的分析与设计风格。它可以实现大型复杂系统各种成
10、分描述的可视化、说明并构造系统模型,以及建立各种所需的文档,是一种定义良好、易于表达、功能强大且普遍适用的建模语言。(定义)UML的作用:从静态和动态方面用模型图来从各个角度全面描述要开发的系统,为人们提供一套功能强大的捕获信息技术的要点的工具。,14.1.3 UML语言与建模工具,四种著名的软件开发都存在一些缺陷和不足,如Booch 方法对模型中规则完全正确应用的难度打,OMT方法对语言环境考虑太少等问题。Rational公司召集了一批专家( 如:Booch 、Rumbaugh、Jacobson)经过多年努力,在1997年提出了著名的“统一建模语言(UML)”。,1、 UML的产生,UML的
11、目标是用于多系统。不局限于软件开发,UML可以应用于以下几种系统中:1)信息系统 。存储、加工、传送和提交信息给用户。2)技术系统。操纵和控制技术部件,如电话通信等。 3)嵌人式实时系统。把一些单个的硬件嵌入到一些其他部件中。 4)分布系统 。用多台机器分布设置组成网,数据能容易地从一台机器传到另一台机器。5)系统软件 。控制和协调计算机及外部设备,支持应用软件开发和运行的基础框架。6)商务系统。由目标、资源、规则和商务实际工作等内容组成。,2、 UML的应用,UML把系统开发分成五个阶段:1)需求分析。用Use-Case模型来获取客户需求。使用事件是通过了解系统有兴趣的外部人员对系统的功能的
12、需求,把这些需求抽象为事件,再分析与使用相关的事件来建模。在MUL中用Use-Case图描述。2)分析。涉及基本抽象(识别类和对象)和问题领域中的机制。标识类和类间的相互关系由类图描述,使用事件与类之间的协作关系通常由动态模型描述。3)设计。设计阶段一项重要工作是把从分析得来的问题类“嵌入”到基础技术类中,使问题领域和技术两者结合一起形成系统方案。设计的成果是为编码阶段详细说明书。,3、 UML与系统开发,UML把系统开发分成五个阶段:4)编程。把设计阶段获得的类变换成面向对象编程语言的程序代码。如果分析和设计是UML建模,则可以避免手工从模型转成代码。5)测试。系统建成后需要经过单元测试、集
13、成测试、系统测试和验收测试。单元测试:针对单个类或一组类,常由程序员完成。集成测试:集成各部件和类,确认它们之间连接的正确性。系统测试:通过处理完整业务来测试系统是否具有最终用户期望的功能。验收测试:由用户进行的,以检查系统是否满足需求。,3、 UML与系统开发,UML的组成包括:视图、图表、模型元素、基本机制。(1)视图:从不同角度来观察待建模的系统,由多个图表组成。1)用例视图(Use-Case View)。UML的核心视图,从系统外部使用者对系统的需求来描述该系统工程所应具备和完成的功能。包括用例图、活动图和顺序图等。2)逻辑视图(Logical View)。用于描述系统内实现的逻辑功能
14、。它描述了系统的静态结构关系和系统内的动态协作关系。静态关系由对象图描述,动态关系由状态图、时序图、协作图和活动图来描述。3)组件视图(Component View),从系统实现的角度描述模型对象间的关系。4)配置视图(Deployment View),用于说明系统的物理配置。如所用的计算机和设备以及相互的连接关系。由配置图组成。,4、 UML基本内容,(2)图表:是描述视图内容的图。1)用例图(Use-Case Diagram):用于描述外部项与系统提供的使用事件之间的联系。2)类图(Class Diagram ):用于描述系统的静态结构。类的连接包括:联合、依赖、独立或包装3)对象图(Ob
15、ject Diagram ):用于表述系统的静态结构。使用与类图一样的符号,不同之处在于对象图表示的是类中的许多对象实力,而不是类本身。4)状态图(State Diagram ):用于说明类中的对象可能具有的状态,以及由事件引起的状态改变。5)顺序图(Sequence Diagram ):用于描述对象间的动态协作关系。表达对象间发送消息的时序,同时也表达对象间的相互作用。,4、 UML基本内容,2)图表:6)协作图(Collaboration Diagram ):用于描述对象的动态协作关系。可选择使用时序列图或协作图。7)活动图(Activity Diagram ):用于描述系统活动的流程。由
16、动作状态组成,它包含将完成的活动说明。8)组件图(Component Diagram ):用于描述组件代码的物理结构。可以是代码组件、二进制组件或一个任意可执行的组件,包括类的逻辑和类的实现等信息。建立了一个从逻辑视图到物理视图的映射。9)配置图(Deployment Diagram) :用于描述系统中软件和硬件的物理结构。描述计算机或其他节点设备相互间的连接关系以及连接的类型。,4、 UML基本内容,(3)模型元素:各种图表中所用的概念符号称为模型元素。另外,作为元素间关系的连接描述也称为模型元素,主要有联合、概括、依赖和聚合。此外,模型元素还描述为消息、动作、类型等。,4、 UML基本内容
17、,(4)基本机制:各种图标上的附加信息,用于描述那些模型无法表达的内容。有三种方式:修饰、注释、说明。1)修饰。通过特定的修饰把一些语义加到模型元素上。2)注释。UML提供增加注释的方式以表达那些模型元素无法表示的信息。注释可以放置于图中的任何位置上,可包括任何信息。3)说明。用于增加无法正式在图中表示的元素实例的附加说明,可以由文本的形式对图中相应部分的责任和权限加以说明。,4、 UML基本内容,14.2 Rational Rose建模工具介绍,14.2.1 Rational 公司简介,Rational 公司1991年在硅谷成立,是提供面向对象的解决方案的大型软件公司,它的门下有许多世界著名
18、的面向对象技术和计算机软件工程领域的专家,包括:Booch、Jacobson、Rumbaugh等。2002年12月被IBM收购。Rational Rose是该公司的主要产品,畅销全世界,它是面向对象的可视化建模的软件工具,包括面向对象的分析、设计、建模和组构。,14.2.2 面向对象的分析设计和Rational Rose,对于复杂的软件开发项目,采用建模方法是一个捷径,而建模的出发点是从“分而治之”入手,主要是对整个软件系统的体系结构的把握。1、就软件系统的整体结构而言,当前应用最多的是客户机/服务器方式。当然浏览器/应用服务器/数据服务器方式也是当前较为流行的体系结构。Rational Ro
19、se采用3层解决方案,由用户接口层、事务处理原则层和数据层组成的应用模型。这种较抽象的分层结构满足了当前应用的需求。,14.2.2 面向对象的分析设计和Rational Rose,2、建模的过程主要如下: 确认应用系统的功能需求,并为事务处理原则建模; 对抽象的对象映射需求,提供设计模版并创建惯用的模版; 分辨和设计对象或划分三层模型的服务; 对软件的组成部分映射成对象并设计组件在网络上如何分布。,14.2.2 面向对象的分析设计和Rational Rose,3、 采用Rational Rose实现建模,有如下几个问题: 何时建模。在软件系统开发的任何阶段进行建模工作都是可以的。 兼容性问题。
20、 Rational Rose为较大型的软件开发提供了灵活性较强的解决方案。支持用户自定义的数据类型等功能,保证了软件一定程度上的兼容性。 对UML的支持程度。 Rational Rose提供了对已成为工业标准的UML的完全支持。 对大型项目的特殊支持。 Rational Rose支持绝大多数软件工程师常见的个人或公共平台。 采用可视化建模。 Rational Rose完全采用可视化建模。,14.2.3 Rational Rose可视化建模的特点,使用Rational Rose进行可视化建模的特点如下:1)支持UML的建模。提供了一整套基于UML的建模图表,主要有:使用事件图、序列图、协作图、类
21、图、状态图、组件图和配置图。2)采用基于组件的开发。可以让用户为系统迅速有效地进行逆向工程、重用、可视化、改编、获得和创造组件。3)支持多语言开发。支持C+、Java、VB、PB等多种语言。 4)支持双向工程。可以让用户很容易地完成从系统分析到系统实现,然后再从系统实现到系统分析的迭代过程。5)全面的团队支持。,14.2.3 Rational Rose可视化建模的特点,6)简单易用。风格一致,支持图形对象操作。 7)提供可视化的差异比较以及合并工具。 8)提供框架向导。系统可默认地提供一些模版。 9)提供扩展接口,以实现定制的Rose。 10)基本报告生成。可以生成数据词典。 11)COBRA
22、/IDL生成。 12)数据库模式生成。能够消除面向对象技术和关系型数据库之间的差异。 13)微软存储库集成。可以从存储库中引进模型命令。 14)实现Oracle 8的正向和逆向工程。 15)支持Forte附加项。以实现在此环境下地分析、构建企业级应用。,14.3 使用Rational Rose建模,使用UML建模时一般分为用例视图设计、逻辑设计和物理设计三大部分。用例视图设计主要是借组用例图、活动图、状态图来了解用户的需求。逻辑设计要用到类图、顺序图和交互图,主要通过设计相应的类和对象实现前面用例所定义的用户需求。用类图来表现出系统的静态信息,用顺序图、交互图等表现出系统的动态信息。物理设计借
23、助部署图等视图,确定系统的物理体系结构。物理体系结构揭示了系统硬件的结构,期中包括各个不同的结点,并指出这些结点是如何连接在一起,以及系统的物理结构和软件之间的依赖关系。,14.3.1 初始Rational Rose,Rational Rose拥有强大的正向程序代码框架,可以让用户建模后不必再自行编写程序代码框架。界面如图所示。,14.3.2 需求分析,地铁售票信息系统是一种可以为地铁乘客提供出行便利,为车站管理人员提供可靠便捷的工具。以此为例来展开需求分析。1、用例图用例视图主要通过用例来描述系统的功能,它是系统中与实现无关的视图。用例图包括角色(Actor)、用例(Use Case)和关系
24、。用例是外部可见的系统功能单元。角色是将与所要建设的系统进行交互的外部实体。可以是系统用户或者与系统交互的其他系统。关系是用例图中实体间的直接或间接关系。包括角色和用例之间、角色之间、用例之间的关系。,用例和用例之间存在3种关系:扩展关系(Extend):指出了某个用例的行为可能是由另一个用例进行扩展的。包含关系(Include):指两个以上的用例具有大量公共行为,那么就可以将这些行为放在一个单独的用例中建模,然后其他用例包含这个用例即可。泛化关系(Generalization):是一种从子用例到父用例的关系,体现了子用例对父用例的继承和扩展。,用例图示,外部参与者(角色),地铁售票信息系统中
25、,主要有2个角色:乘客、系统管理员。乘客有6个用例:投硬币、投纸币、选择票数、取消本次操作、选择目的地和取票。系统管理员有3个用例:添加领钱、添加车票、结算,并用使用外部报警系统。,顶层用例图,对顶层用例图进一步扩展,得到每个用例触发时可能触发的用例及关联触发的用例和可以抽象出来的用例。也就是用例之间的关系,如下图所示:,扩展后的乘客用例图,2、活动图用例视图主要是为了了解外部角色与系统的交互关系,优点在于其全面性、整体性;但对于用例与用例之间的时间上的先后顺序却缺乏描述。活动图可以很好的描述系统的活动、判定点、先后顺序和分支等。活动图中符号意义如下图所示:,表示活动开始(一个活动只有一个开始
26、),表示活动,表示判断,表示活动结束,2、活动图乘客的活动流程是:先登录系统,然后投币并选择目的地,选择购买的张数后系统判断投入金额是否足够,如果不够则提示再投币,否则购票成功,最后系统出票并找零。如图所示。,乘客活动图,2、活动图系统管理员活地图如下图所示:,系统管理员活动图,14.3.3 系统分析与设计,使用用例图和活动图以及相关文档分析用户的需求后,要将得到的需求报告进行分析和整理,进行详细的系统分析。系统分析用交互图描述系统数据流的流向。交互图包括顺序图、协作图。1、顺序图顺序图强调消息时间顺序的交互图。 其图示如下:,表示外部对象,表示内部对象,售票过程顺序:先乘客投币,投币模块验证
27、投入物,如果有假币就发送报警信息至系统管理员,然后系统间依次传递目的地信息、购票数信息、车票不足信息和各类信息。售票过程顺序图如 下图所示:,2、协作图协作图强调强调参加交互的各对象的组织。协作图只对相互间有交互作用的对象和这些对象间关系建模。购票活动的协作图如下图所示:,3、组件图系统设计的目的是把系统分析后得到的地铁售票信息系统的具体需求转换为设计文档。系统设计分为概要设计和详细设计。概要设计:设计软件的结构,包括组成模块、模块的层次结构、模块的调用关系、每个模块的功能等。详细设计:确定怎样具体地实现所要求的系统。系统设计相关的主要视图为类图和组件图。组件图描述软件各种组件和它们之间的依赖
28、关系。组件图通常包括组件、接口和依赖关系。组件图是体现可重要思想的最好工具。组件图可以清晰的看到整个系统组件分布情况和重用情况。,3、组件图地铁售票信息系统的投币组件图如下图所示。前端显示组件接到用户发来的请求,将请求转交给Servlet控制器组件,由Servlet控制器组件决定使用哪个组件进行工作,然后投币组件一边调用外部验钞接口,一边重用计算器组件,并通过计算器组件对数据库进行修改和操作。,4、类图类图是根据系统中的类以及各类之间的关系描述系统的静态视图。类由三部分组成:类名称、类属性和操作。类的名称来自系统的问题域,用于唯一的表示此类。类属性用来描述对象的特征。操作又称为方法,用于操作属
29、性或执行其他动作、功能。类和类之间的主要关系:泛化关系和关联关系。泛化关系:是一种存在与一般类别和特殊类别之间的分类关系。适用于描述具有继承性关系的类。关联关系:是一种结构关系,指明一个事物的对象与另个事物的对象之间的联系。类图是生成代码的核心要图。整个系统的代码框架可以由类图自动生成,大大简化了系统编码所耗费的时间。,类名称,方法,属性,地铁售票信息系统的投币EJB组件的类图如下图所示。,14.3.4 系统实施与配置图,地铁售票信息系统大体采用了五层结构:自动售票机界面、前端AJAX层、Servlet控制层、EJB业务逻辑层和数据库服务层。这种结构具有安全性高、可移植性好、各层相对独立等优点
30、。可以很好的解决两层系统代码的维护工作困难、安全性低和三层系统复杂性难以支持和不易移植的弊端。配置图描述了实施时整个系统的结构与层次,并且描述系统中软件和硬件的物理结构。它可以描述计算机或其他结点设备相互间的互联,以及连接的类型,还可以描述组件间的依赖关系。 地铁售票信息系统配置图如图所示。,14.4 EclipseUML建模工具介绍与使用,14.4.1 安装EclipseUML,安装EclipseUML有多种方式,一种方式是用户可以利用Eclipse提供的自动化升级安装组件。单击菜单栏中的Help菜单,选择安装新软件Install new Software选项。在弹出窗口中地址栏(Work
31、with)中选择全部地址,再可更新程序中选择EPP Modeling Feature即可。,安装有多种方式,另一种方式到http:/ 使用EclipseUML进行建模,1、新建UML项目单击菜单栏中的文件(File)菜单,再New子菜单下选择项目(Project),在弹出窗口中选择常规(General)文件夹下的Project,进入下一步,在弹出的对话框输入项目名称、存放的文件夹后,单击“Finish”按钮即可完成新建项目。,2、新建文件夹在新建的项目中增加一个文件夹用于存放图形。用鼠标右键单击资源管理器中UML项目,在弹出的菜单中选择New-Folder,在弹出对话框中输入文件名,单击Fin
32、ish”按钮即可完成新建文件夹。,3、用例图示例新建一个用例图。用鼠标右键单击资源管理器中UML项目的src文件夹,在弹出的菜单中选择New-Other;在弹出的窗口中,找到UML2.1Diagrams菜单下的Use Case Diagram,单击“Next”按钮;在弹出的对话框中输入用例图的名称,单击Finish”按钮即可。,如下图所示,该图包含了使用Eclipse进行UML建模的几个主要视图。中间部分是编辑器,右侧的大纲(Outline)视图用于查看整个用例图的全貌。底部属性(Properties)视图中包含了用例图的各个属性和它们的设置途径。,如下图所示,UML编辑器被分成2部分,左侧是画图面板,右侧是各个图形元素。选择期中一个图形元素,然后将鼠标移动到画图面板上单击即可添加一个图形。,如下图所示,将鼠标在画图面板上停留2s后,会自动弹出快捷工具栏,包括主要的图形元素,选择一个也可以添加。,如下图所示,将鼠标在图形上(如用例)停留2s后,会出现扩展关系的箭头标志,拖动箭头即可与其他用例或角色建立联系。,下图是属性视图,在这里可以设置用例图的各个属性,包括字体、各部分的颜色等。,4、类图示例新建类图的步骤与用例图类似。,5、状态图示例新建状态图的步骤与用例图类似。,小结,1、Rose的使用方法。 2、EclipseUML的安装和使用方法。 3、建模对软件开发的意义。,