资源描述
单击此处编辑母版标题样式,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,软件工程习题课,4-1,从供选择的答案中选出正确的答案填入下列叙述中的()内。,模块内聚性用于衡量模块内部各成份之间彼此结合的紧密程度。,(1),一组语句在程序中多处出现,为了节省内存空间把这些语句放在一个模块中,该模块的内聚性是(,A,),的。,(2),将几个逻辑上相似的成分放在同一个模块中,通过模块入口处的一个判断决定执行哪一个功能。该模块的内聚性是(,B,),的。,(3),模块中所有成分引用共同的数据,该模块的内聚性是(,C,),的。,(4),模块内的某成份的输出是另一些成份的输入,该模块的内聚性是(,D,),的。,(5),模块中所有成份结合起来完全一项任务,该模块的内聚性是(,E,),的。它具有简明的外部界面,由它构成的软件易于理解、测试和维护。,供选择的答案:,A,E,:,功能内聚 信息内聚?,(顺序),通信内聚,过程内聚 巧合内聚 时间内聚 逻辑内聚,A 5 B 7 C 3 D 4,?,2,E 1,4-2,从供选择的答案中选出正确的答案填入下面的()中。,块间联系和块内联系是评价程序模块结构质量的重要标准。联系的方式、共用信息的作用、共用信息的数量和接口的(,A,),等因素决定了块间联系的大小。在块内联系中,(,B,),的块内联系最强。,SD,方法的总的原则是使每个模块执行(,C,),功能,模块间传送(,D,),参数,模块通过(,E,),语句调用其它模块,而且模块间传送的参数应尽量(,F,)。,此外,,SD,方法还提出了判定的作用范围和模块的控制范围等概念。,SD,方法认为,(,G,),应该是(,H,),的子集。,供选择的答案:,A,:,友好性 健壮性 简单性 安全性,B,:,巧合内聚 功能内聚 通信内聚 信息内聚,C,:,一个 多个,D,:,数据型 控制型 混合型,E,:,直接引用 标准调用 中断 宏调用,F,:,少 多,G,H,:,作用范围 控制范围,A.,B.,C.,D.,E.,F.,G.,H.,模块之间的耦合(块间联系)和模块的内聚(块内联系)是评价程序模块结构质量的重要标准。联系的方式、共用信息的作用、共用信息的数量和接口的简单性等因素决定了块间联系的大小。在块内联系中,以功能内聚模块的块内联系最强。,SD,方法的总的原则是使每个模块只做一件事,就是说,只执行一个功能。模块之间尽可能传送简单的数据型参数。模块要通过标准调用语句调用其它模块,不要直接引用另一个模块内部的数据。同时模块之间传送的参数应尽量少。此外,,SD,方法还提出了判定的作用范围和模块的控制范围等概念。,SD,方法认为,模块的作用范围应该是其控制范围的子集。,4-3,举例说明你对概要设计与详细设计的理解。有不需要概要设计的情况吗,?,软件设计是一个把软件需求变换成软件表示的过程。最初这种表示只是描绘出软件的总的框架,然后进一步细化,在此框架中填入细节,把它加工成在程序细节上非常接近于源程序的软件表示。正因为如此,所以从工程管理的角度来看,软件设计分两步完成。首先做概要设计,将软件需求转化为数据结构和软件的系统结构。然后是详细设计,即过程设计。通过对结构表示进行细化,得到软件的详细的数据结构和算法。,由于概要设计建立起整个系统的体系结构框架,并给出了系统中的全局数据结构和数据库接口,人机接口,与其它硬、软件的接口。此外还从系统全局的角度,考虑处理方式、运行方式、容错方式、以及系统维护等方面的问题,并给出了度量和评价软件质量的方法,所以它奠定了整个系统实现的基础。没有概要设计,直接考虑程序设计,就不能从全局把握软件系统的结构和质量,实现活动处于一种无序状态,程序结构划分不合理,导致系统处于一种不稳定的状态,稍一做改动就会失败。所以,不能没有概要设计。,4-4,说明并比较概要设计说明书与需求分析说明书的内容。,(,1,)两个说明书都包括引言,内容基本相同;,(,2,)任务概述部分概要设计说明比需求说明增加了需求概述;,(,3,)需求说明主要通过静态、动态数据,数据库描述,数据字典和数据采集等内容进行数据描述;,(,4,)需求说明中的主要部分是功能要求、性能要求、运行需求以及其他要求,它的目的是全面地、精确地描述了系统要“做什么”。需求说明书中还可能包括数据流图、数据字典、,IPO,图等描述的系统逻辑模型。,(,5,)概要设计说明则对系统的总体结构、各个接口、数据结构、运行、出错、安全、维护进行具体设计,它的目的是描述系统“怎样做”,往往包含了各模块的处理说明和接口说明以及系统结构图。,(,6,)概要设计说明是建立在需求说明的基础上的。,4-5,设计,SC,图,根据下图所示的变换型,DFD,图,用面向数据流的设计方法设计出,SC,图。,(1),第一级分解,(,建立初始,SC,框架,),设计顶层和第一层模块,M,C,M,T,M,A,M,E,c,e,c,e,u,w,u,w,传送信息,第一级分解后的,SC(,另一种画法,),M,C,M,A1,c,e,u,w,c,p,M,A2,Q,P,R,M,E1,M,E2,e,p,r,r,w,u,w,变换分析设计方法,步骤:,(2),第二级分解,(,分解,SC,各分支,),自顶向下分解,设计出每个,分支的中、下层模块,输入分支的分解,(1),M,A,C,B,A,b,a,c,E,D,d,e,c,e,输入分支的分解,(2),M,A,Get,C,b,a,c,Read,D,d,e,c,e,B to C,b,c,d,e,a,b,Get,E,Get,B,D to E,A to B,Read,A,输出分支的分解,M,E,W,Write,V,u,u,w,u,v,v,v,Put,U,U to V,M,E,U,Write,W,w,w,u,w,u,V,(1),(2),中心加工分支的分解,M,T,P,Q,R,e,c,p,r,u,w,p,r,5-1,下图是使用,Basic,语言编写的一个打印,A,,,B,,,C,三数中最小者的程序的流程图。其中出现了,6,个,GOTO,语句,一个向前,,5,个向后,程序可读性很差。,if(A B),goto,120;if(B C),goto,110;100 print C;,goto,140;110 print B;,goto,140;120 if(A C),goto,130;,goto,100;130 print A;,140,试利用基本控制结构,将程序中的,GOTO,语句消去。,1.,答案:使用,if-then-else,结构化构造,则上述程序段可改成如下形式。,if(A=B and B C)then print B else print C;,分析:理清程序流程图中每一条执行路径,适当利用复合的条件测试于判断语句,对每一个最终的打印处理,保留一个分支进入它。这样可以消除众多的,GOTO,语句,甚至可以消除嵌套的判断语句结构。这种程序结构清晰,可读性好。,5-2.,试说明下面的两个程序段的功能是什么?可否用另一些等效的程序段来代替它,以提高其可读性。,(1)AI=AI+AT;(2)for(i=1;i=n;i+),AT=AI-AT;for(j=1;j=n;j+),AI=AI-AT;Vij=(i/j)*(j/i);,(1),的功能是对换,AI,与,AT,的内容。等效的程序段可以是:,WORK=AT;AT=AI;AI=WORK;,(2),的功能是建立一个单位矩阵,V,。,等效的程序段可以是:,for(i=1;i=n;i+),for(j=1;j=n;j+),if(i=j)Vij=1;,else Vij=0;,分析:阅读这两段程序,读者可能不易看懂,有时还需用实际数据试验一下。对于,(1),,如果我们给,AI,赋值,3,,给,AT,赋值,5,,在运算后发现,AI,中变成了,5,,,AT,中变成了,3,。这段程序就是交换,AI,和,AT,中的内容。目的是为了节省一个工作单元。如果改一下:,WORK=AT;AT=AI;AI=WORK;,就能让读者一目了然。,对于,(2),,除法运算()在除数和被除数都是整型量时,其结果只取整数部分,而得到整型量。因此,,i/j,为,0,,当,i j,时,j/i,为,0,,当,j 0,,,B 0,,,C 0,,且,A+B C,,,B+C A,,,A+C B,。,如果是等腰的,还要判断是否,A=B,,或,B=C,,或,A=C,。,对于等边的,则需判断是否,A=B,,且,B=C,,且,A=C,。,列出等价类表:,6-3.,某一报表处理系统,要求用户输入处理报表的日期。假设日期限制在,1990,年,1,月至,1999,年,12,月,即系统只能对该段时期内的报表进行处理。如果用户输入的日期不在此范围内,则显示输入错误信息。该系统规定日期由年、月的,6,位数字字符组成,前,4,位代表年,后两位代表月。现用等价类划分法设计测试用例,来测试程序的“日期检查功能”。,解:划分等价类并编号,:,划分成,3,个有效等价类,,7,个无效等价类,如表,5-3,所示。,为合理等价类设计测试用例,对于表中编号为,1,5,8,对应的,3,个合理等价类,用一个测试用例覆盖。,为每一个不合理等价类至少设计一个测试用例,:,测试数据 期望结果 覆盖范围,199002,输入有效,1,5,8,99MAY,输入无效,2,19995,输入无效,3,1999005,输入无效,4,198912,输入无效,6,200001,输入无效,7,199900,输入无效,9,199913,输入无效,10,报表日期的,2.,有非数字字符,类型和长度,1.6,位数字字符,3.,少于,6,个数字字符,4.,多于,6,个数字字符,输入等价类 合理等价类 不合理等价类,月份范围,8.1,12 9.,等于,0,10.,大于,12,年份范围,5.1990,1999 6.,小于,1990,7.,大于,1999,6-4,根据给出的程序流程图,画出它的,PAD,图和程序图,并计算它的,McCabe,复杂性度量。,其中:,Pi,代表操作语句,,Ci,代表条件。,PAD图,程序图,McCabe,复杂性,:4,6-5,某城市的电话号码由三个部分组成。这三部分的名称与内容分别是:,地区码:空白或,3,位数字;,2,、前缀:非“,0”,或“,1”,开头的,3,位数字;,后缀:,4,位数字。,用等价分类法完成如下要求:,划分出有效等价类、无效等价类;,为有效等价类设计出测试用例。,解,第一步:电话号码等价类划分,
展开阅读全文