不同软件工程方法在软件开发实践中的比较与整合

2022-09-11

软件工程方法学是指在开发、维护软件的过程中使用的一整套技术方法的集合。软件工程方法学有两种:面向过程的方法学和面向对象的方法学。目前有观点认为面向过程的方法是传统的软件工程方法, 而面向对象的方法是现代的软件工程方法。作者认为这种观点是肤浅的。在实际软件工程实践中这两种方法是互相帮助、取长补短、彼此相关的。

1 面向过程的软件工程方法学

1.1 面向过程的软件工程方法学的特点

面向过程的软件工程方法学的特点可以从两个方面来分析, 从技术角度来看, 该方法主要使用了结构化的软件开发技术, 即结构化的分析技术、结构化的设计技术、结构化的程序设计技术。这一整套结构化的技术中结构化的程序设计技术优势最为突出。用结构化程序设计技术设计的算法具有较强的可读性和可维护性;从软件开发过程这个角度来看, 面向过程的方法要求软件开发是分阶段的, 而且各阶段所做工作的性质不同。

1.2 使用面向过程的软件工程方法学开发软件的过程[1]

以瀑布模型为例, 使用面向过程的软件工程方法开发软件的过程分为:问题定义、可行性研究、需求分析、总体设计、详细设计、编码、测试这七个阶段。问题定义阶段确定系统的性质、目标、规模;可行性研究阶段从经济、技术、法律、操作这四个角度分析开发该系统是否可行, 若可行则要制定项目开发计划;需求分析阶段通过用数据流程图建立的功能模型来反映系统的功能, 若是开发数据库应用系统, 则还须用E-R图建立数据模型;总体设计阶段利用规则将需求分析阶段建立的数据流程图映射成软件结构图, 若是开发数据库应用系统, 则还须将E-R图映射成数据库的表;详细设计阶段为软件结构中的每个模块设计界面和算法, 对于数据库应用系统则还要建立数据库、录入数据;编码阶段将算法转化为源代码;测试阶段通过单元测试、集成测试、确认测试、系统测试这四个环节对已完成系统做全面的检测。

2 面向对象的软件工程方法学

2.1 面向对象的软件工程方法学的特点[2]

面向对象的软件工程方法学的特点可以三方面来分析, 从技术角度来看, 该方学主要使用了面向对象的分析、面积对象的设计、面向对象的实现这一整套面向对象的技术;从软件开发过程来看用面向对象的方法开发软件的过程中各阶段工作本质相同, 各阶段间平滑过渡、无缝连接;从软件开发要点来看, 面向对象的方法学要求把问题域中的事物抽象成对象, 对象具有属性和方法, 一组相似的对象定义成一个类, 将类用继承等关系组织起来, 对象之间通过消息来相互交流。

2.2 使用面向对象的软件工程方法学开发软件的过程[3]

以喷泉模型为例, 使用面向对象的方法学开发软件的过程可分为面向对象的分析、面向对象的设计、面向对象的实现这三个阶段。面向对象的分析阶段要通过建立对象模型 (用类图实现) 、功能模型 (用用例图实现) 、动态模型 (用活动图、时序图、状态图实现) 来反映系统各个方面的需求;面向对象的设计阶段又可细化为总体设计和详细设计这两个阶段。其中总体设计阶段要扩充完善前一阶段建立的三个模型, 并要建立系统的高层结构, 即要将不同的类归入不同的包, 若某些类的对象需长期保存, 则还须定义数据存储方式;详细设计阶段要进一步扩充和完善三个模型, 并要确定类中服务的算法及类之间关联的实现算法;面向对象的实现现阶段则要用程序来实现系统中的类及关联。

3 不同软件工程方法在软件开发实践中的整合

在实际软件开发过程中, 面向过程的方法和面向对象的方法可以相互融合, 相互鉴对方的工具来完成某些阶段的活动。用面向过程的方法开发软件的过程中, 需求分阶段一般通过建立功能模型来分析系统功能。面向过程的方法学中提供的功能模型的建模工具是数据流图, 在这一阶段可以引入面向对象方法学中提供的用例图来建模, 效果很好;用面向过程方法学开发软件过程中的详细设计阶段要为每个模块设计算法, 这时可借用面象对象方法学中提供的活动图来进行算法的设计。用面向对象方法开发软件过程中的总体设计阶段本不需要建立软件结构, 但若借鉴面向过程的方法学中的思想, 在这一阶段也加入软件结构图, 可使系统结构更加分明, 设计思路更加清晰;用面向对象的方法开发软件过程中的详细设计阶段要确定类中服务的算法及类之间关联的算法, 这时可借鉴面象过程的方法中所提供的图形工具 (流程图、N-S图、PAD图) 、表格工具 (判定表、判定树) 、语言工具 (PDL语言) 来进行算法的设计, 这样实现的算法可读性、可维护性都很好。

4 结语

综上所述, 面向过程的方法学和面向对象的方法学这两种不同的软件工程方法学各有特色、各有所长。在实际的软件开发中可将两种软件工程方法学相互融合, 取长补短, 这样可以达到更好的实际效果。

摘要:面向过程的方法学和面向对象的方法学是两种不同的软件工程方法学。本文就两种方法学的特点进行了比较并提出了将两种方法进行整合的方法, 实践证明将两种方法整合后运用于软件开发中, 可相互补充, 更好地完成软件开发任务。

关键词:软件工程,面向过程的软件工程方法学,面向对象的软件工程方法学

参考文献

[1] 张海藩.软件工程导论[M].北京:清华大学出版社, 2008.

[2] 王慧芳, 毕健权.软件工程[M].浙江:浙江大学出版社, 2006.

[3] 赵池龙.实用软件工程[M].北京:电子工业出版社, 2008.

上一篇:高等医学院校生物学课程改革与实践下一篇:浅析高层住宅结构设计中的含钢量控制