结构化分析设计与面向对象分析设计比较研究
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
结构化分析设计与面向对象分析设计比较研究
重庆工商大学计算机科学与技术08软件龚霞
指导老师康世瀛
中文摘要:解析了结构化方法和面向对象方法这两种软件开发方法具有的分析设计过程,讨论了各自在不同软件开发中的应用及局限性,提出了在选用面向对象开发大型软件系统的同时可结合结构化方法。
关键词:软件开发;结构化方法;面向对象方法
Abstract:This paper anatomizes the analysis and design process of Structural method and objected-oriented method,discusses their applications and disadvantages and proposes that structural method can also be used while developing the large-scale software systems in selecting the objected-oriented method.
Key words:software-development;objected-oriented method;structural method
一、引言
结构化方法由E.Yourdon和L.L.Constantine在1978年提出,结构化方法又可称为面向功能的软件开发方法或面向数据流的软件开发方法。结构化方法是建立在软件生存周期的模型基础上的一种软件开发方法,相对于早期的个体化开发方法无疑是前进了一大步。
由于传统的生命周期开发学存在下面的问题:生产率提高的幅度远不能满足需求,软件的重用度很低,软件难以维护,软件往往不能满足用户的需求。所以出现了面向对象软件开发方法。这是一种自底向上和自顶向下相结合的方法,而且它以对象建模为基础,从而不仅考虑了输入、输出数据结构,实际上也包含了所有对象的数据结构,所以面向对象的软件开发方法彻底实现了PAM没有完全实现的目标。不仅如此,面向对象技术在需求分析、可维护性和可靠性这三个软件开发的关键环节和质量指标上有了
实质性的突破,彻底地解决了这些方面存在的严重问题,从而宣告了软件危机末日的来临。
二、结构化分析设计方法
1、结构化方法的定义
结构化方法采用的是自顶向下、逐步求精的设计方法,各个模块通过“顺序、选择、循环”的控制结构进行连接,并且只有一个入口、一个出口。
2、结构化方法的基本要点
结构化方法基本要点是:自顶向下,逐步求精,模块化设计。自顶向下的核心本质是“分解”,它将相对复杂的大问题分解为简单的小问题,对每一个小问题进行精确、定量的描述。逐步求精即是抽象处理,将系统功能按层次进行分解,由单一简单的模块来描述整个系统。模块化设计是将求精得到的功能化的模块,以功能块为单位进行程序设计,实现其求解算法。模块化降低了程序复杂程度,使程序设计、测试和维护等操作简化。
3、分析设计方法
结构化分析法是基于问题分解与抽象的观点,将任何信息处理过程看作是将要输入数据变换成所要求的输出信息的装置,因此数据流分析是需求分析的出发点。结构化分析方法采用“自顶向下,由外及里,逐步求精”的策略对问题进行分析。具体做法是首先将整个系统看作一个加工(信息处理的装置,是一个黑匣子),标识出系统边界和所有的输入/输出数据流。然后再对加工内部进行细化分解,将复杂功能分解为若干简单功能的有机结合,并逐步补充细节描述。结构化分析使用数据流图、加工说明和数据字典等来构造系统的需求分析模型。
结构化设计则是在需求分析的基础上,针对给定的问题给出解决方案。结构化设计中的总体设计部分要给出被建系统的模块结构,详细设计部分
要为个模块提供关于算法的详细描述。
结构化方法比功能分解法更强调对问题域的分析,但所使用的建模概念仍然不能直接的映射到问题域中的事物。需求的变化往往会引起相应的加工和数据流的变化,进而影响与之相关的其他加工和数据流的变化。系统复杂时也不能检验分析建模的正确性。此外,结构化需求分析与后续的结构化设计所采用的概念与表示法存在着不一致,且转换规格不严格、具体,仅是指导性的,这致使从需求分析模型过度到设计模型较为困难。所以结构化分析设计方法更适合需求确定的中、小型系统开发上。
三、面向对象分析设计方法
1、面向对象方法的定义
面向对象方法解决问题的思路是从现实世界中的客观对象(如人和事物)入手,尽量运用人类的自然思维方式从多方面来构造软件系统,这与传统的开发方法构造系统的思想是不一样的。
面向对象方法是一种运用对象、类、继承、聚合、关联、消息和封装等概念和原则来构造软件系统的开发方法。
2、面向对象方法的基本思想
(1)、客观世界中的任何事物都是对象,对象之间存在一定的关系。
面向对象方法要求从现实世界客观存在的事物出发来建立软件系统,强调直接从现实世界中的事物为中心来思考问题和认识问题,并根据这些事物的本质特征和系统责任,把他们抽象成系统对象,作为系统的基本构成单位。
(2)、用对象的属性来描述事物的数据特征;用对象的操作来描述事物的行为特征。
(3)、对象的属性和操作结合为一体,成为一个独立的、不可分割的实体,实体对外屏蔽其内部细节。
(4)、通过抽象对事物进行分类。
把具有相同属性和相同操作的对象归为一类,类是这些对象的抽象描述,每个对象是它的类的一个实例。
(5)、复杂的对象可以用简单的对象作为其构成部分。
(6)、通过在不同程度上运用抽象的原则,可以得到一般类和特殊类。
特殊类继承一般类的属性和方法,从而简化系统的构造过程。
(7)、对象之间通过消息进行通信,以实现对象之间的动态联系。
(8)、通过关联表达类之间的静态关系。
3、面向对象的基本原则
面向对象的基本原则主要分为抽象、分类、封装、消息通信和多态性等。
(1)、抽象
抽象是指从事物中舍弃个别的、非本质的特征,而抽取共同的本质特征的做法。
使用抽象的好处:一是便于访问,外部对象只需知道有限的几个操作(接口)即可访问其中的对象;二是便于维护,如果程序内部发生变化而其接口没有发生变化,则只需对其内部进行修改。
(2)、分类
分类的作用就是按照某种原则划分出事物的类别,以便有助于认识复杂世界。在面向对象中分类就是把具有相同属性和方法的对象化为一类,用类作为这些对象的抽象描述。分类实际上是把抽象原则运用于对象描述时的一种表现形式。
(3)、封装
在面向对象中封装就是用对象把属性和和操纵这些属性的操作包装起来,形成一个独立的实体单元,体现了事物的相对独立性。封装的另一个含义则是信息隐蔽,即外界不能直接存取对象的内部属性以及隐藏起来的内部操作,外界也不用知道对象操作的内部实现细节。