面向对象软件工程方法学与传统方法学的异同

面向对象软件工程方法学与传统方法学的异同

名称

面向对象软件工程方法学

传统方法学

基本概念

面向对象方法学是一种把面向对象的思想应用于软件开发过程中,指导开发活动的系统方法,是建立在“对象”概念基础上的方法学。

传统方法学又称生命周期方法学或结构化范型。一个软件从开始计划起,到废弃不用 止,称为软件的生命周期。在传统的软件工程方法中,软件的生存周期分为需求分析、总 体设计、详细设计、编程和测试几个阶段。

面向

对象

过程

分析过程

面向对象的分析OOA,OOA强调直接针对问题域客观存在的各项事物设立OOA模型中的对象.问题域有哪些值得考虑的事物,OOA模型中就有哪些对象.00A对问题域的观察、分析和认识是很直接的,对问题域的描述也是很直接的.它所采用的概念及其术语与问题域中的事物保持了最大 程度的数据一致,不存在语言上的鸿沟。

使用结构化分析技术,面向数据流自顶向下求精的技术来完成需求分析阶段。在全局范围内以功能、数据或数据流为中心来进行分析。主要阶段有实体—联系图、状态转换图的分析设计。这些方法的分析结果不能直接地映射问题域,而是经过了不同程度的转化和重新组合。

设计过程

面向对象的设计OOD,OOD是针对系统的一个具体的实现运用OO方法.它与OOA采用相同的表示法和模型结构.OOA与00D采用一致的表示法是面向对象的分析与设计优于传统的软件工程方法的重要因素之一。这使得从OOA到OOD不存在转换,只有很局部的修改或调整,并增加几个与实现有关的独立部分,因此OOA与OOD之间不存在传统方法中分析与设计之间的鸿沟,二者能够紧密衔接,大大降低了从OOA到00D的难度、工作量和出错率.

在总体设计阶段,以分析的结果作为出发点构造出一个具体的系统设计方案,主要是决定系统的模块结构,以及模块的划分,模块间的数据传送及调用关系。详细设计实在总体设计的基础上考虑每个模块的内部结构及算法,最终将产生每个模块的程序流程图。

实现过程

面向对象的编程工作就是用同一种面向对象的编程语言把OOD模型中的每个成分书写出来.即用具体的数据结构来定义对象的属性,用具体的语句来实现服务流程图所表示的算法.OOP阶段产生的程序能够紧密地对应00D模型;OOD模型中一部分对象类对应OOA模型,其余部分的对象类对应与实现有关的因素;OOA模型中全部类及对象都对应问题域中的事物.这样的映射关系提高了开发工作的效率和质量.

利用一种编程语言产生一个能被机器理解和执行的系统,测试时发生和排除程序中的错误,最终产生一个正确的系统。但由于分析方法的缺陷很容易产生对问题的错误理解,以致在编程时程序员往往需要对分析员和设计人员已经认识过的事务重新进行认识。

优点

1.与人类习惯的思维方法一致

2.可重用性好

3.可维护性好

4.稳定性好

5.较易开发大型软件

6. 面向对象的软件比较容易修改

7. 面向对象软件比较容易理解

1.把软件生命周期划分成若干个阶段,每个阶段的任务相对独立,而且比较简单,便于不同人员分工协作,从而降低了整个软件开发工程的困难程度;

2.在软件生命周期的每个阶段都采用科学的管理技术和良好的技术方法,而且在每个阶段结之前都从技术和管理两个角度进行严格的审查,合格之后才开始下一阶段的工作,这就使软件开发工程的全过程一种有条不紊的方式进行,保证了软件的质量,特别是提高了软件的可维护性。

缺点

1.需要一定的软件支持环境。 

2.不太适宜大型的MIS开发,若缺整体系统设计划分,易造成系统结构不合理、各部分关系失调等问题

3.只能在现有业务基础上进行分类整理,不能从科学管理角度进行理顺和优化

1.生产效率非常底

2.软件重用性差

3.软件可维护性差

4.开发出的软件不能满足用户需要

总结

传统方法编程以过程为中心,把大的程序划分为若干个相对独立、功能简单的程序模块,强调过程,强调功能和模块化,通过一系列过程的调用和处理完成相应的任务。
面向对象编程以对象为中心,是对一系列相关对象的操纵,发送消息给对象,由对象执行相应的操作并返回结果,强调对象。理论上,面向对象的程序设计方法将产生更好的模块内聚和耦合特性,使得软件更易于重用与维护。

 

猜你喜欢

转载自blog.csdn.net/m0_38073011/article/details/73335735