UML视频看到一半,感觉不能再这样下去了。因为感觉无论再怎么看总是觉得停留在知识的表层,就好像看到UML这三个字母的第一眼一样,有点形而上的感觉,这样的学习总是感觉不太对劲。记得在今目标上看来一片有关学习方法的文章,学习的四步黄金法则,我就问了下自己:
1.为什么要学UML?
2.UML主要解决了那些问题?
3.什么时候用到UML?
4.怎么用?
问了自己四个问题后,突然感觉有点头绪了。不太一味的看视频往脑袋里塞那些不好消化的生词术语了。
问题一:为什么要学UML?
UML即Unified Modeling Languae,我们翻译为统一建模语言,是用来设计软件蓝图的可视化建模语言。看到这里我们明白了,UML是用来设计软件用的。
问题二:UML主要解决了那些问题?
既然是设计软件,为什么一定要UML?还有没有别的方法?它和别的方法相比又有什么优点呢?
这我们就要追溯到软件技术了。我们都知道,软件的设计与使用的最终目的都是为了提供一种工具,解决人们遇到的问题,方便人们的生产生活。软件技术当然离不开人们对现实世界的认识了。在软件领域,我们所熟悉的软件技术有面向过程和面向对象两种,而UML是一种面向对象建模技术的研究成果。那个和面向过程相比,面向对象解决了哪些问题呢?
面向过程和面向对象其实涉及到了认识论问题,怎样来认识这个世界。面向过程认为这个世界是由一个个相互关联的小系统组成的,环环相扣,井然有序,有着明确的开始和明确的结束以及开始和结束之间有着严谨的逻辑关系,所谓牵一发而动全身;而面向对象则恰好相反,面向对象认为这个世界是由一个个独立的对象组成的,相互之间并无关系,只有在外部力量驱动下,特定对象之间才会形成过程。
这样就很明白了,我们日常生活解决问题也是这个道理,如果是在一个狭小封闭的系统内的话,用面向过程技术还是比较容易解决的;但是在当今开放的体系形态下,面想过程已经无法满足超负荷的联系需求,进而使问题变得更加复杂,面向对象技术在这个时候就突出显示其优势了。
再回到UML,说白了就是用一个统一的语言来覆盖整个软件过程,把现实世界的东东抽象成软件设计各个阶段所需要的概念模型,更好的实现对软件系统的描述,以达到为用户提供满意产品的目的。
问题三:什么时候用到了UML?
从问题二中我们已经明白,UML是是用来设计软件蓝图的可视化建模语言。当然是在学习编程、软件工程的时候用了。
下面就看一下UML在软件开发各个阶段的应用:
①需求阶段:
·采用用例图来描述需求(角色、功能、外部交互)。
②分析阶段:明确解决问题的细节
·采用类图来描述静态结构
·采用顺序图、合作图、活动图、状态图来描述动态行为
③设计阶段:
·采用类图、包,对类的接口进行设计
④实现阶段:
·将类用某面向对象语言实现
⑤集成与交付阶段:
·构件图、包、部署图
⑥测试阶段:
·单元测试使用类图和类的规格说明书
·集成测试使用类图、包、构件图和合作图
·系统测试使用用例图来测试系统功能
问题四:怎么用?
待续。。。
这样宏观的分析了一下,是不是感觉脑袋清晰了好多呢?