保捱科技网
您的当前位置:首页结构化和面向对象的系统分析设计方法的对比

结构化和面向对象的系统分析设计方法的对比

来源:保捱科技网
结构化方法和面向对象方法的对比

1 结构化和面向对象的方法

1.1 结构化方法

结构化方法基于功能分解设计系统结构,通过不断把复杂的处理逐层分解来简化问题,它从内部功能上模拟客观世界。用结构化开发能提高软件的运行效率,且能够增加软件系统的可靠性。结构是指系统内各个组成要素之间的相互联系、相互作用的框架。

结构化的系统分析设计方法是一种传统的系统开发方法。针对软件生存周期各个不同的阶段,有结构化分析(SA)、结构化设计(SD)和结构化程序设计(SP)等方法。它的基本思想:把一个复杂问题的求解过程分阶段进行,而且这种分解是自顶向下,逐层分解,使得每个阶段处理的问题都控制在人们容易理解和处理的范围内。

1.1.1 结构化分析

结构化分析是面向数据流进行需求分析的方法,主要采用数据流图DFD (Data Flow Diagram)来描述边界和数据处理过程的关系。

结构化分析的主要工作是使用数据流程图、数据字典、结构化语言、判定表和判定树等工具,来建立一种新的、称为结构化说明书的目标文档-需求规格说明书。

1.1.2 结构化设计

结构化设计是将数据流图表示的信息转换成程序结构的设计描述,和功能的实现方法,并且采用系统结构图表示系统所具有的功能和功能之间的关系。

结构化设计过程分两步完成,第一步以需求分析的结果作为出发点,构造出一个具体的系统设计方案,决定系统的模块结构(包括决定模块的划分、模块间的数据传递及调用关系)。第二步详细设计,即过程设计。在总体设计的基础上,确定每个模块的内部结构和算法,最终产生每个模块的程序流程图

1.2 面向对象方法

面向对象方法是从内部结构上模拟客观世界,其基本思想为:对象是对现实世界客观实体的描述,均由其属性和相关操作组成,是系统描述的基本单位。面向对象方法更强调运用人类在日常的逻辑思维中经常采用的思想方法和原则,例如抽象、分类、继承、聚合、封装等,这使得软件开发者能更有效地思考问题,

1

并以其他人也能看得懂的方式把自己的认识表达出来。

面向对象方法不仅仅是一些具体的软件开发技术与策略,而且是一整套关于如何看待软件系统与现实世界的关系,用什么观点来研究问题并进行问题求解,以及如何进行软件系统构造的软件方法学。人们普遍认为面向对象方法是一种运用对象、类、继承、封装、聚合、关联、消息和多态性等概念和原则来构造系统的软件开发方法。

1.2.1 面向对象的分析

面向对象分析(Object Oriented Analysis OOA)是面向对象的系统分析和设计的第一个环节,包括一套概念原则、过程步骤、表示方法、提交文挡等规范要求。OOA的任务是采用面向对象方法,把对问题论域和系统的认识理解正确地抽象为规范的对象(包括类、继承层次)和消息传递联系,并形成面向对象模型。为后续的面向对象设计(Object Oriented Design OOD)和面向对象编程(OOP)提供指导。

1.2.2 面向对象的设计

面向对象设计(Object-Oriented Design,OOD)方法是OO方法中一个中间过渡环节。它的主要工作是根据需求决定所需的类、类的操作以及类之间关联的过程。主要作用是对OOA分析的结果作进一步的规范化整理,以便能够被OOP直接接受。

OOD体系结构可分成四部分内容:①问题论域部分,设计构造一组为底层应用建立模型的类和对象,细化分析结果;②人机交互部分,设计一组有关类接口视图的用户模型的类和对象,设计用户界面;③任务管理部分,确定系统资源的分配,设计用于系统中类的行为控制的对象/类;④数据管理部分,确定持久对象的存储,将对象转换成数据库记录或表格。

2 结构化和面向对象方法的基本思想

2.1 结构化方法的基本思想 (1)自顶向下,逐步求精

把程序看成是一个逐步演化的过程。把一个系统与程序看成是一层一层的。例如:户籍管理系统可以划分为:户籍迁入迁出,人员迁入迁出,户籍注销,人员注销等几个子系统,而每个子系统又划分为接收用户信息,实施处理,提供返回信息等等部分。

(2)模块化

2

将几个系统分成几个模块,每个模块实现特定的功能,最终整个系统由这些模块组成。模块跟模块之间通过接口传递信息,模块最重要的特点就是性,模块之间还有上下层的关系,上层模块调用下层模块来实现一些功能。

(3)语句结构化

顺序结构、分支结构、循环结构,都是常用的语句结构。 2.2 面向对象方法的基本思想

(1)客观世界中的事物都是对象,对象之间存在一定的关系,并且复杂对象由简单对象构成。

(2)具有相同属性和操作的对象属于一个类,对象是类的一个实例。 (3)类之间可以有层次结构,即类可以有子类,其中,子类继承父类的全部属性和操作,而且子类有自己的属性和操作。

(4)类具有封装性,把类内部的属性和一些操作隐藏起来,只有公共的操作对外是可见的,对象只可通过消息来请求其他对象的操作或自己的操作。

(5)强调充分运用人在日常逻辑思维中经常采用的思想方法与原则。例如:抽象,分类,继承,聚合,封装,关联等

3 结构化和面向对象方法的基本原则

3.1 结构化方法的基本原则 (1)抽象原则

一切系统科学方法都必须遵循的基本原则,它注重把握系统的本质内容,而忽略与系统当前目标无关的内容,它是一种基本的认知过程和思维方式。

(2)分解原则

结构化方法中最基本的原则,它是一种先总体后局部的思想原则,在构造信息系统模型时,它采用自顶向下、分层解决的方法。

(3)模块化原则

结构化方法最基本的分解原则的具体应用,它主要出现在结构化设计阶段中,其目标是将系统分解成具有特定功能的若干模块,从而完成系统指定的各项功能。

3.2 面向对象方法的基本原则

3

(1)抽象

抽象是处理现实世界复杂性的最基本方式,在OO方法中它强调一个对象和其他对象相区别的本质特性,对于一个给定的域确定合理的抽象集是面向对象建模的关键问题之一。

(2)封装

对抽象元素的划分过程抽象,由结构和行为组成,封装用来分离抽象的原始接口和它的执行。封装也称为信息隐藏,它将一个对象的外部特征和内部的执行细节分割开来,并将后者对其他对象隐藏起来。

(3)模块化

已经被分为一系列聚集的和耦合的模块的系统特性,对于一个给定的问题,确定正确的模块集几乎与确定正确的抽象集一样困难,通常每个模块应该足够简单以便能够被完整地理解。

(4)层次

抽象集通常形成一个层次,层次是对抽象的归类和排序,在复杂的现实世界中有两种非常重要的层次,一个是类型层次,另一个是结构性层次。确定抽象的层次是基于对象的继承,它有助于在对象的继承中发现抽象间的关系,搞清问题的所在,理解问题的本质。

4 结构化方法和面向对象方法的核心问题

4.1 结构化方法的核心问题

模型问题是结构化方法的核心问题建立模型简称建模是为了更好地理解我们要模拟的现实世界建模通常是从系统的需求分析开始在结构化方法中就是使用SA方法构建系统的环境模型然后使用SD方法确定系统的行为和功能模型最后使用SP方法进行系统的设计并确定用户的现实模型

4.2 面向对象方法的核心问题

面向对象方法与结构化方法一样其核心问题也是模型问题面向对象模型主要由OOA模型OOD模型组成其中OOA主要属于学科抽象形态方面的内容OOD主要属于学科设计形态方面的内容

5 结构化方法和面向对象方法的实例

在超市型书店中,顾客可以从书架上自由选书,然后到收款台付款和打印单

4

据。为方便顾客,书店还向顾客提供查询服务,可以依据顾客提供的信息,如书号、书名、作者或出版社,查询书店中有无相应的图书。书店管理人员日常需要详细记录进书与售书情况,需要经常查询库存书和销售情况,还要统计销售量、销售利润最大的图书(比如10种)信息,为书店进书提供依据。书店只设一个收款台,用一台微机即可实现经营管理。

5.1 结构化方法

对传统的结构化软件开发方法,在需求分析阶段要对系统中数据的加工过程(即从开始的数据输入到最终系统输出数据的加工处理过程)用数据流图(DFD)加以描述,对系统所涉及的永久性数据的存储与组织用实体关系(E-R)图来描述。进入软件设计阶段后,DFD将转换为系统结构(SC)图,E-R图则被转换为数据库中的表。

5.1.1 系统功能分析

从系统功能的角度分析,该系统应包括以下四个部分。

(1)进书登记。登记本店购进图书的书名、书号、作者、出版社、进价、定价、库存数等信息;

(2)售书登记。登记售书日期、书号、售出数量、单据号、开单人等消息,打印销售单据;

(3)查询统计与报表。随时显示和打印给定时间段内的售书情况,并结算销售金额与利润;统计销售量、销售利润最大的10种图书;随时显示和打印库存书清单;

(4)购书查询。可查询有无某书号、书名、作者、出版社的书。 5.1.2 系统的实体关系图

系统所包含的实体有库存书、单据,二者之间具有售书关系,所对应的E-R图如图1所示。

5

作者出版社进书日期定价进价库存数书名书号库存数备注版面数量售书单据单据号开单日期购书单位开单人总金额 5.1.3 系统的数据流图

DFD 是自顶向下逐步细化的层次图,其中包含四种元素,即用矩形框表示的起点与终点;有向线表示的数据流;矩形框表示的加工以及双横线表示的文件。

书店管理员书店管理系统顶层DFD1进书登记F2 售书表F3 单据表客户

入库书目F1 库存表书店管理员售书收入查询选择管理员查询结果2售书3查询付款金额借书单客户查询结果客户F1F2报表选择报表输出结果F34输出报表一层 FDF

6

书店管理员售书收入总金额2.12.2显示图书价格并产生购书单计算总金额购书单付款金额2.3购书单售书登记客户F2客户查询输入F33.1客户查询F33.2管理员查询4.1显示库存清单报表4.2管理员查询4.3显示单据报表二层DFDF1客户查询结果书店管理员F2管理员查询选择F1客户管理员查询结果库存清单选择F1书店管理员库存清单售书选择售书报表单据选择单据报表F2F3

销售额查询结果销售额选择书店管理员起止日期3.2.1显示指定时间内图书销售金额与利润3.2.2显示指定时间内销售量最大的10种书3.2.3显示指定时间内销售利润最大的10种书F1销售量最大选择F2F3起止日期销售量最大查询结果销售利润最大选择起止日期销售利润最大查询结果书店管理员F1三层DFDF2F3

5.2 面向对象的方法

面向对象的分析方法,需求分析阶段首先要给出UML图中的用例图与类图。用例图是由系统之外的执行者(称为主角或角色)与执行者感受到的一系列动作(称为用例)所构成,用例图包括主角、用例以及主角与用例之间的联系。类图则要从问题域的研究、描述中抽象提取。在初步的用例图与类图的基础上可根据需要分析给出UML的其他图,比如状态图、顺序图、活动图、协作图等。进入设

7

计阶段后需进一步规划、设计类的属性与方法,给出方法体的实现流程。

5.2.1 用例图和系统类图

进书登记显示图书价格并计算总金额显示指定时间内图书销售金额与利润产生购书单售书售书登记管理员查询查询客户查询显示指定时间内销售量最大的10种书输出报表显示售书报表显示指定时间内销售利润最大的10种书显示库存清单报表显示单据报表用例图

书书号,书名,作者,出版社,封面获取书号,获取书名,获取作者,获取出版社,获取封面,设置书号,设置书名,设置作者,设置出版社,设置封面库存定价,进价备注,数量获取定价,获取进价,获取备注,获取数量,设置定价,设置进价,设置备注,设置数量进书登记,获取查询数目产生库存清单售书登记售书单据号,数量,开单日期,购书单位,开单人获取单据号,获取数量,获取开单日期,获取购书单位,获取开单人设置单据号,设置数量,设置开单日期,设置购书单位设置开单人,售书登记,产生购书单,产生售书清单,产生单据清单,统计售书金额与利润,统计销售量最大的10种书,统计销售利润最大的10种书系统类图

8

因篇幅问题不能全部显示,请点此查看更多更全内容