软件工程概论:第4章 概要设计_第1页
软件工程概论:第4章 概要设计_第2页
软件工程概论:第4章 概要设计_第3页
软件工程概论:第4章 概要设计_第4页
软件工程概论:第4章 概要设计_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第4章章 概要设计概要设计4.1 概要设计的概念概要设计的概念4.2 模块独立性模块独立性4.3 结构化设计方法结构化设计方法4.4 数据设计数据设计4.1概要设计的概念概要设计的概念软件设计是把软件需求变为软件的具体方案软件设计是把软件需求变为软件的具体方案软件设计包括两个阶段:软件设计包括两个阶段:概要设计概要设计和和详细设计详细设计概要设计也称为总体设计,在这个阶段需要确定概要设计也称为总体设计,在这个阶段需要确定软件的总体结构。软件的总体结构。在概要设计中,将软件系统分解为多个模块,并在概要设计中,将软件系统分解为多个模块,并确定每个模块的功能和模块之间的外部接口。确定每个模块的功能

2、和模块之间的外部接口。概要设计阶段文档:概要设计阶段文档:“概要设计说明书概要设计说明书”主要由模块结构图、模块说明等组成。主要由模块结构图、模块说明等组成。概要设计可分为数据设计和系统结构设计。概要设计可分为数据设计和系统结构设计。4.1概要设计的概念概要设计的概念概要设计的任务:概要设计的任务:1.制定规范制定规范2.总体结构设计:软件总体结构图总体结构设计:软件总体结构图3.处理方式设计:功能需求和非功能需求处理方式设计:功能需求和非功能需求4.数据设计:包括数据结构设计、文件设计和数据数据设计:包括数据结构设计、文件设计和数据库设计库设计5.质量设计质量设计6.文档设计:生成概要设计说

3、明书、数据库设计说文档设计:生成概要设计说明书、数据库设计说明书、用户手册和软件测试计划明书、用户手册和软件测试计划7.评审概要设计评审概要设计4.1概要设计的概念概要设计的概念概要设计的步骤:概要设计的步骤:1.设想供选择的方案设想供选择的方案2.推荐最佳方案推荐最佳方案3.功能分解功能分解4.设计软件结构:面向数据流的设计方法设计软件结构:面向数据流的设计方法5.数据设计数据设计6.制订测试计划制订测试计划7.书写文档:概要设计规格说明书、用户手册、测书写文档:概要设计规格说明书、用户手册、测试计划、详细的实现计划等试计划、详细的实现计划等8.审查和复审审查和复审4.1概要设计的概念概要设

4、计的概念概要设计的工具概要设计的工具HIPO图图(Hierarchy Plus Input-Process-Output):由):由层次图(层次图(HC图)加上图)加上IPO图(图(Input-Process-Output)组成。组成。层次图中的矩形框表示模块,而针对层次图中的每层次图中的矩形框表示模块,而针对层次图中的每一个模块再配上一个模块再配上IPO图来表达输入、处理、输出。图来表达输入、处理、输出。方框间的连线表示调用关系。最顶层的方框代表主方框间的连线表示调用关系。最顶层的方框代表主控模块,它调用下层模块完成软件系统的功能。控模块,它调用下层模块完成软件系统的功能。4.1概要设计的概

5、念概要设计的概念 软件系统 输入 统计二输出 编辑 统计一 查询 月处理 插入 年处理 添加 删除 修改 合并 列表 4.1概要设计的概念概要设计的概念(软件(软件/模块)模块)结构图结构图(SC图图,Structure Chat)模块:用矩形框来表示模块,框内标明模块的名字或模块:用矩形框来表示模块,框内标明模块的名字或主要功能;主要功能;模块间的控制关系:矩形框之间的带箭头的连线表示模块间的控制关系:矩形框之间的带箭头的连线表示模块的调用关系。(高层调用低层)模块的调用关系。(高层调用低层)模块间的消息传递:用带注释的箭头表示模块调用过模块间的消息传递:用带注释的箭头表示模块调用过程中传入

6、和传出模块的数据流。程中传入和传出模块的数据流。4.1概要设计的概念概要设计的概念附加符号:可以表示模块的选择调用或循环调用。附加符号:可以表示模块的选择调用或循环调用。1.选择调用:用菱形符号表示选择调用:用菱形符号表示2.循环调用:用叠加在调用线始端的环形箭头循环调用:用叠加在调用线始端的环形箭头表示表示2021-11-1584.1概要设计的概念概要设计的概念o如果希望进一步标明传递的信息是数据还是控制信如果希望进一步标明传递的信息是数据还是控制信息,则可以利用注释箭头尾部的形状来区分:尾部息,则可以利用注释箭头尾部的形状来区分:尾部是空心圆表示传递的是数据,实心圆表示传递的是是空心圆表示

7、传递的是数据,实心圆表示传递的是控制信息。控制信息。2021-11-159产生最佳结果得到好输入计算最佳解输出结果读输入编辑输入结果格式化显示结果原始输入原始输入编辑结果解格式化的解格式化的解好输入好输入解解4.1概要设计的概念概要设计的概念6种模块:传入模块、传出模块、变换模块、源模块、漏种模块:传入模块、传出模块、变换模块、源模块、漏模块、控制模块。模块、控制模块。4.1概要设计的概念概要设计的概念结构图的形态特征结构图的形态特征深度深度宽度宽度扇出扇出扇入扇入注意事项注意事项模块之间不同名模块之间不同名调用关系只能从上到下调用关系只能从上到下不严格表示模块的调用次序,习惯上从左到右不严格

8、表示模块的调用次序,习惯上从左到右11Mabcdeklmfghnopqijr扇入宽 度深度扇出4.1概要设计的概念概要设计的概念结构图中模块的设计准则结构图中模块的设计准则改进软件结构,提高模块独立性(要求:低耦合改进软件结构,提高模块独立性(要求:低耦合、高内聚)、高内聚)模块规模要适中模块规模要适中深度、宽度、扇入、扇出要恰当深度、宽度、扇入、扇出要恰当降低模块接口复杂性降低模块接口复杂性设计单入口单出口的模块设计单入口单出口的模块2021-11-15124.2 模块独立性模块独立性模块模块是软件设计的最小单位。(单元)是软件设计的最小单位。(单元)具有一定功能的可以用名词调用的程序语句集

9、合。具有一定功能的可以用名词调用的程序语句集合。具有一些基本属性,如:明确的功能、规格定义具有一些基本属性,如:明确的功能、规格定义,与其他部分明确的接口定义等,可以清晰地与,与其他部分明确的接口定义等,可以清晰地与同一程序的其他部分划分开来。同一程序的其他部分划分开来。在结构化编程语言中,一个函数就是一个单元。在结构化编程语言中,一个函数就是一个单元。在面向对象语言中,一个类或者一个类方法就是一在面向对象语言中,一个类或者一个类方法就是一个单元。个单元。目前,在某种意义上单元的概念已经扩展为组件目前,在某种意义上单元的概念已经扩展为组件(component)。)。4.2 模块独立性模块独立性

10、模块化模块化就是把程序划分成若干个模块,分别实现。就是把程序划分成若干个模块,分别实现。模块化论据:模块化论据:函数函数C(X)定义了问题)定义了问题X的复杂性,函数的复杂性,函数E(X)定义了求解问题定义了求解问题X所需要的工作量(按时间计)所需要的工作量(按时间计)对于问题对于问题P1和和P2,如果,如果C(P1) C(P2),则),则E(P1)E(P2)C(P1+P2)C(P1)+C(P2)E(P1+P2)E(P1)+E(P2)结论:一个复杂问题分割成若干个容易解决、容结论:一个复杂问题分割成若干个容易解决、容易管理的小问题后更易于求解。易管理的小问题后更易于求解。4.2 模块独立性模块

11、独立性对每个问题都存在着某个最佳模块数目,它能使得对每个问题都存在着某个最佳模块数目,它能使得软件成本最小。软件成本最小。模块总数成本(工作量)接口成本成本/模块软件总成本最小成本区4.2 模块独立性模块独立性模块化的优点:模块化的优点:可以使软件结构清晰,容易设计、容易阅读和理可以使软件结构清晰,容易设计、容易阅读和理解、容易测试和调试。解、容易测试和调试。提高软件的可靠性。提高软件的可靠性。有助于软件开发工程的组织管理。有助于软件开发工程的组织管理。4.2 模块独立性模块独立性模块独立性模块独立性的度量标准:耦合(的度量标准:耦合(coupling)和内聚()和内聚(cohesion)耦合

12、是模块之间相对独立性的量度耦合是模块之间相对独立性的量度内聚是模块功能相对强度的量度内聚是模块功能相对强度的量度耦合性耦合性是对软件程序结构中各个模块之间相互关联是对软件程序结构中各个模块之间相互关联程度的一种度量。程度的一种度量。在设计软件时应追求尽可能低耦合的系统。在设计软件时应追求尽可能低耦合的系统。4.2 模块独立性模块独立性耦合分为七级:耦合分为七级:1.间接耦合间接耦合(nondirect coupling):两模块中任一):两模块中任一个都不依赖对方而能独立工作,也就是说两个模个都不依赖对方而能独立工作,也就是说两个模块之间块之间没有直接关系没有直接关系,它们之间的联系完全是通,

13、它们之间的联系完全是通过主模块的控制和调用来实现的。过主模块的控制和调用来实现的。2.数据耦合数据耦合(data coupling):两模块间通过参数):两模块间通过参数交换信息,而传递的信息仅限于数据,或者说一交换信息,而传递的信息仅限于数据,或者说一个模块访问另一个模块时,彼此之间是通过个模块访问另一个模块时,彼此之间是通过数据数据参数参数(而不是控制参数、公共数据结构或外部变(而不是控制参数、公共数据结构或外部变量)来交换输入、输出信息的。量)来交换输入、输出信息的。4.2 模块独立性模块独立性3.特征耦合特征耦合(stamp coupling)/标记耦合:两个模块标记耦合:两个模块都要

14、使用同一数据结构的一部分,不是采用全程公都要使用同一数据结构的一部分,不是采用全程公共数据区共享,而是共数据区共享,而是通过模块接口传递数据结构的通过模块接口传递数据结构的一部分一部分(不是简单的数据)。(不是简单的数据)。4.控制耦合控制耦合(control coupling):两模块间通过参数):两模块间通过参数交换信息,而传递的信息中含有控制信息(交换信息,而传递的信息中含有控制信息(控制参控制参数数)。)。4.2 模块独立性模块独立性5.外部耦合外部耦合(external coupling):若干模块均与同):若干模块均与同一个外部环境关联。一组模块都访问一个外部环境关联。一组模块都访

15、问同一全局简单同一全局简单变量而不是同一全局数据结构,而且不是通过参数变量而不是同一全局数据结构,而且不是通过参数表传递该全局变量的信息表传递该全局变量的信息。6.公共耦合公共耦合(common coupling):若干模块通过):若干模块通过全全局的数据环境局的数据环境相互作用时(一组模块都访问同一个相互作用时(一组模块都访问同一个公共数据环境)。公共数据环境)。松散公共耦合、紧密公共耦合松散公共耦合、紧密公共耦合4.2 模块独立性模块独立性7.内容耦合内容耦合(content coupling)一个模块直接访问另一个模块的内部数据;一个模块直接访问另一个模块的内部数据;一个模块不通过正常入

16、口转到另一模块内部;一个模块不通过正常入口转到另一模块内部;两个模块有一部分程序代码重叠;两个模块有一部分程序代码重叠;一个模块有多个入口;一个模块有多个入口;4.2 模块独立性模块独立性设计软件时应设计软件时应尽量使用数据耦合,减少控制耦合,尽量使用数据耦合,减少控制耦合,限制环境耦合和公共耦合,杜绝内容耦合限制环境耦合和公共耦合,杜绝内容耦合。(低耦。(低耦合)合)模块易被独立理解、编写、修改模块易被独立理解、编写、修改模块中的错误不易蔓延模块中的错误不易蔓延非直接耦合数据耦合特征耦合控制耦合外部耦合公共耦合内容耦合耦合性模块独立性高低强弱4.2 模块独立性模块独立性为了降低耦合度,可以采

17、用消耦(为了降低耦合度,可以采用消耦(decoupling)技术)技术根据问题的特点,选择适当的耦合类型根据问题的特点,选择适当的耦合类型降低模块接口的复杂性降低模块接口的复杂性把模块的通信信息放在缓冲区中把模块的通信信息放在缓冲区中4.2 模块独立性模块独立性内聚性内聚性标志一个模块内部各成分彼此结合的紧密程度。标志一个模块内部各成分彼此结合的紧密程度。内聚和耦合是相互关联的。在程序结构中各模块的内聚内聚和耦合是相互关联的。在程序结构中各模块的内聚程度越高,模块间的耦合程度就越低。但并不绝对。程度越高,模块间的耦合程度就越低。但并不绝对。软件概要设计的目标是力求软件概要设计的目标是力求增加模

18、块的内聚增加模块的内聚,尽量,尽量减少减少模块间的耦合模块间的耦合。增加内聚比减少耦合更重要。增加内聚比减少耦合更重要。4.2 模块独立性模块独立性内聚分为七级:内聚分为七级:低级内聚低级内聚1.偶然性内聚偶然性内聚(coincidental cohesion):一个模块内):一个模块内各成分为完成一组功能而组合在一起,它们相互之各成分为完成一组功能而组合在一起,它们相互之间即使有关系,也很松散或者模块内各部分之间就间即使有关系,也很松散或者模块内各部分之间就没有联系。没有联系。2.逻辑性内聚逻辑性内聚(logical cohesion):一个模块完成的诸):一个模块完成的诸任务任务逻辑上相关

19、逻辑上相关。3.时间性内聚时间性内聚(temporal cohesion)/经典内聚:一个经典内聚:一个模块包含的模块包含的诸任务必须在同一时间段内执行诸任务必须在同一时间段内执行。4.2 模块独立性模块独立性中级内聚中级内聚4.过程性内聚过程性内聚(procedural cohesion):模块内各个组):模块内各个组成部分的处理动作各不相同、彼此相关,并且成部分的处理动作各不相同、彼此相关,并且受同受同一控制流支配,必须按特定的次序执行一控制流支配,必须按特定的次序执行。5.通信性内聚通信性内聚(communicational cohesion):一个模):一个模块内各功能部分都块内各功能

20、部分都使用了相同的输入数据,或产生使用了相同的输入数据,或产生了相同的输出数据了相同的输出数据。4.2 模块独立性模块独立性高级内聚高级内聚6.顺序性内聚顺序性内聚(sequential cohesion):一个模块内的各):一个模块内的各个组成部分个组成部分顺序执行几个处理动作,前一个处理动作顺序执行几个处理动作,前一个处理动作产生的输出数据是下一个处理工作的输入数据产生的输出数据是下一个处理工作的输入数据。7.功能性内聚功能性内聚(functional cohesion):模块内所有成分):模块内所有成分形成一个整体形成一个整体,完成单个功能。,完成单个功能。黑盒特性黑盒特性尽可能使模块达

21、到功能内聚尽可能使模块达到功能内聚4.2 模块独立性模块独立性4.3 结构化设计方法结构化设计方法结构化设计方法结构化设计方法( Structured Design,SD)基于基于数据流数据流的设计方法的设计方法SA与与SD相衔接:相衔接:利用映射把数据流图(信息流)利用映射把数据流图(信息流)变换成软件结构,即模块结构图变换成软件结构,即模块结构图信息流有变换流和事务流两种类型。信息流有变换流和事务流两种类型。4.3 结构化设计方法结构化设计方法变换流变换流(transform flow)特点:从同一数据源进入系统的数据,它在数据特点:从同一数据源进入系统的数据,它在数据流图中流动的逻辑路径

22、是相同的。(流图中流动的逻辑路径是相同的。(以变换为中以变换为中心心)4.3 结构化设计方法结构化设计方法变换流的变换流的DFD是一个线性结构,由输入、变换和是一个线性结构,由输入、变换和输出三部分组成。输出三部分组成。变换变换是系统的变换中心,变换输入端的数据流为是系统的变换中心,变换输入端的数据流为系统的系统的逻辑输入逻辑输入,输出端为,输出端为逻辑输出逻辑输出。而系统输。而系统输入端为入端为物理输入物理输入,输出端为,输出端为物理输出物理输出。变换型数据处理的工作过程大致分为三步,即取变换型数据处理的工作过程大致分为三步,即取得数据、变换数据和给出数据。得数据、变换数据和给出数据。取得数

23、据C变换数据C为D给出数据D4.3 结构化设计方法结构化设计方法事务流事务流(transaction flow)特点:特点:“以事务为中心以事务为中心”,数据沿输入通路到达,数据沿输入通路到达一个处理一个处理T,这个,这个处理处理(事务中心)根据输入数据(事务中心)根据输入数据的类型在若干个动作序列中选出一个来执行。的类型在若干个动作序列中选出一个来执行。T动作路径事务事务中心4.3 结构化设计方法结构化设计方法结构化设计方法(结构化设计方法(Yourdon):):数据流图数据流图结构图结构图基本步骤:基本步骤:1.分析分析DFD,即进行系统的结构化分析。,即进行系统的结构化分析。2.确定确定

24、DFD的特点及边界,即区分事务流、变换的特点及边界,即区分事务流、变换流。流。3.映射为软件结构。设计映射策略:变换分析和映射为软件结构。设计映射策略:变换分析和事务分析。事务分析。4.细化后,得到初始结构图。细化后,得到初始结构图。5.获得最终的软件结构图。耦合性度量和内聚性获得最终的软件结构图。耦合性度量和内聚性度量。度量。4.3 结构化设计方法结构化设计方法变换分析变换分析:把具有变换流特点的数据流图按预先确定:把具有变换流特点的数据流图按预先确定的模式映射成软件结构。的模式映射成软件结构。步骤:步骤:1.重新分析数据流图重新分析数据流图2.在数据流图上区分系统的逻辑输入、逻辑输出和在数

25、据流图上区分系统的逻辑输入、逻辑输出和中心变换部分中心变换部分确定中心变换确定中心变换4.3 结构化设计方法结构化设计方法试探方法试探方法从数据流图的物理输入端开始,一步一步向系统的从数据流图的物理输入端开始,一步一步向系统的中间移动,找到离物理输入端最远的,但仍被看做中间移动,找到离物理输入端最远的,但仍被看做是系统输入的数据流,即系统的逻辑输入。是系统输入的数据流,即系统的逻辑输入。从数据流图的物理输出端开始,一步一步向系统的从数据流图的物理输出端开始,一步一步向系统的中间移动,找到离物理输出端最远的,但仍被看作中间移动,找到离物理输出端最远的,但仍被看作是系统输出的数据流,即系统的逻辑输

26、出。是系统输出的数据流,即系统的逻辑输出。从物理输入端到逻辑输入,构成系统的输入部分;从物理输入端到逻辑输入,构成系统的输入部分;从物理输出端到逻辑输出,构成输出部分;夹在输从物理输出端到逻辑输出,构成输出部分;夹在输入部分和输出部分之间的就是中心变换部分。入部分和输出部分之间的就是中心变换部分。4.3 结构化设计方法结构化设计方法3.进行一级分解,设计系统模块结构的顶层和第一层进行一级分解,设计系统模块结构的顶层和第一层首先设计一个主模块,并用系统的名字为它命名首先设计一个主模块,并用系统的名字为它命名,然后将它画在与中心变换相对应的位置上。作,然后将它画在与中心变换相对应的位置上。作为系统

27、的顶层,它的功能是调用下一层模块,完为系统的顶层,它的功能是调用下一层模块,完成系统所要做的各项工作。成系统所要做的各项工作。程序结构的第一层可以这样设计:为每一个逻辑程序结构的第一层可以这样设计:为每一个逻辑输入设计一个输入模块,它的功能是为主模块提输入设计一个输入模块,它的功能是为主模块提供数据;为每一个逻辑输出设计一个输出模块,供数据;为每一个逻辑输出设计一个输出模块,它的功能是将主模块提供的数据输出;为中心变它的功能是将主模块提供的数据输出;为中心变换设计一个变换模块,它的功能是将逻辑输入转换设计一个变换模块,它的功能是将逻辑输入转换成逻辑输出。换成逻辑输出。4.3 结构化设计方法结构

28、化设计方法4.进行二级分解,设计输入、中心变换、输出部分的进行二级分解,设计输入、中心变换、输出部分的中、下层模块中、下层模块对于每一个逻辑输入,在数据流图上向物理输入端对于每一个逻辑输入,在数据流图上向物理输入端方向逆向移动,只要还有加工,就在相应输入模块方向逆向移动,只要还有加工,就在相应输入模块下面建立一个输入子模块和一个变换子模块。下面建立一个输入子模块和一个变换子模块。对于每一个逻辑输出,在数据流图上向物理输出端对于每一个逻辑输出,在数据流图上向物理输出端方向正向移动,只要还有加工框,就在相应输出模方向正向移动,只要还有加工框,就在相应输出模块下面建立一个变换子模块和一个输出子模块。

29、块下面建立一个变换子模块和一个输出子模块。一般应参照数据流图的中心变换部分和功能分解的一般应参照数据流图的中心变换部分和功能分解的原则来考虑如何对中心变换模块进行分解。原则来考虑如何对中心变换模块进行分解。4.3 结构化设计方法结构化设计方法4.3 结构化设计方法结构化设计方法事务分析事务分析:从具有事务流特点的数据流图建立系统结构:从具有事务流特点的数据流图建立系统结构图。图。事务源、事务中心事务源、事务中心LMNOIA BCDEFGH4.3 结构化设计方法结构化设计方法1.建立一个主模块用以代表整个加工,位于建立一个主模块用以代表整个加工,位于P-层(主层层(主层)。)。2.考虑被称为下一

30、层(事务层)的第二层模块。第二层考虑被称为下一层(事务层)的第二层模块。第二层模块只能是三类:取得事务、处理事务和给出结果。模块只能是三类:取得事务、处理事务和给出结果。3.各个事务模块下层的操作模块,即各个事务模块下层的操作模块,即A-层(活动层)和层(活动层)和细节模块,即细节模块,即D-层(细节层),可以继续分解扩展,层(细节层),可以继续分解扩展,直至完成整个结构图。直至完成整个结构图。主模块 取得ALMN给出H4.3 结构化设计方法结构化设计方法事务分析的步骤:事务分析的步骤:1.识别事务源。识别事务源。2.规定适当的事务型结构。规定适当的事务型结构。3.识别各种事务和它们定义的操作

31、。识别各种事务和它们定义的操作。4.注意利用公用模块。注意利用公用模块。5.对每一事务,或对联系密切的一组事务,建立一对每一事务,或对联系密切的一组事务,建立一个事务处理模块。个事务处理模块。6.对事务处理模块规定它们全部的下层操作模块。对事务处理模块规定它们全部的下层操作模块。7.对操作模块规定它们的全部细节模块。对操作模块规定它们的全部细节模块。4.3 结构化设计方法结构化设计方法设计的后处理设计的后处理1.为每个模块开发一份处理说明为每个模块开发一份处理说明2.为每个模块提供一份接口描述为每个模块提供一份接口描述3.定义局部的和全程的数据结构定义局部的和全程的数据结构4.给出所有的设计限

32、制和约束给出所有的设计限制和约束5.进行概要设计的评审进行概要设计的评审6.如果需要和合算的化,对结构进行优化。如果需要和合算的化,对结构进行优化。4.4 数据设计数据设计数据设计:为需求分析阶段所确定的数据对象定义数据设计:为需求分析阶段所确定的数据对象定义逻辑数据结构,并且对不同的逻辑数据结构进行算逻辑数据结构,并且对不同的逻辑数据结构进行算法设计,以便选择一个有效的方案。同时,确定实法设计,以便选择一个有效的方案。同时,确定实现逻辑数据结构所必需的操作模块,以便了解数据现逻辑数据结构所必需的操作模块,以便了解数据结构的影响范围。结构的影响范围。4.4 数据设计数据设计数据设计的原则:数据

33、设计的原则:1.在导出、评审和定义软件需求、软件体系结构时在导出、评审和定义软件需求、软件体系结构时,必须定义和评审其中用到的数据流、数据对象,必须定义和评审其中用到的数据流、数据对象、数据结构。、数据结构。2.要确定所有数据结构,以及在每种数据结构上实要确定所有数据结构,以及在每种数据结构上实施的操作。施的操作。3.应该建立一个数据字典,用它来定义数据和软件应该建立一个数据字典,用它来定义数据和软件的设计。的设计。4.4 数据设计数据设计4.底层数据设计的决策应该推迟到设计过程的后期底层数据设计的决策应该推迟到设计过程的后期进行,在数据设计中也可以使用自顶向下、逐步进行,在数据设计中也可以使

34、用自顶向下、逐步细化的方法。细化的方法。5.数据设计时要遵从信息隐藏原则。数据设计时要遵从信息隐藏原则。6.应当创建一个存放数据结构和相关操作的库。应当创建一个存放数据结构和相关操作的库。7.软件设计和程序设计语言应当支持抽象数据类型软件设计和程序设计语言应当支持抽象数据类型的定义和实现。的定义和实现。4.4 数据设计数据设计数据结构设计数据结构设计的建议:的建议:1.尽量使用简单的数据结构。尽量使用简单的数据结构。2.在设计数据结构时要注意数据之间的关系,特别在设计数据结构时要注意数据之间的关系,特别要平衡数据冗余与数据关联的矛盾。要平衡数据冗余与数据关联的矛盾。3.为了加强数据设计的可复用性,应该针对常用的为了加强数据设计的可复用性,应该针对常用的数据结构和复杂的数据结构设计抽象类型,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论