UML统一建模语言

一.UML的引出:

     面向对象软件开发需要经过OOA(面向对象分析)、OOD(面向对象设计)和OOP(面向对象编程)三个阶段,OOA对目标系统进行分析建立分析模型,并将之文档化;OOD用面向对象的思想OOA的结果进行细化,得出设计模型。OOA和OOD的分析、设计结果需要统一的符号来描述、交流并记录。UML就是这种描述、记录OOA和OOD结果的符号表示法。

二.UML的结构:

    UML图分为静态图和动态图两种。


UML有13种正式图形:活动图(activity diagram)、类图(class diagram)、通信图(communication diagram)、组件图(commponent diagram)、复合结构图(composite structure diagram)、部署图(deployment diagram)、交互概观图(interactive overview diagram)、对象图(object diagram)、包图(package diagram)、顺序图(sequence diagram)、状态图(state machine diagram)、定时图(timing diagram)、用例图(use case diagram)。

常用UML图包括用例图、类图、组件图、部署图、顺序图、活动图和状态机图。

   1.用例图:用于描述系统提供的系列功能,而每个用例则代表系统的一个功能模块。用例图的主要目的是帮助开发团队以一种可视化的方式理解系统的需求功能,用例图对系统的实现不做任何说明,仅仅是系统功能的描述。

用例图包括用例(以一个椭圆表示,用例的名称放在椭圆的中心或椭圆下面)、角色(Actor,也就是与系统交互的其他实体,以一个人形符号表示)、角色和用例之间的关系(以简单的线段来表示),以及系统内用例之间的关系。用例图一般表示出用例的组织关系————要么是整个系统的全部用例,要么是完成具体功能的一组用例。


用例图主要在需求分析阶段使用,主要用于描述系统实现的功能,方便与客户交流,保证系统需求的无二性,用实例图表示系统外观,不要指望用例图和系统的各个类之间有任何联系。

  2.类图:表示系统中应该包含哪些实体,各实体之间如何关联;换句话说,它显示了系统的静态结构,类图可用于表示逻辑类,逻辑类通常就是业务人员所谈及的事物种类。

类在类图上使用包含三个部分的矩形来描述,最上面的部分显示类的名称,中间部分包含类的属性,最下面的部分包含类的方法。


类之间的关系:

         1).关联(包括聚合、组合):当把两个实体抽象到软件系统中时,两个类之间必然存在关联关系。关联具有一定的方向性:如从一个类单方向访问另一个类,称为单向关联;两个类可以互相访问对象,称为双向关联。关联使用一条实线来表示。

聚合和组合是关联关系的两个特例:聚合---当某个实体聚合成另一个实体时,该实体还可以同时是另一个实体的部分;组合---当某个实体组合成另一个实体时,实体则不能同时是一个实体的部分。聚合使用带空心菱形框的实线表示,组合则使用带实心菱形框的实线表示。


          2).泛化:泛化与继承是同一个概念,都是指子类是一种特殊的父类,类与类之间的继承关系是非常普通的,继承关系使用带空心三角形的实线

          3).依赖:如果一个类的改动会导致另一个类的改动,则称两个类之间存在依赖。依赖关系使用带箭头的虚线表示,其中箭头指向被依赖的实体。依赖的常见的原因有改动的类将消息发给另一个类;改动的类以另一个类作为数据部分;改动的类以另一个类作为操作参数。


 3.组件图:对于大型应用程序而言,通常不只是单独一个类或单独一组类所能完成,通常会由一个或多个可部署的组件组成。对于java程序可复用组件通常打包成一个jar、war等文件;对于C/C++应用而言,可复用的组件通常是函数库或DLL(动态链接库)文件。组件图提供系统的物理视图,它的用途是显示系统中的软件对其他软件组件(例:库函数)的依赖关系。组件图通常包含组件、接口和port等图元,UML使用带符号的矩形来表示组件,,使用圆圈代表接口,使用位于组件边界上的小矩形代笔port。

组件接口表示他能对外提供的服务规范,有两种表现形式:

用一条实线连接到组件边界的圆圈表示;使用位于组件内部的圆圈表示。


 4.部署图:部署图用于描述软件系统如何部署到硬件环境中,它的用途是显示软件系统不同的组件将在何处物理运行,以及它们将如何通信。

   部署图中的符号包括组件图中所使用的符号元素,另外还增加了节点的概念:节点是各种计算资源的通用名称,主要包括处理器和设备两种类型,两者的区别是处理器能够执行程序的硬件构件(如计算机主机),而设备是一种不具备计算能力的硬件构件(如打印机)。UML中使用三维立方体来表示节点,节点的名称位于立方体的顶部。


 5.顺序图:显示具体用例(或是用例的一部分)的详细流程,并且显示流程中不同对象之间的调用关系,同时还可以很详细地显示对不同对象的不同调用。顺序图描述了对象之间的交互(顺序图和通信图都被称为交互图),重点在于描述消息及其时间顺序。

顺序图有两个维度:垂直维度,以发生的时间顺序显示消息、调用的序列;水平维度,显示消息被发送到的对象实例。顺序图的关键在于对象之间的消息,对象之间的信息传递就是所谓的消息发送,消息通常表现为对象调用另一个对象的方法或方法的返回值,发送者和接受者之间的箭头表示消息。



 6.活动图和状态机图被称为演化图,区别:

      活动图:用于描述用例内部的活动或方法的流程,如果除去活动图中的并行活动描述,它就变成流程图。

      状态机图: 描述某一对象生命周期中需要关注的不同状态,并会详细描述刺激对象状态改变事件,以及对象状态改变时所采取的动作。

 演化图5要素:

    1).状态:状态是对象响应事件前后的不同面貌,状态是某个时间段对象保持的稳定态,目前的软件计算机都是基于稳定态的,对象的稳定态是对象的固有特征,一个对象的状态一般是有限的。有限状态的对象是容易计算的,对象的状态越多,对象的状态迁移月复杂,对象状态可以想象成对象的演化过程中的快照;

    2).事件:来自对象外界的刺激,通常的形式是消息的传递,只是相对对象而言发生了事件。事件是对象状态发生改变的原动力;

    3).动作:动作时对象针对所发生事件所做的处理,实际上通常表现为某个方法被执行;

    4).活动:是动作激发的后续系统行为;

    5).条件:条件指的是事件发生所需要具备的条件。

 激发对象状态改变的事件:

     1).内部事件:从系统内部激发的事件,一个对象的方法(动作)调用(通过事件激活)另一个对象的方法(动作)。

     2).外部事件:从系统边界激发的事件,如用户的鼠标、键盘动作。


 7.状态机图:表示某个对象所处的不同状态和该类的状态转换信息。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
统一建模语言UML是 Unified Modeling Language的缩写)是用来对软件密集系统进行可视化建模的一种语言。UML为面向对象开发系统的产品进行说明、可视化、和编制文档的一种标准语言。   统一建模语言 (UML)是非专利的第三代建模和规约语言。 UML是在开发阶段,说明,可视化,构建和书写一个面向对象软件密集系统的制品的开放方法。UML展现了一系列最佳工程实践,这些最佳实践在对大规模,复杂系统进行建模方面,特别是在软件架构层次已经被验证有效。   UML可以贯穿软件开发周期中的每一个阶段。被OMG采纳作为业界的标准。   UML最适于数据建模,业务建模,对象建模,组件建模。   UML作为一种模型语言,它使开发人员专注于建立产品的模型和结构,而不是选用什么程序语言和算法实现。当模型建立之后,模型可以被UML工具转化成指定的程序语言代码。   IBM的Rational Rose和MS的Visio都是UML工具。   同时还有一些免费的UML工具: http://java-source.net/open-source/uml-modeling [编辑本段] 1、UML简介   公认的面向对象建模语言出现于70年代中期。从1989年到1994年,其数量从不到十种增加到了五十多种。在众多的建模语言中,语言的创造者努力推崇自己的产品,并在实践中不断完善。但是,OO方法的用户并不了解不同建模语言的优缺点及相互之间的差异,因而很难根据应用特点选择合适的建模语言,于是爆发了一场“方法大战”。90年代中,一批新方法出现了,其中最引人注目的是Booch 1993、OOSE和OMT-2等。    Booch是面向对象方法最早的倡导者之一,他提出了面向对象软件工程的概念。1991年,他将以前面向Ada的工作扩展到整个面向对象设计领域。Booch 1993比较适合于系统的设计和构造。   Rumbaugh等人提出了面向对象的建模技术(OMT)方法,采用了面向对象的概念,并引入各种独立于语言的表示符。这种方法用对象模型、动态模型、功能模型和用例模型,共同完成对整个系统的建模,所定义的概念和符号可用于软件开发的分析、设计和实现的全过程,软件开发人员不必在开发过程的不同阶段进行概念和符号的转换。OMT-2特别适用于分析和描述以数据为中心的信息系统。    Jacobson于1994年提出了OOSE方法,其最大特点是面向用例(Use- Case),并在用例的描述中引入了外部角色的概念。用例的概念是精确描述需求的重要武器,但用例贯穿于整个开发过程,包括对系统的测试和验证。OOSE 比较适合支持商业工程和需求分析。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值