引言

  软件开发是一门技术,它需要相应的理论、技术、方法、手段和工具来支持。就软件开发技术的发展而言,主要经过了结构化开发方法和面向对象的软件开发方法。

  鉴于结构化方法与面向对象方法在软件开发过程中的广泛应用,从结构化方法与面向对象方法的基本思想出发,引用一些简单的软件实例说明结构化方法和面向对象方法的基本组成及在建模中的应用,并对结构化方法和面向对象方法进行比较。从比较结果可以看出,结构化方法和面向对象方法各有优缺点。

  所以,在实际的开发过程中可以发挥二者的优势,在采用当前主流的面向对象方法开发软件时,可以辅助结构化方法,有利于建造高质量的软件。

1.两者基本思想的比较

1.1结构化方法的基本思想

  结构化方法是一种传统的软件开发方法,它是由结构化分析、结构化设计和结构化程序设计三部分有机组合而成的。结构化设计方法是以自顶向下,逐步求精,模块化为基点,以模块化,抽象,逐层分解求精,信息隐蔽化局部化和保持模块独立为准则的设计软件的数据架构和模块架构的方法学。它的要点是是把一个复杂问题的求解过程分阶段进行,而且这种分解是自顶向下,逐层分解,使得每个阶段处理的问题都控制在人们容易理解和处理的范围内。

  结构化方法的基本思想主要体现在三个方面。一、自顶向下,逐步求精:把程序看成是一个逐步演化的过程。把一个系统与程序看成是一层一层的。例如:户籍管理系统可以划分为:户籍迁入迁出,人员迁入迁出,户籍注销,人员注销等几个子系统,而每个子系统又划分为接收用户信息,实施处理,提供返回信息等等部分。二、模块化:即将几个系统分成几个模块,每个模块实现特定的功能,最终整个系统由这些模块组成。模块跟模块之间通过接口传递信息,模块最重要的特点就是独立性,模块之间还有上下层的关系,上层模块调用下层模块来实现一些功能。三、语句结构化:顺序结构、分支结构、循环结构,都是常用的语句结构。

1.2面向对象方法的基本思想

  面向对象方法(Object-OrientedMethod)是一种把面向对象的思想应用于软件开发过程中,指导开发活动的系统方法,简称OO(Object-Oriented)方法,是建立在“对象”概念基础上的方法学。对象是由数据和容许的操作组成的封装体,与客观实体有直接对应关系,一个对象类定义了具有相似性质的一组对象。而每继承性是对具有层次关系的类的属性和操作进行共享的一种方式。所谓面向对象就是基于对象概念,以对象为中心,以类和继承为构造机制,来认识、理解、刻画客观世界和设计、构建相应的软件系统。

  面向对象方法作为一种新型的独具优越性的新方法正引起全世界越来越广泛的关注和高度的重视,它被誉为"研究高技术的好方法",更是当前计算机界关心的重点。它的实质就是主张从客观世界固有的事物出发来构造系统,提倡用人类在现实生活中常用的思维方法来认识、理解和描述客观事物,强调最终建立的系统能够映射问题域,也就是说,系统中的对象以及对象之间的关系能够如实地反映问题域中固有事物及其关系。

  面向对象方法的基本思想体现在以下方面:一、客观世界中的事物都是对象,对象之间存在一定的关系,并且复杂对象由简单对象构成。二、具有相同属性和操作的对象属于一个类,对象是类的一个实例。三、类之间可以有层次结构,即类以有子类,其中,子类继承父类的全部属性和操作,而且子类有自己的属性和操作。四、类具有封装性,把类内部的属性和一些操作隐藏起来,只有公共的操作对外是可见的,对象只可通过消息来请求其他对象的操作或自己的操作。五、强调充分运用人在日常逻辑思维中经常采用的思想方法与原则。例如:抽象,分类,继承,聚合,封装,关联等。

2.主要特点的比较

2.1结构化分析方法的特点

  (1)面向用户,用户自始至终参与系统的分析工作;

  (2)强调调查工作的重要性;

  (3)对管理业务中的各种数据进行分解;

  (4)采用了层次分解的系统思想;

  (5)用图形工具来分析和构建新方案。

2.2面向对象分析方法的特点

  (1)强调系统开发的整体性和全局性

  (2)侧重于数据转换的过程而不是数据本身

  (3)系统的开发周期长

  (4)封装性

  (5)继承性

  (6)多态性

  (7)易维护性

3.优缺点的比较

3.1结构化方法的优点和缺点

  结构化方法的优点:

  (1)从系统整体出发,强调在整体优化的条件下“自上而下”地分析和设计,保证了系统的整体性和目标的一致性;

  (2)结构化方法强调功能抽象和模块化。由于它采取了分块处理问题的方法,可以把一个比较复杂的问题分解为若干个容易处理解决的部分,从而降低了问题处理的难度。

  (3)严格区分系统开发的阶段性,每一阶段的工作成果是下一阶段的依据,便于系统开发的管理和控制;

  (4)文档规范化,按工程标准建立标准化的文档资料,便于软件在以后的维护。而且由于结构化方法思路清晰,条理清楚,又有效地分解了繁复的问题,使得编写程序时清晰明了,也大大简化了编程人员繁杂的工作。

  结构化方法的缺点:

  (1)重用性差:结构化分析与设计清楚的定义了系统的接口,当系统对外界接口发生变动时,可能会造成系统结构产生较大变动,难以扩充新的功能接口;

  (2)软件可维护性差:由于软件的可修改性差,导致维护困难,造成维护时费用和成本高,可维护性变差;

  (3)开发的软件难以满足用户需要:用传统的结构化方法开发大型软件时,往往此系统涉及各种不同领域的知识,在开发需求模糊或需求不断变化的系统时,所开发出的软件系统往往不能真正满足用户的需要。

3.2面向对象方法的优缺点

  面向对象方法的优点:

  (1)编程容易。因为面向对象更接近于现实,所以你可以从现实的东西出发,进行适当的抽象;

  (2)面向对象方法的可重用好,并且由于它是把大的问题分解成相互独立的小问题处理,降低了开发的技术难度,开发工作的管理也变的容易了,开发大型软件边的容易,成本也降低了。

  (3)它与人类习惯的思维方法一致,使得使用者和维护人员都容易理解,在用户使用时不会出现理解困难,在软件维护中可维护性也较高,并且易于测试和调试。

  (4)面向对象可以使工程更加模块化,实现更低耦合高内聚思想;

  (5)符合人们认识事物的规律,系统开发循序渐进,反复修改,确保较好的用户满意度。

  面向对象方法的缺点。

  (1)开发过程管理要求高,整个开发过程要经过“修改—评价—再修改”的多次反复;

  (2)面向对象方法通过信息隐藏和封装等手段屏蔽了对象内部的执行细节,控制了错误的蔓延,但发生错误时,定位故障的代价大,尤其是继承的深度很大时。对于需求变化频繁的系统,得到一个高度可复用的面向对象软件系统设计是很困难的事情。

  (3)开发人员易将原型取代系统分析;缺乏规范化的文档资料,不利于以后的维护。

结束语

  软件开发的目标是以最小的代价开发出满足用户需求的软件。为此,根据系统的实际需求,分别针对具体情况选择采用不同的设计方法,可以充分发挥面向对象与结构化方法各自的优势。结构化方法是对系统功能建模,基于功能分解设计系统结构,从内部功能上模拟客观世界。面向对象方法则是从行为的角度进行建模,基于行为分析法认定对象及他们之间的关系,从内部结构上模拟客观世界,它采用了新概念,新方法,新的表现形式,有助于软件开发人员加深对系统的理解,给软件开发带来很大的益处。开发者在开发实践中,从实际出发,考虑执行效率、开发者的技术水平、系统规模、是否为易需求变化的系统等因素,尽量利用它们各自的优点,避免他们的缺点。如对于开发一些小型嵌入式实时监控系统或同等稳定小系统,可用结构化方法;对于开发入门者,使用结构化方法和面向对象方法相结合;对于大型系统或者需求易变系统,使用面向对象方法。总之,根据实际出发,选取合适的软件开发方法,达到最佳的开发效益。