软件工程概论:第8章 统一建模语言_第1页
软件工程概论:第8章 统一建模语言_第2页
软件工程概论:第8章 统一建模语言_第3页
软件工程概论:第8章 统一建模语言_第4页
软件工程概论:第8章 统一建模语言_第5页
已阅读5页,还剩92页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、面向对象建模面向对象的分析和设计应该从建模开始。构造模型通常出于以下几个目地:在着手解决一个复杂问题之前,对解决方案进行检测;用于同客户或其他相关人员进行交流;加强视觉效果;对复杂问题进行简化。面向对象建模模型是对事物的一种抽象,人们常常在正式建造实物之前,首先建立一个简化的模型,以便更透彻地了解它的本质,抓住问题的要害。在模型中,人们总是剔除那些与问题无关的、非本质的东西,从而使模型与真实的实体相比更加简单、易于把握。第8章 统一建模语言8.1 统一建模语言UML8.2 UML视图与模型图8.3 UML与Java的对应关系8.4 统一建模语言的综合应用8.1 统一建模语言UMLUML概要UM

2、L建立在当今国际上最有代表性的三种面向对象方法的基础之上。OMT方法(James Rumbaugh)Booch方法(Grady Booch)OOSE方法(Ivar Jacobson)并称UML三友(Three Amigos)8.1 统一建模语言UML1996年,UML三友提出UML0.91997年11月,由OMG批准为标准(UML1.1),1997-2003年,提出UML1.X(1.3、1.4、1.5)2005年,提出UML2.0最新版本:UML2.X(2.4)OMG(Object Management Group,对象管理组织)是世界上最大的计算机工业联盟,于1989年4月有8个公司发起,目

3、前有800多家成员。8.1 统一建模语言UMLUML是事实上的工业标准,当前的主流UML是一种建模语言而不是一种方法,UML本身是独立于过程的。UML的设计目标:运用面向对象概念来构造系统模型建立起从概念模型直至可执行体之间明显的对应关系创建一种对人和机器都适用的建模语言8.1 统一建模语言UMLUML 1.X模型图:9种类图:Class Diagram对象图:Object Diagram构件图: Component Diagram部署图: Deployment Diagram用例图:Use Case Diagram活动图: Activity Diagram状态图: Statechart Di

4、agram顺序图: Sequence Diagram协作图: Collaboration Diagram8.1 统一建模语言UMLUML 2.X模型图:13种类图:Class Diagram对象图:Object Diagram构件图: Component Diagram部署图: Deployment Diagram包图: Package Diagram复合结构图:Composite Structure Diagram用例图:Use Case Diagram状态(机)图: State Machine Diagram活动图: Activity Diagram交互图:Interaction Diag

5、ram顺序图: Sequence Diagram定时图:Timing Diagram通讯图:Communication Diagram交互概观图:Interaction Overview Diagram8.1 统一建模语言UMLUML2.0增改的图(相对于UML1.5 )增加了4种图复合结构图(Composite Structure Diagram)包图(Package Diagram)交互概观图(Interaction Overview Diagram)定时图(Timing Diagram)注:包图在UML1.X中并不是一种正式的图对2种图重新命名原来的协作图(Collaboration D

6、iagrams)改名为通讯图(Communication Diagrams)原来的状态图(Statechart Diagrams)改名为状态机图(State Machine Diagrams)8.1 统一建模语言UMLUML2.X:模型图8.1 统一建模语言UMLUML2.X:模型图的常用译名8.1 统一建模语言UMLUML为人们提供了从不同的角度去观察和展示系统的各种特征的一种标准表达方式。在UML中,从任何一个角度(视角)对系统所作的抽象都可能需要用几种模型图来描述,而这些来自不同角度的模型图最终组成了系统的完整模型。8.1 统一建模语言UML常用视角1:用例视图:从系统外部的操作者的角度

7、描述系统的功能。(用例图)逻辑视图:描述系统内部的静态结构和动态行为,即从内部描述如何设计实现系统功能。 (静态视图:类图、对象图;动态视图:状态图、活动图、顺序图、协作图)构件视图:描述系统由哪些程序构件所组成。(构件图)部署视图:描述系统的软件和各种硬件设备之间的配置关系。(部署图)并发视图:描述系统的并发性,强调并发系统中存在的各种通信和同步问题。(动态视图+构件视图+部署视图)8.1 统一建模语言UML常用视角2(采用UML进行项目分析和设计的步骤):用例视图(用例图)静态视图(类图,对象图)行为视图(状态图,活动图)交互视图(顺序图,协作图)实现视图(构件图,部署图)动态视图8.1

8、统一建模语言UMLUML的4层语义元-元模型:元模型的基础体系结构,定义一种说描述元模型的语言。组成UML的最基本的元素“事物(thing)”,代表要定义的所有事物。元-元模型比元模型具有更高的抽象级别,而且比它定义的元模型更加简洁。元模型:元-元模型的一个实例,定义一种描述模型的语言。这一层的每个概念都是元-元模型中“事物”概念的实例。模型:元模型的一个实例,定义一种语言来描述信息领域。这一层的模型通常叫做类模型(class model)或者类型模型(type model)。用户对象:模型的一个实例,定义一个特定的领域。这一层的模型通常叫做对象模型或实例模型。8.1 统一建模语言UMLUML

9、2.X规范的四个部分8.1 统一建模语言UMLUML 2.0 Infrastructure设计目标定义一个元语言的核心基础结构库(Infrastructure Library)通过对此核心的复用,可以定义一个自展的UML元模型通过共用核心包,使UML和其它建模语言在体系结构上保持一致8.1 统一建模语言UMLUML 2.0 Superstructure 设计目标(700+ page)严格地复用Infrastructure中的模型构造物支持接口、部件和连接子,及其层次化组合能力,从而提高对架构的规约能力;增强行为图的可伸缩性、精确性和集成能力;审定所有UML1.x的构造物和图,适当地精化、取缔和

10、逐步淘汰,同时进行大量扩展8.1 统一建模语言UMLDiagram Interchange设计目标定义一个针对UML模型及图的交换标准UML模型和图UML建模结果既包含模型元素本身(反映语义信息),还包含图形化的布局(反映语法信息)8.1 统一建模语言UML对象约束语言OCL(Object Contraint Language Specification)设计目标定义并介绍了一种对象约束语言,其用途是用来说明在图形化的系统模型中不能充分表达的建模信息。OCL是一种基于一阶谓词逻辑和集合论的形式化语言OCL主要用于针对UML模型定义不变式条件(invariant conditions)和前后置条

11、件(pre-/post- conditions)优点:精确的语义8.1 统一建模语言UMLUML支撑环境:IBM Rational Rose基于UML的模型驱动的软件开发环境全面支持团队整体合作的开发形式集成了最新软件开发技术和思想8.2 UML视图与模型图用例图(Use Case Diagram) 用例是获取和组织用户需求的手段,是指对系统提供的功能(或称系统的用途)的一种描述。从本质上讲,一个用例是用户与计算机之间为达到某个目的的一次典型交互作用。用例描述了用户提出的一些可见的需求用例对应一个具体的用户目标用例可大可小8.2 UML视图与模型图用例图着重于描述系统外部的行为者与系统的用例之

12、间的某种联系:从系统外部行为者的角度来描述系统需要提供哪些功能,并且指明了这些功能的行为者是谁。用例模型就是以用例为基本单位建立的一个系统功能展示模型,它是系统所有用例的集合,以统一、图形化方式展示系统的功能和行为特性。8.2 UML视图与模型图用例图在UML方法中占有十分重要的地位,人们甚至称UML是一种用例图驱动的开发方法。Why?8.2 UML视图与模型图基本元素( UML用例模型的图符如下)用例(Use Case):对系统提供的功能(或称系统的用途)的一种描述行为者(参与者/ 执行者)(Actor):可能使用这些用例的人或外部系统系统边界(System Boundary):用于界定系统

13、功能范围,描述该系统功能的用例都置于其中,而描述外部实体的行为者都置于其外。用例和行为者之间的联系描述了“谁使用哪个用例”。8.2 UML视图与模型图基本元素( UML用例模型的图符如下)关系(Relationship)关联(Association):连接行为者和用例。表示行为者所代表的系统外部实体与该用例所描述的系统需求有关。包含/使用(Include) :连接用例和用例。由用例A连向用例B,表示用例A中包含了用例B中的行为或功能。扩展(Extend):连接用例和用例。由用例A连向用例B,表示用例B描述了一项基本需求,而用例A则描述了该基本需求的特殊情况。泛化(Generalization)

14、:连接用例和用例。IncludeExtend用例之间8.2 UML视图与模型图Base Use CaseExtending UseCaseSpecialized Use CaseGeneral UseCaseCommunication8.2 UML视图与模型图用例图:售票系统示例8.2 UML视图与模型图基于用例的需求分析过程1. 获取原始需求2. 开发一个可以理解的需求2.1 识别参与者2.2 识别用例2.3 构建用例图3.详细、完整地描述需求进行用例阐述4.重构用例模型4.1 识别用例间的关系4.2 对用例进行组织和分包8.2 UML视图与模型图获取原始需求:考勤卡应用程序8.2 UML视

15、图与模型图用例模型的获取:获取行为者获取用例8.2 UML视图与模型图获取行为者:谁使用系统的主要功能(主要使用者)?谁需要系统支持他们的日常工作?谁来维护、管理系统使其能正常工作(辅助使用者)?系统需要控制哪些硬件?系统需要与其他哪些系统交互?对系统产生的结果感兴趣的是哪些人?8.2 UML视图与模型图识别参与者:考勤卡系统8.2 UML视图与模型图获取用例:行为者要求系统提供哪些功能?行为者需要读、产生、删除、修改或存储系统中的信息有哪些类型?必须提醒行为者的系统事件有哪些?行为者必须提醒系统事件有哪些?怎样把这些事件表示成用例中的功能?8.2 UML视图与模型图识别用例:考勤卡系统8.2

16、 UML视图与模型图类图(Class Diagram)和对象图(Object Diagram)在面向对象的建模技术中,类、对象和它们之间的关系是最基本的建模元素。对于一个想要描述的系统,其类模型、对象模型以及它们之间的关系揭示了系统的结构。类图描述了系统中的类及其相互之间的各种关系,其本质反映了系统中包含的各种对象的类型以及对象间的各种静态关系。8.2 UML视图与模型图对象图是类图的一种实例化。一张对象图表示的是与其对应的类图的一个具体实例,即系统在某一时期或者某一特定时刻可能存在的具体对象实例以及它们相互之间的具体关系。对象图是类图的一种变形:除了在对象名下面要加下划线以外,对象图中所使用

17、的符号与类图基本相同。对象图并不象类图那样具有重要的地位,但是利用它可以帮助我们通过具体的实例分析,更具体直观地了解复杂系统类图的丰富内涵。8.2 UML视图与模型图对象模型组成元素对象链接:对象之间的物理或业务联系类关联:指出了类之间的某种语义联系,是类对其对象实例之间的无数潜在联系的描述8.2 UML视图与模型图关联具有:名称度数关联类基数(多重性约束)。注意,基数的具体值根据实际问题中的说明来确定。最大基数(键约束Key Constraint):对关系中任意的其他类的实例,该类实例可能参与关系的最大数量 (1或many)最小基数(参与约束Participant Constraint):对

18、关系中任意的其他类的实例,该类实例可能参与关系的最小数量 (0或1)8.2 UML视图与模型图一对一(1:1)一对多(1:n)多对多(m:n)表示与简写0.10.*/*11. *8.2 UML视图与模型图8.2 UML视图与模型图基本元素的图符:类:表示一个类,其中第一栏是类的名,第二栏是类的属性,第三栏是类的操作。对象:类的一个实例。8.2 UML视图与模型图关联:用于表示类的对象之间的关系。其特殊形式有组成关联和聚集关联。链接:用于表示对象间的关联关系的一个实例。8.2 UML视图与模型图特殊的关联聚集关联(聚合):用于表示类的对象之间的关系是整体与部分的关系。组成关联(组合):用于表示类

19、的对象之间的关系,整体拥有各部分,部分与整体共存,如整体不存在了,部分也会随之消失。8.2 UML视图与模型图泛化关联(继承关系) :定义了类和包间的一般元素和特殊元素之间的分类关系。消息连接(依赖关系):有两个类或包元素X、Y,修改元素X的定义可能会引起对另一个元素Y的定义的修改,则称元素Y依赖于元素X。8.2 UML视图与模型图类/对象模型的4种关系:整体-部分关系(即对象之间的组成关系),用聚集关联和组合关联表示。继承关系(即对象之间的一般-特殊关系),用泛化关联表示。对象之间的静态联系(即通对象属性反映的联系),用关联和链接表示。对象之间的动态联系(即对象行为之间的依赖关系),用消息连

20、接表示。8.2 UML视图与模型图类图:售票系统示例8.2 UML视图与模型图类图、对象图:对比示例对象图8.2 UML视图与模型图OOA模型(需求分析阶段):经常是概念类图(Concept Class Diagram)特点: OOA阶段的类大多是概念类(Concept Class),是一个能够代表现实世界事物的概念概念类之间存在指明语义联系的关联,这些关联通常不标记方向,也不标记关联端的可见性 概念类会显式的描述自己的一些重要属性,但不是全部的详细属性,而且概念类的属性通常没有类型的约束 概念类不显式的标记类的行为,即概念类不包含明确的方法 8.2 UML视图与模型图类图:销售终端系统示例(

21、概念类图)8.2 UML视图与模型图包图(Package Diagram)包是一种分组机制,表示一个类的集合。包图所显示的是类的包以及这些包之间的依赖关系。如果两个包中的任意两个类之间存在依赖关系,则这两个包之间存在依赖关系。包的依赖是不传递的。图符:8.2 UML视图与模型图包图的适用情况:在复杂大型项目中,包图是一种重要工具。包的概念对测试也特别有用。注意:依赖产生耦合,应该尽量将依赖性减少到最低程度。8.2 UML视图与模型图包图:售票系统示例(子系统 包)8.2 UML视图与模型图构件图( Component Diagram)构件( Component )是系统中可替换的物理部分,它包

22、装了实现而且遵从并提供一组接口的实现。构件可以是源代码构件、二进制目标码构件、可执行构件或文档构件等。规格说明:对于构件,必须有一个它所提供服务的抽象描述。通俗地说,每个构件都必须提供特定的服务。构件是一种物理概念,必须被一个或多个实现所支持,当然这些实现都必需符合规格说明。8.2 UML视图与模型图构件图描述软件构件以及它们之间的依赖关系,从而便于人们分析和发现当修改某个构件时可能对那些构件产生影响,以便对它们做相应的修改或更新。构件图的图例8.2 UML视图与模型图构件图:售票系统示例8.2 UML视图与模型图部署图(Deployment Diagram)部署图描述系统中硬件和软件的物理配

23、置情况和系统体系结构。在部署图中,用节点表示实际的物理设备,如计算机和各种外部设备等,并根据它们之间的连接关系,将相应的节点连接起来,并说明其连接方式。在节点里面,说明分配给该节点上运行的可执行构件或对象,从而说明哪些软件单元被分配在哪些节点上运行。8.2 UML视图与模型图部署图:售票系统示例8.2 UML视图与模型图部署图:售票系统示例8.2 UML视图与模型图动态视图中模型图的作用状态图、活动图、顺序图、协作图8.2 UML视图与模型图状态图( Statechart Diagram)状态图是对类的一种补充描述,它展示了某类的对象所具有的可能的状态以及某些事件发生时其状态的转移情况。主要用

24、于描述重要而且复杂的对象的所有行为。通常要涉及很多个(甚至大部分)的用例。8.2 UML视图与模型图基本元素的图符:状态:由圆角矩形表示。初始状态、结束/终止状态迁移/转换/转换:状态的改变称作迁移。状态迁移由箭头表示,箭头旁可以标出触发迁移的事件以及迁移发生的条件。状态迁移可以伴随有某个动作/行为,它表明当迁移发生时系统要做什么。事件条件 动作8.2 UML视图与模型图Readystop/ctr := 0 Stop normal状态触发事件动作初始状态迁移结束状态Done条件事件8.2 UML视图与模型图状态图:售票系统示例8.2 UML视图与模型图状态图:电梯系统示例8.2 UML视图与模

25、型图顺序图(Sequence Diagram)顺序图描述了对象之间动态的交互关系,着重体现多个对象之间消息传递的时间顺序。通常描述的是单个用例的典型场景8.2 UML视图与模型图基本元素的图符:对象:顺序图由一组对象构成,顺序图描述了这些对象随着时间的推移相互之间交换消息的过程。生命线:每个对象分别带有一条竖线,称作对象的生命线,它代表时间轴,时间沿竖线向下延伸。消息:消息用从一条垂直的对象生命线指向另一个对象的生命线的水平箭头表示。图中还可以根据需要增加有关消息的说明和其他注释。图中还可以根据需要增加有关时间的说明和其他注释。8.2 UML视图与模型图8.2 UML视图与模型图顺序图中的消息

26、事件顺序:因果性(Causality):对同一消息而言,发送事件先于接收事件。可控性(Controlability):对同一对象而言,事件p出现在发送事件q的上方,则p先于q。队列性(FIFO):对同一对象而言,接收事件p出现在接收事件q的上方,并且它们分别对应的发送事件也位于同一个对象,则p先于q。8.2 UML视图与模型图顺序图:打印机系统示例8.2 UML视图与模型图顺序图:售票系统示例8.2 UML视图与模型图系统顺序图:将整个系统看作一个黑箱的对象,强调外部参与者和系统的交互行为,重点展示系统级事件 8.2 UML视图与模型图协作图( Collaboration Diagram)与顺

27、序图作用相同,协作图也是用来描述系统中对象之间的动态协作关系。协作图侧重于描述多个对象之间存在的消息收发关系(交互关系),而不专门突出这些消息发送的时间顺序。通常描述的是单个用例的典型场景基本元素的图符:对象:用对象图符来表示消息:用带箭头的直线表示。箭头方向表示消息发送的方向,而消息执行的顺序则由消息的编号来表明。8.2 UML视图与模型图协作图:打印机系统示例8.2 UML视图与模型图协作图:售票系统示例8.2 UML视图与模型图活动图(Activity Diagram)活动图描述系统中各种活动的执行顺序。以“流”(控制流和数据流)处理为侧重点描述系统的行为通常以整体业务流程为描述对象,用

28、于描述一个操作中所要进行的各项活动的执行流程。同时,它也可被用来描述一个用例的处理流程,或者某种交互流程。8.2 UML视图与模型图基本元素的图符:活动:活动图由一些活动组成,用圆角矩形表示。初始状态、结束状态(控制)流:当一个活动执行完毕之后,控制将沿着控制转移箭头转向下一个活动。用带箭头的直线表示。控制转移的条件(条件分支、条件联合)并行/并发执行(并发分支、并发联合)(泳道)8.2 UML视图与模型图8.2 UML视图与模型图活动图:示例8.2 UML视图与模型图活动图:售票系统示例8.2 UML视图与模型图活动图最适合支持描述并行/并发行为,这使之成为支持工作流建模的最好工具。活动图最

29、大的缺点是很难清楚地描述动作与对象之间的关系。活动图的适用情况:分析用例;理解牵涉多个用例的工作流;处理多线程应用。在下列情况下,一般不要使用活动图:显示对象间合作;显示对象在其生命周期内的运转情况。8.2 UML视图与模型图动态视图的4种模型图的各自适用场景:协作图的布局方法能更清楚地表示出对象之间静态的连接关系。(多个对象、单个用例)顺序图突出执行的时序,能更方便地看出事件发生的次序。 (多个对象、单个用例)如果想要描述跨越多个用例的单个对象的行为,应当使用状态图。如果想要描述跨越多个用例或多个线程的多个对象的复杂行为,则需考虑使用活动图。8.2 UML视图与模型图所有UML模型都可使用的

30、基本元素注释体:对UML实体进行文字描述注释连接:将注释体与要描述的实体连接,说明该注释体是针对该实体所进行的描述。8.3 UML与Java的对应关系1. 表示结构类和对象:在UML中,是通过一个模块化的矩形表示Java类:名称区域:显示Java的类名。属性区域:如果有,列出在类中定义的变量。操作区域:如果有,显示出定义在类中的方法。类名:斜体抽象类。属性名:下划线静态特性;+ Public;# Protected;- Private。操作名:下划线静态方法。斜体抽象方法。带有对象名和(或)类名的矩形用来表示对象的标准化标记法。8.3 UML与Java的对应关系8.3 UML与Java的对应关系接口:在UML中,Java接口被描述为一个以interface为模板化的类。就接口来说,UML传统的表示方式是一个小圆圈。8.3 UML与Java的对应关系包:Java包映射为UML包。UML包以文件夹的形式表示出来。8.3 UML与Java的对应关系2. 表示关系继承(泛化关联):UML中的Generalization(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论