uml

UML介绍

孤者浪人 提交于 2020-02-14 03:44:48
UML是什么 Unified Modeling Language (UML)又称统一建模语言或标准建模语言,是始于1997年一个OMG标准,它是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持,包括由需求分析到规格,到构造和配置。 面向对象的分析与设计(OOA&D,OOAD)方法的发展在80年代末至90年代中出现了一个高潮,UML是这个高潮的产物。它不仅统一了Booch、Rumbaugh和Jacobson的表示方法,而且对其作了进一步的发展,并最终统一为大众所接受的标准建模语言。 UML有什么 UML 2.4.1 发展了已经获得成功的 UML 2.0规范 ,并迅速成为建立软件系统可视化、规范、文档的标准。统一建模语言(UML) 也被用于非软件系统的建模,并在很多领域,诸如金融,军事,工程方面应用广泛。 UML 2 定义了13种基本的图,它们被分成两大类: 1. 结构建模图 结构图定义了一个模型的静态架构。它们通常被用来对那些构成模型的‘要素'建模,诸如:类,对象,接口和物理组件。另外,它们也被用来对元素间关联和依赖关系进行建模。 2. 行为建模图 行为图用来记录在一个模型内部,随时间的变化,模型执行的交互变化和瞬间的状态;并跟踪系统在真实环境下如何表现,以及观察系统对一个操作或事件的反应,以及它的结果。 UML可以用来做什么 嵌入式软件分析设计

UML系列图--用例图

耗尽温柔 提交于 2020-02-13 03:55:27
此博客转载自http://www.cnblogs.com/Yogurshine/archive/2013/01/14/2859248.html UML-Unified Model Language 统一建模语言 ,又称标准建模语言。是用来对 软件 密集系统进行可视化 建模 的一种语言。 在UML系统开发中有三个主要的模型:   功能模型: 从用户的角度展示系统的功能,包括用例图。   对象模型: 采用对象,属性,操作,关联等概念展示系统的结构和基础,包括 类图 、对象图、包图。   动态模型: 展现系统的内部行为。 包括序列图,活动图,状态图。 UML的重要内容可以由以下五种类图定义 用例图 :从用户角度描述系统功能,并指各功能的操作者。 静态图 :包括类图,包图,对象图。 类图:描述系统中类的静态结构 包图:是包和类组成的,表示包与包之间的关系,包图描述系统的分层结构 对象图:是类图的实例 行为图 :描述系统动态模型和对象组成的交换关系。包括状态图和活动图 活动图:描述了业务实现用例的工作流程 状态图:是描述状态到状态控制流,常用于动态特性建模 交互图: 描述对象之间的交互关系 顺序图:对象之间的动态合作关系,强调对象发送消息的顺序,同时显示对象之间的交互 合作图:描述对象之间的协助关系 实现图: 配置图:定义系统中软硬件的物理体系结构 UML包括用例图、类图、构件图、部署图

UML类图关系理解和图例

心已入冬 提交于 2020-02-12 17:54:52
UML分类 类图关系   用户根据用例图抽象成类,描述类的内部结构和类与类之间的关系,是一种静态结构图。 在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)。   各种关系的强弱顺序: 泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖。 分组1:泛化和实现 泛化是父类和子类之间的关系,实现是接口和实现的关系 指向关系:子类指向父类。 分组2:组合、聚合和关联 共同点:这三种关系都表示类A作为类B的属性(成员变量),是一种比较持久的关系。 类A拥有类B作为属性,就表示拥有了类B的属性和方法。 区别:语法上不能区分三者,只能从含义上区别:组合是整体和部分的关系,部分依赖于整体存在,如鸟和翅膀;聚合是集体和个体的关系,个体不需要依赖于集体的存在而存在;其他情况下用关联。 指向关系:对于关联关系,类A使用了类B作为属性,则类A指向B 分组3:依赖 定义:类A依赖类B,表示类A拥有类B作为 返回值、形参、局部变量或静态方法的调用。 指向关系:类A依赖类B,A指向B 类图示例和记忆帮助: 因为关系是按照类A将类B作为A的xxx来划分的。 泛化和实现的指向都是子类指向父类,实现类指向抽象类。虚线表示实现

全面认识UML-类图元素(java)

别来无恙 提交于 2020-02-12 06:25:06
开发Java应用程序时,开发者要想有效地利用统一建模语言(UML),必须全面理解UML元素以及这些元素如何映射到Java。本文重点讨论UML类图中的元素。 类图是最常用的UML图,它用于描述系统的结构化设计。其中包括类关系以及与每个类关联的属性及行为。类图能出色地表示继承与合成关系。为了将类图作为一种高效的沟通工具使用,开发者必须理解如何将类图上出现的元素转换到Java中。下面来进一步探索这一转换过程。 元素 在后面的小节中,分别讲解了类图的各个元素及其在Java中相应的表示。我会列出元素名,后续简短的代码片断和一幅图来表示元素在类图上的样子。每一节的最后简要总结了该元素。 类(Class) 类( 图A )是对象的蓝图,其中包含3个组成部分。第一个是Java中定义的类名。第二个是属性(attributes)。第三个是该类提供的方法。 属性和操作之前可附加一个可见性修饰符。加号(+)表示具有公共可见性。减号(-)表示私有可见性。#号表示受保护的可见性。省略这些修饰符表示具有package(包)级别的可见性。如果属性或操作具有下划线,表明它是静态的。在操作中,可同时列出它接受的参数,以及返回类型,如图A的“Java”区域所示。 图A   包(Package) 包(图 B )是一种常规用途的组合机制。UML中的一个包直接对应于Java中的一个包。在Java中,一个包可能含有其他包

【UML】如何看Android的UML图

会有一股神秘感。 提交于 2020-02-12 04:58:40
UML图有很多类型,这里只讨论最重要也最常用的两种 - 类图和时序图。 1. 类图 通过类图,我们可以很容易的了解代码架构,理清模块之间的关系, 包括继承(Inheritance),实现(realization),依赖(dependency),组合(Composition), 聚合(Aggregation), 关联 (Association) 等等。 下面就图中给出的7种关系一一解读。 1.1 Composition Compostion 是一种 Association 关系,但它更 强调两个类之间整体和局部关系 ,它暗示两个类之间有着相同的生命周期, 比如说图中的三个1. W 是 ViewRootImpl的成员变量之一,ViewRootImpl 对象的构造函数里也构造了W,因此,当ViewRootImpl 析构时,W也被析构,他们的生命周期是一致的。 public final class ViewRootImpl implements ViewParent, View.AttachInfo.Callbacks, HardwareRenderer.HardwareDrawCallbacks { ... final W mWindow; ... mWindow = new W(this); //互相引用,所以当一个销毁时,另外一个也无法存在。 } View Code

2.3 UML活动图

余生长醉 提交于 2020-02-11 14:56:20
活动图定义   活动图描述了在一个过程中,顺序的/并行的活动及其之间的关系     应用于商业过程、工作流(业务过程)、复杂算法的建模   活动图是顶点和弧的集合     活动节点     动作     流     对象值     注解和约束等 活动图基本建模元素   活动图的开始、结束、对象   活动节点     一个活动是一个过程中进行的非原子的执行单元     活动的执行最终延伸为一些独立动作(Action)的执行   分支     一个分支可以有一个进入流和多个离去流     在每个离去流上必须设置一个监护条件     条件放在方括号里     条件不能重叠,以免二义性       可以有 [else] 分支     两个控制路径可以重新合并,无需监护条件 活动图基本建模元素   分岔和汇合(Forking and Joining)     分岔表示把一个单独的控制流分成两个或多个并发的控制流     汇合表示两个或多个并发控制流的同步发生,一个汇合可以有两个或多个进入转移和一个输出转移     在UML中,用同步棒来说明并行控制流的分岔和汇合     同步棒是一条水平或垂直的粗线条 活动图基本建模元素   泳道     将一个活动图中的活动分组,每一组表示一个特定的类别、人或部门,他们负责完成组内的活动     每个组被称为一个泳道     用一条垂直的实线把它们分开  

Java设计模式(一)UML总结

那年仲夏 提交于 2020-02-10 19:28:00
定义 统一建模语言(英语: Unified Modeling Language ,缩写UML)是非专利的第三代建模和规约语言。 UML特点 UML是一种开放的方法 用于说明、可视化、构建和编写一个正在开发的面向对象的、软件密集系统的制品的开放方法。 UML展现了一系列最佳工程实践,这些最佳实践在对大规模,复杂系统进行建模方面,特别是在软件架构层次已经被验证有效。 UML2.2分类 UML2.2中一共定义了14种图示,分类如下: 结构式图形:强调的是系统式的建模 静态图(类图,对象图,包图) 实现图(组件图,部署图) 剖面图 复合结构图 行为式图形:强调系统模型中触发的事件 活动图 状态图 用例图 交互式图形:属于行为式图形子集合,强调系统模型中的资料流程 通信图 交互概述图(UML2.0) 时序图(UML2.0) 时间图(UML2.0) UML类图 定义 Class Diagram:用于表示类、接口、实例等之间相互的静态关系。虽然名字叫类图,但类图中并不只有类(也包括权限,属性,方法等)。 记忆技巧 箭头方向 定义子类时需要通过extends关键字指定父类 子类一定是知道父类定义的,但父类并不知道子类的定义 只有知道对方信息时才能指向对方 所以箭头方向是 从子类指向父类 实线-继承|虚线-实现 空心三角箭头:继承或实现 实线继承, is a关系,扩展目的,不虚,很结实 虚线-实现

软件工程与UML笔记

对着背影说爱祢 提交于 2020-02-10 17:26:18
软件工程与UML笔记 第一章 面向对象软件工程概论 要求学习的内容: 软件危机 软件工程的由来 软件工程的定义 软件工程的范畴 软件工程实践的目标 软件开发包含的活动 软件维护的成本 修复bug的代价 一.软件危机 软件定义: 软件是程序以及开发、使用和维护程序所需要的所有文档。 软件危机定义: 软件开发和维护过程中遇到的一系列严重问题 表现: 对软件开发成本和进度的估计不准确; 软件产品质量很不可靠; 可维护性差,软件的文档资料不完整和不合格; 软件成本逐年上升; 软件开发生产率不高,不能满足客观需要。 软件危机原因: (1)人们对于软件概念与范畴的理解。 早期软件工程师崇尚个人英雄主义,整个软件开发通常处于一种无序的状态。他们大多认为编写程序就是软件开发的全部。这种观念会导致随着软件规模的增大,程序员对于文档的忽略与不重视,使得软件开发产品的不健全与维护困难。 (2)软件的规模日益增长、设计日益复杂。 Visual Studio/Office等(M->G) (3)软件开发组织发生变化。 在上述因素发生变化的同时,软件开发组织也在发生着变化。早期开发一款小型软件,可能1-2个开发人员就可以完成。然而随着软件规模的飞速增长,软件开发组织也在同比例增长,由单打独斗的状态改变为一个团队若干开发人员共同研发一款产品。人员由一个变成团队协同开发,这种组织形式的转变

UML类图关系大全

生来就可爱ヽ(ⅴ<●) 提交于 2020-02-10 16:01:29
转载: http://www.uml.org.cn/oobject/201210081.asp 三者描述对象的 附属[也就是依赖]关系 : 关联 < 聚合 < 组合,依赖关系是逐渐加强的。 inheritance: "a kind of": 猫是一种动物,说明猫从动物继承; association: 两者之间存在某种关联即可,很弱的关系,如student and course, 每个学生可以选不同的课,每门课上有不同学生; aggregation: "consist of":整体与部分之间的关系,但这里部分可以脱离整体单独存在,如MP3上所插的耳机,MP3包含耳机,但这个耳机也可以单独存在,或者插在其他电脑上。 composition: 更强的aggregation,这里部分不能脱离整体而存在,这个部分是整体的私有财产。比如Apple Itouch上的电池,原则不能拆下来单独使用。 1、关联 双向关联: C1-C2:指双方都知道对方的存在,都可以调用对方的公共属性和方法。 在GOF的设计模式书上是这样描述的:虽然在分析阶段这种关系是适用的,但我们觉得它对于描述设计模式内的类关系来说显得太抽象了,因为在设计阶段关联关系必须被映射为对象引用或指针。对象引用本身就是有向的,更适合表达我们所讨论的那种关系。所以这种关系在设计的时候比较少用到,关联一般都是有向的。 关联

UML类图详解及类图设计

浪子不回头ぞ 提交于 2020-02-10 00:52:37
UML中定义了用例图、类图、时序图、协作图等九种。设计模式中经常会用到的是类图。类是面向对象系统组织结构的核心,类可以说是对一组具有相同属性、操作、关系和语义的对象的抽象。在UML中,类使用带有分隔线的矩形表示,它包含名称部分(Name)、属性部分(Attribute)和操作部分(Operation)。 其中 属性的表现形式是 [可见性] 属性名:类型 [=默认值]。 操作的表现形式是: [可见性] 名称(参数列表)[:返回类型] 。 详细见下图。 1.类图基础属性 +表示public -表示private #表示protected ~表示default,也就是包权限 _下划线表示static 斜体表示抽象 2.类之间关系 在UML类图中,常见的有以下几种关系: 泛化(Generalization):带空心三角箭头的实线来表示,箭头由子类指向父类 实现(Realization):带空心的三角箭头的虚线来表示,箭头从实现类指向接口 关联(Association):分为双向关联和单向关联,其中,双向关联可以用带两个箭头或者没有箭头的实线来表示,单向关联用带一个箭头的实线来表示,箭头从使用类指向被关联的类,还可以再关联线的两端标注角色名,补充说明它们的角色。 聚合(Aggregation),用带空心菱形的实线表示,菱形指向整体 组合(Composition):用带实心菱形的实线来表示