面向对象与结构化软件开发方法比较研究

需积分: 9 0 下载量 23 浏览量 更新于2024-08-12 收藏 780KB PDF 举报
"传统结构化和面向对象软件开发方法的探讨 (1999年)" 本文主要探讨了两种软件开发方法:传统结构化软件开发(TSSD)和面向对象软件开发(OOSD)。作者首先介绍了TSSD方法,这是一种基于结构化分析、设计和编程的面向功能的开发方式。其核心思想是自顶向下、逐步细化,通过功能分解将复杂系统拆分为一系列具有单一入口和出口的独立模块,这些模块通常由顺序、分支和循环等基本控制结构组成。结构化分析利用数据流图(DFD)和数据字典(DD)来描述系统需求,强调功能的逻辑过程。 接着,文章提到了TSSD方法的局限性,特别是在应对大规模、复杂软件项目时,由于软件重用性低和维护困难,导致了所谓的“软件危机”。为了解决这些问题,面向对象(OO)方法应运而生。OOSD方法的核心是对象,它将数据和操作数据的方法封装在一起,强调类的继承、多态性和封装性,促进了代码的重用和模块间的松耦合。与TSSD相比,OOSD更侧重于模拟现实世界的问题域,通过识别和建模对象及其相互关系来设计系统,从而提供更自然、更具扩展性的解决方案。 在OOSD方法中,类是对象的模板,它们定义了对象的状态(数据成员)和行为(成员函数)。继承允许创建新的类,这些类可以继承已有类的属性和行为,减少了重复编码。多态性使得不同的对象可以响应同一种消息,增强了代码的灵活性。同时,封装确保了对象内部状态的保护,防止外部代码随意修改。 文章还讨论了两种方法的开发过程。TSSD通常遵循瀑布模型,包括需求分析、系统设计、编码、测试和维护等阶段,每个阶段之间有严格的顺序,前一阶段的输出是后一阶段的输入。相比之下,OOSD更倾向于迭代和增量开发,如统一过程(RUP)或敏捷方法,这些方法允许在开发过程中不断调整需求和设计。 作者通过比较分析得出,OOSD方法在解决TSSD方法中的问题上表现出优势,成为了软件开发的主流趋势。它不仅改进了开发技术,还推动了思维方式的变革,被视作软件行业的又一次技术革命。然而,尽管OOSD提供了诸多优势,但选择哪种方法取决于具体项目的需求、团队的技术背景以及项目的可变性等因素。 这篇1999年的文章深入分析了传统结构化和面向对象软件开发方法的优缺点,强调了面向对象方法在解决软件开发挑战中的重要性,并预见到OOSD方法将在未来成为主导。对于理解这两种方法的历史背景和发展趋势,这篇文章提供了宝贵的见解。