设为首页 加入收藏

TOP

结构化方法与面向对象化方法的比较(一)
2017-10-13 10:40:37 】 浏览:4188
Tags:结构化 方法 面向 对象化 比较

 

1、导语

编程思想之于软件开发,正如建筑结构之于一砖一瓦。不同的编程思想对于软件如何构在某些地方略有相似,在很多地方又有着显著的差异,而这些差异不仅仅在于语言的不同,而是编程开发思想的区别。本片文章将分别介绍结构化方法中的结构化设计和结构化分析,面向对象方法中的面向对象分析并分别总结优缺点。

2、结构化方法

上世纪60年代,由于计算机计算能力和处理的问题复杂度的急速增长,爆发了众所周知的软件危机。为了应对软件危机带来的危害,解决管理大型复杂软件的难题,学术界与工业界共同研究并提出了许多有效的软件开发方法。而其中影响最为深远的,分支最为庞大的方法就是结构化方法。目前,很多软件开发工作组对于结构化方法依旧情有独钟。结构化方法着重强调对现实世界的应用问题进行分解,面向过程设计问题空间的解域,强调自顶向下、逐步求精、模块化设计,这与传统软件开发模式在一定程度上有所契合。结构化分析由结构化分析、结构化设计以及结构化程序设计三部分有机组合而成,接下来笔者将对结构化分析和结构化设计进行介绍。

2·1、结构化分析

结构化分析Structured Analysis)是软件工程中的一种方法,结构化分析和结构化设计可以分析软件需求,将软件设计和需求转换为规格文件,最后生成软件、硬件配置及相关的手册及程序。结构化分析以数据在不同模块中移动的观点来看待一个系统,系统的功能可以用转换数据流的程序来表示;其善用功能拆解(或由上到下设计)的信息隐藏特性,因此可以关注在重要的细节,而不会被无关的细节干扰。当细节的层级提高时,信息的广度也随之减少。结构化分析的结果是一组相关的图,程序描述以及数据定义,这些数据描述一个程序为符合机能性需求所需要的数据以及需进行的转换。

目前较为通用的结构化分析方法是由汤姆·狄马克于1978年在著作《结构化设计和系统规格》中提出,其中包括的内容为:

a)      系统关系图

b)      数据流程图

c)      数据字典

 

系统关系图是表示系统和外界环境之间的作用,系统关系图可以表示一个系统和外界相关系统的输入及输出。系统关系图将系统放在整个图的中心,不描述其内部结构,周围则是和其有关的系统、活动及环境,环境图的目的是专注在哪些会影响系统需求及限制的外部因素及事件。

 

 

    数据流程图(DFD)是结构化分析方法中使用的工具,它反映了系统必须完成的逻辑功能,是一种功能模型,描述了程序中各个功能点的数据变化。在描述复杂的软件系统的信息流向时,通常使用分层DFD来对数据流进行描述。分层DFD分为顶层、中层和底层,从图中可以明显看出自顶向下的设计特点

 

   

数据字典是指对数据的数据项、数据结构、数据流、数据存储、处理逻辑、外部实体等进行定义和描述,其目的是对数据流程图中的各个元素做出详细的说明,使用数据字典为简单的建模项目。在结构化分析中,数据字典的作用是给数据流图上每个成分加以定义和说明,数据流图上所有的成分的定义和解释的文字集合就是数据字典,而且在数据字典中建立的一组严密一致的定义很有助于改进分析员和用户的通信。

2·2、结构化设计

结构化设计方法给出一组帮助设计人员在模块层次上区分设计质量的原理与技术。它通常与结构化分析方法衔接起来使用,以数据流图为基础得到软件的模块结构。SD方法尤其适用于变换型结构和事务型结构的目标系统。在设计过程中,它从整个程序的结构出发,利用模块结构图表述程序模块之间的关系。结构化设计的步骤如下:

a)  评审和细化数据流图;

b)  确定数据流图的类型;

c)  把数据流图映射到软件模块结构,设计出模块结构的上层;

d)  基于数据流图逐步分解高层模块,设计中下层模块;

e)  对模块结构进行优化,得到更为合理的软件结构;

 

 

2·3、结构化设计的优缺点

结构化开发的优点在于着重开发过程的整体性和局部功能的局部性,在整体优化的条件下考虑具体的分析设计,同时强调各个开发过程的完整性和顺序性,严格的按照系统规格设计,及时总结反馈,这与传统的软件开发模式一致,也因此导致了结构化开发需要在早期开发中做好充足的数据调查,完备的规格设计,较为合理的管理以及对可能发生的问题具有一定的预见性,尽管自顶向下的设计模式符合大部分开发者的开发习惯,然而对于早期的准备要求相对苛刻,比较容易在开发过程中出现瑕疵而导致开发进度缓慢甚至推翻整个开发计划。

 

3、面向对象方法

面向对象方法(Object-Oriented Method)是一种把面向对象的思想应用于软件开发过程中,指导开发活动的系统方法,简称OO (Object-Oriented)方法,是建立在“对象”概念基础上的方法学。与客观实体有直接对应关系,一个对象类定义了具有相似性质的一组对象。而每继承性是对具有层次关系的类的属性和操作进行共享的一种方式。所谓面向对象就是基于对象概念,以对象为中心,以类和继承为构造机制,来认识、理解、刻画客观世界和设计、构建相应的软件系统。与结构化方法相比,面向对象方法提出的时间相对较晚,然而由于面向对象方法的特点让其在软件开发领域迅速被认可和接受。其特点为使用现实世界的概念抽象的思考问题,强调模拟现实中的概念而不是强调过程和算法。

3·1、面向对象分析

面向对象分析(object-oriented analysis)一种新的系统分析方法,它是采用面向对象的风格进行系统分析和需求定义的重要方法。面向对象分析的关键在于理解问题空间并将其模型化,通过分析模型的属性,进而对对象进行操作。由于面向对象程序设计课程给学生带来的冲击过于强烈深刻,在此不再多余赘述何为对象何为抽象,感兴趣的同学可以登录北航的mooc网站观看吴际老师的公开课。

面向对象分析的具体方法如下:

a)      认识对象及其属性

b)      认识对象的整体及其组成部分

c)      区分整体对象以及组成部分,确定类的关系以及内部结构

d)      对象的形成及类的区分

e)      确定附加的系统约束

f)       对问题空间进行理解并抽象成模型

 

3·2、面向对象设计

面向对象设计是一种软件设计方法,是一种工程化规范。面向对象设计的主要工作包括:

a)      确定需要的类

b)      给每个类提供一组

首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇设计模式学习笔记(1)——单利模.. 下一篇springmvc 多数据源 SSM java red..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目