结构化和面向对象的系统分析设计方法的对比
结构化和面向对象的系统分析设计方法的对比

结构化方法和面向对象方法的对比1 结构化和面向对象的方法1.1 结构化方法结构化方法基于功能分解设计系统结构,通过不断把复杂的处理逐层分解来简化问题,它从内部功能上模拟客观世界。
用结构化开发能提高软件的运行效率,且能够增加软件系统的可靠性。
结构是指系统内各个组成要素之间的相互联系、相互作用的框架。
结构化的系统分析设计方法是一种传统的系统开发方法。
针对软件生存周期各个不同的阶段,有结构化分析(SA)、结构化设计(SD)和结构化程序设计(SP)等方法。
它的基本思想:把一个复杂问题的求解过程分阶段进行,而且这种分解是自顶向下,逐层分解,使得每个阶段处理的问题都控制在人们容易理解和处理的范围内。
1.1.1 结构化分析结构化分析是面向数据流进行需求分析的方法,主要采用数据流图DFD (Data Flow Diagram)来描述边界和数据处理过程的关系。
结构化分析的主要工作是使用数据流程图、数据字典、结构化语言、判定表和判定树等工具,来建立一种新的、称为结构化说明书的目标文档-需求规格说明书。
1.1.2 结构化设计结构化设计是将数据流图表示的信息转换成程序结构的设计描述,和功能的实现方法,并且采用系统结构图表示系统所具有的功能和功能之间的关系。
结构化设计过程分两步完成,第一步以需求分析的结果作为出发点,构造出一个具体的系统设计方案,决定系统的模块结构(包括决定模块的划分、模块间的数据传递及调用关系)。
第二步详细设计,即过程设计。
在总体设计的基础上,确定每个模块的内部结构和算法,最终产生每个模块的程序流程图1.2 面向对象方法面向对象方法是从内部结构上模拟客观世界,其基本思想为:对象是对现实世界客观实体的描述,均由其属性和相关操作组成,是系统描述的基本单位。
面向对象方法更强调运用人类在日常的逻辑思维中经常采用的思想方法和原则,例如抽象、分类、继承、聚合、封装等,这使得软件开发者能更有效地思考问题,并以其他人也能看得懂的方式把自己的认识表达出来。
结构化方法与面向对象方法的介绍与对比

结构化⽅法与⾯向对象⽅法的介绍与对⽐结构化⽅法与⾯向对象⽅法的介绍与对⽐结构化和⾯向对象,这两个概念在计算机领域的中应⽤⼗分⼴泛。
在软件⼯程中,结构化和⾯向对象的思想也占有重要地位,产⽣了结构化⽅法和⾯向对象⽅法,⽤来指导软件⽣产。
⼀、结构化⽅法结构是指系统内各个组成要素之间的相互联系、相互作⽤的框架。
结构化⽅法强调开发⽅法的结构合理性以及所开发软件的结构合理性。
针对软件⽣存周期各个不同阶段,可以分为结构化分析(SA)、结构化设计(SD)、结构化程序设计(SP)等⽅法。
1.1结构化分析⽅法结构化分析⽅法是⾯向数据流的分析⽅法,是70年代由Yourdon、Constaintine及DeMarco 等⼈提出和发展,并得到⼴泛的应⽤,其基本思想为分解和抽象。
结构化分析⽅法的设计原则有:(1)使每个模块尽量只执⾏⼀个功能(坚持功能性内聚);(2)每个模块⽤过程语句(或函数⽅式等)调⽤其他模块;(3)模块间传送的参数作数据⽤;(4)模块间共⽤的信息(如参数等)尽量少。
在结构化分析⽅法中,常⽤的⼯具有:数据流图数据流图(Data Flow Diagram,简称DFD)是描述系统中数据流程的图形⼯具,它标识了⼀个系统的逻辑输⼊和逻辑输出,以及把逻辑输⼊转换逻辑输出所需的加⼯处理。
通常,⼀个系统的DFD图会进⾏分层设计,使数据处理过程更加有层次,逻辑更加清晰。
DFD图的设计原则为:数据守恒与数据封闭原则、加⼯分解的原则、⼦图与⽗图的平衡、合理使⽤⽂件。
数据字典分层数据流图只是表达了系统的“分解”,为了完整地描述这个系统,还需借助“数据词典”(data dictionary)对图中的每个数据和加⼯给出解释。
对数据流图中包含的所有元素的定义的集合构成了数据词典。
它有四类条⽬:数据流、数据项、⽂件及基本加⼯。
在定义数据流或⽂件时,使⽤下表给出的符号,将这些条⽬按照⼀定的规则组织起来,构成数据词典。
在以上⼯具的辅助下,我们可以进⾏完整的结构化分析,⼀个典型的结构化分析过程为:①分析当前的情况,做出反映当前物理模型的DFD;②推导出等价的逻辑模型的DFD;③设计新的逻辑系统,⽣成数据字典和基元描述;④建⽴⼈机接⼝,提出可供选择的⽬标系统物理模型的DFD;⑤确定各种⽅案的成本和风险等级,据此对各种⽅案进⾏分析;⑥选择⼀种⽅案;⑦建⽴完整的需求规约。
对结构化方法和面向对象方法的对比和讨论

对结构化方法和面向对象方法的对比和讨论1.结构化方法遵循的基本原则结构化方法的基本思想就是将待解决的问题看作一个系统从而用系统科学的思想方法来分析和解决问题结构化方法遵循以下基本原则(1)抽象原则抽象原则是一切系统科学方法都必须遵循的基本原则它注重把握系统的本质内容而忽略与系统当前目标无关的内容它是一种基本的认知过程和思维方式(2)分解原则分解原则是结构化方法中最基本的原则它是一种先总体后局部的思想原则在构造信息系统模型时它采用自顶向下分层解决的方法(3)模块化原则模块化是结构化方法最基本的分解原则的具体应用它主要出现在结构化设计阶段中其目标是将系统分解成具有特定功能的若干模块从而完成系统指定的各项功能2.面向对象模型遵循的基本原则面向对象模型遵循的基本原则有:抽象、封装、模块化以及层次原则等(1)抽象抽象是处理现实世界复杂性的最基本方式在OO方法中它强调一个对象和其他对象相区别的本质特性对于一个给定的域确定合理的抽象集是面向对象建模的关键问题之一(2)封装封装是对抽象元素的划分过程抽象由结构和行为组成封装用来分离抽象的原始接口和它的执行封装也称为信息隐藏InformationHiding它将一个对象的外部特征和内部的执行细节分割开来并将后者对其他对象隐藏起来(3)模块化模块化是已经被分为一系列聚集的和耦合的模块的系统特性对于一个给定的问题确定正确的模块集几乎与确定正确的抽象集一样困难通常每个模块应该足够简单以便能够被完整地理解(4)层次抽象集通常形成一个层次,层次是对抽象的归类和排序。
在复杂的现实世界中有两种非常重要的层次一个是类型层次另一个是结构性层次。
确定抽象的层次是基于对象的继承,它有助于在对象的继承中发现抽象间的关系,搞清问题的所在理解问题的本质3.结构化方法的核心问题模型问题是结构化方法的核心问题建立模型简称建模是为了更好地理解我们要模拟的现实世界建模通常是从系统的需求分析开始在结构化方法中就是使用SA方法构建系统的环境模型然后使用SD方法确定系统的行为和功能模型最后使用SP方法进行系统的设计并确定用户的现实模型4..面向对象方法的核心问题面向对象方法与结构化方法一样其核心问题也是模型问题面向对象模型主要由OOA模型OOD模型组成其中OOA主要属于学科抽象形态方面的内容OOD主要属于学科设计形态方面的内容5.结构化系统分析方法的特点(1)面向用户,用户自始至终参与系统的分析工作;(2)强调调查工作的重要性;(3)对管理业务中的各种数据进行分解;(4)采用了层次分解的系统思想;(5)用图形工具来分析和构建新方案。
浅谈对结构化方法和面向对象方法的对比和讨论

浅谈对结构化方法和面向对象方法的对比和讨论1. 引言结构化方法和面向对象方法是软件开发领域中两种重要的软件设计方法。
尽管它们都是为了解决软件开发中的问题而存在的,但它们之间有着明显的区别和差异。
本文将对结构化方法和面向对象方法进行对比和讨论,以便更好地理解它们的特点和适用场景。
2. 结构化方法结构化方法是一种自顶向下的软件设计方法。
它将复杂的问题分解为更小的、容易解决的模块,然后将这些模块按照一定的顺序进行组装,形成最终的程序。
结构化方法的核心思想是模块化和分层。
2.1 特点•自顶向下:结构化方法从整体出发,逐步细化,将复杂的问题分解为简单的部分。
•模块化:结构化方法将程序划分为多个功能独立的模块,便于理解和维护。
•分层:结构化方法通过层次化的模块组织结构,实现功能的分离和数据的管理。
2.2 优点•简单性:结构化方法易于理解和实现,适用于小规模和简单的项目。
•易于调试和维护:结构化方法将程序分解为模块,有助于定位和解决问题。
•适应性强:结构化方法可以与其他方法(如面向对象方法)结合使用,提高开发效率。
2.3 缺点•扩展性差:结构化方法在面对复杂的需求变化时,往往需要大量的修改和调整。
•可重用性低:结构化方法中的模块通常是功能独立的,难以在不同的项目中重用。
•可维护性差:结构化方法在处理大规模和复杂的项目时,往往难以维护和理解。
3. 面向对象方法面向对象方法是一种思考问题和解决问题的方法,它将问题看作是对象之间的交互。
面向对象方法的核心思想是封装、继承和多态。
3.1 特点•封装:面向对象方法通过封装将数据和行为组合在一起,形成对象,隐藏了内部的细节。
•继承:面向对象方法通过继承实现代码的重用和扩展,避免了代码的重复编写。
•多态:面向对象方法通过多态实现相同接口的对象可以有不同的实现方式,提高了代码的灵活性和可拓展性。
3.2 优点•可扩展性强:面向对象方法将问题分解为对象,便于对功能进行扩展和维护。
软件工程 比较结构化方法和面向对象

软件工程比较结构化方法和面向对象一、引言软件工程是一门关注软件开发过程的学科,它涉及到软件开发的各个方面,包括需求分析、设计、编码、测试和维护等。
在软件工程领域中,有两种主要的开发方法:比较结构化方法和面向对象方法。
本文将对这两种方法进行详细的比较和分析。
二、比较结构化方法1.概念结构化方法是一种基于模块化设计思想的软件开发方法。
它将一个大型系统划分为多个小模块,每个模块都有明确的输入和输出,并且通过调用其他模块来实现其功能。
2.特点(1)强调程序流程控制;(2)采用自顶向下或自底向上的设计方式;(3)使用层次结构图表示程序流程;(4)采用数据流图表示数据流动情况;(5)模块之间通过参数传递来交换信息。
3.优缺点①易于理解和维护;②适合大型系统开发;③能够提高程序可读性。
(2)缺点:①不够灵活,难以应对需求变更;②不支持复杂的数据类型;③容易出现模块间的耦合。
三、面向对象方法1.概念面向对象方法是一种基于对象思想的软件开发方法。
它将一个系统看作是由多个对象组成,每个对象都有自己的属性和方法,并且通过消息传递来实现对象之间的交互。
2.特点(1)强调数据抽象和封装;(2)采用自下而上的设计方式;(3)使用类图表示程序结构;(4)采用序列图表示消息传递过程;(5)支持继承和多态等高级特性。
3.优缺点①能够提高代码重用性;②支持动态绑定,具有更好的灵活性;③能够提高系统可扩展性。
(2)缺点:①易于出现类爆炸问题;②需要掌握较为复杂的概念和技术。
四、比较分析1.设计思想不同结构化方法注重程序流程控制,通过模块化设计来实现程序结构清晰、易于维护。
而面向对象方法则注重数据抽象和封装,通过对象之间的交互来实现程序功能。
2.设计方式不同结构化方法采用自顶向下或自底向上的设计方式,通过层次结构图和数据流图来表示程序结构和数据流动情况。
而面向对象方法则采用自下而上的设计方式,通过类图和序列图来表示程序结构和消息传递过程。
结构化方法和面向对象方法的特点、优点与不足。

结构化方法和面向对象方法的特点、优点与不足。
结构化方法和面向对象方法是两种重要的程序设计方法,它们分别有各自独特的特点、优点和不足。
在本篇文章中,我将对这两种方法进行全面评估,并据此撰写一篇有价值的文章,以便你能更深入地理解这个主题。
一、结构化方法1. 特点结构化方法是一种从任务分解的角度来思考问题的方法。
它强调程序的模块化和层次化设计,将整个系统划分成若干个较小的、相对独立的模块或功能单元,然后逐步细化这些模块,直至得到可直接转换成程序的模块为止。
2. 优点(1)易于理解和维护:结构化程序易于理解和维护,因为每个模块都相对独立,不会相互影响。
(2)适合大型项目:结构化方法适合大型项目的开发,因为它能够将复杂的系统分解成若干相对简单的模块,便于团队协作。
(3)代码重用:结构化方法能够促进代码的重用,提高开发效率。
3. 不足(1)难以处理复杂关联:结构化方法在处理复杂关联和交互较多的系统时,容易使得程序的结构变得复杂,不易理解和维护。
(2)不够灵活:结构化方法在应对需求变化时,不够灵活,需要重新调整模块之间的关系。
二、面向对象方法1. 特点面向对象方法是一种从对象抽象的角度来思考问题的方法。
它将系统中的各种实体抽象为对象,这些对象包含了数据和操作这些数据的方法,同时也能够与其他对象进行交互。
2. 优点(1)便于理解:面向对象方法更符合人类的思维模式,因此更容易理解。
(2)灵活性:面向对象方法更灵活,能够更好地应对需求变化。
(3)代码重用:面向对象方法通过继承和多态,能够更好地促进代码的重用。
3. 不足(1)学习曲线较陡:面向对象方法对程序员的抽象能力要求较高,因此刚开始学习时往往感到困难。
(2)性能开销:在一些性能要求较高的场景下,面向对象方法可能带来一些性能开销。
结合以上对结构化方法和面向对象方法的评估,我认为两种方法各有优劣。
在实际项目中,我们应根据项目的特点和需求来选择合适的方法,甚至可以结合两种方法的优点,定制出适合项目的开发方法。
软件工程 比较结构化方法和面向对象

软件工程一、引言在当今信息技术高速发展的时代,软件的开发和维护变得越来越重要。
为了有效管理软件项目,提高开发效率和质量,软件工程的概念应运而生。
软件工程是一门研究如何按照系统化、规范化、定量化和可重复性的方式开发和维护软件的学科。
在软件工程中,结构化方法和面向对象是两种常用的开发方法。
本文将对结构化方法和面向对象进行比较,并探讨它们在软件工程中的优劣和适用场景。
二、结构化方法2.1 定义和特点结构化方法是一种基于数据流和流程的软件开发方法。
它将软件系统视为一系列逐步细化的模块,通过分析数据流和流程来设计和实现软件系统。
结构化方法强调模块化、层次化和自顶向下的设计思想,以确保程序逻辑清晰、易于理解和修改。
2.2 优点1.结构化方法强调模块化,将软件系统分解为多个模块,每个模块负责特定的功能。
这种模块化的设计使得程序易于理解、修改和测试,提高了软件的可维护性和可测试性。
2.结构化方法采用自顶向下的设计思想,先设计系统的总体框架,再逐步细化到具体的模块。
这种逐步细化的设计方式使得开发过程更加可控,项目管理更加容易。
同时,自顶向下的设计过程也便于团队协作和分工。
3.结构化方法将程序逻辑分解为一系列有序的步骤,每个步骤都有明确的输入和输出。
这种严格的输入输出规定使得程序的设计和测试更加方便。
4.结构化方法在软件开发初期就明确定义了数据流和流程,使得开发人员能够更好地理解和掌握软件系统的整体架构,从而减少了项目失败的风险。
2.3 缺点1.结构化方法的设计过程较为复杂,需要详细分析系统的数据流和流程。
对于较大规模的软件系统,分析和设计的工作量较大,容易导致项目开发周期延长。
2.结构化方法强调模块化,但对于一些复杂的问题,模块化的设计可能不够灵活和强大。
这就需要在设计阶段尽可能考虑全部的需求和功能,否则可能会在后期的修改过程中遇到困难。
三、面向对象3.1 定义和特点面向对象是一种以对象为基础的软件开发方法。
在面向对象方法中,软件系统由一组相互作用的对象组成。
浅谈对结构化方法和面向对象方法的对比和讨论其它相关论文

浅谈对结构化方法和面向对象方法的对比和讨论其它相关论文结构化方法和面向对象方法是软件开发中两种常见的方法论,它们在软件设计和开发中具有重要的作用。
本文将对结构化方法和面向对象方法进行对比和讨论,并介绍一些其他相关的论文。
一、结构化方法和面向对象方法的对比1.1思想和理念结构化方法强调程序的模块化和层次化,将程序划分为不同的模块和层次,通过调用和协作完成任务。
结构化方法注重自顶向下的分析和自底向上的设计,由此产生了结构化分析和结构化设计。
面向对象方法则通过将系统划分为对象,强调对象之间的交互和信息传递。
面向对象方法注重对象的行为和状态,通过封装、继承和多态等特性来实现系统的可扩展性、可重用性和可维护性。
1.2设计和实现结构化方法主要侧重于流程设计和数据结构的选择。
它使用结构化流程图和数据流图来描述和分析程序的流程和数据流动,然后通过结构化图形化工具将程序转化为程序代码。
面向对象方法强调对象的设计和实现。
它使用类图、对象图和时序图等工具来描述和分析对象的属性、关系和行为,然后通过面向对象编程语言将对象转化为程序代码。
1.3优缺点结构化方法的优点是结构清晰、逻辑严密,有利于程序的理解和维护。
它能够较好地处理简单和中等规模的问题,适用于一些较小的项目。
面向对象方法的优点是代码可重用性高,易于维护和扩展。
它能够更好地处理复杂问题,适用于大型软件项目。
结构化方法的缺点是难以应对需求的变化,可维护性较差。
在处理复杂问题时,结构化方法可能会导致模块之间的耦合较强,影响系统的可扩展性。
面向对象方法的缺点是学习和实施成本较高。
面向对象的设计和实现需要有较高水平的抽象和设计能力,对开发人员的要求较高。
二、其他相关论文2.1《结构化方法在软件开发中的应用研究》该论文对结构化方法在软件开发中的应用进行了深入研究。
通过实际案例,论文分析了结构化方法在软件开发中的优点和不足,并提出了改进和发展方向。
2.2《面向对象方法在软件设计中的优化策略研究》该论文通过对面向对象方法在软件设计中的优化策略进行研究,提出了一种改进的面向对象方法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
结构化方法和面向对象方法的对比1 结构化和面向对象的方法1.1 结构化方法结构化方法基于功能分解设计系统结构,通过不断把复杂的处理逐层分解来简化问题,它从内部功能上模拟客观世界。
用结构化开发能提高软件的运行效率,且能够增加软件系统的可靠性。
结构是指系统内各个组成要素之间的相互联系、相互作用的框架。
结构化的系统分析设计方法是一种传统的系统开发方法。
针对软件生存周期各个不同的阶段,有结构化分析(SA)、结构化设计(SD)和结构化程序设计(SP)等方法。
它的基本思想:把一个复杂问题的求解过程分阶段进行,而且这种分解是自顶向下,逐层分解,使得每个阶段处理的问题都控制在人们容易理解和处理的范围内。
1.1.1 结构化分析结构化分析是面向数据流进行需求分析的方法,主要采用数据流图DFD (Data Flow Diagram)来描述边界和数据处理过程的关系。
结构化分析的主要工作是使用数据流程图、数据字典、结构化语言、判定表和判定树等工具,来建立一种新的、称为结构化说明书的目标文档-需求规格说明书。
1.1.2 结构化设计结构化设计是将数据流图表示的信息转换成程序结构的设计描述,和功能的实现方法,并且采用系统结构图表示系统所具有的功能和功能之间的关系。
结构化设计过程分两步完成,第一步以需求分析的结果作为出发点,构造出一个具体的系统设计方案,决定系统的模块结构(包括决定模块的划分、模块间的数据传递及调用关系)。
第二步详细设计,即过程设计。
在总体设计的基础上,确定每个模块的内部结构和算法,最终产生每个模块的程序流程图1.2 面向对象方法面向对象方法是从内部结构上模拟客观世界,其基本思想为:对象是对现实世界客观实体的描述,均由其属性和相关操作组成,是系统描述的基本单位。
面向对象方法更强调运用人类在日常的逻辑思维中经常采用的思想方法和原则,例如抽象、分类、继承、聚合、封装等,这使得软件开发者能更有效地思考问题,并以其他人也能看得懂的方式把自己的认识表达出来。
面向对象方法不仅仅是一些具体的软件开发技术与策略,而且是一整套关于如何看待软件系统与现实世界的关系,用什么观点来研究问题并进行问题求解,以及如何进行软件系统构造的软件方法学。
人们普遍认为面向对象方法是一种运用对象、类、继承、封装、聚合、关联、消息和多态性等概念和原则来构造系统的软件开发方法。
1.2.1 面向对象的分析面向对象分析(Object Oriented Analysis OOA)是面向对象的系统分析和设计的第一个环节,包括一套概念原则、过程步骤、表示方法、提交文挡等规范要求。
OOA的任务是采用面向对象方法,把对问题论域和系统的认识理解正确地抽象为规范的对象(包括类、继承层次)和消息传递联系,并形成面向对象模型。
为后续的面向对象设计(Object Oriented Design OOD)和面向对象编程(OOP)提供指导。
1.2.2 面向对象的设计面向对象设计(Object-Oriented Design,OOD)方法是OO方法中一个中间过渡环节。
它的主要工作是根据需求决定所需的类、类的操作以及类之间关联的过程。
主要作用是对OOA分析的结果作进一步的规范化整理,以便能够被OOP 直接接受。
OOD体系结构可分成四部分内容:①问题论域部分,设计构造一组为底层应用建立模型的类和对象,细化分析结果;②人机交互部分,设计一组有关类接口视图的用户模型的类和对象,设计用户界面;③任务管理部分,确定系统资源的分配,设计用于系统中类的行为控制的对象/类;④数据管理部分,确定持久对象的存储,将对象转换成数据库记录或表格。
2 结构化和面向对象方法的基本思想2.1 结构化方法的基本思想(1)自顶向下,逐步求精把程序看成是一个逐步演化的过程。
把一个系统与程序看成是一层一层的。
例如:户籍管理系统可以划分为:户籍迁入迁出,人员迁入迁出,户籍注销,人员注销等几个子系统,而每个子系统又划分为接收用户信息,实施处理,提供返回信息等等部分。
(2)模块化将几个系统分成几个模块,每个模块实现特定的功能,最终整个系统由这些模块组成。
模块跟模块之间通过接口传递信息,模块最重要的特点就是独立性,模块之间还有上下层的关系,上层模块调用下层模块来实现一些功能。
(3)语句结构化顺序结构、分支结构、循环结构,都是常用的语句结构。
2.2 面向对象方法的基本思想(1)客观世界中的事物都是对象,对象之间存在一定的关系,并且复杂对象由简单对象构成。
(2)具有相同属性和操作的对象属于一个类,对象是类的一个实例。
(3)类之间可以有层次结构,即类可以有子类,其中,子类继承父类的全部属性和操作,而且子类有自己的属性和操作。
(4)类具有封装性,把类内部的属性和一些操作隐藏起来,只有公共的操作对外是可见的,对象只可通过消息来请求其他对象的操作或自己的操作。
(5)强调充分运用人在日常逻辑思维中经常采用的思想方法与原则。
例如:抽象,分类,继承,聚合,封装,关联等3 结构化和面向对象方法的基本原则3.1 结构化方法的基本原则(1)抽象原则一切系统科学方法都必须遵循的基本原则,它注重把握系统的本质内容,而忽略与系统当前目标无关的内容,它是一种基本的认知过程和思维方式。
(2)分解原则结构化方法中最基本的原则,它是一种先总体后局部的思想原则,在构造信息系统模型时,它采用自顶向下、分层解决的方法。
(3)模块化原则结构化方法最基本的分解原则的具体应用,它主要出现在结构化设计阶段中,其目标是将系统分解成具有特定功能的若干模块,从而完成系统指定的各项功能。
3.2 面向对象方法的基本原则(1)抽象抽象是处理现实世界复杂性的最基本方式,在OO方法中它强调一个对象和其他对象相区别的本质特性,对于一个给定的域确定合理的抽象集是面向对象建模的关键问题之一。
(2)封装对抽象元素的划分过程抽象,由结构和行为组成,封装用来分离抽象的原始接口和它的执行。
封装也称为信息隐藏,它将一个对象的外部特征和内部的执行细节分割开来,并将后者对其他对象隐藏起来。
(3)模块化已经被分为一系列聚集的和耦合的模块的系统特性,对于一个给定的问题,确定正确的模块集几乎与确定正确的抽象集一样困难,通常每个模块应该足够简单以便能够被完整地理解。
(4)层次抽象集通常形成一个层次,层次是对抽象的归类和排序,在复杂的现实世界中有两种非常重要的层次,一个是类型层次,另一个是结构性层次。
确定抽象的层次是基于对象的继承,它有助于在对象的继承中发现抽象间的关系,搞清问题的所在,理解问题的本质。
4 结构化方法和面向对象方法的核心问题4.1 结构化方法的核心问题模型问题是结构化方法的核心问题建立模型简称建模是为了更好地理解我们要模拟的现实世界建模通常是从系统的需求分析开始在结构化方法中就是使用SA方法构建系统的环境模型然后使用SD方法确定系统的行为和功能模型最后使用SP方法进行系统的设计并确定用户的现实模型4.2 面向对象方法的核心问题面向对象方法与结构化方法一样其核心问题也是模型问题面向对象模型主要由OOA模型OOD模型组成其中OOA主要属于学科抽象形态方面的内容OOD 主要属于学科设计形态方面的内容5 结构化方法和面向对象方法的实例在超市型书店中,顾客可以从书架上自由选书,然后到收款台付款和打印单据。
为方便顾客,书店还向顾客提供查询服务,可以依据顾客提供的信息,如书号、书名、作者或出版社,查询书店中有无相应的图书。
书店管理人员日常需要详细记录进书与售书情况,需要经常查询库存书和销售情况,还要统计销售量、销售利润最大的图书(比如10种)信息,为书店进书提供依据。
书店只设一个收款台,用一台微机即可实现经营管理。
5.1 结构化方法对传统的结构化软件开发方法,在需求分析阶段要对系统中数据的加工过程(即从开始的数据输入到最终系统输出数据的加工处理过程)用数据流图(DFD)加以描述,对系统所涉及的永久性数据的存储与组织用实体关系(E-R)图来描述。
进入软件设计阶段后,DFD将转换为系统结构(SC)图,E-R图则被转换为数据库中的表。
5.1.1 系统功能分析从系统功能的角度分析,该系统应包括以下四个部分。
(1)进书登记。
登记本店购进图书的书名、书号、作者、出版社、进价、定价、库存数等信息;(2)售书登记。
登记售书日期、书号、售出数量、单据号、开单人等消息,打印销售单据;(3)查询统计与报表。
随时显示和打印给定时间段内的售书情况,并结算销售金额与利润;统计销售量、销售利润最大的10种图书;随时显示和打印库存书清单;(4)购书查询。
可查询有无某书号、书名、作者、出版社的书。
5.1.2 系统的实体关系图系统所包含的实体有库存书、单据,二者之间具有售书关系,所对应的E-R 图如图1所示。
5.1.3 系统的数据流图DFD 是自顶向下逐步细化的层次图,其中包含四种元素,即用矩形框表示的起点与终点;有向线表示的数据流;矩形框表示的加工以及双横线表示的文件。
顶层DFD一层 FDF二层DFD三层DFD5.2 面向对象的方法面向对象的分析方法,需求分析阶段首先要给出UML图中的用例图与类图。
用例图是由系统之外的执行者(称为主角或角色)与执行者感受到的一系列动作(称为用例)所构成,用例图包括主角、用例以及主角与用例之间的联系。
类图则要从问题域的研究、描述中抽象提取。
在初步的用例图与类图的基础上可根据需要分析给出UML的其他图,比如状态图、顺序图、活动图、协作图等。
进入设计阶段后需进一步规划、设计类的属性与方法,给出方法体的实现流程。
5.2.1 用例图和系统类图用例图系统类图。