从软件开发流程上来谈UML 图 的使用
2016-12-03 21:25
218 查看
大家都知道,计算机行业是一个用代码说话的行业。但是我们在进行编码任务之前,必须要明白,我们要做什么?我们软件的架构是什么?每个人都有对问题的认识和表达方式,如果没有一种统一的语言来规范这种表达,就无法消除自然语言带来的二义性问题,给软件设计初期的沟通交流带来障碍。
本文两个角度进行介绍:
9种UML图;
重点说下,UML图中用的比较多的类图。
9种UML图
我从软件开发流程的角度出发,进行介绍。这样理解起来,比较顺畅。
我们要想做一个软件,首先要了解用户的需求,用户的需求用什么体现呢?用例图。用例图主要展示的就是软件应该具备哪些功能。是站在用户角度,对软件功能的一个划分。
下面展示下用例图的一个例子:
用例图
//TODO:至于用例图的详细画法,以后再慢慢补充
可以先看下这篇博文,说的相当好!http://kb.cnblogs.com/page/129491/
活动图是用例图的延伸,它表示的是执行一个用例所要进行的活动及各种活动的关系(与关系、或关系)。
具体的活动图的说明,可以参见《团队沟通利器之UML——活动图》
例如:
活动图
有了上边两个图,我们基本上对用户需要什么样的软件,以及软件的基本使用流程清楚了。那么真正落实到代码上,我们应该写哪些类呢?这就涉及到类图了。 类图也是在软件设计阶段非常重要的一种UML图。下节《UML图中类图》的使用中进行详细介绍。
类图实例:
类图只是在静态上,对各个类的关系进行一个说明,但是落实到代码上,类之间的关系,大部分情况下还是通过new出类的对象来进行相互调用。如果有需要,我们需要知道,某一个时刻,各个对象之间的关系是什么,这个时候,就需要对象图,来说明了。(个人感觉对象图略显鸡肋,在某些特定场景下还适合用。大多数情况下可以用协作图代替)
对象图实例:
说起对象,就不得不说各个对象之间的调用关系。如果从一个对象的角度出发,深究某个对象深层次的调用逻辑,就是序列图要做的事情了。如果探究的是各个对象之间的关系,那就是协作图,要做的事情了。
序列图例子:
协作图例子:
有时候我们需要描述一个对象的状态,比如一个订单有带支付、支付中、已完成等状态;线程对象有就绪、执行、阻塞的状态;审批流有待审批、回绝、通过等状态,下面展示一个状态图的例子。描述的是水壶对象的状态。
转换的五要素
关于状态图,可以参看《UML建模之状态图(Statechart Diagram)》和《UML——状态图》。
我们的软件或者程序必须部署到某一个环境后才能真正运行起来,描述部署的逻辑环境的图叫实现图(介绍了系统需要哪些构件以及各个构件之间的逻辑关系)。描述部署的物理环境的图叫部署图(描述了具体应该搭建哪些服务器,如何搭建等等)。
实现图例子:
部署图例子:
好了,九种UML图是不是都理解了呢?后面一篇文章主要介绍下,类图的画法。
下面是参考文档:
http://blog.csdn.net/jiuqiyuliang/article/details/8552956/
本文两个角度进行介绍:
9种UML图;
重点说下,UML图中用的比较多的类图。
9种UML图
我从软件开发流程的角度出发,进行介绍。这样理解起来,比较顺畅。
我们要想做一个软件,首先要了解用户的需求,用户的需求用什么体现呢?用例图。用例图主要展示的就是软件应该具备哪些功能。是站在用户角度,对软件功能的一个划分。
下面展示下用例图的一个例子:
用例图
//TODO:至于用例图的详细画法,以后再慢慢补充
可以先看下这篇博文,说的相当好!http://kb.cnblogs.com/page/129491/
活动图是用例图的延伸,它表示的是执行一个用例所要进行的活动及各种活动的关系(与关系、或关系)。
具体的活动图的说明,可以参见《团队沟通利器之UML——活动图》
例如:
活动图
有了上边两个图,我们基本上对用户需要什么样的软件,以及软件的基本使用流程清楚了。那么真正落实到代码上,我们应该写哪些类呢?这就涉及到类图了。 类图也是在软件设计阶段非常重要的一种UML图。下节《UML图中类图》的使用中进行详细介绍。
类图实例:
类图只是在静态上,对各个类的关系进行一个说明,但是落实到代码上,类之间的关系,大部分情况下还是通过new出类的对象来进行相互调用。如果有需要,我们需要知道,某一个时刻,各个对象之间的关系是什么,这个时候,就需要对象图,来说明了。(个人感觉对象图略显鸡肋,在某些特定场景下还适合用。大多数情况下可以用协作图代替)
对象图实例:
说起对象,就不得不说各个对象之间的调用关系。如果从一个对象的角度出发,深究某个对象深层次的调用逻辑,就是序列图要做的事情了。如果探究的是各个对象之间的关系,那就是协作图,要做的事情了。
序列图例子:
协作图例子:
有时候我们需要描述一个对象的状态,比如一个订单有带支付、支付中、已完成等状态;线程对象有就绪、执行、阻塞的状态;审批流有待审批、回绝、通过等状态,下面展示一个状态图的例子。描述的是水壶对象的状态。
转换的五要素
关于状态图,可以参看《UML建模之状态图(Statechart Diagram)》和《UML——状态图》。
我们的软件或者程序必须部署到某一个环境后才能真正运行起来,描述部署的逻辑环境的图叫实现图(介绍了系统需要哪些构件以及各个构件之间的逻辑关系)。描述部署的物理环境的图叫部署图(描述了具体应该搭建哪些服务器,如何搭建等等)。
实现图例子:
部署图例子:
好了,九种UML图是不是都理解了呢?后面一篇文章主要介绍下,类图的画法。
下面是参考文档:
http://blog.csdn.net/jiuqiyuliang/article/details/8552956/
相关文章推荐
- 探究软件项目开发使用流程
- 敏捷软件开发:原则、模式与实践——第14章 使用UML
- 项目开发流程(期间使用的UML图表)
- 软件生存周期的各个阶段(可作为软件开发流程使用)
- 传智播客erp项目学习,了解软件开发流程,使用apache的文件上传组件
- 软件开发文档流程,指导怎样从那些方面构建一个完善的软件使用指南
- 2014-05-16:oncreate中的settimer语句执行时间,visio中树连接线添加分支,UML与软件开发,使用Domoda前得先调用OnInitDialog
- 软件生存周期的各个阶段(可作为软件开发流程使用)
- JAVA开发相关的各类软件包下载及使用指南(jspSmartUpload)
- 使用.net开发手机管理软件 (五) OBEX介绍
- 使用.net开发手机管理软件 (七) IrMC简介
- Dev-C++使用点滴(我也用这个软件开发)
- 使用.net开发手机管理软件(一至三)
- 使用.net开发手机管理软件 (十二) 短信部分——通过RS232发送和接收短信
- 使用对象-关系映射(ORM)系统中间件提升软件开发效率及质量
- 使用.net开发手机管理软件 (九) 短信部分——PDU简介及其格式
- 使用.net开发手机管理软件 (十) 短信部分——VB.NET解码PDU
- 使用对象-关系映射(ORM)系统中间件提升软件开发效率及质量
- NHibernate0.7 发布,软件基础开发平台以及在软件基础开发平台中使用O/R Mapping
- Microsoft的软件开发简单流程