【统一建模语言】UML & StarUML(on MAC)
UML: Unified Modeling Language,直接翻译就是统一建模语言,简单地说就是一种有特殊用途的语言,讲白话就是把一个web项目的运行原理、运行顺序画成的图,图形化的语言。
任何软件都应该理清设计思路再开始行动,这就是UML的意义;
你可能会问:这明明是一种图形,为什么说是语言呢?在建筑界,有一套标准来描述设计;同样道理,在软件开发界,我们也需要一套标准来帮助我们做好软件开发的工作,UML就是其中的一种标准;
注意这不是唯一标准,只是UML是大家比较推崇的一种标准而已,说不定以后有一个更好的标准可能会取代他。UML并不是强制性标准,没有法律规定你在软件开发中一定要用UML,不能用其它的,我们的目标是善用包括UML在内的各种标准,来提高我们软件开发的水平。
UML由1.0版发展到1.1、1.2、…,到现在的2.0、2.x。网络上各种UML工具软件,各自基于的UML版本可能会不一样。
分类
1.类图 Class Diagram
他是静态的,是面向对象系统建模中最常用的图,是定义其他图的基础;
为了显示系统中的类、接口,以及他们之间的关系;
第一步:这个项目需要哪些实体类,罗列出来,以及他们的关系;
第二步:开始细化,每个类下面有哪些属性(最开始可以不知道他们下面细分哪些属性,只要知道他们有哪些实体名,和之间的关系)(对于未成型的项目,其类和之间的关系比较难感知;但如果已经有一个具体的项目,则他们类和之间的关系就很明了);
一个经典的类图:
一个类里:上面是属性,下面是方法;
StarUML:
让接口可以写属性和方法的方式:
2.时序图(系统交互)Sequence Diagram
程序中,类之间怎样配合来完成任务?
分层开发分为:控制层、业务层、DAO层;用户一个请求到达项目时的顺序是:先到Controller,再到Service,再到DAO,最后到数据库;
不同层间采用怎样的方法调用可以画出来,放在UML中来讲叫时序图;
他是动态视图中最重要的图;
捕捉一段时间范围内多个对象之间的交互信息;
强调消息交互的时间顺序(意思是当用户调用A方法,A调用B方法,B又调用C方法,他们之间形成按时序的调用关系);
一个经典的时序图:
以上的类图和时序图做好后,系统其实差不多了,但还有一些复杂的东西需要处理:
3.活动图 Activity Diagram(本质上是一种 流程图 Flowchat Diagram)
“流程”:做事情的步骤、算法;
做事情要有测试的思想,要有顺序、循环、分支;
//边界值覆盖、条件值覆盖
比如商城中买东西的步骤就是一个流程:将商品放入购物车;提交订单;支付;物流;确认收货;
概念:
活动图本质上是一种流程图,它描述活动的序列,即系统从一个活动到另一个活动的控制流。
活动图的作用:
描述用例,描述类的操作,另外,可以用来描述算法(单独使用)。
比如有个音乐盒,它包括mp3的功能,音乐盒的总流程

描述mp3播放功能

StarUML 中英文名词对照
http://php-note.com/article/detail/246a606d11ee4ad38ad72943bc45852a