UML详解
学习c++必不可少UML,UML从考虑系统的不同角度出发,定义了用例图、类图、对象图、状态图、活动图、序列图、协作图、构件图、部署图等9种图。这些图从不同的侧面对系统进行描述。系统模型将这些不同的侧面综合成一致的整体,便于系统的分析和构造。尽管UML和其它开发工具还会设计出许多派生的视图,但上述这些图和其它辅助性的文档是软件开发人员所见的最基本的构造。
用例图。
用例图是用来描述用户需求的,从用户的角度来描述系统的功能,并指出各个执行者。强调谁在使用,系统的执行者是谁。
【用途】:帮助开发团队以一种可视化的方式理解系统的功能需求。
类图。
用来定义系统中的类,包括描述类的结构和类之间的关系。类图的主要作用于描述系统的静态结构。类加上他们之间的关系就构成了类图,类图中还可以包含接口、包等元素,也可以包括对象、链等实例。
对象图。
对象图是类图的一个实例,描述了系统在具体时间点上所包含的对象以及各个对象之间的关系。
状态图。
状态图说明对象在它的生命周期中响应事件所经历的状态序列,以及它们对那些事件的响应。
构件图。
构件图用来描述代码构件的物理结构以及构件之间的依赖关系。一个构件可以是一个资源文件、一个二进制文件或者已给可执行文件。
实施图(部署图)。
用来定义了系统中硬件的物理体系结构,用来描述实际的物理设备以及它们之间的连接关系。
顺序图(序列图)。
描述对象之间的交互顺序,着重体现对象之间消息传递的时间顺序,强调了对象之间消息的发送顺序,同时也显示了对象之间的交互过程。
协作图。
协作图是一种交互图,强调的是发送和接受消息的对象之间的组织结构。
协作图主要描述协作对象的交互和链接。
显示对象间的连接以及对象之间如何发送消息。
协作图可以表示类操作的实现。
活动图。
概述系统的动态行为,包括活动状态,活动状态是指业务用例的一个执行步骤或一个操作,不是普通对象的状态。活 动 图适合描述在没有外部事件触发的情况下,系统内部的逻辑执行过程,否则状态图更容易描述类似与传统意义上的流程图。业务建模时,用于详述业务用例,描述一项业务的执行过程设计时,描述操作的流程。
下面在援引一位老鸟的文章 http://blog.csdn.net/fengart/article/details/1588366
3. UML的特点
(1)统一标准。
UML融合了当前一些流行的面向对象开发方法的主要概念和技术,成为一种面向对象的标准化的统一建模语言,结束了以往各种方法的建模语言的不一致和差别。
UML提供了标准的面向对象的模型元素的定义和表示法,以及对模型的表示法的规定,使得对系统的建模有章可循,有标准的语言工具可用,有利于保质保量地建立起软件系统模型。
UML己经成为工业标准化组织OMG的正式标准,OMG将负责语言标准的进一步的开发。UML在统一和标准化方面的努力,将有利于建模语言本身的发展,也有利于工业化应用。
(2)面向对象。
UML支持面向对象技术的主要概念。UML提供了一批基本的模型元素的表示图形和方法,能简洁明了地表达面向对象的各种概念和模型元素。
(3)可视化、表示能力强大。
UML是一种图形化语言,系统的逻辑模型或实现模型都能用UML的模型图形清晰地表示。UML不只是一堆图形符号,在每一个UML的图形表示符号背后,都有良好定义的语义。
UML还可以处理与软件的说明和文档有关的问题,包括需求说明、体系结构、设计、源代码、项目计划、测试、原型、发布等。
UML提供了语言的扩展机制,用户可以根据需求增加定义自己的构造型、标记值和约束等。
UML的强大表示能力使它可以用于各种复杂类型的软件系统的建模。
(4)独立于过程。
UML是系统建模语言,独立于开发过程。虽然UML与Rational统一过程配合使用,将发挥强大的效用,但是UML也可以在其他面向对象的开发过程中使用,甚至在常规的软件生命周期法中使用。
(5)容易掌握使用。
UML的概念明确,建模表示法简洁明了,图形结构清晰,容易掌握使用。学习UML应着重学习它的三方面的主要内容:UML的基本模型元素,把这些模型元素组织在一起的规则,UML语言中的公共机制。只要具备一定的软件工程和面向对象技术的基础知识,通过运用UML建立实际问题的系统模型的实践,很快就能掌握和熟悉UML。
4. UML的用途
使用UML进行软件系统的分析与设计,能够加速软件开发的进程,提高代码的质量,支持变动的业务需求。UML适用于各种大小规模的软件系统项目,能促进软件复用,方便地集成已有的系统软件资源。使用UML将有助于处理软件开发中的各种风险。UML的这些特点和优点使它获得了计算机业界和越来越多的软件人员的青睐。
UML不是一个独立的软件工程方法,而是面向对象软件工程方法中的一个部分。UML只是一种标准的系统分析和设计的语言,用于系统的建模。UML适用于对各类软件系统的建模,从应用系统到计算机系统的支持软件,从一般的企业的信息管理系统到基于WEB的分布式应用系统,甚至实时系统。
UML不是程序设计语言,不能用来直接书写程序,实现系统。UML所建立的系统模型(逻辑模型和实现模型),必须转换为某个程序设计语言的源代码程序,然后经过该语言的编译系统生成可执行的软件系统。但是,用UML建立系统模型可以很好地支持软件开发的前向工程(Forward
engineering)和逆向工程(Reverse engineering)。[2]
UML详解的更多相关文章
- 【转】UML类图与类的关系详解
UML类图与类的关系详解 2011-04-21 来源:网络 在画类图的时候,理清类和类之间的关系是重点.类的关系有泛化(Generalization).实现(Realization).依赖(D ...
- UML类图与类的关系详解
摘自:http://www.uml.org.cn/oobject/201104212.asp UML类图与类的关系详解 2011-04-21 来源:网络 在画类图的时候,理清类和类之间的关系是重点.类 ...
- 【UML 建模】在线UML建模工具 ProcessOn 使用详解
总结 : -- 推荐理由 : 最近从 Windows 操作系统 转到 MAC 上, 正在看设计模式 和 重构, 找不到好用的 UML 工具, 因此在网上找了一款可以在线使用的 UML 工具, 用起来发 ...
- UML类图详解_关联关系_一对多
对于一对多的示例,可以想象一个账户可以多次申购.在申购的时候没有固定上限,下限为0,那么就可以使用容器类(container class)来搞,最常见的就是vector了. 下面我们来看一个“一对多” ...
- UML类图详解_关联关系_多对一
首先先来明确一个概念,即多重性.什么是多重性呢?多重性是指两个对象之间的链接数目,表示法是“下限...上限”,最小数据为零(0),最大数目为没有设限(*),如果仅标示一个数目级上下限相同. 实际在UM ...
- UML简单介绍—类图详解
类图详解 阅读本文前请先阅读:UML简单介绍—类图这么看就懂了 1.泛化关系 一个动物类: /** * 动物类 */ public class Animal { public String name; ...
- ASP.NET Core的配置(2):配置模型详解
在上面一章我们以实例演示的方式介绍了几种读取配置的几种方式,其中涉及到三个重要的对象,它们分别是承载结构化配置信息的Configuration,提供原始配置源数据的ConfigurationProvi ...
- 转载文章-----Rational Rose2007(v7.0)下载地址、安装及激活详解教程(图)
转载地址:http://www.cnblogs.com/leaven/p/3718361.html 最近需要画uml图,之前用的是Rose 2003版的,由于好久没进去了,结果发现原来的激活又失效了, ...
- java中的io系统详解 - ilibaba的专栏 - 博客频道 - CSDN.NET
java中的io系统详解 - ilibaba的专栏 - 博客频道 - CSDN.NET 亲,“社区之星”已经一周岁了! 社区福利快来领取免费参加MDCC大会机会哦 Tag功能介绍—我们 ...
随机推荐
- 使用扩展方法(this 扩展类型)
namespace ConsoleApp_UseExtendWays{ class Program { static void Main(string[] args) { Student s = ne ...
- 解决error C2011: 'fd_set' : 'struct' type redefinition的方法
http://www.cnblogs.com/ark-zhang/archive/2013/06/19/3144383.html 首先说明这个问题由于重复定义引起的编译错误. 先说明解决方法,然后 ...
- 数据库连接池问题 Max Pool Size
摘自: http://blog.csdn.net/chensirbbk/article/details/6225268 Timeout expired 超时时间已到. 达到了最大池大小 错误及Max ...
- 可自定义导航条功能案例ios项目源码
可定制的navigationitem ,当我们使用系统的方法设置navigationItem的leftItem或者rightItem时,我们会 发现item位置会有偏差(左边的偏右,右边的偏左).当设 ...
- .NET Web开发总结
在aspx文件中 创建控件 在右下角有控件信息 按类排序 会将控件信息安装类排序 点击控件 会增加属性页面的分页[事件]页面 可以增加其事件函数 字符串操作及其时间操作 fn_name.Inser ...
- Linux动态库的查找路径
前两天写了一个动态库,然后试图编译到程序里面去运行,结果发现编译的时候通过gcc的-L参数来指定路径仅仅能让编译通过,运行时还是会出问题的. 比如下面这个例子: main.c是主程序,sum.c中间含 ...
- PeopleSoft Object Types Definitions
PeopleSoft stores object definitions types such as Record, Field and SQL definitions as numbers in ...
- Winform登录、控制软件只运行一次、回车登录
Winform登录对很多程序猿来说都有些困惑,登录进入主窗体后要销毁登录窗体,而不是隐藏哦,怎么实现呢? 先贴一段Program.cs的代码 static void Main() { Mutex mu ...
- HBase从hdfs导入数据
需求:将HDFS上的文件中的数据导入到hbase中 实现上面的需求也有两种办法,一种是自定义mr,一种是使用hbase提供好的import工具 一.hdfs中的数据是这样的 每一行的数据是这样的id ...
- Java输出1~1000之间所有可以被3整除又可以被5整除的数
主要在于判断是否能被整除,思路是用取余运算符%,取余结果为0就表示能被整除. 代码如下: public class NumDemo { public static void main(String a ...