面向对象方法与结构化方法比较

来源:互联网 发布:黑客网络渗透工具 编辑:程序博客网 时间:2024/04/27 14:55
        结构化方法首先关心的是功能,强调以模块(即过程)为中心,采用模块化、自顶向下、逐步求精设计过程,系统是实现模块功能的函数和过程的集合,结构清晰、可读性好,的确是提高软件开发质量的一种有效手段。
结构化设计从系统的功能入手,按照工程标准和严格规范将系统分解为若干功能模块。然而,由于用户的需求和软、硬件技术的不断发展变化,作为系统基本成分的功能模块很容易受到影响,局部修改甚至会引起系统的根本性变化。开发过程前期入手快而后期频繁改动的现象比较常见。
        面向对象方法则从所处理的数据入手,以数据为中心来描述系统,数据相对于功能而言,具有更强的稳定性,这样设计出的系统模型往往能较好地映射问题域模型。对象、类,、继承性、多态性、动态定连概念和设施的引入使用,显然令面向对象的设计方法具有一定的优势,能为生产可重用的软件构件和解决软件的复杂性问题提供一条有效的途径。
        面向对象的设计过程就是指通过建立一些类以及它们之间的关系来解决实际问题,这就需要对问题域中的对象作整体分析,类和类间关系的设计要求较高,否则设计出的并不是真正意义上的面向对象的软件系统,而只是一些类的堆砌而已,不能体现出面向对象设计方法的优势之处。
     同时,系统的分析设计是一个注重实践的领域,不仅仅依赖于一整套核心的概念与原理,要想设计出一个成功的系统来,还需要相应的语言、工具和技术的有力支持。在这方面,经过多年的实践和发展,适应结构化方法的技术和开发环境已经相当成熟稳定。而对面向对象方法而言,虽然近时期涌现了大量的新工具和新技术,但仍有待于不断的完善和改进,特别是面向对象的数据库技术。
结束语-理解和体会
1. 软件工程的目标是以最小的代价开发出满足用户需求的软件。为此,根据系统的实际需求,分别针对具体情况选择采用不同的设计方法,可以充分发挥面向对象与结构化方法各自的优势。目前在大多数软件系统的分析设计过程中,这两者方法都兼而有之。
事实上,在上述《机动设备管理系统》的开发过程中,除了使用对象模型、动态模型等面向对象的一些建模技术外,结构化的一些技术也被采用了,比如为了清晰描述系统的运行流程,依然使用了系统流程图,这些技术的综合使用起到了非常良好的作用。
2. 理解是修改维护任何一个软件系统的基础,对面向对象的软件而言,理解该软件就需要了解软件系统中主要对象的整个运行机制。但对象间的并行、继承、传递、激活等特性,可能会对后期维护人员快速理解系统原设计思想带来一定的障碍。目前,支持面向对象方法的软件开发环境中能帮助理解软件设计思路的工具并不多,在这方面结构化方法占有相对优势。所以,使用面向对象方法设计的软件系统要切实注意避免此类理解错误对开发带来的不良影响。
3. 不论哪一种设计方法,正确清晰的需求界定都是开发一个成功的软件系统必不可少的前提条件,否则再好的设计方法也无济于事。