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

1.结构化方法遵循的基本原则

结构化方法的基本思想就是将待解决的问题看作一个系统从而用系统科学的思想方法来分析和解决问题结构化方法遵循以下基本原则

(1)抽象原则

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

(2)分解原则

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

(3)模块化原则

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

2.面向对象模型遵循的基本原则

面向对象模型遵循的基本原则有:抽象、封装、模块化以及层次原则等

(1)抽象

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

(2)封装

封装是对抽象元素的划分过程抽象由结构和行为组成封装用来分离抽象的原始接口和它的执行

封装也称为信息隐藏Information Hiding它将一个对象的外部特征和内部的执行细节分割开来并将后者对其他对象隐藏起来

(3)模块化

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

(4)层次

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

3.结构化方法的核心问题

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

4..面向对象方法的核心问题

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

5.结构化系统分析方法的特点

(1)面向用户,用户自始至终参与系统的分析工作;

(2)强调调查工作的重要性;

(3)对管理业务中的各种数据进行分解;

(4)采用了层次分解的系统思想;

(5)用图形工具来分析和构建新方案。

¨结构化分析的图表工具主要由数据流程图、数据字典和数据处理说明组成。

6.面向对象系统分析方法的特点

(1)      强调系统开发的整体性和全局性

(2)      侧重于数据转换的过程而不是数据本身

(3)      系统的开发周期长

(4)      封装性 

对象的概念突破了传统数据与操作分离的模式。对象作为独立存在的实体,将自由数据和操作封闭在一起,使自身的状态、行为局部化。

(5)     继承性 

  继承是面向对象特有的,亦是最有力的机制。通过类继承可以弥补由封装对象而带来的诸如数据或操作冗余的问题,通过继承支持重用,实现软件资源共享、演化以及增强扩充。

(6)     多态性 

  同一消息发送至不同类或对象可引起不同的操作,使软件开发设计更便利,编码更灵活。

(7)     易维护性

  面向对象的抽象封装使对象信息隐藏在局部。当对象进行修改,或对象自身产生错误的时候,由此带来的影响仅仅局限在对象内部而不会波及其他对象乃至整个系统环境,这极大方便了软件设计、构造和运行过程中的检错、修改。

------------------------------------------------------------------------------

程序设计是一门技术,它需要相应的理论、技术、方法和工具来支持。就程序设计方法和技术的发展而言,主要经过了结构化程序设计和面向对象的程序设计阶段,但它们的所采用的方法和针对的对象却是不一样的。 
    结构化方法是最早最传统的软件开发方法,也是迄今为止信息系统中应用最普遍、最成熟的一种,它引入了工程思想和结构化思想,使大型软件的开发和编程都得到了极大的改善。结构化方法的基本思想可概括为:自顶向下、逐步求精、模块化技术。 
    自顶向下逐层分解,是指在程序设计时,先考虑问题大的方面,在确定了主要方向后,再由表及里深入到问题具体的细节,由易到难,逐层解决问 题。这是一个由模糊到清晰,由概括到具体的过程。而逐步求精是在遇到复杂问题的时候,先设计一些子目标作为过渡,来逐步细化。比如在对学生编写资料时,应 先将学生分为专科生、本科生、研究生。在对本科生填写资料时,又可对其的专业、班级、学号、姓名、籍贯等进行进一步的划分,依次类推,逐步把资料填写完 全。 
    结构化方法强调功能抽象和模块化。由于它采取了分块处理问题的方法,可以把一个比较复杂的问题分解为若干个容易处理解决的部分,从而降低 了问题处理的难度。由于结构化方法思路清晰,条理清楚,又有效地分解了繁复的问题,使得编写程序时清晰明了,简化了编程人员繁杂的工作;而在阅读时也能够 一气呵成,给人以明朗的感觉。 
面向对象方法是目前已经发展成为主流的软件方法,它经过了30多年的研究和发展,已经越来越成熟和完善,应用也越来越深入和广泛。如著名的 Smalltalk,C++,Java,Eiffel等都属于面向对象语言。面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步 骤,而是为了描叙某个事物在整个解决而面向对象的设计则是从另外的思路来解决问题。面向对象方法的本质是主张从客观世界固有的事物出发来构造系统,提倡用 人类在现实生活中常用的思维方法来认识和理解、描述客观事物,强调最终建立的系统能映射的问题域。使得系统中的对象,以及对象之间的关系能够如实地反映问 题域中固有的事物及其关系。 
面向对象方法它有着自己的优点。首先,它与人类习惯的思维方法一致,使得使用者和维护人员都容易理解,在用户使用时不会出现理解困难,在软件维护 中可维护性也较高,并且易于测试和调试。比如黑白双方在设计五子棋时,可分为行为是相同的黑白双方,负责绘制画面的棋盘系统,负责判定犯规、输赢等的规则 系统。第一类对象(玩家对象)负责接受用户输入,并告知第二类对象(棋盘对象)棋子布局的变化,棋盘对象接收到了棋子的变化就要负责在屏幕上面显示出这种 变化,同时利用第三类对象(规则系统)来对棋局进行判定问题的步骤中的行为。可以明显地看出,面向对象是以功能来划分问题,而不是步骤。 
其次,它的稳定性好,对软件的局部进行修改时,不会引起整体的变化,而且对局部修改容易实现。面向对象方法的可重用好,并且由于它是把大的问题分解成相互独立的小问题处理,降低了开发的技术难度,开发工作的管理也变的容易了,开发大型软件边的容易,成本也降低了。 
面向对象方法直接由问题入手,来进行系统的建模,降低了使用成本,让用户在使用一个新的软件时,能够在最短的时间里了解使用方法,能正确,清楚地使用软件。 
在编写程序方面,结构化方法有着比较强的优势,它思路清晰,条理严谨,步骤整洁,便于阅读理解;而在注重功能的用户使用方法,面向对象方法则更容易理解,它操作简单,界面清楚,使得软件使用变得简单。

结构化方法、面向对象方法的区别相关推荐

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

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

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

    结构化方法与面向对象方法之比较 随着计算机软硬件各方面的飞速发展,计算机领域的观念和方法日新月异.面向对象方法始于20世纪60年代挪威奥斯陆大学和挪威计算机中心共同研究的SMULA语言.70 年代,人 ...

  3. 面向过程(或者叫结构化)分析方法与面向对象分析方法到底区别

    博主选的是老师给出的第一个议题"面向过程(或者叫结构化)分析方法与面向对象分析方法到底区别在哪里?",首先来讨论一下二者的定义. 结构化方法的基本思想是将待解决的问题看作一个系统从 ...

  4. 面向过程(结构化)分析方法与面向对象分析方法的区别

    面向过程是从问题的总体目标开始,抽象底层的细节,先专心构造高层的结构,然后再一层一层地分解合细化. 面向对象则是运用对象.类.继承.封装.聚合.消息传递.多态性等概念来构造系统的方法. 面向过程着重于 ...

  5. 【Java常识】6.0面向对象认知和Eclipse的实用使用、==号和equals方法的区别

    1.曾经写过很多自以为很通俗易懂的面向对象的解释. 如下是目前最通俗的一种解释: 2.Eclipse的补充解释. 运行的快捷键:F11. 3.Eclipse快捷键大全 大全放本文最后,这里主要放常用的 ...

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

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

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

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

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

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

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

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

最新文章

  1. onrsd.exe应用程序错误
  2. TB6600原理图(最完整并量产过的版本!!)
  3. 如何为你的博客园添加到百度统计
  4. 日记——2019-03-12
  5. 他一篇论文未发博士毕业!中科院最年轻院士入职浙大!
  6. 8-汇编语言数据长度及寻址-bx/si/di/bp+ss+ptr+div+dd+dup
  7. Windows的Git Bash使用tree命令
  8. 百度ai—细粒度图像识别
  9. PostgresSQL弱密码导致命令执行
  10. C语言基础入门一(自学笔记)
  11. mbedtls | 02 - 伪随机数生成器(ctr_drbg)的配置与使用
  12. k8s高可用二进制部署
  13. quartus软件使用—error:top-level design entity “xxx” is undefined
  14. AJAX IE7清除缓存
  15. 那些年我们用过的显示器接口
  16. 7.1 Python中文件的读取和写入
  17. HDFS中block的大小
  18. bank conflict
  19. 保定市2018-2019天气爬取
  20. 直播电商购物消费者满意度在线调查报告(四)

热门文章

  1. 没有基础或者基础差,如何快速学会编程?这6招绝对好使
  2. matlab 判断空字符串,测试空字符串和缺失值
  3. 轨迹聚类之分段聚类方法总结
  4. 水星5口交换机划分Vlan
  5. 区块链技术者联盟群成立
  6. 射手座和什么星座最配
  7. python求伽马分布模型参数_Python实现的各种常见分布算法示例
  8. flink定时读取mysql数据_flink时间系统系列之实例讲解:如何做定时输出
  9. 8种用Python实现定时执行任务的方案,一定有你用得到的
  10. linux yum安装iscsi,安装Linux iscsi组件