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等都属于面向对象语言。面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步 骤,而是为了描叙某个事物在整个解决而面向对象的设计则是从另外的思路来解决问题。面向对象方法的本质是主张从客观世界固有的事物出发来构造系统,提倡用 人类在现实生活中常用的思维方法来认识和理解、描述客观事物,强调最终建立的系统能映射的问题域。使得系统中的对象,以及对象之间的关系能够如实地反映问 题域中固有的事物及其关系。 
面向对象方法它有着自己的优点。首先,它与人类习惯的思维方法一致,使得使用者和维护人员都容易理解,在用户使用时不会出现理解困难,在软件维护 中可维护性也较高,并且易于测试和调试。比如黑白双方在设计五子棋时,可分为行为是相同的黑白双方,负责绘制画面的棋盘系统,负责判定犯规、输赢等的规则 系统。第一类对象(玩家对象)负责接受用户输入,并告知第二类对象(棋盘对象)棋子布局的变化,棋盘对象接收到了棋子的变化就要负责在屏幕上面显示出这种 变化,同时利用第三类对象(规则系统)来对棋局进行判定问题的步骤中的行为。可以明显地看出,面向对象是以功能来划分问题,而不是步骤。 
其次,它的稳定性好,对软件的局部进行修改时,不会引起整体的变化,而且对局部修改容易实现。面向对象方法的可重用好,并且由于它是把大的问题分解成相互独立的小问题处理,降低了开发的技术难度,开发工作的管理也变的容易了,开发大型软件边的容易,成本也降低了。 
面向对象方法直接由问题入手,来进行系统的建模,降低了使用成本,让用户在使用一个新的软件时,能够在最短的时间里了解使用方法,能正确,清楚地使用软件。 
在编写程序方面,结构化方法有着比较强的优势,它思路清晰,条理严谨,步骤整洁,便于阅读理解;而在注重功能的用户使用方法,面向对象方法则更容易理解,它操作简单,界面清楚,使得软件使用变得简单。

转自:http://www.cnblogs.com/qlee/archive/2011/04/26/2028918.html

面向对象程序设计与结构化方法的比较相关推荐

  1. java面向对象程序设计(jdk1.6)第三版 目录页数_Java面向对象程序设计/普通高等教育计算机规划教材简介,目录书摘...

    目录: 出版说明 前言 第1章  面向对象程序设计基础 1.1  结构化方法与结构化程序设计 1.2  面向对象方法与面向对象程序设计 1.3  面向对象程序设计的基本概念和特征 1.4  统一建模语 ...

  2. 新手学java7编程_新手学Java 7编程:面向对象程序设计

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 面向对象程序设计 Java的核心是面向对象程序设计(OOP).面向对象方法论与Java是密不可分的,而Java所有的程序至少在某种程度上都是面向对象的.因 ...

  3. php面向对象程序设计,PHP面向对象程序设计类的定义与用法简单示例

    本文实例讲述了PHP面向对象程序设计类的定义与用法.分享给大家供大家参考,具体如下: class Person { private $name; private $sex; private $age; ...

  4. 常惠琢 201771010102《面向对象程序设计(java)》第七周学习总结

    实验七 继承附加实验 实验时间 2018-10-11 1.实验目的与要求 (1)进一步理解4个成员访问权限修饰符的用途: (2)掌握Object类的常用API用法: (3)掌握ArrayList类用法 ...

  5. 2017《面向对象程序设计》寒假作业一

    1.你有什么技能比大多人(超过70%以上)更好? 我看电影比一般人多一点点:我听英文歌比一般人多一点点:我有一把尤克里里和一个滑板.我有很多爱好,但都没能发展成我的特长,它们给我的生活增添了情趣,又不 ...

  6. java面向对象电子科大版答案_电子科大17秋《面向对象程序设计》在线作业1

    电子科大17秋<面向对象程序设计>在线作业1 ----------------------------------------------------------------------- ...

  7. 20155328 《Java程序设计》 实验二(Java面向对象程序设计) 实验报告

    20155328 <Java程序设计> 实验二(Java面向对象程序设计) 实验报告 单元测试 一.单元测试和TDD 编程时需理清思路,将编程需求等想好,再开始编.此部分可用伪代码实现. ...

  8. JavaScript中的面向对象程序设计

    本文内容目录顺序: 1.Object概念讲述: 2.面向对象程序设计特点: 3.JavaScript中类和实例对象的创建: 4.原型概念: 5.原型API: 6.原型对象的具体使用:7.深入理解使用原 ...

  9. [.net 面向对象程序设计进阶] (18) 多线程(Multithreading)(三) 利用多线程提高程序性能(下)...

    [.net 面向对象程序设计进阶] (18) 多线程(Multithreading)(二) 利用多线程提高程序性能(下) 本节导读: 上节说了线程同步中使用线程锁和线程通知的方式来处理资源共享问题,这 ...

最新文章

  1. erlang精要(31)-尾递归版的翻转列表
  2. Linux文件系统与日志分析(inode、inode节点耗尽故障处理、文件备份和恢复、日志文件管理)
  3. 线性序列机与串行接口ADC驱动设计与验证
  4. 国庆七天乐——第三天
  5. vue点击input框出现弹窗_使用vue实现各类弹出框组件
  6. android 自定义progressdialog,android自定义ProgressDialog加载效果
  7. Core Java-多线程-线程的生命周期
  8. Python思维导图框架总结
  9. editor修改样式 vue_vue修改富文本中的元素样式
  10. 博客园修改TinyMCE编辑器为Markdown编辑器的方法
  11. 网站后台导入文本编辑器
  12. 推荐几个好用的pdf翻译工具
  13. mp3音频格式在线转换器 在线转换MP3格式
  14. 香港城市大学全奖PhD/联培PhD/博后/RA
  15. C1/C1/C2 カバレッジについて
  16. 【浏览器】浏览器安全
  17. 员工偷懒?没事!教你如何数据库MySQL查询
  18. Linux下Chelsio T5调试方法
  19. 量子计算机研制成功图片,光量子计算机的曙光:科学家成功研制出量子光源
  20. 失业下的深圳中年:没有人活的容易,生活仍得继续...

热门文章

  1. Linux下软连接的创建和删除
  2. keyshot保存为ksp_keyshot渲染教程:keyshot教你如何简单的渲染冰与水
  3. bss、data和rodata区别与联系
  4. 【编译器问题】“fatal error LNK1169: 找到一个或多个多重定义的符号“ 解决方案
  5. data,bss和rodata段的区别与联系
  6. Flink核心篇,四大基石、容错机制、广播、反压、序列化、内存管理、资源管理...
  7. 基于高并发的数据采集器
  8. 解决前端图片下载跨域问题
  9. 模糊PID控制fuzzy- PID slx文件为模糊PID控制
  10. 大数据开发之常见九种数据分析方法