前言:
从入门开发到现在一年多时间,算是一个技术新人,所以在学习开发技术的同时,想将所学到的东西和自己的一些观点记录下来并与大家分享,希望有幸能为学习路上的其他新人带来帮助,也欢迎大家来一起交流。如发现写的不对或者有不同的看法,欢迎指出,在此深表感谢!
什么是UML
在项目的开发中,最重要而且复杂的部分就是需求分析阶段和软件设计阶段,众多编程语言则是实现软件需求的所谓的“程序员的基本功”,也许我们需要掌握一套软件设计的模式,往往能使项目的开发事半功倍。
UML(Unified Modeling Language)又称统一建模语言或标准建模语言,是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持,包括由需求分析到规格,到构造和配置。 —— [ 百度百科 ]
为什么要使用UML
在现代软件工程中,需求到详细设计是非常重要的环节,也是开发者编码实现功能的重要向导,当我们去制作一份大篇幅的需求文档时,画图无疑是最清楚,最容易使开发者理解需求的一种方式。我们可以将此理解为建模,就是为了更好地理解要开发的系统而建立的模型,同样也作为之后测试、维护等等环节的根本依据。
描述一个需求可以有很多种方法,如果不同的人描述同一件事,那么由于思考的角度不同,文字记录下来的需求可能会千差万别,就算是用画图来说明所要开发的这个系统,也会出现不同样式的结果,所以这时我们就需要一门统一的语言来排除不同人画出图的二义性——UML。
比如我们在活动图中画一个实心圆表示开始,它就只代表开始,任何人看这个统一的图形都会理解为开始的意思,所以当使用这样一种建模语言后,每个人对于同一需求做出的图就会大致相似,而且对图形的理解也相同。
常用9种图
用例图 描述角色与用例之间关系的图,说白了就是都有哪些角色,每个角色都有些什么功能。
类图 从静态的角度分析模型,看系统中有哪些类,分析类与类之间的关系。
对象图 可以理解为类图的实例,同对象一样,具有自己的生命周期。
活动图 描述用例实现的工作流程,就是用例所要进行的活动和活动间的约束关系。
状态图 描述类的对象所有可能出现的状态以及需要什么条件才能改变状态。
顺序图 又称时序图,描述对象之间的交互,强调消息发送的顺序。
协作图 同样也是描述对象之间的交互,更强调对象之间的合作关系。
组件图 系统软件物理组成,分析系统可分为多少模块(组件),以及之间的依赖关系。
部署图 描述软硬件的物理组成结构,实际环境中运行部署情况。
UML工具
- Rational Rose2003,Rose2007(界面比较优美,功能强大,收费 需要破解)
- StarUML (轻量级,免费,推荐)
下载地址:http://staruml.sourceforge.net/en/ - EA(界面优美,功能强大,收费,不好用)