1、第1页第1章 面向对象与UML本章概述 本章的学习目标主要内容第2页本章概述 面向对象技术是一种系统开发方法,是软件工程学的一个重要分支。面向对象建模与设计是使用现实世界的概念模型来思考问题的一种方法。对于理解问题、与应用领域专家交流、建模企业级应用、编写文档、设计程序和数据库来说,面向对象模型都非常有用。UML(Unified Modeling Language,统一建模语言)是一种建模语言,是用来为面向对象开发系统的产品进行说明可视化和编制文档的建模方法。本章将全面介绍面向对象与UML的基本概念。第3页本章的学习目标 理解面向对象的含义 理解软件工程过程框架 掌握类和对象的关系 掌握封装、
2、继承、多态 掌握UML的含义和特点主要内容:l面向对象思想的基本概念 l面向对象的三大要素 l面向对象与项目设计 l用面向对象思想建立系统模型主要内容主要内容第4页1、面向对象思想的基本概念机器码:使用二进制数字;汇编语言:使用字母数字符号作为机器码的速记方式,通过汇编程序转换为机器码;高级语言:使用有高级结构的语言编程,通过编译程序转换为机器码;结构化编程:自顶向下,逐步细分;面向对象编程(Object Oriented Programming,OOP):以对象为基础,以消息(或事件)来驱动对象执行处理。第5页一、面向对象思想的基本概念从程序设计方法上来讲,面向对象技术是一种自下而上的程序设
3、计方法,它不像面向过程程序设计那样一开始就需要使用一个主函数来概括出整个程序,面向对象程序设计往往从问题的一部分着手,一点一点地构建出整个程序。第6页一、面向对象思想的基本概念学生信息管理系统 例子:第7页一、面向对象思想的基本概念 应对需求变化的能力强。便于理解复杂的系统,并能提高系统维护性。提高重用性。第8页一、面向对象思想的基本概念对象第9页一、面向对象思想的基本概念第10页一、面向对象思想的基本概念第11页一、面向对象思想的基本概念物体(看得到的东西)概念(看不到的东西)第12页 描述对象属性行为一、面向对象思想的基本概念第13页一、面向对象思想的基本概念 对象具有属性值刻画对象的静态
4、特征第14页一、面向对象思想的基本概念 对象具有行为刻画对象的动态特征第15页 对象会对其他对象发来的要求做出反应一、面向对象思想的基本概念第16页 对象具有关系一、面向对象思想的基本概念第17页 对象之间的关系:一、面向对象思想的基本概念第18页aCaraPassengeranotherPassengeraDriver关联是一种弱连接:对象之间不完全相互依赖。一、面向对象思想的基本概念第19页聚合表示把对象放在一起,组成一个更大的对象。聚合形成“部分整体”层次结构,它隐含了较大的依赖性,至少是整体对部分的依赖。一、面向对象思想的基本概念diningRoomlivingRoomkitchenm
5、ainBedroomkidsBedroombathroomsecondFloorfirstFlooraHouse第20页组合(composition)是一种特殊的聚合,强调整体和部分具有相同的生命期。一、面向对象思想的基本概念public class Circle public int radius;Point center;public class Style int x,y;第21页 对象可唯一识别一、面向对象思想的基本概念第22页 对象的特征属性操作(行为)关系识别性一、面向对象思想的基本概念第23页一、面向对象思想的基本概念类(Class)是具有相同属性和操作的一组对象的组合,也就是说
6、,抽象模型中的“类”描述了一组相似对象的共同特征,为属于该类的全部对象提供了统一的抽象描述。第24页 着眼于对象的属性和行为的共同性,并进行分类后形成的 类是具有相同属性和操作的对象集合的总称 类封装了客观世界中对象实体的特征与行为,即属性与方法一、面向对象思想的基本概念第25页第26页 找到几个类?第27页第28页 每一个对象都是某一个类的实例 每一个类在某一时刻都有零个或更多的实体 类是静态的;它们的存在、语义和关系在执行前就已经定义好了 对象是动态的;它们在程序执行时可以被创建和删除第29页一、面向对象思想的基本概念所谓消息(Message)是指描述事件发生的信息,是对象间相互联系和相互
7、作用的方式。一个消息主要由5 5部分组成:消息的发送对象、消息的接收对象、消息传递方式、消息内容(参数)、消息的返回。传入的消息内容的目的有两个,一个是让接受请求的对象获取执行任务的相关信息,另一个是行为指令。第30页一、面向对象思想的基本概念所谓事件通常是指一种由系统预先定义而由用户或系统发出的动作。事件作用于对象,对象识别事件并作出相应反应。第31页二、面向对象的三大要素封装(Encapsulation)是把对象的属性(状态)和操作(行为)绑到一起的机制,把对象形成一个独立的整体,并且尽可能的隐藏对象的内部细节。aCoffeeMachinedrinkPricesavailableDrink
8、sdrinkRecipesdisplayDrinks()selectDrink()dispenseDrink()acceptMoney()第32页二、面向对象的三大要素封装有两层含义:结合性信息隐蔽性第33页二、面向对象的三大要素封装性应满足的条件:第34页二、面向对象的三大要素封装是面向对象编程防止程序员相互干扰的一种方式。例子:借钱。第35页二、面向对象的三大要素封装是一个重要原则,是指把属性和操作封装进一个对象里,它的内部信息对外界隐藏,不允许外界直接存取对象的属性,只能通过对象提供的有限的接口对对象的属性数据进行操作。封装的信息屏蔽作用反映了事物的相对独立性,我们可以只关心它对外所提供
9、的接口,即能够提供什么样的服务,而不用去关注其内部的细节问题。第36页二、面向对象的三大要素对于客观世界的认知,既应看到其共性,也应看到其特性如果只考虑事物的共性,不考虑事物的特性,就不能反映出客观世界中事物之间的层次关系,从而不能完整地、正确地对客观世界进行抽象的描述。第37页二、面向对象的三大要素如果说运用抽象的原则就是舍弃对象的特性,提取其共性,从而得到一个对象集的类的话,那么在这个类的基础上,再重新考虑抽象过程中被舍弃的那一部分对象的特性,则可以形成一个新的类,这个类具有前一个类的全部特征,是前一个类的子集,从而形成一种层次结构,即继承结构。第38页二、面向对象的三大要素继承(Inhe
10、ritance)是一种连接类与类的之间的层次模型。继承是指特殊类的对象拥有其一般类的属性和行为。第39页第40页继承了其它类属性和方法的类称为子类,被继承的类称为父类或超类。子类复用父类属性和方法的过程,称为继承或泛化。二、面向对象的三大要素第41页 继承继承是一种连接类与类之间的层次模型 继承继承意味着“自动地拥有”或“隐含地复制”,即在特殊类中不必重新对已经在一般类中所定义过的属性和行为进行定义,而是特殊类自动地拥有一般类的属性和行为 继承继承对类的重用性提供了一种明确表述共性的方法,即一个特殊类既有自己定义的属性和方法,又有继承下来的属性和行为 继承继承是传递的二、面向对象的三大要素第4
11、2页 使子类能够比不使用继承直接进行描述的类更加简洁:子类只需要描述哪些与父类不同的地方,不使用继承而去直接描述时,需要将父类的属性和行为全部再进行描述;能够重用和扩展现有类库资源:当使用已封装好的类库时,如果需要对某个类进行扩展,通过继承的方式很容易实现,而不需要再去重新编写;使软件易于维护和修改:当要修改、增加某一属性和行为时,只需要在相应地类中进行改动,而它派生的所有类将自动地做了相应修改二、面向对象的三大要素第43页二、面向对象的三大要素第44页二、面向对象的三大要素第45页二、面向对象的三大要素第46页二、面向对象的三大要素多态性(Polymorphism)是指在两个或多个属于相同类
12、中同一函数名对应多个具有相似功能的不同函数,可以使用相同的调用方式来调用这些具有不同功能的同名函数。第47页多态性既可应用于变量(多态变量),又可应用于消息(多态消息);多态变量表示值在不同的时刻有不同的类型;多态消息表示有多个方法与对象相关。二、面向对象的三大要素第48页 下面看一组变量的定义:多态变量二、面向对象的三大要素第49页再看下面的类层次结构:多态变量二、面向对象的三大要素第50页 因此,以下语句是合法的:多态变量 从类的定义上来看,Truck和Train都是陆上交通工具,因此可以被当作陆上交通工具来对待;从面向对象的程序设计思想来看,允许将一个子类型的实例赋值给它的祖先类型,因为
13、所有发送给祖先类型的消息都可以发送给子类型二、面向对象的三大要素第51页 第52页如下图所示的Bird、Finch、Eagle和Human类都有flyTo方法 多态消息二、面向对象的三大要素第53页Finch类和Eagle类的flyTo方法有着类似的算法(都用来描述鸟类的飞行,但是雀类和鹰类的具体飞行方式仍有区别);flyTo方法在Human类中是独立定义的,它与Finch类和Eagle类中的flyTo方法有着完全不同的算法(人类是不能飞行,只能乘坐飞机);上述例子说明,在面向对象的语言中,任何消息都可以关联多个方法,这些方法或者是在多个类中是独立的,或者由子类重新定义了。多态消息二、面向对象
14、的三大要素第54页 UML三、UML第55页问题:什么是UML?什么人用UML?UML能做什么?三、UML第56页UML的重要性:软件系统是产品,开发者和使用者是不同群体,对于一个复杂的软件系统,开发必须由多个方面人员参与、合作共同完成,它必须有完整的从分析到实现、使用和维护的文档软件系统必须像传统工业产品一样建模,把一个复杂的系统按问题的不同方面以一种约定好的、为大家共同接受的描述方式分别进行全面而详尽的描述,以便人们交流在试图交流、理解一个系统时,可根据人们所关心的某一方面的问题,查阅对应的系统模型,从而得到对此问题的理解另外,如果整个系统的功能、原理和结构没有一个全面而详细的记载的话,将
15、会对此软件产品的开发、维护和升级产生不利的结果三、UML第57页第58页第2章 UML构成与建模工具Rational Rose简介本章概述 本章的学习目标主要内容第59页本章概述 UML(统一建模语言)是为软件系统的制品进行详述(specifying)、可视化(visualizing)、构造化(constructing)、文档化(documenting)的一种语言。UML目前是软件行业标准的建模语言。可以采用UML对需求、分析、设计、实现、部署等工作进行标准的形式化描述,达到交流共同的作用。Rational Rose是基于UML的可视化建模工具。本章将介绍UML的相关内容和Rational R
16、ose 工具。第60页本章的学习目标 理解UML九种图的含义 理解UML视图 掌握UML的基本元素 掌握Rational Rose的基本操作 掌握Rational Rose双向工程lUML概述lUML视图lUML图lRational Rose建模工具主要内容主要内容第61页62/76一、UML概述创始于1994年10月由Grady Booch、Jim Rumbaugh和Ivar Jacobson共同提出,1996年正式命名;1997年被OMG采纳;63/76一、UML概述UML L是一种LanguageLanguage(语言);(语言);UM ML是一种ModelingModeling(建模)
17、(建模)Language;U UML是UnifiedUnified(统一)(统一)Modeling Language;64/76一、UML概述统一标准面向对象可视化、表达能力强,是一个庞大的符号体系65/76基本基本UML建模元素、关系和图建模元素、关系和图达到特定目标的公共达到特定目标的公共UML方法方法系统架构的系统架构的UML视图视图66/7667/76建模元素本身建模元素本身把物件联系在一起,关系说明两个或多个物件时如何语义相关的把物件联系在一起,关系说明两个或多个物件时如何语义相关的UML模型的视图,它们展现物件的集合,模型的视图,它们展现物件的集合,“讲述关于软件系统的故事讲述关于
18、软件系统的故事”,是,是我们可视化系统将做什么(分析级图)或者系统如何做(设计级图)的方法我们可视化系统将做什么(分析级图)或者系统如何做(设计级图)的方法68/76UML模型中的名词,如类、接口、协作、用例、活动类、组件、节点模型中的名词,如类、接口、协作、用例、活动类、组件、节点UML模型的动词,如交互、状态机模型的动词,如交互、状态机包,它用于把语义上相关的建模元素分组为内聚的单元包,它用于把语义上相关的建模元素分组为内聚的单元注解,它附加到模型以捕获特殊信息,同黄色便笺很相像注解,它附加到模型以捕获特殊信息,同黄色便笺很相像描述对象之间的一组链接描述对象之间的一组链接物件的改变引起依赖
19、物件的语义改变物件的改变引起依赖物件的语义改变一个元素是另一个元素的特化,而且它可以取代更一般的元素一个元素是另一个元素的特化,而且它可以取代更一般的元素类元之间的关系,一个类元说明一份契约,另一个类元保证实现该契约类元之间的关系,一个类元说明一份契约,另一个类元保证实现该契约第69页70/7671/76UML构造块构造块公共机制公共机制架构架构物件物件关系关系图图规格说明规格说明修饰修饰公共分类公共分类扩展机制扩展机制用例视图用例视图逻辑视图逻辑视图进程视图进程视图实现视图实现视图部署视图部署视图结构物件结构物件行为物件行为物件分组物件分组物件注解物件注解物件关联关联依赖依赖泛化泛化实现实现
20、类图类图顺序图顺序图对象图对象图协作图协作图构件图构件图状态图状态图部署图部署图活动图活动图用例图用例图72/7673/76重点内容:lUML概述 l常用的常用的UMLUML元素分析元素分析 lUML的通用机制 lUML的扩展机制74/76二、常用的UML元素分析UML是用模型来描述系统的结构或静态特征以及行为或动态特征的,从不同的视角为系统的架构建模形成系统的不同视图(view)。视图是表达系统某一方面特征的UML建模构件的子集。用例视图、逻辑视图、构件视图、进程视图和配置视图。l 作用:描述系统的功能需求,找出用例和执行者;l 适用对象:客户、分析者、设计者、开发者和测试者;l 描述使用的
21、图:用例图和活动图;l 重要性:系统的中心,它决定了其他视图的开发,用于确认和最终验证系统。用例视图用例视图二、常用的UML元素分析第75页76/76l 作用:描述如何实现系统内部的功能;l 适用对象:分析者、设计者、开发者;l 描述使用的图:类图和对象图、状态图、顺序图、合作图和活动图;l 重要性:描述了系统的静态结构和因发送消息而出现的动态协作关系。逻辑视图逻辑视图二、常用的UML元素分析l 作用:描述系统代码构件组织和实现模块,及它们之间的依赖关系;l 适用对象:设计者、开发者;l 描述使用的图:构件图;l 重要性:描述系统如何划分软件构件,如何进行编程。构件视图构件视图二、常用的UML
22、元素分析第77页78/76l 作用:描述系统的并发性,并处理这些线程间的通信和同步;l 适用对象:开发者和系统集成者;l 描述使用的图:状态图、顺序图、合作图、活动图、构件图和配置图;l 重要性:将系统分割成并发执行的控制线程及处理这些线程的通信和同步。进程视图进程视图二、常用的UML元素分析79/76l 作用:描述系统的物理设备配置,如计算机、硬件设备以及它们相互间的连接;l 适用对象:开发者、系统集成者和测试者;l 描述使用的图:配置图;l 重要性:描述硬件设备的连接和哪个程序或对象驻留在哪台计算机上执行。配置视图配置视图二、常用的UML元素分析80/76二、常用的UML元素分析逻辑视图构
23、件视图进程视图部署视图81/76二、常用的UML元素分析82/76 用例图描述了系统提供的一个功能单元。用例图的主要目的是帮助开发团队以一种可视化的方式理解系统的功能需求功能需求,包括基于基本流程的“角色”关系,以及系统内用例之间的关系。使用用例图可以表示出用例的组织关系,这种组织关系包括整个系统的全部用例或者是完成相关功能的一组用例。在用例图中画出某个用例方式是在用例图中绘制一个椭圆,然后将用例的名称放在椭圆的中心或椭圆下面的中间位置。用例图用例图83/76 类图显示了系统的静态结构,表示了不同的实体(人、事物和数据)是如何彼此相关联起来。类图可用于表示逻辑类,逻辑类通常就是用户的业务所谈及
24、的事物,比如说学生、学校等。类图还可用于表示实现类,实现类就是程序员处理的实体。类图类图84/76 对象图显示了某一时刻类的静态结构对象图对象图85/76 序列图显示了一个具体用例或者用例的一部分的一个详细流程。序列图有两个维度:垂直维度,也称时间维度,以发生的时间顺序显示消息或调用的序列;水平维度显示消息被发送到的对象实例。序列图序列图86/76协作图表示一组对象间关系以及交互活动。协作图以对象间连接关系为中心显示消息交换。协作图协作图87/76 状态图表示某个类所处的不同状态及该类在这些状态中的转换过程。状态图的符号集包含了下列五个基本的元素:初始起点,状态之间的转换,状态,判断点,一个或
25、者多个终止点,它们使用内部包含实心圆的圆来绘制。状态图状态图88/76 活动图是用来表示两个或者更多的对象之间在处理某个活动时的过程控制流程。活动图能够在业务单元的级别上,对更高级别的业务过程进行建模,或者对低级别的内部类操作进行建模。活动图活动图89/76构件图是要指出某些功能实际存在哪些地方。构件图提供系统的物理视图,它是根据系统的代码构件显示了系统代码的整个物理结构。构件图最经常用于实际的编程工作中。在以构件为基础的开发(CBD)中,构件图为系统架构师提供了一个为解决方案进行建模的自然形式。构件图构件图90/76 部署图是用于表示该软件系统如何部署到硬件环境中,它是显示在系统中的不同的构
26、件在何处物理地运行,以及如何进行彼此的通信。部署图对系统的物理运行情况进行了建模,因此系统的生产人员就能够很好地利用这种图来部署实际的系统。部署图部署图91/76 部署图是用于表示该软件系统如何部署到硬件环境中,它是显示在系统中的不同的构件在何处物理地运行,以及如何进行彼此的通信。部署图对系统的物理运行情况进行了建模,因此系统的生产人员就能够很好地利用这种图来部署实际的系统。部署图部署图92/76系统模型组织的描述。包图包图93/76 在UML中,图作为一种可视化的方式聚集了相关需要表达的事物,并且表达了这些事物之间的关系。事物是对模型中最具有代表性的成分的抽象,关系描述了事物之间如何彼此关联
27、、相互依赖或作用的。正是关系把构成系统的诸多事物结合成一个有机的整体。94/76事物是对模型中最具有代表性的成分的抽象 结构事物:UML中的名词,它是模型的静态部分,描述概念或物理元素。行为事物:UML中的动词,它是模型中的动态部分,是一种跨越时间、空间的行为。分组事物:UML中的容器,用来组织模型,使模型更加的结构化。注释事务:UML中的解释部分,和代码中的注释语句一样,是用来描述模型的。事物事物95/76类(class)和对象(object)接口(interface)主动类(active class)用例(use case)协作(collaboration)构件(component)节点(
28、node)事物事物96/76类是对一组具有相同属性、相同操作、相同关系和相同语义的对象的抽象 UML中类是用一个矩形表示的,它包含三个区域,最上面是类名、中间是类的属性、最下面是类的方法 对象则是类的一个实例 事物事物97/76接口是描述某个类或构件的一个服务操作集 事物事物98/76用例是著名的大师Ivar Jacobson首先提出的,现已经成为了面向对象软件开发中一个需求分析的最常用工具 用例实例是在系统中执行的一系列动作,这些动作将生成特定执行者可见的价值结果。一个用例定义一组用例实例。协作定义了一个交互,它是由一组共同工作以提供某协作行为的角色和其他元素构成的一个群体。对于某个用例的实
29、现就可以表示为一个协作 事物事物99/76在实际的软件系统中,有许多要比“类”更大的实体,例如一个COM组件、一个DLL文件、一个JavaBeans、一个执行文件等等。为了更好地对在UML模型中对它们进行表示,就引入了构件(也译为组件)构件是系统设计的一个模块化部分,它隐藏了内部的实现,对外提供了一组外部接口。在系统中满足相同接口的组件可以自由地替换 事物事物100/76为了能够有效地对部署的结构进行建模,UML引入了节点这一概念,它可以用来描述实际的PC机、打印机、服务器等软件运行的基础硬件 节点是运行时存在的物理元素,它表示了一种可计算的资源,通常至少有存储空间和处理能力 事物事物101/
30、76交互(interaction):是在特定语境中,共同完成某个任务的一组对象之间交换的信息集合 交互的表示法很简单,就是一条有向直线,并在上面标有操作名 状态机(state machine):是一个对象或交互在生命周期内响应事件所经历的状态序列 在UML模型中将状态画为一个圆角矩形,并在矩形内写出状态名称及其子状态 事物事物102/76对于一个中大型的软件系统而言,通常会包含大量的类,因此也就会存在大量的结构事物、行为事物,为了能够更加有效地对其进行整合,生成或简或繁、或宏观或微观的模型,就需要对其进行分组。在UML中,提供了“包(Package)”来完成这一目标 事物事物103/76结构事
31、物是模型的主要构造块,行为事物则是补充了模型中的动态部分,分组事物而是用来更好地组织模型,似乎已经很完整了。而注释事物则是用来锦上添花的,它是用来在UML模型上添加适当的解释部分 事物事物104/76 UML模型是由各种事物以及这些事物之间的各种关系构成的。关系是指支配、协调各种模型元素存在并相互使用的规则。UML中主要包含四种关系,分别是依赖、关联、泛化和实现。关系关系105/76 依赖关系:依赖关系指的是两个事物之间的一种语义关系,当其中一个事物(独立事物)发生变化就会影响另外一个事物(依赖事物)的语义。关系关系 关联关系:关联关系是一种事物之间的结构关系,我们用它来描述一组链,链是对象之
32、间的连接。106/76泛化关系:泛化关系是事物之间的一种特殊/一般关系,特殊元素(子元素)的对象可替代一般元素(父元素)的对象,也就是我们在面向对象学中常常提起的继承。关系关系 实现关系:实现关系也是UML元素之间的一种语义关系,它描述了一组操作的规约和一组对操作的具体实现之间的语义关系。107/76 如果把模型元素当成一个对象来看待,那么模型元素本身也应该具有很多的属性,这些属性用于维护属于该模型元素的数据值。属性是使用名称和标记值(Tagged Value)的值来定义的。标记值指的是一种特定的类型,可以是布尔型、整型或字符型,也可以是某个类或接口的类型。108/76 在UML的图形表示中,
33、每一个模型元素都有一个基本符号,这个基本符号可视化地表达了模型元素最重要的信息。用户也可以把各种修饰细节加到这个符号上以扩展其含义。这种添加修饰细节的做法可以为图中的模型元素在一些视觉上的效果上发生一些变化。109/76 在UML的图形表示中,每一个模型元素都有一个基本符号,这个基本符号可视化地表达了模型元素最重要的信息。用户也可以把各种修饰细节加到这个符号上以扩展其含义。这种添加修饰细节的做法可以为图中的模型元素在一些视觉上的效果上发生一些变化。110/76 通用划分是一种保证不同抽象概念层次的机制。通常我们可以采用两种方式进行通用划分,一种是对类和对象的划分,另外一种是对接口和实现的分离。
34、类和对象的划分是指类是一个抽象而对象是这种抽象的一个实例化。接口和实现的分离是指接口声明了一个操作接口,但是却不实现其内容,而实现则表示了对该操作接口的具体实现,它负责如实地实现接口的完整语义。类和对象的划分保证了实例及其抽象的划分,从而使得对一组实例对象的公共静态和动态特征无需一一管理和实现,只需要抽象成一个类,通过类的实例化实现对对象实体的管理。111/76重点内容:lUML概述 l常用的UML元素分析 lUML的通用机制 lUMLUML的扩展机制的扩展机制112/76 简而言之,构造型扩展机制的目的就是基于一个已存在的模型元素再重新定义一个新的模型元素。构造型就像在模型元素的外面重新添加
35、了一层外壳,这样就在模型元素上又加入了一个额外语义。构造型的一般表现形式为使用“”包含构造型的名称在里面,例如、等。113/76 标记值是由一对字符串构成,这对字符串包含一个标记字符串和一个值字符串,用来存储着有关模型元素或表达元素的一些相关信息。标记值,可以被我们用来扩展UML构造块的特性,可以根据我们的需要来创建详述元素的新元素。标记值可以与任何独立元素相关,包括模型元素和表达元素。标记值是当我们需要对一些特性进行记录的时候而给定元素的值。114/76115/76 约束机制用于扩展UML构造块的语义,允许建模者和设计人员可以增加新的规则和修改现有的规则。约束可以表示在 UML 的规范表示中
36、不能表示的语义关系,特别是当陈述全局条件或影响许多元素的条件时,约束特别有用。约束使用大括号和大括号内的字符串表达式表示,即约束的表现形式为约束的内容。约束可以附加在表元素、依赖关系,或注释上。116/76 在Rational Rose建立的模型中包括四种视图,分别是用例视图(Use Case View)、逻辑视图(Logical View)、构件视图(Component View)和部署视图(Deployment View)。在我们创建一个Rational Rose工程的时候,会自动包含这四种视图。117/76 在用例视图(Use Case View)中包括了系统中的所有参与者、用例和用例图
37、,必要时还可以在用例视图中添加顺序图、协作图、活动图和类图等。用例视图是与系统中的实现是不相关的,它关注的是系统功能的高层抽象,适合于对系统进行分析和获取需求,而不关注于系统的具体实现方法。逻辑视图关注系统如何实现用例中所描述的功能,主要是对系统功能性需求提供支持,即在为用户提供服务方面,系统所应该提供的功能。在逻辑视图中,用户将系统更加仔细的分解为一系列的关键抽象,将这些大多数来自于问题域的事物通过采用抽象、封装和继承的原理,使之表现为对象或对象类的形式,借助于类图和类模板等手段,提供了系统的详细设计模型图。在逻辑视图下的模型元素可以包括类、类工具、用例、接口、类图、用例图、协作图、顺序图、
38、活动图和状态图等。119/76 构件视图用来描述系统中的各个实现模块以及它们之间的依赖关系。构件视图包含模型代码库,执行文件,运行库和其他构件的信息,但是按照内容来划分构件视图主要由包、构件和构件图构成。包是与构件相关的组。构件是不同类型的代码模块,它是构造应用的软件单元,构件可以包括源代码构件、二进制代码构件以及可执行构件等等。120/76 在构件视图下的元素可以包括各种构件、构件图以及包等。121/76 在构件视图中,同样可以创建一些的模型元素。在浏览器中选择Component View(构件视图)选项,右键单击,可以看到在该视图中允许创建的模型元素件、构件图以及包等。122/76 部署视
39、图显示的是系统的实际部署情况,它是为了便于理解系统如何在一组处理节点上的物理分布,而在分析和设计中使用的构架视图。在系统中,只包含有一个部署视图,用来说明了各种处理活动在系统各节点的分布。123/76 在部署视图中,可以创建处理器和设备等的模型元素。在浏览器中选择Deployment View(部署视图)选项,右键单击,可以看到在该视图中允许创建的模型元素。处理器(Processor):处理器是指任何有处理功能的节点。节点是各种计算资源的通用名称,包括处理器和设备两种类型。设备(Device)。设备是指任何没有处理功能的节点。例如打印机。文件(File)。文件是指那些能够连接到部署视图中的一些
40、外部文件,用来详细的介绍使用部署视图的各种信息。URL地址(URL)。URL地址是指能够连接到部署视图的一些外部URL地址。这些地址用于介绍部署视图的相关信息。中允许创建的模型元素。125/76 部署视图考虑的是整个解决方案的实际部署情况,所描述的是在当前系统结构中所存在的设备、执行环境和软件的运行时体系结构,它是对系统拓扑结构的最终物理描述。系统的拓扑结构描述了所有硬件单元,以及在每个硬件单元上执行的软件的结构。在这样的一种体系结构中,我们可以通过部署视图查看拓扑结构中的任何一个特定的节点,了解正在该节点上组件执行情况,以及该组件中包含了哪些逻辑元素(例如类、对象、协作等),并且最终能够从这
41、些元素追溯到系统初始的需求分析阶段。126/76一、Rational Rose:设计UML的工具 Rational Rose 是一个完全的、具有能满足所有建模环境(包括Web开发、数据库建模以及各种开发工具和语言)需求能力和灵活性的一套解决方案。Rational Rose 允许系统开发人员、系统管理人员和系统分析人员在软件的各个开发周期内,建立系统地需求和系统的体系架构的可视化模型,并且能够将这些需求和系统的体系架构可视化模型转换成代码,帮助系统开发。一、Rational Rose的安装128/76 在“New”(新建)选项卡中,我们可以选择创建模型的模板。在“Existing”(打开)选项卡
42、中,我们可以打开一个已经存在的模型,在对话框左侧的列表中,逐级找到该模型所在的目录,然后从右侧的列表中选中该模型,单击“Open”(打开)按钮进行打开。在“Rencent”(最近使用的模型)选项卡中,我们可以选择打开一个最近使用过的模型文件,在选项卡中,选中需要打开的模型,单击“Open”按钮或者双击该模型文件的图标即可。启动Rational Rose129/76 Create New Model窗体中给出了许多开发语言的模型向导,开发者可以根据自己所采用的语言来进行选择 如果不需要特定的语言环境,单击Cancel就可以直接进入主界面130/76Rational Rose主界面131/7613
43、2/76 标题栏可以显示当前正在工作的模型文件名称。对于刚刚新建还未被保存的模型名称使用“untitled”表示。此外,标题栏还可以显示当前正在编辑的图的名称和位置,如 Class Diagram:Logical View/Main 代表的是在Logical View(逻辑视图)下创建的名称为Main的Class Diagram(类图)。标题标题栏栏133/76 在菜单栏中包含了所有在Rational Rose 2003 中可以进行的操作,一级菜单共有项,分别是 “File”(文件)“Edit”(编辑)“View”(视图)“Format”(格式)“Browse”(浏览)“Report”(报告)
44、“Query”(查询)“Tools”(工具)“Add-Ins”(插件)“Window”(窗口)“Help”(帮助)。菜单菜单栏栏 134/76 可以通过“View”(视图)下的“Toolbars”(工具栏)来定制是否显示标准工具栏和编辑区工具栏。单击“Tools”(工具)下的“Options”(选项),弹出一个对话框,选中“Toolbars”(工具栏)选项卡,我们可以在“Standard Toolbar”(标准工具栏)复选框中可以选择显示或隐藏标准工具栏,或者工具栏中的选项是否使用大图标。也可以在“Diagram Toolbar”(图形编辑工具栏)中选择是否显示编辑区工具栏,以及编辑区工具栏显
45、示的样式。工具工具栏栏 135/76 工作区由四部分构成,浏览器、文档区、图形编辑区和日志区。浏览器和文档区位于Rational Rose 2003工作区域的左侧。浏览器是一种树形的层次结构,可以帮助我们迅速的查找到各种图或者模型元素。文档区用于对Rational Rose 2003中所创建的图或模型元素说明。工作工作区区136/76 编辑区包含了图形工具栏和图的编辑区域,在图的编辑区域中可以根据图形工具栏中的图形元素内容绘制相关信息。在图的编辑区添加的相关模型元素会自动地在浏览器中添加,这样使浏览器和编辑区的信息保持同步。我们也可以将浏览器中的模型元素拖动到图形编辑区中进行添加。工作工作区区
46、137/76 日志区位于Rational Rose 2003工作区域的下方,用以记录了对模型的一些重要操作工作工作区区138/76 可以通过选择“File”(文件)菜单栏下的“New”(新建)命令来创建新的模型,也可以通过标准工具栏下的“新建”按钮创建新的模型,这时便会弹出选择模板的对话框,选择我们想要使用的模板,单击“OK”(确定)按钮即可。如果使用模板,Rational Rose 2003系统就会将模板的相关初始化信息添加到创建的模型中,这些初始化信息包含了一些包、类、构件和图等。创建模型创建模型 139/76 可通过选择“File”(文件)菜单栏下的“Save”(保存)命令来保存新建的模
47、型,也可以通过标准工具栏下的按钮保存新建的模型,保存的Rational Rose模型文件的扩展名为.mdl。可以通过选择“File”(文件)菜单栏下的“Save Log As”(保存日志)来保存日志,也可以通过“AutoSave Log”(自动保存日志)。保存模型保存模型 140/76 通过选择“File”(文件)菜单栏下的“Import”(导入)可以用来导入模型、包或类等,可供选择的文件类型包含.mdl、.ptl、.sub或.cat等,导入模型的对话框。导入模型,可以利用现成的建模。导入模型导入模型 141/76 通过选择“File”(文件)菜单栏下的“Export Model.”(导出模型
48、)可以用来导出模型,导出的文件后缀名为.ptl。*.ptl格式文件类似于模型文件(*.mdl),但是只是模型文件的一部分。模型文件*.mdl则保存完整的模型导出模型导出模型 142/76 Rational Rose 2003提供了将模型生成相关网页从而在网络上进行发布的功能,这样,可以方便的系统模型的设计人员将系统的模型内容对其它开发人员进行说明。首先,选择“Tools”(工具)菜单栏下的“Web Publisher”选项。发布模型发布模型 143/76 Web发布器(Web Publisher)创建基于Web(HTML)的模型版本,将模型发布到Web上,通过浏览器顺序或非顺序地进行查看 We
49、b发布器会重新创建Rose模型元素,包括图、类、包、关系、属性以及操作等Web发布器所发布的内容可以通过选项控制发布模型发布模型 144/76 Web发布器生成的文件 在发布模型之前,应当创建一个新的文件夹发布一个模型时,需要提供一个HTML根文件的名字。通过打开该文件来显示模型。发布模型发布模型 145/76 如果需要设置发布的模型生成的图片格式,可以点击“Diagram”按钮,有四个选项可以提供选择,分别是“Dont Publish Diagrams”(不要发布图)、Windows Bitmaps(BMP格式)、Portable Network Graphics(PNG格式)和JPEG(J
50、PEG格式)。“Dont Publish Diagrams”(不要发布图)是指不发布图像,仅仅包含文本内容。其余三种指的是发布的图形文件格式。发布模型发布模型 146/76 添加一个注释包含以下的步骤:1 打开正在编辑的图,选择图形编辑工具栏中的图标,将其拖入到图中需添加注释的模型元素附近。也可以选择“Tools”(工具)菜单下的“Create”(新建)菜单中的“Note”选项,在图中需添加注释的模型元素附近绘制注释即可。2 在图形编辑工具栏中选择图标,或者在“Tools”(工具)菜单下的“Create”(新建)菜单中选择“Note Anchor”选项,添加注释与模型元素的超链接。删除注释的方