结构化方法与面向对象方法的比较
一、软件开发方法概述
软件开发方法是指在项目投资规模和时间限制内,设计、实现符合用户需求的高质量软件,根据软件开发的特点,提出的多种软件开发策略。开发方法的选择需要根据分析者的熟练程度和项目的类型而定,就目前而言,十全十美的开发方法是不存在的,真正实用的系统开发方法往往是多种开发方法的结合,具体采用哪种方法则要根据开发系统的规模、系统的复杂程度、系统开发方法的特点以及所能使用的计算机软件等诸多因素综合考虑后决定,结构化方法和面向对象方法是两种常用的软件开发方法, 下面做分别介绍并进行对比:
二、结构化方法
结构化方法(SD方法)是一种传统的软件开发方法,它是由结构化分析(SA)、结构化设计(SD)和结构化程序设计(SP)三部分有机组合而成的。它的基本思想:把一个复杂问题的求解过程分阶段进行,而且这种分解是自顶向下,逐层分解,使得每个阶段处理的问题都控制在人们容易理解和处理的范围内。在结构化方法中,有两大典型方法,一类是以Yonrdon的结构化设计、Gane/Sersor结构化分析方法以及Demarco结构化分析方法为代表的面向过程(面向数据流)的方法;另一类是以Jackson方法和Wamier-Orr方法为代表的面向数据结构的方法。
结构化方法遵循的基本原则
结构化方法的基本思想就是将待解决的问题看做一个系统,从而用系统科学的思想方法来分析和解决问题,遵循以下基本原则:
(1)抽象原则
(2)分解原则
(3)模块化原则
三、面向对象方法
面向对象方法(OO)是以面向对象思想为指导进行系统开发的一类方法的总称,是建立在“对象”概念基础上的方法学。这类方法以对象为中心,以类和继承为构造机制来抽象现实世界,并构建相应的软件系统。这里的对象是由数据和容许的操作组成的封装体,与客观实体有直接对应关系,一个对象类定义了具有相似性质的一组对象,继承则是对具有层次关系的类的属性和操作进行共享的一种方式。面向对象与结构化的开发方法一样,分为三个部分,分别是面向对象的分析,面向对象的设计,以及面向对象的程序设计。
面向对象方法遵循的基本原则:
单一职责原则(SRP)
开放封闭原则(OCP)
里氏替换原则(LSP)
依赖倒置原则(DIP)
接口隔离原则(ISP)
四、两者对比
1、基本思想
结构化方法
1、自顶向下,逐步求精:把程序看成是一个逐步演化的过程。把一个系统与程序看成是一层一层的。
2、模块化:即将几个系统分成几个模块,每个模块实现特定的功能,最终整个系统由这些模块组成。模块跟模块之间通过接口传递信息,模块最重要的特点就是独立性,模块之间还有上下层的关系,上层模块调用下层模块来实现一些功能。
3、语句结构化:顺序结构、分支结构、循环结构,都是常用的语句结构。
面向对象方法:
1、客观世界中的事物都是对象,对象之间存在一定的关系,并且复杂对象由简单对象构成。
2、具有相同属性和操作的对象属于一个类,对象是类的一个实例。
3、类之间可以有层次结构,即类以有子类,其中,子类继承父类的全部属性和操作,而且子类有自己的属性和操作。
4、类具有封装性,把类内部的属性和一些操作隐藏起来,只有公共的操作对外是可见的,对象只可通过消息来请求其他对象的操作或自己的操作。
2、基本特点
结构化方法
(1)面向用户,用户自始至终参与系统的分析工作;
(2)强调调查工作的重要性;
(3)对管理业务中的各种数据进行分解;
(4)采用了层次分解的系统思想;
(5)用图形工具来分析和构建新方案。
面向对象方法
(1)强调系统开发的整体性和全局性
(2)侧重于数据转换的过程而不是数据本身
(3)系统的开发周期长
(4)封装性
(5)继承性
(6)多态性
(7)易维护性
3、适用范围
结构化方法:适用于规模较大、结构化程度较高的系统的开发。
面向对象方法:处理过程明确,简单的系统;涉及面窄的小型系统;不适合于大型、复杂系统,存在大量运算、逻辑性强的处理系统。
4、重用性
结构化方法:重用性差,因为结构化分析与设计清楚的定义了系统的接口, 当系统对外界接口发生变动时,可能会造成系统结构产生较大变动, 难以扩充新的功能接口
面向对象方法:重用性好,并且由于它是把大的问题分解成相互独立的小问题处理,降低了开发的技术难度,开发工作的管理也变的容易了,开发大型软件边的容易,成本也降低了。
五、参考文献
[1]汪寒昊. 软件开发方法—一结构化方法与面向对象方法比较 2011
[2]百度百科:面向对象分析方法