《《UML统一建模语言》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《UML统一建模语言》PPT课件.ppt(34页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、UML统一建模语言统一建模语言中国科学院研究生院武磊背景背景lOO建模语言的发展始于20世纪70年代中和80年代末。从1989年到1994年,其数量由不到10种猛增加到50余种。但使用OO方法的用户却很难找到一种完全满意的语言。l90年代中期,出现了一批较好的方法。其中令人关注的有Booch 1993(适用于工业设计和构造);Rumbaugh的OMT-2(特别适用于以数据为中心的信息系统的分析和描述中的应用);Jacobson的OOSE,即use-case方法(支持商业工程和需求分析)。它们都是完整的方法,但各有其特色。lUML开始于1994年10月。先由Rational Software公司
2、的G.Booch和J.Rumbaugh将Booch和OMT(这两种方法被公认为是世界OO方法的先驱)统一起来,并于1995年10月推出了UM(Unified Method)草案0.8版;1995年秋,Jacobson参加,把OOSE也合并进来,这才称为UML。UML是什么是什么(Unified Modeling Language)l是一种语言语言 用来获取某一主题的知识和表达关于该主题的知识,以便进行交流l应用于建模和系统 理解(了解)一个主题(系统)l基于面向对象规范l是一种通用的、广泛适用的、得到工具支持和工业标准化的革命性的建模语言UML不是什么不是什么lUML不是一种可视化的程序设计语
3、音,而是一种可视化的建模语言lUML不是一种工具或库规范,而是一种建模语言规范lUML不是一种过程,而是用于支持过程UML的目标的目标l易用、表达能力强、简单、可扩展l具备扩展和特化机制无须修改核心概念即可进行扩展l独立于实现(程序设计语言)l独立于过程(开发)l解决反复出现的体系结构复杂的问题通过组件技术UML图图l类图 class diagraml对象图 object diagraml用例图 use case diagraml序列图 sequence diagraml协作图 collaboration diagraml状态图 statechart diagraml活动图 activity
4、diagraml组件图 component diagraml部署图 deployment diagram类图类图 class diagram描述系统的静态结构,而不是运行方式l类(class)attributes and methods类图类图 class diagraml关联(association)public class Person .private Organization employer;.类图类图 class diagraml多重性类图类图 class diagraml聚合(aggregation)与组合(composition)不同之处在于,在组合关系中,Part的对象任何时
5、候只能从属于一个Whole对象 类图类图 class diagraml继承第一个类是代表某种支付方式的Payment抽象类,另外两个类分别扩展Payment类,描述两种不同的支付方式 对象图对象图 object diagram 对象图描述系统在某个特定时间的静态结构。对象模型描述一种特定的情况,而类模型则描述所有可能的情况。l对象(object),代表特定的实体,是类的实例l链接(link),代表对象之间的特定关系,是关联的实例对象图对象图 object diagram王平:学生姓名:王平学号:020106英语:书书名:英语价格:26.5数学:书书名:数学价格:21.8序列图序列图 seque
6、nce diagram 要达到某个特定的目标,必然要执行一系列的方法调用。UML序列图的典型用途就是显示出方法调用过程。l类角色(class role),代表对象在交互中的角色l生命线(lifeline),代表对象在一段时期内存在l激活期(activation),代表对象执行一项操作的时期l消息(message),代表对象间的通信序列图序列图 sequence diagram序列图序列图 sequence diagram/*属于Sale类:*从lineItem的单项金额计算交易总金额*return 交易总额*/public double calcTotal()total=0.0;Iterato
7、r i=lineItems.iterator();while(i.hasNext()total+=(LineItem)i.next().calcTotal();return total;/*属于LineItem类:计算当前项目的交易金额*return 交易金额*/public double calcTotal()total=product.calcTotal(this);return total;/*属于Product类:计算指定数量的产品价值多少 return 金额*/public double calcTotal(LineItem li)return amount*li.getQuanti
8、ty();协作图协作图 collaboration diagram 描述类和关联之间的交互,将这些交互建模为类之间通过其关联交换的消息。l类角色(class role),代表对象在交互中扮演的角色。l关联角色(association role),代表链接在交互中扮演的角色。l消息流(message flow),代表对象间通过链接发送的消息协作图协作图 collaboration diagram协作图协作图 collaboration diagram状态图状态图 state diagram 状态图(State Diagram)用来描述一个特定对象的所有可能状态及其引起状态转移的事件。大多数面向对
9、象技术都用状态图表示单个对象在其生命周期中的行为。一个状态图包括一系列的状态以及状态之间的转移。l状态(state),代表在对象生命期间的某种状态。包括初态、终态、中间状态、复合状态。其中,初态是状态图的起始点,而终态则是状态图的终点。一个状态图只能有一个初态,而终态则可以有多个。l转换(transition),代表对象不同状态间的关系。状态的变迁通常是由事件触发的,此时应在转移上标出触发转移的事件表达式。如果转移上未标明事件,则表示在源状态的内部活动执行完毕后自动触发转移。状态图状态图 state diagram状态图状态图 state diagram状态图状态图 state diagram
10、l中间状态包括两个区域:名字域和内部转移域,如图2所示。图中内部转移域是可选的,其中所列的动作将在对象处于该状态时执行,且该动作的执行并不改变对象的状态。状态图状态图 state diagraml一个状态可以进一步地细化为多个子状态,我们将可以进一步细化的状态称作复合状态。活动图活动图 activity diagraml反映一个连续的运动流l某个操作的执行时的活动状况l描述一个操作执行过程中(操作实现的实例化)所完成的工作(动作)。l描述对象内部的工作。l显示如何执行一组相关的动作,以及这些动作如何影响它们周围的对象。l显示用例的实例是如何执行动作以及改变对象状态。l说明一次商务活动中的工人(
11、角色)、工作流、组织和对象是如何工作的。l动作、转移、泳道、对象、信号活动图活动图 activity diagram活动图活动图 activity diagramDisk freeDisk full显示磁盘满显示在打印删去显示信息建立打印文件Win.printAll()printer.print()活动图活动图 activity diagraml与状态图的区别 活动图描述类对内部处理过程的响应行为。状态图描述类对外部时间的响应行为。l泳道 泳道是代表分区动作集合的图形构造。泳道用于对一个或多个对象为整个活动中的动作所承担的职责建模。也就是说,泳道将活动状态划分为组,并把这些组分配给执行这些活动
12、的对象。组件图组件图 component diagram 组件图用于展现系统的实现视图。这些图描述软件的实现组件之间的组织形式和依赖关系。l组件包含逻辑类及逻辑类的实现信息l用来反映代码的物理结构l源组件、二进制组件、可执行组件组件图组件图 component diagraml链接时的组件、运行时的组件lMain programs,主程序lPackages,构件包lSubprograms,子程序lTasks,独立线程lEXE,可执行文件lDLL,动态连接库组件图组件图 component diagram虚线箭头表示依赖关系部署图部署图 deployment diagram部署图用于展现系统的环境视图。这些图描述执行处理过程的资源元素的配置情况,以及软件实现组件到资源元素的映射。l节点l组件l关联部署图部署图 deployment diagram实例分析实例分析