前面讲了面向对象的概念,相信大家对面向对象有了一定的认识,这里我们再来唠一唠UML的前世今生
【为什么要发明UML,UML用来解决什么问题】
从20世纪70年代,随着面向对象编程思想的兴起,大家越来越发现原来以结构化的面向过程的分析设计方法没办法推导和指导面向对象编程,面向过程的分析设计还是第一步做什么,第二步做什么,但是面向对象却是以看起来没有太大关系的对象为中心,面向过程的连续性和过程化结构设计与事件驱动型的离散对象结构编程脱钩,为了解决面向对象编程的分析与设计问题,一批面向对象的设计方法(OOD)开始出现,比如Booch86,GOOD(通用面向对象开发),HOOD(层次化面向对象设计),OOSE(面向对象结构设计),这些方法虽然各不同,但是理念却非常相似,为了方便使用和推广,三位面向对象大师(Booch, Jacobson, Rumbaugh)决定将各自的方法进行统一,在1995年10月推出“Unified Method”,后来提交到对象管理组织(OMG),正式命名为“UML”,即Unified Modeling Languange,UML就由此诞生了
【UML分析设计如何指导面向对象编程】
1. 可视化
UML用各类元模型(图标)将各类信息需求进行转换,使得各种文字可见或者不可见的内容更便捷的展示和传递,使信息接受者更容易接收理解,比如参与者(执行者)、用例图、时序图、状态图、类图等等等等,下面是简单的例子
2. 从现实世界到业务模型
UML通过人、事、物来抽象现实世界,人是一切的中心,人有需求,就会去做事情满足需求,做事就会使用一些物,并产生一些物,同时遵循相应的社会规则,人驱动系统,做事体现过程,物记录结果,规则是控制。通过定义人、事、物之间的规则,现实世界就可以建模起来了。UML通过执行者/参与者(Actor,也就是上面那个小人)来代表现实世界的“人”。再通过用例来表示执行者想做什么,有什么需求,这个就是现实世界中的“事”(也就是上面图中的椭圆),再通过用例场景和业务场景来描述做事的规则。最后,通过业务对象模型视图(可以理解为一个图)来说明在做事的过程中涉及到的物,并定义他们之间的关系,这样,人、事、物、规则就被模型化了
3. 从业务模型到概念模型
通过上面的业务模型,现实世界被模拟记录下来了,但是还是指导不了编程的工作,需要将业务模型转化成一种可以指导开发的表达方式,这个时候UML通过概念模型来建立适合计算机理解和实现的模型(也行分析模型),UML通过以下几个元模型来进行概念模型建模:
PS:所谓的概念模型可以认为是建立计算机编程的概念
4. 从概念模型到设计模型
概念模型基本上描绘了面向对象编程所需要的对象组成了,在设计模型中,边界类可以转化成操作界面或者接口了,控制类可以转化成计算机逻辑代码,实体类可以理解为实体对象,数据表之类的
最后,用下面一张图解释UML分析设计是如何推导指导面向对象编程的
网友评论