转
http://www.cnblogs.com/qlee/archive/2011/04/26/2028918.html
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等都属于面向对象语言。面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步 骤,而是为了描叙某个事物在整个解决而面向对象的设计则是从另外的思路来解决问题。面向对象方法的本质是主张从客观世界固有的事物出发来构造系统,提倡用 人类在现实生活中常用的思维方法来认识和理解、描述客观事物,强调最终建立的系统能映射的问题域。使得系统中的对象,以及对象之间的关系能够如实地反映问 题域中固有的事物及其关系。
面向对象方法它有着自己的优点。首先,它与人类习惯的思维方法一致,使得使用者和维护人员都容易理解,在用户使用时不会出现理解困难,在软件维护 中可维护性也较高,并且易于测试和调试。比如黑白双方在设计五子棋时,可分为行为是相同的黑白双方,负责绘制画面的棋盘系统,负责判定犯规、输赢等的规则 系统。第一类对象(玩家对象)负责接受用户输入,并告知第二类对象(棋盘对象)棋子布局的变化,棋盘对象接收到了棋子的变化就要负责在屏幕上面显示出这种 变化,同时利用第三类对象(规则系统)来对棋局进行判定问题的步骤中的行为。可以明显地看出,面向对象是以功能来划分问题,而不是步骤。
其次,它的稳定性好,对软件的局部进行修改时,不会引起整体的变化,而且对局部修改容易实现。面向对象方法的可重用好,并且由于它是把大的问题分解成相互独立的小问题处理,降低了开发的技术难度,开发工作的管理也变的容易了,开发大型软件边的容易,成本也降低了。
面向对象方法直接由问题入手,来进行系统的建模,降低了使用成本,让用户在使用一个新的软件时,能够在最短的时间里了解使用方法,能正确,清楚地使用软件。
在编写程序方面,结构化方法有着比较强的优势,它思路清晰,条理严谨,步骤整洁,便于阅读理解;而在注重功能的用户使用方法,面向对象方法则更容易理解,它操作简单,界面清楚,使得软件使用变得简单
==================自己的理解===================================================
结构化方法强调把一个问题按照步骤分解,强调以模块化和抽象为中心,把复杂的问题分解为若干个容易解决的部分,使用模块化、自顶向下、逐步求精的设计过程,优点是清晰,条理清楚简化了编程人员繁杂的工作,但由于用户的需求发生更改,功能模块受到影响,局部的修改可能会引起系统的全局性变化
而面向对象的方法强调的是把一个问题按照功能分解,他强调描述代表客观事物的对象为中心,使用对象、类、继承、多态的概念,优点是易理解性和局部的修改不会影响全局
分享到:
相关推荐
结构化程序设计方法与面向对象程序设计方法是两种在软件工程领域内被广泛采用的编程范式,它们各自拥有独特的设计理念、实现方式以及适用场景。接下来,我们将深入探讨这两种方法的基本思想、概念术语、编程语言、...
总之,面向对象方法与结构化方法各有千秋,通过深入了解它们的内在联系和主要区别,可以更加灵活地选择和结合两种方法,以满足不同软件项目的特定需求。在实际开发中,应根据项目特点和团队技能,制定合理的开发策略...
本主题将探讨"结构化与面向对象的需求分析与设计",深入理解这两种不同的方法及其在现代软件工程中的应用。 首先,让我们关注结构化方法。结构化方法是一种自上而下的系统开发方法,它强调将复杂问题分解成更小、更...
### 结构化与面向对象系统分析设计方法对比 #### 一、结构化方法与面向对象方法概述 在软件工程领域,结构化方法和面向对象方法是两种常见的系统分析设计方法。这两种方法各有特点,在实际应用中也有各自的优势和...
在软件开发中,需要根据系统的实际需求,考虑执行效率、重用性等因素,尽量利用结构化方法和面向对象方法的优点来选择不同的方法。 结构化程序设计的特点: * 通过逐步求精的设计过程把程序分解成单一处理功能的...
此外,随着敏捷开发、测试驱动开发等现代软件开发方法的兴起,开发者还需不断学习和实践,以便将这些方法论与结构化编程或面向对象编程相结合,以求开发出更高质量的软件。 总结而言,结构化编程和面向对象编程...
《数据结构(用面向对象方法与C++语言描述)》是由殷人昆编著的一本经典教材,专注于讲解如何利用面向对象编程的思想和C++语言来实现和理解数据结构。这本书的第二版提供了深入的数据结构理论,同时也强调了实际编程...
本资源是关于结构化程序设计和面向对象程序设计的基础知识,涵盖了程序设计的基本概念、算法、结构化程序设计方法、面向对象程序设计的基础等内容。 1. 程序设计的基本概念 程序是一组能够完成特定任务的命令序列...
自20世纪50年代起,软件开发方法经历了从早期的编码为中心的方法,到后来的结构化方法,再到现代的面向对象方法的演变过程。结构化方法与面向对象方法是两种主流的软件开发范式,它们在概念、实践过程和应用领域...
标题和描述表明,文档的内容涉及比较传统方法学与面向对象方法学。这部分内容是专业性质的,特别是在软件开发和设计领域,了解这些方法论的区别对于开发者来说是极为重要的。下面将详细介绍这两种方法学的不同之处。...
### 面向对象与结构化分析方法的比较 #### 结构化分析方法概述 结构化分析方法(Structured Analysis, SA)是一种传统的软件开发方法论,它主要关注系统的功能需求,强调以模块(即过程)为中心的设计思想。该方法...
欧姆龙PLC NJ中大型程序案例:结构化编程与面向对象理念实践,提升程序容错率与个人能力,深入理解类概念与抽象面向对象编程。,欧姆龙plc nj中大型程序案例 结构化编程方法,面对对象编程理念,程序完善,学会这种...
在《数据结构习题解析:用面向对象方法与C++语言描述》一书中,作者深入浅出地解释了如何利用面向对象编程的概念和C++语言来实现和理解各种数据结构。 面向对象编程(Object-Oriented Programming,OOP)是一种编程...
殷人昆编著的《数据结构(用面向对象的方法与C++语言描述)》第二版,是一本深入讲解数据结构的经典教材,特别适合计算机专业的学生和程序员学习。此压缩包包含教师PPT和课后习题解答,为学习者提供了丰富的教学资源...
本章节内容围绕高级软件工程的第六章结构化分析和第七章面向对象分析展开,重点阐述了软件开发中的两种主要分析方法论:结构化分析(过程论)和面向对象分析(对象论)。 在讨论哲学观点时,首先提出程序世界本质上...
随着计算机科学的发展,数据结构的描述方法也在不断进步,尤其是面向对象(Object-Oriented,简称OO)方法的引入,对数据结构的描述方式产生了深远的影响。 面向对象方法最初成功应用于程序设计语言及其程序设计,...
在C++中,利用面向对象的方法来描述数据结构,可以更好地体现数据的抽象性和封装性,同时也便于代码的复用和模块化设计。 1. **链表**:链表是一种线性数据结构,它的元素在内存中并不是顺序存放的,而是通过指针...
结构化程序设计与面向对象程序设计是两种不同的编程范式,各有其特点和优缺点。 结构化程序设计,源于20世纪70年代,强调程序的逻辑结构清晰、可读性强,以降低程序的复杂性和提高可维护性。它遵循自顶向下、逐步...