在软件开发的过程中,建模起着骨架搭建的作用。它直接决定了软件系统未来开发的方向,总体结构,相互联系。目前,在软件开发过程中有许多在不同理论体系上建立起来的软件建模方法,例如:功能分析法,数据流法,信息建模法,面向对象建模法等。本文将重点对着四种建模方法进行讲解和比较,并对面向对象建模法中UML进行具体讲解和改进。
【关键词】建模 面向对象 UML
所谓建模就是把问题“从问题领域转化到解决领域”的过程,它是用户与开发者之间最主要的沟通渠道。其本质就是对问题进行形式化的描述和建立模型。建立模型是整个软件开发过程中最困难的环节。可以说,软件建模过程的好坏直接关系到整个软件系统开发的质量,对软件开发有着决定性的作用。
系统建模在软件工程发展中有着举足轻重的地位。自成功实现以来,软件建模方法得到持续的应用和不断的发展。目前已经有一套较为成熟的体系。
1 常用的软件建模方法及比较
1.1 功能分解法
功能分解法是指以系统需要提供的功能为中心来进行系统设计。根据用户需要将系统分为若干功能模块,较大的功能模块继续分为子模块,知道我们能够直接对个功能模块进行定义。
功能分解法优缺点:优点是能给准确的反应用户的需求,并且较好的运用了过程抽象的原则。缺点是系统各部分之间关联性太强,当用户的需求改变时,整个系统的框架必须要随之改变。
1.2 数据流法
数据流建模方法又叫做结构化建模方法。该方法将数据流作为处理的中心。其基本方法是跟踪数据流,研究数据流在各个环节上如何流动,如何处理,从而发现数据流和加工。然后将问题域映射为数据流,并得到数据流图。数据流方法有许多严格的限制,比如数据流从原点开始到终点结束,在中间环节只能进行处理和计算,不允许凭空产生和消失。
数据流法的优缺点:优点是数据流算法相对于功能分解法更强调问题域。缺点是数据流法也不能直接映射问题域,当系统设计较为负责时,难以验证系统正确性。另外,数据流法建立的软件模型也较容易收到功能改变的影响,具体实现过程给设计人员造成了很大的麻烦。
1.3 信息建模法
信息建模法是有关系—实体建模法(E-R法)发展而来的。因此信息建模法以关系和实体为中心进行建模。实体是对现实事物的抽象,它包含了现实事物的特性,关系表示了实体之间的相互关联,在某种程度上将信息建模法已经带有面向对象法的一些特性。
信息建模法的优缺点:优点是它已经具备了很多面向对象建模法拥有的特性,有着很强的应用型和适应性,面向对象建模最终也要转化成关系—实体模型。缺点是并没有将实体的属性进行封装,实体和属性之间没有具体操作,实体之间也没有继承和消息通信。
1.4 面向对象法
面向对象建模法通过对象对问题进行完整的映射。它用结构和连接如实的反应事物事物之间的关系,它通过封装,继承,消通信等降低问题的负责度,是问题得以更好地解决。
面向对象算法的优缺点:优点是面向对象建模法应用对象的概念,是对问题最直接的抽象和映射,它能很好的反应各个实体之间的关系。从设计到最终编码实现都有相应的软件和语言配套完成,在设计上降低了难度。各个模块之间即有效衔接,又相互独立,这样保证了在用户需求改变时工作量不会过大的问题。总体而言,面向对象建模方法提高了设计的效率,降低了系统设计的复杂性,是目前最常用的建模方法。
2 UML建模方法
在面向对象软件开发史上,出现了很多方法,例如:Booch方法,OMT方法,OOSE方法等。目前最常用的是UML方法。
UML技术集中了以上所提到的技术的优点,规避了他们的缺点。UML支持面向对象技术,能简洁的表达出面向对象的各种概念和模型元素。UML是一种图形化语言,其强大的表达能力能够在软件开发建模中达到非常好的效果。UML提供了三类标准模型建筑块:事物、联系和图形。UML的定义包括UML语义和UML语法两个部分。其中UML语义是描述基于UML的精确元模型定义。元模型为UML的所有元素在语法和语义上提供了简单一致的说明,是开发者能够在语义上取得一致。UML表示法为开发者或者开发工具使用这些图形符号和文本语法为系统建模提供标准。这些图形符号和文字表达的是应用级的模型,在语义上它是UML元模型的实例。
另外UML还有以下两个特点。一是UML吸取了面向对象技术领域其他流派的长处。UML符号表示考虑了各种方法的图形表示,删掉了大量易引起混乱的符号,也增添了一些新的符号。这些都是在UML开发软件的过程中能够长期实践中建立起来的,其实用性毋庸置疑。
UML在演变的规程中还提出了一些新的概念。例如,模版,职责,扩展机制等等。在实际的建模过程中,用固有的概念往往无法满足开发软件的需求,需要结合开发环境和开发软件等相关情况,提出新的概念以便更加方便的解决问题。UML的优势便是有一定的兼容性和开源性。它是一种先进的建模语言,也必然会存在这一个进化过程。UML自1995年提出以来,经过近20年的发展,已经逐渐成为一种定义良好、易于表达、功能强大且普遍适用的软件建模方法。
3 总结
从软件建模的方法提出至今,软件建模已经已经经过了成熟的发展过程,并形成了一套完整的理论体系。从功能分解法到面向对象建模法的改进某种程度上正与计算机语言发展相辅相成。作为软件设计的骨架,软件建模已经提出,便确定了它在关键开发中的重要地位。UML语言是当前应用最广泛也是最受欢迎的一种建模语言,可以说只要掌握了UML建模语言,就把握住了软件设计的方向,软件开发的其余难题也能迎刃而解。
参考文献
[1] Lonchamp J.A structured conceptual and terminological framework for software process engineering.In: Proc. of the ICSP.1993.
[2]SEI.CMMI for Development, Version 1.2-Improving Processes for Better Products. SEI,CMU,2006.
[3]徐宝文,周毓明,卢红敏.UML与软件建模[M].北京:清华大学出版社,2006.
作者简介
那贵昇(1976-),男,蒙古族,毕业于中央民族大学,现就职于中国电子科技集团公司第三研究所。