结构化方法与面向对象方法之比较

随着计算机软硬件各方面的飞速发展,计算机领域的观念和方法日新月异。面向对象方法始于20世纪60年代挪威奥斯陆大学和挪威计算机中心共同研究的SMULA语言。70 年代,人们都认为结构化方法是最好的系统开发方法,直到现在仍有许多系统是用它开发的。然而,随着计算机应用技术的不断发展,结构化方法越来越不能适应日益复杂庞大且高速发展的信息系统的建设。80年代以来,面向对象方法正引起越来越强烈的关注和重视,并在业内掀起一股新的面向对象编程浪潮。面向对象方法是在结构化方法、信息建模方法等基础上发展起来的,现已呈现出取代结构化方法的趋势。本文具体分析两者在软件开发中的差别以及面向对象方法的优越性。

结构化方法:

结构化方法是计算学科的一种典型的系统开发方法,是对现实世界的应用问题进行分解,面向过程设计问题空间的解域,强调自顶向下、逐步求精、模块化设计。

结构化方法的建模技术包括DFD(数据流图)、DD(数据字典)、ERD(实体一联系图)和SC(结构图)。

(1)数据流图:数据流图是 SA 和 SD 的核心技术, 它采用面向处理过程的思想 来描述系统,它是一种描述信息流和数据从输入到输出变换的应用图 形技术。 模拟系统的一个大致边界,并展示系统和外部的接口、数据的 输入和输出以及数据的存储。

(2)数据字典:数据字典是一个包含所有系统数据元素定义的仓库。 数据元素的 定义必须是精确的、严格的和明确的。 一个实体一般应包括以下几个 部分的内容: ①名字; ②别名; ③用途; ④内容描述; ⑤备注信息。

(3)实体-联系图:实体-联系模型被用来模拟系统数据部件之问的相互关系。 实体-联系模型独立于当前的系统状态,并与具体的计算机程序设计语言无关。

(4)结构图:准确的表明程序结构,它能描述出各个模块之间的联系和关系。与数据流图不同,结构图描述的是控制流的情况。结构图的主要成分有:模块;模块间的调用关系,箭头指向的是被调用模块;模块间的通讯,在表示调用关系的箭头旁边的一个小箭头表示;辅助控制符号,当模块A有条件的调用模块B时候,在箭头的起始点加上一个菱形,当模块A反复调用模块B的时候,在箭头的中间加上一个环形。

结构化方法包括结构化分析(Structured Analysis,简称SA)、结构化设计(Structured Design,简称SD)和结构化程序设计(Structured Program Design,简称SP)三部分内容。

SA具体是面向应用,分解需求。方法步骤为:分析当前的情况,做出当前物理模型的DFD;推导出等价的逻辑模型的DFD;设计新的逻辑系统,生成数据字典和基元描述;建立人机接口,确定目标系统物理模型的DFD。

SD是细化分析结果,过渡软件结构。方法步骤为:评审和细化DFD;确定DFD类型;把DFD映射到软件模块结构,设计出上层结构;基于DFD逐步分解高层模块,设计中下层模块;对模块结构进行优化,得到更为合理的软件结构;描述模块接口。

SP是进行系统设计。

面向对象方法:

面向对象方法是使用现实世界的概念抽象地思考问题从而自然的解决问题。强调模拟现实世界中的概念而不强调过程或算法,支持重用。主要有OOA和OOD模型。其中OOA 主要属于学 科抽象方面的内容,OOD 主要属于学科设计方面的内容。

(1)OOA 模型:(立足应用,刻画问题)

OOA 关心的是构建现实世界的模型问题。 如何解决现实世界的 建模问题呢?根据系统科学的思想,首先需要对复杂的系统进行分解, 最常用的分解方法就是分层。 关于OOA 模型的分层方法有不少,现采用P.Coad和E.Yourdon的分层方法。该方法将 OOA 模型划分为5个层次,即:主题层、对象层、结构层、属性层和服务层。OOA 的主要任务就是要在问题 域上构建具有这5个层次内容的 OOA 模型。

1)主题层:主题给出 OOA 模型中各图的概况, 为分析员和用户提供了一个 相互交流的机制,有助于人们理解复杂系统的模型构成。

2)对象层:对象是属性及其专用服务的一个封装体, 是对问题域中的人、事和物等客观实体进行的抽象描述。 对象由类创建,类是对一个或多个 对象的一种描述,这些对象能用一组同样的属性和服务来刻画。

3)结构层:在OO方法中,组装结构和分类结构是两种重要的结构类型,它 们分别刻画“整体与部分”组织以及“一般与特殊”组织。组装结构(即整体与部分)遵循了人类思维普遍采用的第2个基本法 则,即区分整体对象及其组成部分。分类结构(即一般与特殊)遵循了人类思维普遍采用的第3个法 则,在OO方法中,是类、成员和它们之间的区别。

4)属性层:属性是描述对象或分类结构实例的数据单元,类中的每个对象都 具有它的属性值,属性值就是一些状态的信息数据。

5)服务层:一个服务就是收到一条信息后所执行的处理(操作)。服务是对模型化的现实世界的进一步抽象。

(2)OOD模型:(细化分析结果、补充现实相关)

OOA 与 OOD 不存在转换的问题。OOD根据设计的需要, 仅对OOA在问题域方面建立的 5个抽象层次进行必要的增补和调整。方法步骤为改进和完善系统分析的结果;设计交互过程和用户接口;设计任务管理,以及子系统以及任务之间的协调方式;设计全局资源,确定任务或子系统的资源分配;对象设计。同时,OOD还必须对人机交互、任务管理和数据管理3个部分的内容进 行抽象,最后建立完整的OOD模型。

结构化方法和面向对象方法优缺点比较:

(一)从执行效率来说。结构化方法比面向对象方法产生的可执行代 码更直接, 更高。所以对于一些嵌入式的系统, 结构化方法产生的系统 更小, 运行效率更高。

(二)从重用性方面来说。采用结构化方法的系统难以修改和扩充。 结构化分析与设计清楚定义了系统的接口, 当系统对外界接口发生变 动时, 往往造成系统结构较大变动, 难以扩充新的功能接口。采用结构 化方法的系统可复用性较差。结构化方法将数据和操作分离, 导致一些 可重用的软件构件在特定具体应用环境才能应用, 降低了软件的可重 用性。面向对象方法具有很好的重用性。在遇到类似的问题, 通过应用 了抽象继承等技术, 来重用代码。

(三)从程序语言编译器来说。面向对象方法, 通过编译器实现代码 的面向对象性。也就是说经过编译器后, 代码会被翻译为相对应的结构 化代码。所以要熟练开发, 还要懂一定的结构化方法做为基础。

(四)从掌握难度来说, 面向对象方法比结构化对象方法复杂,难于 理解。面象对象方法的内容广, 概念多, 而且很多都是难于理解, 做到精 通更加不易。应用面向对象方法, 常常需要一种支持的分析, 设计方法, 如 RUP 方法, 敏捷方法等。这些知识抽象枯燥,难于掌握。面象对象方法 要经过长期的开发实践才能很好的理解, 掌握。相比之下, 结构化方法 知识内容少, 容易上手。

(五)从应用的范围看, 结构化方法适用于数据少而操作多的问题。 实践证明对于像操作系统这样的以功能为主的系统, 结构化方法比较 适应它。面向对象方法正好相反, 对于数据库, 信息管理等以数据为主 的而操作较少的系统, 用面向对象方法描述要好于结构化方法。

总之各有利弊,具体使用什么方法还需要根据具体情境而定。

引用文档:

百度百科结构化方法-----

http://baike.baidu.com/link?url=4lVpuDxpyAWR6fvyp94pw0ad9B1Tu1vBMKByom8NQCWJGzCJ7WHZLYYySCqSwyqVSuJVKCo0-kpEsNGfPf0ioIyBGN6KJ2xwaxA5d7a2oD0iwhnyzVgM0ODPTZdIr6KyWyr9-nmEoXer1RlvZFvwGq

百度百科------

http://baike.baidu.com/item/%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1%E6%96%B9%E6%B3%95/216078

结构化程序设计方法与面向对象程序设计方法之比较-------喻梅

面向对象方法与结构化方法------ 贺启宝,王军

转载于:https://www.cnblogs.com/cbh14061127/p/6182911.html

结构化方法与面向对象方法之比较相关推荐

  1. 结构化方法与面向对象方法的比较

    本博客旨在通过基本概念.主要特征以及针对需求变更的项目所选用的开发模型等方面进行结构化方法与面向对象方法的比较. 软件开发方法指在项目投资规模和时间限制内,设计.实现符合用户需求的高质量软件,根据软件 ...

  2. 结构化方法和面向对象方法详解

    一.结构化方法和面向对象方法的地位 在系统建模中占主导地位. 二.结构化方法(Structure Analysis,SA) 软件工程中, 结构化方法是较为经典的设计与开发方式之一, 侧重于对系统进行功 ...

  3. 软件工程:结构化方法 VS 面向对象方法

    一.基本概念 1.结构化方法 结构化方法是一种传统的软件开发方法,它是由结构化分析.结构化设计和结构化程序设计三部分有机组合而成的. 基本思想:把一个复杂问题的求解过程分阶段进行,而且这种分解是自顶向 ...

  4. 结构化方法与面向对象方法

    结构化方法与面向对象方法 一.结构化方法 1.1结构化方法概述 结构化方法起源于结构化程序设计,具有面向功能.结构清晰.支持逐步求精等特点,使软件易于维护.在运用结构化开发方法时,设计人员首先需要运用 ...

  5. 结构化方法和面向对象方法的比较

    结构化方法和面向对象方法的比较 翁松秀 北京航空航天大学 摘要:编程之精髓在于编程思想,而不同的编程方法有不同的编程思想.结构化程序设计方法一直以来都是编程人员基本的编程方法,而近年来流行的面向对象方 ...

  6. 结构化方法、面向对象方法的区别

    结构化方法.面向对象方法的区别 1.结构化方法遵循的基本原则 结构化方法的基本思想就是将待解决的问题看作一个系统从而用系统科学的思想方法来分析和解决问题结构化方法遵循以下基本原则 (1)抽象原则 抽象 ...

  7. 结构化方法与面向对象方法应用比较

    1.结构化方法 1.1概述 结构化方法(SD方法)是一种传统的软件开发方法,它是由结构化分析.结构化设计和结构化程序设计三部分有机组合而成的.它的基本思想:把一个复杂问题的求解过程分阶段进行,而且这种 ...

  8. 结构化方法和面向对象方法

    结构化方法 1.结构化方法:面向过程的方法 结构化分析(SA,  Structured Analysis) 结构化设计(SD,  Structured Design) 结构化编程(SP,  Struc ...

  9. 简述以上结构化方法和面向对象方法的特点和优缺点

    特点: (1)结构化方法的思想是一种分层的思想,模块化思想,它语句结构化,不再使用GOTO语句. 结构化方法还遵循分解原则,自顶向下进行分层解决. (2)面向对象方法显然是面向对象思想,将系统中要处理 ...

最新文章

  1. 高中上不上分数低学计算机,中考分数低该怎么办 上不了高中有什么出路
  2. “零成本”建设数据中心机房容灾方案
  3. IDEA 真牛逼,900行 又臭又长 的类重构,几分钟搞定
  4. pytorch dataset dataloader_PyTorch(五)——数据的加载和预处理
  5. 什么是 Linux Foundation
  6. OpenSSL再曝CCS注入漏洞-心伤未愈又成筛子
  7. 解决python-kafka连接kafka时报错kafka.errors.NoBrokersAvailable: NoBrokersAvailable
  8. (231)DPU数据处理单元现有产品介绍
  9. python 爬虫001-http请求过程
  10. zynq文档学习之GPIO寄存器基本操作
  11. 关于网络存储技术和存储的协议
  12. [书籍阅读] Spring Persistence with Hibernate
  13. ubuntu 安装截图工具 Shutter,并设置快捷键 Ctrl+SuperL
  14. 独立开发者:新手做2D手游该用哪些工具
  15. 中国城市电话区号对照表中国移动短信中心号查询及命名规则
  16. stm32心率监测系统(心率监测,wifi上传,APP显示,上位机显示)
  17. PAT 甲级1116 1117 1118 1119 解题报告
  18. eeglab脑电数据预处理:step by step
  19. 使用potplayer 录制视频
  20. 每周分享第 13 期:周刊为什么只谈技术?

热门文章

  1. 2022-2028年现代农业背景下中国家庭农场深度调研及投资前景预测报告
  2. Python 上下文管理器和 with 语句
  3. GCC 链接 xxx:No such file or directory 及运行可执行文件 error while loading shared libraries: xxx.so 解决方案
  4. 愿疫情早日过去,向那些在疫情战斗中牺牲的战士致敬
  5. mysql根据时间取前后几秒,几分钟,几小时,几天,几月,几年
  6. 操作系统学习笔记 第六章:设备管理(王道考研)
  7. 2021年大数据Flink(三十):Flink ​​​​​​​Table API  SQL 介绍
  8. 2021年大数据Flink(六):Flink On Yarn模式
  9. HarmonyOS开发工具DevEcoStudio 的下载以及运行(包含下载开发工具,sdk,模拟机,以及运行第一个应用你好,世界)
  10. Android TextView textAppearance