UML
Unified Modeling Language (UML)又称统一建模语言或标准建模语言,是始于1997年一个OMG标准,它是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持,包括由需求分析到规格,到构造和配置。
十年前,UML很火,那时候绝对装B利器,机子里面不装一个Rapsody或rose啥的你都不敢出去装架构师。在入金这种强调敏捷开发的时代,当时再提uml的时候年轻的脸蛋上出现的都是WTF的表情。
今天在知乎的一个话题“ [UML 还有用吗?]”上看到相关的讨论 ,正方反方各有意见。我更认同的看法是:
单纯的分“有用”还是“没用”,很容易陷入二元论的争论,UML既不可能包打天下,也不可能是一无是处,我的看法是“有用,但不是很有用”。
任何工具的存在都应该着眼于高效解决人们生活中遇到的问题。在现在敏捷开发的时代,项目已经不可能一次性做到最终完美的状态。但是敏捷开发并不意味着还没有建立起业务模型就开始coding。
一些书籍、文章、博客大谈“编码的艺术”,很多也属于概念不清,文中探讨的根本不是编码的技能,而是分析技能甚至是业务建模技能。编码确实有编码的技能,但到了编码时还在思考订单和商品、发票的关系是什么,相当于护士已经把注射器拿在手里了,还在思考病人可能是什么病,开什么药。
光喊口号“先做最重要的需求”是没用的,你得知道哪些需求最重要。掌握业务建模技能,能帮助你准确定位最重要的需求。光喊口号“分离变化”是没用的,你知道哪些容易变,哪些不容易变吗?掌握分析设计技能,能让你看到变和不变的部分。
上面说的是通过UML这个工具的使用可以帮助人对整个项目有在全局上的理解和把控。在团队开发过程中,UML还可以起到降低沟通成本的作用。
团队的沟通效率远远胜过一个完美无瑕的方案。现在在我的团队里面,沟通的时候,能站着说的绝不坐着讲,能再白板上画图说明白的,绝不用ppt。
在这个基础上,上古的UML给我们留下了不错的抓手。
UML定义了5类,10种模型图
五种类图定义:
1.用例图:从用户角度描述系统功能,并指各功能的操作者。
2.静态图:包括类图,包图,对象图。
类图:描述系统中类的静态结构
包图:是包和类组成的,表示包与包之间的关系,包图描述系统的分层结构
对象图:是类图的实例
3.行为图:描述系统动态模型和对象组成的交换关系。包括状态图和活动图
活动图:描述了业务实现用例的工作流程
状态图:是描述状态到状态控制流,常用于动态特性建模
4.交互图:描述对象之间的交互关系
顺序图:对象之间的动态合作关系,强调对象发送消息的顺序,同时显示对象之间的交互
合作图:描述对象之间的协助关系
5.实现图:
配置图:定义系统中软硬件的物理体系结构
10种模型图
(1)、用例图:展示系统外部的各类执行者与系统提供的各种用例之间的关系
(2)、类图:展示系统中类的静态结构(类是指具有相同属性和行为的对象,类图用来描述系统中各种类之间的静态结构)
(3)、对象图:是类图的一种实例化图(对象图是对类图的一种实例化)
(4)、包图:是一种分组机制。在UML1.1版本中,包图不再看作一种独立的模型图)
(5)、状态图:描述一类对象具有的所有可能的状态及其转移关系(它展示对象所具有的所有可能的状态以及特定事件发生时状态的转移情况)
(6)、顺序图:展示对象之间的一种动态协作关系(一组对象组成,随时间推移对象之间交换消息的过程,突出时间关系)
(7)、合作图:从另一个角度展示对象之间的动态协作关系(对象间动态协作关系,突出消息收发关系)
(8)、活动图:展示系统中各种活动的执行流程(各种活动的执行顺序、执行流程)
(9)、构件图:展示程序代码的物理结构(描述程序代码的组织结构,各种构件之间的依赖关系)
(10)、配置图:展示软件在硬件环境中(特别是在分布式及网络环境中)的配置关系(系统中硬件和软件的物理配置情况和系统体系结构)
用例图
类图
对象图
https://www.lookmw.cn/doc/epgvni.html
包图
http://blog.csdn.net/kimylrong/article/details/40043389
状态图
http://www.cnblogs.com/sura/archive/2012/07/01/2572083.html
顺序图
http://blog.csdn.net/lishehe/article/details/8243806
合作图
http://www.cnblogs.com/wolf-sun/p/UML-collaboration-diagram.html
活动图
http://www.uml.org.cn/oobject/201409092.asp
构件图
http://www.cnblogs.com/finehappy/archive/2009/11/24/1609352.html
配置图
http://blog.csdn.net/fanxiaobin577328725/article/details/51657122
建模过程
- 第一步:描述需求
- 第二步:根据需求建立系统的静态模型,以构造系统的结构
- 第二步:描述系统的行为
其中第一步与第二步中所建立的模型都是静态的,包括用例图、类图(包括包图)、对象图、构件图和配置图等六种图。
第三步中所建立的模型或者可把执行或者表示执行时的时序状态或交互关系,它包括状态图、活动图、顺序图和合作图等四种图。
可用以下常用视角来描述一个系统:
- (1)、系统的使用实例:从系统外部的操作者的解度描述系统的功能
- (2)、系统的逻辑结构:描述系统内部的静态结构和动态行为,即从内部描述如何设计实现系统功能
- (3)、系统的构成:描述系统由哪些程序构件所组成
- (4)、系统的并发性:描述系统的并发性,强调并发系统中存在的各种通信和同步问题
- (5)、系统的配置:描述系统的软件和各种硬件设备之间的配置关系
startUml工具请参考 http://www.umlchina.com/Tools/Newindex1.htm
参考文档
网友评论