UML中的图的出现顺序
从开始接触UML到现在对UML逐渐有了更深入的了解.刚开始,对于UML总是感觉UML就是图.一提起UML 就想着这个是画图的东西.
具体这些图都是干什么的.为什么会有这些图.在一个项目中 ,到底那个图是首先出现的.这些图的出现顺序是什么.脑子里还是比较混乱.
下面我用自己的理解说明一下
UML由视图(views,)图(diagrams),模型元素(model elements),通用机制(general mechanism) 构成
一:视图:视图分为用例视图,设计视图,过程视图,实现视图,配置视图
二:图:图包括
用例图,
静态图(类图,对象图,包图),
行为图(状态图,活动图),
交互图(顺序图,协作图)
实现图(构件图,配置图)
三:模型
模型是UML中的”细胞”,是构成UML的元素一样.模型元素包括:类,对象,关系,消息等
四:通用机制:
UML的其他信息.比如注释,和一些扩展机制.比如基于UML的一些标记,约束.等
看到第一和第二个了吗?是不是有点蒙.他们说的不是一回事吗.不都是图吗?我们平时说的都是第二个.所以忽略了第一个.
其实视图是一个总体的概念.视图是由多个图构成的.就像是亚洲和国家的关系.亚洲包括很多国家.但是国家不一定全部属于亚洲.
把图分拆为视图一定程度上更好的反映了系统的形成过程.
这个过程如下:
1:用例视图:在系统的形成过程中,首先产生的就是用例图.这个是系统分析人员对客户需求的一个总结.产生在需求分析阶段.有了用例图,才会有下面的各种视图.
2:用例图完了.接下来要产生那个图呢?我自己的理解就是包图.有了用例以后,你就进入了概要设计阶段.这个阶段解决系统的基本架构.也就是系统的分层(这个在OOD中流行).每个层基本上就是你的包.每个层分在一个包中.
比如典型的MVC模式中.UI BLL DAL Entity是典型的包.这样接下来的工作就是对每个层进行分析了.
3:包图做完了以后,系统的整体架构就出来了。接下来出来的就是类图,也就是系统比较关键的部分。类图一般是由数据库对应的实体层映射来的。然后在每一层找到他的映射。最后再分别在每一层利用相关的模式去调整自己的类图。使系统的可维护性,可扩展性达到更好的要求。比如经典的工厂模式,外观模式等。
4:类图做完以后,这个时候产生什么图呢?最为合适的应该是系统的实现视图和配置试图。其实在包做做完以后。系统的构件图就应该出来了。每一个包应该就是一个层。再.net平台上。每一个包就是一个独立的dll文件,供其他程序调用,这个也就是我们构件图中的组件。再加上数据库和一些用户要求的设备,基本上构件图就出来了。
配置图只是比构件图多了系统的物理架构。其实物理结构在需求分析的阶段就已经确定了。
5:系统的基本结构和模块,类确定以后。接下来就是比较具体的每一个用例的实现过程。这个就是时序图。时序图在UML中也是比较重要的一个。时序图,用例图,类图被认为是UML的核心视图。时序图已经和代码比较接近了。时序图和协作图可以很容易的转换。只要轻轻的点一下就ok了(大家知道吗)。时序图做完以后,系统就基本出来了。
6:一些其他的视图如活动图,状态图。个人认为功能不大。如果是大型的系统。在画时序图前用他们分析一下系统的流程还是比较好的。但是它们给人的感觉就是面向过程的。
当然在画图的过程中总是要用到UML的其他元素。比如画图时我们要添加注释,时序图中传递的消息等。
最后提出一点。这里用的是我熟悉的rose 来说明UML 的。其他工具比如和它齐名的pd其本上也是这些功能。只是有所侧重罢了。Rose是面型对象,然后向数据库建模发展。Pd和它正好相反。
还有很多高级的功能期待我们去使用 ,发现。
转自:http://blog.csdn.net/lsh6688/article/details/6239126
UML中的图的出现顺序的更多相关文章
- UML中的图
用例图.类图.包图.顺序图.协作图.状态图.活动图.构件图.部署图等 1.用例图 显示多个外部参与者以及他们与系统提供的用例之间的连接.用例是系统中的一个可以描述参与者与系统之间交互作用功能单元.用例 ...
- uml中活动图与流程图的区别
活动图定义: 活动图是UML用于对系统的动态行为建模的另一种常用工具,它描述活动的顺序,展现从一个活动到另一个活动的控制流.活动图在本质上是一种流程图. 它是UML中用于对系统动态活动建模的图形,反映 ...
- UML 中关系图的解说
最近在教软件工程项目实践,就又仔细了解了下UML中各种关系的意义,虽然有点简单,但是有些概念还是经常被混淆的,写在这里是为了加深印象. 关系列表: 继承关系(Generalization): 实现关系 ...
- [UML]UML系列——时序图(顺序图)sequence diagram
系列文章 [UML]UML系列——用例图Use Case [UML]UML系列——用例图中的各种关系(include.extend) [UML]UML系列——类图Class [UML]UML系列——类 ...
- 浅谈UML中常用的几种图——用例图
1.UML简介 统一建模语言(Unified Modeling Language,UML)又称标准建模语言,是始于1997年的一个OMG标准,它是一个支持模型化和软件系统开发的图形化语言,为软件开发的 ...
- 【UML】-NO.44.EBook.5.UML.1.004-【UML 大战需求分析】- 顺序图(Sequence Diagram)
1.0.0 Summary Tittle:[UML]-NO.44.EBook.1.UML.1.004-[UML 大战需求分析]- 顺序图(Sequence Diagram) Style:DesignP ...
- 3.UML中的类图及类图之间的关系
统一建模语言简介 统一建模语言(Unified Modeling Language,UML)是用来设计软件蓝图的可视化建模语言,1997 年被国际对象管理组织(OMG)采纳为面向对象的建模语言的国际标 ...
- GOF 的23种JAVA常用设计模式总结 02 UML中的类图与类图之间的关系
统一建模语言UML 统一建模语言(Unified Modeling Language,UML)是用来设计软件蓝图的可视化建模语言,1997 年被国际对象管理组织(OMG)采纳为面向对象的建模语言的国际 ...
- UML中的类图及类图之间的关系
统一建模语言简介 统一建模语言(Unified Modeling Language,UML)是用来设计软件蓝图的可视化建模语言,1997 年被国际对象管理组织(OMG)采纳为面向对象的建模语言的国际标 ...
随机推荐
- Zabbix 监控 Nginx 状态
简介: 如何使用 Zabbix 监控 Nginx 状态 ? 1.获取 Nginx 状态( HTTP Stub Status ) shell > /usr/local/nginx/sbin/ngi ...
- python之字符聊天小工具
server side: # coding: gb2312#socket server端#获取socket构造及常量from socket import *#''代表服务器为localhostmyHo ...
- CentOS 7 firewalld使用简介
1.firewalld简介 firewalld是centos7的一大特性,最大的好处有两个:支持动态更新,不用重启服务:第二个就是加入了防火墙的“zone”概念 firewalld有图形界面和工具 ...
- object-c 的ARC 问答/介绍
原文:http://blog.csdn.net/kmyhy/article/details/8895606 概念" Clangstatic analyzer "是一个非常有用的查找 ...
- Log4j使用教程 log4:WARN No appenders could be found for logger (org.springframework.web.context.ContextLoader).
1.Logger类 通过Logger类的静态方法Logger.getRootLogger得到RootLogger.所有其他的loggers是通过静态方法Logger.getLogger来实例化并获取的 ...
- JS 循环遍历JSON数据
JSON数据如:{"options":"[{/"text/":/"王家湾/",/"value/":/" ...
- Json.NET 利用ContractResolver解决命名不一致问题
今天在遇到这么个问题,项目上有一部分功能需要访问web api, 这个api请求和相应的数据格式都是使用JSON,JSON中的field命名方式是以下划线分割的,比如"project_nam ...
- Linux questions
1.can not use ifconfig http://blog.csdn.net/zjt289198457/article/details/6918644 add this : export P ...
- 关于visio 2007导入独立图库
很多作网络拓扑或服务器系统拓扑时,我们都会找到相关的Visio图库来画,但很多时候我们不知如何才能够直接导入,下面是我自己的导入方式,供大家参考下! 打开07Visio,自动加载设置: 工具--> ...
- NSArray和NSMutableArray
//1. NSArray EOItems *eOItems = [[EOItems alloc] init]; eOItems.ID = [NSNumber numberWithInt:]; NSAr ...