版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第五章第五章 总体设计总体设计 主持人:赵方主持人:赵方北京林北京林业业大大学学 软软件件教研教研室室总体设计的基本目的与任务总体设计的基本目的与任务v基本目的基本目的n回答“概括的说,系统应该如何实现”v任务任务n划分出组成系统的物理元素程序、文件、数据库、人工过程等,但是每个物理元素的具体内容还应该在详细设计阶段完成;n设计出软件的结构,确定系统中的程序由哪些模块组成以及模块之间的相互关系。北京林北京林业业大大学学 软软件件教研教研室室主要内容主要内容v总体设计基本任务总体设计基本任务v总体设计的过程总体设计的过程v软件设计的概念和原理软件设计的概念和原理v启发规则启发规则v描绘软件结构的
2、图形工具描绘软件结构的图形工具v面向数据流的设计方法面向数据流的设计方法北京林北京林业业大大学学 软软件件教研教研室室总体设计基本任务总体设计基本任务1 1、设计软件系统结构、设计软件系统结构( (简称软件结构简称软件结构) )2 2、数据结构的设计、数据结构的设计3 3、数据库的设计、数据库的设计北京林北京林业业大大学学 软软件件教研教研室室1 1、设计软件系统结构、设计软件系统结构 为了实现目标系统,最终必须设计出组成这为了实现目标系统,最终必须设计出组成这个系统的所有程序和数据库个系统的所有程序和数据库( (文件文件) ),对于程序,对于程序,则首先进行结构设计,则首先进行结构设计,具体
3、方法具体方法如下:如下: (1) 采用某种设计方法, 将一个复杂的系统按功能划分成模块。 (2) 确定每个模块的功能。 (3) 确定模块之间的调用关系。 (4) 确定模块之间的接口, 即模块之间传递的信息。 (5) 评价模块结构的质量。北京林北京林业业大大学学 软软件件教研教研室室1 1、设计软件系统结构、设计软件系统结构v从以上内容看,软件结构的设计是以从以上内容看,软件结构的设计是以模块模块为基为基础的。础的。在需求分析阶段在需求分析阶段,通过某种分析方法把,通过某种分析方法把系统分解成层次结构。系统分解成层次结构。在设计阶段在设计阶段,以需求分,以需求分析的结果为依据,从实现的角度划分模
4、块,并析的结果为依据,从实现的角度划分模块,并组成模块的层次结构。组成模块的层次结构。v软件结构的设计是概要设计关键的一步,直接软件结构的设计是概要设计关键的一步,直接影响到详细设计与编码的工作。软件系统的质影响到详细设计与编码的工作。软件系统的质量及一些整体特性都在软件结构的设计中决定。量及一些整体特性都在软件结构的设计中决定。因此,应由经验丰富的软件人员担任,采用一因此,应由经验丰富的软件人员担任,采用一定的设计方法,选取合理的设计方案。定的设计方法,选取合理的设计方案。北京林北京林业业大大学学 软软件件教研教研室室总体设计基本任务总体设计基本任务1 1、设计软件系统结构、设计软件系统结构
5、( (简称软件结构简称软件结构) )2 2、数据结构的设计、数据结构的设计3 3、数据库的设计、数据库的设计北京林北京林业业大大学学 软软件件教研教研室室2 2、数据结构的设计、数据结构的设计v 逐步细化的方法逐步细化的方法适用于数据结构的设计。适用于数据结构的设计。n在需求分析阶段,可通过数据字典对数据的组成、 操作约束和数据之间的关系等方面进行描述,确定数据的结构特性,在概要设计阶段要加以细化,详细设计则规定具体的实现细节。n在概要设计阶段,宜使用抽象的数据类型。n如“栈”是数据结构的概念模型,在详细设计中可用线性表和链表来实现“栈”。v 设计有效的数据结构,将大大简化软件模块处理过程的设
6、计有效的数据结构,将大大简化软件模块处理过程的设计。设计。北京林北京林业业大大学学 软软件件教研教研室室总体设计基本任务总体设计基本任务1 1、设计软件系统结构、设计软件系统结构( (简称软件结构简称软件结构) )2 2、数据结构的设计、数据结构的设计3 3、数据库的设计、数据库的设计北京林北京林业业大大学学 软软件件教研教研室室3 3、数据库设计、数据库设计v数据库的设计数据库的设计指数据存储文件的设计指数据存储文件的设计, 其主要其主要包括以下几方面的设计:包括以下几方面的设计:n概念设计n逻辑设计n物理设计北京林北京林业业大大学学 软软件件教研教研室室3 3、数据库设计、数据库设计(1)
7、 (1) 概念设计。概念设计。 n在数据分析的基础上,从用户角度采用自底向上的方法进行视图设计。 n一般用ER模型来表示数据模型,这是一个概念模型。 ER模型既是设计数据库的基础,也是设计数据结构的基础。 nIDEF1x技术也支持概念模式,用IDEF1x方法建立系统的信息模型,使模型具有一致性、可扩展性和可变性等特性。同样,该模型可作为数据库设计的主要依据。n对应于系统开发中的“需求分析”。北京林北京林业业大大学学 软软件件教研教研室室3 3、数据库设计、数据库设计(2) (2) 逻辑设计。逻辑设计。nER模型或IDEF1x模型是独立于数据库管理系统(DBMS)的,要结合具体的DBMS特征来建
8、立数据库的逻辑结构。n对于关系型的DBMS来说,将概念结构转换为数据模式、子模式并进行规范,要给出数据结构的定义,即定义所含的数据项、类型、长度及它们之间的层次或相互关系的表格等。n对应于系统开发中的 “概要设计”。北京林北京林业业大大学学 软软件件教研教研室室3 3、数据库设计、数据库设计v(3) (3) 物理设计。物理设计。n对于不同的DBMS,物理环境不同,提供的存储结构与存取方法各不相同。物理设计就是设计数据模式的一些物理细节,如数据项存储要求、存取方式和索引的建立等。 n对应于系统开发中的 “详细设计”。北京林北京林业业大大学学 软软件件教研教研室室总体设计的过程总体设计的过程一、一
9、、 设想供选择的方案设想供选择的方案二、二、 选择合理的方案选择合理的方案三、三、 推荐最佳方案推荐最佳方案四、四、 功能分解功能分解五、五、 设计软件结构设计软件结构六、六、 数据库设计数据库设计七、七、 制定测试计划制定测试计划八、八、 书写文档书写文档九、九、 审查和复审审查和复审北京林北京林业业大大学学 软软件件教研教研室室总体设计的过程总体设计的过程一、一、 设想供选择的方案设想供选择的方案 此阶段的工作是将需求分析阶段得到的数据流图按某种原则对处理进行分组,将相关的处理作为一组,划定自动边界。使用这种方法设想尽可能多的解决方案,抛弃技术上行不通的分组方法,余下的分组方法就是可能的实
10、现策略。二、二、 选择合理的方案选择合理的方案 从可供选择的方案中选择若干个合理的方案。对每个合理的方案系统分析员应该给出如下四份资料:1、系统流程图2、组成系统的物理元素清单3、成本/效益分析4、实现系统的进度计划北京林北京林业业大大学学 软软件件教研教研室室总体设计的过程总体设计的过程三、三、 推荐最佳方案推荐最佳方案n系统分析员就每个合理的方案进行对比,推荐一个最佳方案,并给出详细的实现计划(工程网络)。四、四、 功能分解功能分解n从系统实现的角度出发,把复杂功能进一步分解,使得分解之后的功能对大多数程序员而言是明显易懂的,从而确定软件系统的结构。五、五、 设计软件结构设计软件结构n将模
11、块组织成良好的层次系统,顶层模块调用下层模块,这种调用直到完成具体功能的底层模块。北京林北京林业业大大学学 软软件件教研教研室室总体设计的过程总体设计的过程六、六、 数据库设计数据库设计n模式设计、子模式设计、完整性和安全性设计、优化七、七、 制定测试计划制定测试计划八、八、 书写文档书写文档n1、总体设计说明书n2、用户手册n3、测试计划n4、详细的实现计划n5、数据库设计结果系统流程图、系统流程图、组成系统的物理元素清单、组成系统的物理元素清单、成本成本/效益分析;效益分析;对最佳方案的描述,对最佳方案的描述,精化的数据流图、层次图或结精化的数据流图、层次图或结构图描述的软件结构、构图描述
12、的软件结构、用用IPO图表示的模块算法、图表示的模块算法、模块间的接口关系、模块间的接口关系、需求需求/功能功能/模块交叉参照。模块交叉参照。九、九、 审查和复审审查和复审n对总体设计提交的文档进行审查和复审北京林北京林业业大大学学 软软件件教研教研室室软件软件设计设计的概念和原理的概念和原理v模块化模块化v抽象抽象v信息隐蔽及局部化信息隐蔽及局部化v模块独立模块独立北京林北京林业业大大学学 软软件件教研教研室室软件设计的概念和原理软件设计的概念和原理一、一、 模块化模块化n模块化基本原理: 设函数C(x)定义问题x的复杂程度,函数E(x)定义解决问题x需要的工作量,对于两个问题P1和P2,如
13、果n C(P1)C(P2)n则 E(P1)E(P2)n根据人们经验有:n C(P1+P2)C(P1)+ C(P2)n则 E(P1+P2)E(P1)+ E(P2)北京林北京林业业大大学学 软软件件教研教研室室模块化模块化v 模块与开发软件开发成本模块与开发软件开发成本接口成本软件成本最小区域成本/模块模块数成本(工作量)M北京林北京林业业大大学学 软软件件教研教研室室模块化模块化v根据模块化的原理我们可以对系统的模块进行根据模块化的原理我们可以对系统的模块进行划分,这样做将使工作量下降,但是随着模块划分,这样做将使工作量下降,但是随着模块数量的增加,模块之间接口的数量和复杂度提数量的增加,模块之
14、间接口的数量和复杂度提高又使得工作量增加,所以要综合考虑问题。高又使得工作量增加,所以要综合考虑问题。北京林北京林业业大大学学 软软件件教研教研室室软件设计的概念和原理软件设计的概念和原理二、二、 抽象抽象v抽象是人类解决复杂问题的一个有利思维工具。抽象是人类解决复杂问题的一个有利思维工具。忽略掉次要矛盾,忽略掉次要矛盾,集中精力解决主要矛盾集中精力解决主要矛盾。v抽象是认识复杂现象过程中使用的思维工具,抽象是认识复杂现象过程中使用的思维工具,即抽出事物本质的即抽出事物本质的共同特性共同特性而暂不考虑它的细而暂不考虑它的细节,不考虑其他因素。节,不考虑其他因素。 v抽象的概念被广泛应用于计算机
15、软件领域,在抽象的概念被广泛应用于计算机软件领域,在软件工程学中更是如此。软件工程学中更是如此。 软件工程实施中的每软件工程实施中的每一步都可以看作是对软件抽象层次的一次细化一步都可以看作是对软件抽象层次的一次细化。北京林北京林业业大大学学 软软件件教研教研室室抽象抽象v软件工程整个过程的抽象层次软件工程整个过程的抽象层次n在系统定义阶段,软件可作为整个计算机系统的一个元素来对待;n在软件需求分析阶段,软件的解决方案是使用问题环境中的术语来描述;n从概要设计到详细设计阶段,抽象的层次逐步降低,将面向问题的术语与面向实现的术语结合起来描述解决方法;n到产生源程序时到达最低的抽象层次。北京林北京林
16、业业大大学学 软软件件教研教研室室抽象抽象v具体到软件设计阶段,又有不同的抽象层次,具体到软件设计阶段,又有不同的抽象层次,在进行软件设计时,抽象与逐步求精、模块化在进行软件设计时,抽象与逐步求精、模块化密切相关,可帮助定义软件结构中模块的实体,密切相关,可帮助定义软件结构中模块的实体,由抽象到具体地分析和构造出软件的层次结构,由抽象到具体地分析和构造出软件的层次结构,提高软件的可理解性。提高软件的可理解性。北京林北京林业业大大学学 软软件件教研教研室室软件设计的概念和原理软件设计的概念和原理三、三、 信息隐蔽及局部化信息隐蔽及局部化v定义定义n信息隐蔽,是指在设计和确定模块时,使得一个模块内
17、包含的信息(过程或数据),对于不需要这些信息的其他模块来说,是不能访问的;n“隐蔽”的意思是,有效的模块化通过定义一组相互独立的模块来实现,这些独立的模块彼此之间仅仅交换那些为了完成系统功能所必需的信息,而将那些自身的实现细节与数据“隐藏”起来。n局部化是指把一些关系密切的软件元素物理的放得彼此靠近。北京林北京林业业大大学学 软软件件教研教研室室信息隐蔽及局部化信息隐蔽及局部化v意义意义n通过信息隐蔽,可以定义和实施对模块的过程细节和局部数据结构的存取限制。n一个软件系统在整个生存期中要经过多次修改,信息隐蔽为软件系统的修改、测试及以后的维护都带来好处。v应用应用n在划分模块时要采取措施,如采
18、用局部数据结构,使得大多数过程(即实现细节)和数据对软件的其他部分是隐藏的,这样,修改软件时偶然引入的错误所造成的影响只局限在一个或少量几个模块内部,不波及其他部分。北京林北京林业业大大学学 软软件件教研教研室室软件设计的概念和原理软件设计的概念和原理v四、四、 模块独立模块独立v概念概念n模块独立性指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。n模块独立性概念是模块化、抽象及信息隐蔽这些软件工程基本原理的直接产物。v优点优点n良好的模块独立性能使开发的软件具有较高的质量。n由于模块独立性强,信息隐藏性能好,并完成独立的功能,且它的可理解性、可维护性及可测试性好,
19、必然导致软件的可靠性高。 n接口简单、功能独立的模块易开发,且可并行工作,有效地提高了软件的生产率。北京林北京林业业大大学学 软软件件教研教研室室模块独立模块独立v如何衡量软件的独立性呢如何衡量软件的独立性呢? ? 根据模块的外部特征和内部特征,提出了两个定性根据模块的外部特征和内部特征,提出了两个定性的度量标准的度量标准耦合性和内聚性耦合性和内聚性。n耦合:衡量耦合:衡量不同模块彼此间不同模块彼此间相互依赖(连接)的紧密程度相互依赖(连接)的紧密程度n内聚:衡量内聚:衡量一个模块内部各个元素一个模块内部各个元素彼此结合的紧密程度。彼此结合的紧密程度。北京林北京林业业大大学学 软软件件教研教研
20、室室耦合性(耦合性(couplingcoupling)v概念概念n耦合性也称块间联系,指软件系统结构中各模块间相互联系紧密程度的一种度量。n模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。n模块间耦合高低取决于模块间接口的复杂性、调用的方式及传递的信息。北京林北京林业业大大学学 软软件件教研教研室室耦合性(耦合性(couplingcoupling)v 模块的耦合性的模块的耦合性的类型,按类型,按耦合性由低到高:耦合性由低到高:耦合类型耦合类型传递传递( (两模块间两模块间) )其它其它无直接耦合无直接耦合 不传递任何信息不传递任何信息数据耦合数据耦合简单的数据值简单的数据值相当于高级语
21、言中的值传递标记耦合标记耦合数据结构数据结构如高级语言中的数组名、记录名和文件名等这些名字即为标记标记,其实传递的是这个数据结构的地址控制耦合控制耦合控制变量控制变量如开关、 标志等公共耦合公共耦合内容耦合内容耦合应该坚决避免应该坚决避免北京林北京林业业大大学学 软软件件教研教研室室耦合性(耦合性(couplingcoupling)v公共耦合公共耦合n指通过一个公共数据环境相互作用的那些模块间的耦合。n公共数据环境可以是全程变量或数据结构、共享的通信区、内存的公共覆盖区及任何存储介质上的文件和物理设备等(也有将共享外部设备分类为外部耦合的)。n公共耦合的复杂程度随耦合模块的个数增加而增加。北京
22、林北京林业业大大学学 软软件件教研教研室室耦合性(耦合性(couplingcoupling)v公共耦合公共耦合n如果只有两个模块之间有公共数据环境,那么这种公共耦合就有两种情况:n 一个模块只是给公共数据环境送数据,另一个模块只是从公共环境中取数据,这只是数据耦合的一种形式,是比较松散的公共耦合;n 两个模块都既往公共数据环境中送数据,又从里面取数据,这是紧密的公共耦合。北京林北京林业业大大学学 软软件件教研教研室室耦合性(耦合性(couplingcoupling)v公共耦合公共耦合n使用公共耦合的场合n在模块之间共享的数据很多n通过参数的传递很不方便n因为公共耦合会引起以下问题:n 影响到软
23、件的可靠性。耦合的复杂程度随模块的个数增加而增加,无法控制各个模块对公共数据的存取,若某个模块有错,可通过公共区将错误延伸到其他模块。n 使软件的可维护性变差。若某一模块修改了公共区的数据,则会影响到与此有关的所有模块。n 降低了软件的可理解性。因为各个模块使用公共区的数据,使用方式往往是隐含的,某些数据被哪些模块共享,不易很快搞清。北京林北京林业业大大学学 软软件件教研教研室室内聚性(内聚性(cohesioncohesion)v概念概念n内聚性也称块内联系,指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。n若一个模块内各元素(语句之间、程序段之间)联系的越紧密,则它的
24、内聚性就越高。北京林北京林业业大大学学 软软件件教研教研室室内聚性(内聚性(cohesioncohesion)v 模块的内聚性的模块的内聚性的类型,按类型,按内聚性由低到高:内聚性由低到高:内聚类型内聚类型 概念概念偶然内聚偶然内聚指一个模块内的各处理元素之间指一个模块内的各处理元素之间没有任何联系没有任何联系逻辑内聚逻辑内聚指模块内执行几个指模块内执行几个逻辑上相似的功能逻辑上相似的功能, 通过通过参数参数确定该模确定该模块完成哪一个功能块完成哪一个功能时间内聚时间内聚把需要把需要同时执行的动作同时执行的动作组合在一起形成的模块组合在一起形成的模块通信内聚通信内聚(或信息内聚或信息内聚)指模
25、块内所有处理元素都在同一个指模块内所有处理元素都在同一个数据结构数据结构上操作,或者上操作,或者指各处理使用指各处理使用相同的输入数据相同的输入数据或者产生或者产生相同的输出数据相同的输出数据顺序内聚顺序内聚指一个模块中各个处理元素都密切相关于指一个模块中各个处理元素都密切相关于同一功能同一功能且必须且必须顺序执行顺序执行,前一功能元素的输出就是下一功能元素的输入前一功能元素的输出就是下一功能元素的输入功能内聚功能内聚模块内所有元素共同完成模块内所有元素共同完成一个功能一个功能,缺一不可,模块不可缺一不可,模块不可再分割再分割偶然内聚偶然内聚例:例:有一些无联系的处理序列在程序中多次出现或在几
26、个模块中都出现,如有一些无联系的处理序列在程序中多次出现或在几个模块中都出现,如: Read disk File; Calculate current values; Produce user output; 为了节省存储,把它们抽出来组成一个新的模块,这个模块就属于偶然内为了节省存储,把它们抽出来组成一个新的模块,这个模块就属于偶然内聚。聚。评价:评价:不易理解也不易修改,这是最差的内聚情况不易理解也不易修改,这是最差的内聚情况逻辑内聚逻辑内聚评价:评价:产生各种类型错误的信息输出放在一个模块,或从不同设备上的输入放在产生各种类型错误的信息输出放在一个模块,或从不同设备上的输入放在一个模块,
27、一个模块, 这是一个这是一个单入口多功能单入口多功能模块;模块;内聚程度有所提高,各部分之间在内聚程度有所提高,各部分之间在功能功能上有相互关系,但不易修改;上有相互关系,但不易修改;当某个调用模块当某个调用模块要求要求修改此模块公用代码时,而另一些调用模块又修改此模块公用代码时,而另一些调用模块又不要求不要求修改;修改;调用时需要进行调用时需要进行控制参数控制参数的传递,造成模块间的的传递,造成模块间的控制耦合控制耦合,调用此模块时,调用此模块时,不用的部分也占据了主存不用的部分也占据了主存, 降低了系统效率。降低了系统效率。时间内聚时间内聚例:例:初始化一组变量初始化一组变量,同时打开若干
28、文件同时打开若干文件, 同时关闭文件同时关闭文件等,都与特定时间有关等,都与特定时间有关评价:评价:时间内聚比逻辑内聚程度时间内聚比逻辑内聚程度高高一些,一些,因为因为时间内聚模块中的各部分都要在同时间内聚模块中的各部分都要在同一时间内完成。一时间内完成。由于这样的模块往往与其他模块联系的比较紧密,由于这样的模块往往与其他模块联系的比较紧密, 如初始化模块对许多如初始化模块对许多模块的运行有影响,因此模块的运行有影响,因此和其他模块耦合的程度较高和其他模块耦合的程度较高。 通信内聚通信内聚例:例: 一个模块完成一个模块完成“建表建表”、“查表查表”两部分功能,两部分功能, 都使用都使用同一数据
29、结构同一数据结构名字表名字表; 一个模块完成生产一个模块完成生产日报表、日报表、 周报表和月报表周报表和月报表,都使,都使用用同一数据同一数据日产量日产量。评价:评价:模块各部分都紧密相关于模块各部分都紧密相关于同一数据同一数据(或者数据结构或者数据结构),所以内聚性要,所以内聚性要高高于前于前几种类型。几种类型。可把某一可把某一数据结构、数据结构、 文件及设备文件及设备等操作都放在等操作都放在一个模块内一个模块内,可达到,可达到信息信息隐藏隐藏。功能内聚功能内聚例:例:“打印日报表打印日报表” 评价:评价:功能内聚的模块易理解、易修改,功能内聚的模块易理解、易修改, 因为它的因为它的功能是明
30、确的、单一的功能是明确的、单一的,因此因此与其他模块的耦合是弱与其他模块的耦合是弱的。的。功能内聚的模块有功能内聚的模块有利于利于实现软件的实现软件的重用重用, 从而提高软件开发的效率。从而提高软件开发的效率。北京林北京林业业大大学学 软软件件教研教研室室模块独立模块独立v 耦合性与内聚性是模块独立性的两个定性标准,将软件耦合性与内聚性是模块独立性的两个定性标准,将软件系统划分模块时,尽量做到系统划分模块时,尽量做到高内聚低耦合高内聚低耦合,提高模块的,提高模块的独立性,为设计高质量的软件结构奠定基础。独立性,为设计高质量的软件结构奠定基础。v 但也有内聚性与耦合性发生但也有内聚性与耦合性发生
31、矛盾矛盾的时候,为了提高内聚的时候,为了提高内聚性而可能使耦合性变差,在这种情况下,建议给予性而可能使耦合性变差,在这种情况下,建议给予耦合耦合性性以更高的重视。以更高的重视。北京林北京林业业大大学学 软软件件教研教研室室启发规则启发规则v主要介绍:主要介绍:n软件结构准则n软件结构优化准则北京林北京林业业大大学学 软软件件教研教研室室软件结构准则软件结构准则v 软件结构图软件结构图是软件系统的是软件系统的模块层次结构模块层次结构,反映了整个系,反映了整个系统的统的功能实现功能实现,即将来,即将来程序的控制层次体系程序的控制层次体系。n对于一个“问题”,可用不同的软件结构来解决,不同的设计方法
32、和不同的划分和组织,可得出不同的软件结构。v 软件结构软件结构往往用往往用树状或网状结构的图形树状或网状结构的图形来表示。来表示。n软件工程中,一般采用70年代中期美国Yourdon等提出的称为结构图(Structure Chart, 简称SC)的工具来表示软件结构。 北京林北京林业业大大学学 软软件件教研教研室室软件结构准则软件结构准则v 结构图的主要内容有:结构图的主要内容有:v (1) (1) 模块模块n用方框表示,并用名字标识该模块,名字应体现该模块的功能。v (2) (2) 模块的控制关系模块的控制关系n两个模块间用单向箭头或直线连接起来表示它们的控制关系。n按照惯例,总是图中位于上
33、方的模块调用下方的模块,所以不用箭头也不会产生二义性。宽 度扇出DABCMT扇入深度n 用模块和被调用模块的关系 称为上属与下属的关系,或 者称为“统率”与“从属”的关 系。如上图所示,模块M调 用模块A、 B、 C,模块D从 属于模块A,也从属于M。北京林北京林业业大大学学 软软件件教研教研室室软件结构准则软件结构准则v 结构图的主要内容有:结构图的主要内容有:v (3) (3) 模块间的信息传递模块间的信息传递n模块间还经常用带注释的短箭头表示模块调用过程中来回传递的信息。n有时箭头尾部带空心圆的表示传递的是数据,n带实心圆的表示传递的是控制信息,如右图所示。B 学 生 记 录学 号查 标
34、询 志记 地录 址A 查 询 成 绩北京林北京林业业大大学学 软软件件教研教研室室软件结构准则软件结构准则v 结构图的主要内容有:结构图的主要内容有:v (4) (4) 两个附加符号:表示模块有两个附加符号:表示模块有选择调用选择调用(a a)或)或循环调用循环调用(b b)。)。ABCT1MT2T3(a)(b)北京林北京林业业大大学学 软软件件教研教研室室软件结构准则软件结构准则v (5) (5) 结构图的形态特征。结构图的形态特征包括:结构图的形态特征。结构图的形态特征包括:n 深度:指结构图控制的层次,也是模块的层数n 宽度:指一层中最大的模块个数n 扇出:一个模块直接下属模块的个数宽
35、度扇出DABCMT扇入深度结构图的深度为5宽度为 8模块M的扇出为 3北京林北京林业业大大学学 软软件件教研教研室室软件结构优化准则软件结构优化准则v改进软件结构提高模块独立性改进软件结构提高模块独立性n高内聚、低耦合v模块规模应该适中模块规模应该适中n50-150条语句v深度、宽度、扇入、扇出都应适当深度、宽度、扇入、扇出都应适当v模块的作用域应该在控制域之内模块的作用域应该在控制域之内v力争降低模块接口的复杂程度力争降低模块接口的复杂程度v设计单入口单出口的模块设计单入口单出口的模块v模块功能应该可以预测模块功能应该可以预测北京林北京林业业大大学学 软软件件教研教研室室描绘软件结构的图形工具描绘软件结构的图形工具v层次图层次图vHIPOHIPO图图v结构图结构图北京林北京林业业大大学学 软软件件教研教研室室描绘软件结构的图形工具描绘软件结构的图形工具v 层次图:表示系统中模块的层次及调用关系层次图:表示系统中模块的层次及调用关系正文加工系统输入输出编辑加标题存储检索
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 半导体清洗工艺工程师岗位招聘考试试卷及答案
- 4.1因地制宜发展农业课件(共34张) 八年级地理上册 商务星球版
- 第三章 机械波 易错点深度总结
- 第二章 匀变速直线运动的研究 易错点深度总结
- 慢性病焦虑抑郁障碍的筛查与整合干预
- 高频面试问题+答案(职场+各行业专属2026)
- 13.2全面依法治国的基本要求 课件2025-2026学年统编版道德与法治八年级下册
- 佛山市重点中学2026年高三第三次大联考(新课标卷)化学试题含解析
- 餐饮服务合作合同
- 医学26年老年心血管药师培训查房课件
- 2026年公务乘车座次礼仪与司机沟通规范问答
- 2026年北京市西城区高三二模英语试卷(含答案)
- 2026重庆璧山文化旅游产业有限公司面向社会招聘5人备考题库及答案详解(各地真题)
- 济宁市2026届省属公费师范毕业生就业岗位需求备考题库(112个)含答案详解(能力提升)
- 【 道法 】社会主义市场经济体制课件-2025-2026学年统编版道德与法治八年级下册
- 2026届百师联盟高三下学期考前适应性训练(一) 英语试题+答案
- 2025-2026学年人教版八年级英语下册口语交际(补全对话)每日一练专项训练
- 2026四川三江新能源供应链科技有限责任公司第一批社会招聘7人笔试参考题库及答案解析
- 2026年高校基建处工程管理岗应聘笔试指南及项目流程
- 2026年煤矿采煤工试题及答案
- 2025四川宜宾市科技人才集团有限公司第三批员工招聘10人笔试历年参考题库附带答案详解
评论
0/150
提交评论