UML统一建模语言_第1页
UML统一建模语言_第2页
UML统一建模语言_第3页
UML统一建模语言_第4页
UML统一建模语言_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

UML统一建模语言1背景OO建模语言的发展始于20世纪70年代中和80年代末。从1989年到1994年,其数量由不到10种猛增加到50余种。但使用OO方法的用户却很难找到一种完全满意的语言。90年代中期,出现了一批较好的方法。其中令人关注的有Booch1993(适用于工业设计和构造);Rumbaugh的OMT-2(特别适用于以数据为中心的信息系统的分析和描述中的应用);Jacobson的OOSE,即use-case方法(支持商业工程和需求分析)。它们都是完整的方法,但各有其特色。UML开始于1994年10月。先由RationalSoftware公司的G.Booch和J.Rumbaugh将Booch和OMT(这两种方法被公认为是世界OO方法的先驱)统一起来,并于1995年10月推出了UM(UnifiedMethod)草案0.8版;1995年秋,Jacobson参加,把OOSE也合并进来,这才称为UML。2UML是什么

(UnifiedModelingLanguage)是一种语言-用来获取某一主题的知识和表达关于该主题的知识,以便进行交流应用于建模和系统-理解(了解)一个主题(系统)基于面向对象规范是一种通用的、广泛适用的、得到工具支持和工业标准化的革命性的建模语言3UML不是什么UML不是一种可视化的程序设计语音,而是一种可视化的建模语言UML不是一种工具或库规范,而是一种建模语言规范UML不是一种过程,而是用于支持过程4UML的目标易用、表达能力强、简单、可扩展具备扩展和特化机制 -无须修改核心概念即可进行扩展独立于实现(程序设计语言)独立于过程(开发)解决反复出现的体系结构复杂的问题 -通过组件技术5UML图类图classdiagram对象图objectdiagram用例图usecasediagram序列图sequencediagram协作图collaborationdiagram状态图statechartdiagram活动图activitydiagram组件图componentdiagram部署图deploymentdiagram6类图classdiagram描述系统的静态结构,而不是运行方式类(class) -attributesandmethods7类图classdiagram关联(association)publicclassPerson{...privateOrganizationemployer;...}8类图classdiagram多重性9类图classdiagram聚合(aggregation)与组合(composition)不同之处在于,在组合关系中,Part的对象任何时候只能从属于一个Whole对象10类图classdiagram继承第一个类是代表某种支付方式的Payment抽象类,另外两个类分别扩展Payment类,描述两种不同的支付方式11对象图objectdiagram对象图描述系统在某个特定时间的静态结构。对象模型描述一种特定的情况,而类模型则描述所有可能的情况。对象(object),代表特定的实体,是类的实例链接(link),代表对象之间的特定关系,是关联的实例12对象图objectdiagram王平:学生姓名:王平学号:020106英语:书书名:英语价格:26.5数学:书书名:数学价格:21.813序列图sequencediagram要达到某个特定的目标,必然要执行一系列的方法调用。UML序列图的典型用途就是显示出方法调用过程。类角色(classrole),代表对象在交互中的角色生命线(lifeline),代表对象在一段时期内存在激活期(activation),代表对象执行一项操作的时期消息(message),代表对象间的通信14序列图sequencediagram15序列图sequencediagram /**属于Sale类: *从lineItem的单项金额计算交易总金额 *@return交易总额*/ publicdoublecalcTotal(){total=0.0;Iteratori=lineItems.iterator();while(i.hasNext())total+=((LineItem)i.next()).calcTotal();returntotal;}/**属于LineItem类:计算当前项目的交易金额*@return交易金额*/publicdoublecalcTotal(){total=product.calcTotal(this);returntotal;}/**属于Product类:计算指定数量的产品价值多少@return金额*/publicdoublecalcTotal(LineItemli){returnamount*li.getQuantity();}

16协作图collaborationdiagram描述类和关联之间的交互,将这些交互建模为类之间通过其关联交换的消息。类角色(classrole),代表对象在交互中扮演的角色。关联角色(associationrole),代表链接在交互中扮演的角色。消息流(messageflow),代表对象间通过链接发送的消息

17协作图collaborationdiagram18协作图collaborationdiagram19状态图statediagram状态图(StateDiagram)用来描述一个特定对象的所有可能状态及其引起状态转移的事件。大多数面向对象技术都用状态图表示单个对象在其生命周期中的行为。一个状态图包括一系列的状态以及状态之间的转移。状态(state),代表在对象生命期间的某种状态。包括初态、终态、中间状态、复合状态。其中,初态是状态图的起始点,而终态则是状态图的终点。一个状态图只能有一个初态,而终态则可以有多个。

转换(transition),代表对象不同状态间的关系。状态的变迁通常是由事件触发的,此时应在转移上标出触发转移的事件表达式。如果转移上未标明事件,则表示在源状态的内部活动执行完毕后自动触发转移。20状态图statediagram21状态图statediagram22状态图statediagram中间状态包括两个区域:名字域和内部转移域,如图2所示。图中内部转移域是可选的,其中所列的动作将在对象处于该状态时执行,且该动作的执行并不改变对象的状态。

23状态图statediagram一个状态可以进一步地细化为多个子状态,我们将可以进一步细化的状态称作复合状态。24活动图activitydiagram反映一个连续的运动流某个操作的执行时的活动状况描述一个操作执行过程中(操作实现的实例化)所完成的工作(动作)。描述对象内部的工作。显示如何执行一组相关的动作,以及这些动作如何影响它们周围的对象。显示用例的实例是如何执行动作以及改变对象状态。说明一次商务活动中的工人(角色)、工作流、组织和对象是如何工作的。动作、转移、泳道、对象、信号

25活动图activitydiagram26活动图activitydiagramDiskfreeDiskfull显示磁盘满显示在打印删去显示信息建立打印文件Win.printAll()^printer.print()27活动图activitydiagram与状态图的区别活动图描述类对内部处理过程的响应行为。 状态图描述类对外部时间的响应行为。泳道泳道是代表分区动作集合的图形构造。泳道用于对一个或多个对象为整个活动中的动作所承担的职责建模。也就是说,泳道将活动状态划分为组,并把这些组分配给执行这些活动的对象。28组件图componentdiagram组件图用于展现系统的实现视图。这些图描述软件的实现组件之间的组织形式和依赖关系。组件包含逻辑类及逻辑类的实现信息

用来反映代码的物理结构

源组件、二进制组件、可执行组件

29组件图componentdiagram链接时的组件、运行时的组件

Mainprograms,主程序

Packages,构件包

Subprograms,子程序

Tas

温馨提示

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

评论

0/150

提交评论