UML是啥?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UML是啥?相关的知识,希望对你有一定的参考价值。

如题

uml 简介

统一建模语言(UML, Unified Modeling Language)是一个通用的可视化建模语言,用于对软件进行描述、可视化处理、构造和建立软件系统制品的文档。它记录了对必须构造的系统的决定和理解,可用于对系统的理解、设计、浏览、配置、维护和信息控制。UML适用于各种软件开发方法、软件生命周期的各个阶段、各种应用领域以及各种开发工具,UML 是一种总结了以往建模技术的经验并吸收当今优秀成果的标准建模方法。UML包括概念的语义,表示法和说明,提供了静态、动态、系统环境及组织结构的模型。它可被交互的可视化建模工具所支持,这些工具提供了代码生成器和报表生成器。UML标准并没有定义一种标准的开发过程,但它适用于迭代式的开发过程。它是为支持大部分现存的面向对象开发过程而设计的。

UML描述了一个系统的静态结构和动态行为。UML将系统描述为一些离散的相互作用的对象并最终为外部用户提供一定的功能的模型结构。静态结构定义了系统中的重要对象的属性和操作以及这些对象之间的相互关系。动态行为定义了对象的时间特性和对象为完成目标而相互进行通信的机制。从不同但相互联系的角度对系统建立的模型可用 于不同的目的。

UML还包括可将模型分解成包的结构组件,以便于软件小组将大的系统分解成易于处理的块结构,并理解和控制各个包之间的依赖关系,在复杂的开发环境中管理模型单元。它还包括用于显示系统实现和组织运行的组件。

UML不是一门程序设计语言。但可以使用代码生成器工具将UML模型转换为多种程序设计语言代码,或使用反向生成器工具将程序源代码转换为UML。UML不是一种可用于定理证明的高度形式化的语言,这样的语言有很多种,但它们通用性较差,不易理解和使用。UML是一种通用建模语言。对于一些专门领域,例如用户图形界面(GUI)设计、超大规模集成电路(VLSI)设计、基于规则的人工智能领域,使用专门的语言和工具可能会更适合些。UML是一种离散的建模语言,不适合对诸如工程和物理学领域中的连续系统建模。它是一个综合的通用建模语言,适合对诸如由计算机软件、固件或数字逻辑构成的离散系统建模。

参考资料:http://www.sssdf.com/show.jsp?categoryid=6&id=28

参考技术A UML是什么?
Unified Modeling Language
统一建模语言(UML)是一组图形符号,使用可辅助人们描述和设计软件系统(尤其是使用面向对象设计方式构建的软件系统)的单一元模型来构建。上面这个定义有些太简单了。其实,对于不同的人来说,UML的含义会有所不同。这是因为UML的历史,以及人们对于“哪些元素能够构成高效的软件工程过程”这个问题持有不同的观点所造成的。因此,本章中我的主要任务就是解释人们理解和使用UML的各种不同方式,以便为本书的其他部分做好准备。

图形建模语言在软件工业中已经出现很久了。它的出现的根本原因是因为编程语言不够抽象,使用它来讨论设计很不方便。

但是,虽然图形建模语言已有较长的历史,在软件工业中还是存在相当多的关于它们的角色的争论。这些争论直接影响到人们对UML的角色的认识。

UML是一个相对开放的标准,由对象管理组织(OMG)管理,这是一个开放的公司协会,建立OMG的目的是创建支持互用性的标准,尤其是面向对象系统的互用性。关于OMG最著名的可能是CORBA(通用对象请求代理体系结构)标准了。

UML是通过统一80年代晚期和90年代早期出现的许多面向对象图形建模语言而产生的。UML自1997年诞生以来,使得图形建模语言领域的混乱情况成为历史。这个一项我,以及其它许多开发者所深深感激的服务。
参考技术B 建模用的。就像盖房子一样画图!!本回答被提问者采纳

混沌Java---UML类图

UML是啥?--  标准对象建模语言

为啥要学这个?-- 当然是重要才学啦!

什么,你说马老师发来截图,说这个就是练死劲,没用?

我和你说小伙子,传统UML讲究点到为止,以和为贵,与其他语言从来不搞窝里斗,希望你上网自己查查,耗子尾汁。

小伙汁:马老师,你这,你这说啥啊,太抽象了?!!

马老师:你要知道,要画好UML类图,就要先学会三维立体混元劲,以此为丹田运气发力才能画好UML类图。下面我将向你展示如何画好一个UML类图。看好了嗷,嗷,别眨眼,很快的嗷。

------------------------------分割线------------------------------

第一,什么是类,如何用UML表示一个类?

       狭义上,类本质上是引用数据类型;广义上,类是对现实生活中一些具有共同特征的事物的抽象,且类具有三大特点:封装性、继承性、多态性(这些就不细说了)。而在系统设计阶段,类可以认为地分成三种类型:

       1. 实体类:实体对象的抽象,通常来自域模型(现实世界),用来描述具体的实体,通常映射到数据库表格与文件中。

      2. 控制类:控制对象的抽象,主要用来体现应用程序的执行逻辑,将其抽象出来,可以使变化不影响用户界面和数据库中的表。

      3. 边界类:边界对象的抽象,通常是用来完成参与者(用户、外部系统)与系统之间交互的对象,例如:From、对话框、菜单、接口等。


第二,类的UML表示:

混沌Java---UML类图(一)

第一列:定义类名

第二列:定义属性,其中对于属性可见域的表示有:“+”表示public、“-”表示private、“#”表示protected

第三列:定义行为,同样其作用域的表示与属性一致。


第三,类与类之间的关系有:

1)关联关系 2)依赖关系 3)泛化关系 4)接口与实现关系

ps:关联关系通常将一个类的对象作为另一个类的成员变量


------------------------------分割线------------------------------

单向关联:

在UML类图里用单向箭头连接

混沌Java---UML类图(一)

//单向关联public class Customer{       private Address address;       .......}//每位顾客都有一个对应的地址
public class Address{......}

双向关联:

UML里用不带箭头的实线连接

混沌Java---UML类图(一)

//双向关联public class Customer { private Product[] products;        ......}
public class Product {       private Customer customer;       ......}


自关联:

UML用带箭头实线指向本身

混沌Java---UML类图(一)

//自关联public class Book {private Book book;……}


多重性关联(看不懂可跳过):

表示两个关联对象在数量上的对应关系,有如下表格:

混沌Java---UML类图(一)

这里以其中一个例子做说明:

混沌Java---UML类图(一)

//多重性关联public class Form {       private Button[] buttons; //定义一个集合对象       ......}
public class Button {......}


聚合关联:表示整体与部分的关联。在该关联中,成员对象是整体的一部分,但该成员对象也可能脱离出来作为一个单独完整的对象。

//聚合关联public class Car {       private Engine engine;
       //构造注入       public Car(Engine engine) {        this.engine = engine;       }        //设值注入       public void setEngine(Engine engine) {        this.engine = engine;       }       ......}
public class Engine {       ......}


组合关联:表示整体与部分的关联,但该关联中整体可以控制成员变量的生命周期,即整体与部分为同生共死的关系。

//组合关联public class Head {       private Mouth mouth;
       public Head() { mouth = new Mouth(); //实例化成员类       }       ......}
public class Mouth {       ......}

这里就讲到关联关系……


参考文章:http://www.uml.org.cn/oobject/201211231.asp

以上是关于UML是啥?的主要内容,如果未能解决你的问题,请参考以下文章

UML是啥?

uml是啥?? 用处大吗??

uml的特点是啥

uml是啥意思

uml上的create是啥意思

UML十大模型图的内容是啥?它们是如何进行分类的?