软件工程导论作业第一章要点_第1页
软件工程导论作业第一章要点_第2页
软件工程导论作业第一章要点_第3页
软件工程导论作业第一章要点_第4页
软件工程导论作业第一章要点_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

1、第一章习题1. 什么是软件危机?它有哪些典型表现?为什么会出现软件危机?软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。 概括的说, 软件危机包含以下两方面的问题:如何开发软件和如何维护数量不断膨胀的已有软件。软件危机主要有以下一些典型表现:( 1) 对软件开发成本和进度的估计常常很不准确;( 2) 用户对“已完成的“软件系统不满意的现象经常发生;( 3) 软件产品的质量往往靠不住;( 4) 软件常常是不可维护的( 5) 软件通常没有适当的文档资料;( 6) 软件成本在计算机系统总成本中所占的比例逐年上升;( 7) 软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的

2、趋势。出现软件危机,一方面与软件本身的特点有关,另一方面也和软件开发与维护的方法不正确有关( 1 ) 软件不同于硬件,缺乏“可见性“,规模庞大,而且程序复杂性随着程序规模的增加而指数上升,软件本身的特点确实给开发和维护带来一些客观问题;( 2 ) 人们在开发和维护,忽视软件需求分析的重要性,认为软件开发就是写程序并设法使之运行,轻视软件维护。 。3 什么是软件工程?它有哪些本质特性?怎样用软件工程消除软件危机?软件工程是指导计算机软件开发和维护的一门工程学科。软件工程的本质特性:1 软件工程关注于大型程序的构造。2软件工程的中心课题是控制复杂性。3 软件经常变化。4 开发软件的效率非常重要。5

3、和谐的合作是开发软件的关键。6 软件必须有效的支持它的用户。7 在软件工程领域中通常由具有一种文化背景的人替具有另一种文化背景的人创造产品。用软件工程消除软件危机的 7 条定理:1 .用分阶段的生命周期计划严格管理。2 坚持进行阶段评审。3 实行严格的产品控制。4 采用现代程序设计技术。5 结果应能清楚的审查。6 开发小组的人员应该少而精。7 承认不断改进软件工程实践的必要性。4 .什么是软件过程?它与软件工程方法学有何关系?软件过程是为了获得高质量软件所需要完成的一系列任务的框架, 它规定了完成各项任务的工作步骤。5 . 简述结构化范型和面向对象范型的要点,并分析它们的优缺点。结构化范型采用

4、了结构化技术来完成软件开发的各项任务,并使用适当的软件工具或软件工程环境来支持结构化技术的运用。优点:这种方法学为广大软件工程师所熟悉,在开发某些类型的软件时比较有效。 面向对象范型有四个要点:1 .把对象作为融合了数据及在数据上的操作行为的统一的软件结构。2 .把所有对象都划分成了类。3 .按照父类和子类的关系,把若干个相关类组成一个层次结构的系统。4 .对象彼此间仅能通过发送信息互相联系。优点:降低了产品的复杂性, 提高了软件的可理解性, 简化了软件的开发和维护工作。 还促进了软件的可重用性。6 .什么是软件生命周期模型 ?试比较瀑布模型、快速原型模型、增量模型和螺旋模型的优缺 点,说明每

5、种模型的适用范围。软件生存周期是指从软件定义、开发、使用、维护到淘汰的全过程。瀑布模型:优点:1 .可强迫开发员采用规范的方法2 .严格地规定了每个阶段必须提交的文件3 .要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。缺点:传统的瀑布模型过于理想化,是由文档驱动的。快速原型模型:通过快速构建起一个可在计算机上运行的原型系统,让用户试用原型并收集用户 反馈意见的方法,获取用户真正的需要。增量模型:优点:能在较短时间内向用户提交可完成部分工作的产品;逐步增加产品功能可 以使用户有较充实的时间学习和适应新产品,从而减少一个全新的软件可能给客户组织带来的冲击。螺旋模型优点:对可选方案和约

6、束条件的强调有利于已有软件的重用;减少了过多测试; 维护只是螺旋模型中另一个周期。第二章习题7 .在软件开发的早期阶段为什么要进行可行性研究?应该从哪些方面研究目标系统的可行 性?可行性研究的目的,就是用最小的代价在尽可能短的时间内确定问题是否能够解决。从三个方面研究每种解法的可行性(1)技术可行性(2)经济可行性(3)操作可行性 可行性 研究过程的步骤1、 复查系统规模和目标2、研究目前正在使用的系统3、 导出新系统的高层逻辑模型4、 进一步定义问题5、导出和评价供选择的解法6、 推荐行动方针 7、 草拟开发计划 8、 书写文档提交审查8 .北京某高校可用的电话号码有以下几类:校内电话号码由

7、4位数字组成,第一位数字不是0.校外电话又分为本市电话和外地电话两类。 拨校外电话需要先拨 0,若是本市电话 则接着拨8位数字(第一位不是 0),若是外地电话则拨 3位区码后再拨8位电话号码(第 一位不是0)。用定义数据的方法,定义上述的电话号码。答:电话号码=校内电话号码|校外电话号码校内电话号码= 非零数字+ 3位数字校外电话号码=本市号码|外地号码本市号码= 数字零+ 8位数字外地号码= 数字零+ 3位数字+ 8位数字非零数字=1 |2 3 | 4 | 5 | 6 | 7 |8 | 9数字零=03位数字=3 数字 38位数字= 非零数字+ 7位数字7位数字=7 数字 7数字=0 I 1

8、I 2| 3| 4| 5| 6| 7 | 8| 9其中,意思是或,从校内电话号码或校外电话号码中选择一个; 表示重复,两边的数字表示重复次数的下限和上限;=意思是定义为;+意思是和,连接两个分量。第三章习题9 .为什么要进行需求分析?通常对软件系统有哪些需求?答:需求分析”确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、具体 的要求。为了开发出真正满足用户需求的软件产品,首先必须知道用户的需求,只有深入理解了用户的需求,我们的工作才会有意义。对软件通常有以下需求:功能需求:指定系统必须提供的服务;性能需求:指定系统必须满足的定时约束或容量约束,通常包括速度、信息量速率、主存容量、磁盘

9、容量、安全性等方面的需求;可靠性和可用性需求: 指定系统的可靠性,可用性量化了用户可以使用系统的程度;出错处理需求:说明系统对环境错误应该怎么响应;接口需求:描述应用系统与它的环境通信的格式;逆向需求:说明软件系统不应该做什么;将来可能提出的要求: 应该明确列出那些虽然不属于当前系统开发范畴,但是据分析将来很可能会提出来的要求。10 .怎样与用户有效地沟通以获取用户的真实需求?答:(1) 初步需求获取,通过访谈与会议、问卷调查、观察用户工作流程等方法;(2) 面向数据流,自顶向下求精(3) 简易的应用规格说明(4) 快速建立软件原型复印机的工作过程大致如下:未接到复印命令时处于闲置状态,一旦接

10、到复印命令则进入复印状态,完成一个复印命令规定的工作后又回到闲置状态,等待下一个复印命令; 如果执行11.复印命令时发现没纸, 则进入缺纸状态,发出警告,等待装纸,装满纸后进入闲置状态,准备接收复印命令; 如果复印时发生卡纸故障,则进入卡纸状态,发出警告,等待维修人员来排除故障,故障排除后回到闲置状态。请用状态转换图描绘复印机的行为。从问题陈述可知,复印机的状态主要有“闲置”、“复印”、“缺纸”和“卡纸”。引起状 态转换的事件主要是“复印命令”、“完成复印命令”、“发现缺纸”、“装满纸”、“发 生卡纸故障”和“排除了卡纸故障”。状态转换图如下:排除r卡纸故障do7警笆缺纸、doT告第五章习题5

11、-1.为每种类型的模块耦合举一个具体的例子。(1)非直接耦合一例如,两个模块没有直接关系(模块1和模块2),模块独立性最强。卡纸,下左图(2)数据耦合一例如单价数量:开发票数据羯台(3) 特征耦合一例如,金颛特征耦合上右图“住户情况”是一个数据结构,图中模块都与此数据结构有关。“计算水费”和“计算电费”本无关,由于引用了此数据结构产生依赖关系 ,它们之间也是标记 偶合。(4) 控制耦合-模块A通过传送开关、标志、名字等控制信息,明显地控制选 择模块B的功能,例如下图(5) 外部耦合一例如,下左图,模块 A B均需使用共享打印机外郃耦借公共环境耦合(6) 公共环境耦合一例如,上右图,模块 A、B

12、 C共享全局变量数组(7)内容耦合一例如,一个过程非正常地进入另一个过程Sub AA(,),goto L , End subSub BB(,),L:,End sub为每种类型的模块耦合举一个具体的例子?另一种答法答:耦合是对一个软件结构内不同模块之间互连程度的度量。耦合强弱取决于模块间接口的复杂程度,进入或访问某一模块的点,以及通过接口的数据,一般模块之间可能的连接方式有7种,构成耦合的7种类型,它们之间的关系为:低耨含性高非亘接耦合数据耦合标记耦含控制耨含外部耦含公共耦含内容耦含强独立性弱下面举例说明以上各种耦合:a.非直接耦合(Nondirect Coupling )在这种情况下,两个模块

13、之间没有直 接关系,它们之间的联系完全是通过主模块的控制和调用来实现的,这就是非直接耦合。例如在实数的运算中,有两个模块分别完成几个实数的求和,求乘积功能,这两个模块之间没有直接联系,只有在主模块调用中有执行的前后顺序而已, 这个例子即属于非直接耦合。b.数据耦合(Data Coupling )即一个模块访问另一个模块时,彼此之间是 通过数据参数来交换输入,输出信息的,这种耦合为数据输入,输出信息的这种 耦合为数据耦合。如有两个模块,其中A完成两个烽的比较,求出其中最大的并 返回该值,模块B是完成了个数的比较,求出其中最大的并返回该最大值,为完 成四个数的比较,模块B调用模块A即可完成,在这种

14、调用关系中,模块A的运 算结果作为一个参烽参加B的运算,这两个模块之间即发生数据耦合。数据耦合 是松散的耦合,模块间的独立性比较强。c.标记耦合(Stamp Coupling ),即一组模块通过参数传递记录信息,这就 是标记耦合。事实上,这组模块共享了这个记录,它是某一数据结构的子结构, 而不是简单变量。d.控制耦合(Control Coupling )即一个模块通过开关标志,名字等控制住处 明显的控制,选择另一模块的功能,这就是控制耦合,如下 图所示,这一种耦 合实质是在单一接口上实现选择多功能模块中的某项功能,如程序设计中用到多路选择结构即是最好的例子。Ie.外部耦合(External C

15、oupling )即一组模块都访问同一全局简单变量而 不是同一全局数据结构,而且不是通过参数表传递全局数据结构,而且不是通过参数表传递全局变量的信息。如C语言中都访问被说明为extern类型的外部变量的各个模块之间即发生外部耦合。外部耦合引起的问题类似于下面要介绍的公 共耦合,区别在于外部耦合中不存在依赖于一个数据结构内部各项的物理安 排。f.公共耦合(Common Coupling)若一组模块都访问同一个公共数据环境, 则它们之间的耦合就是公共耦合。 公共的数据环境可以是全局的数据结构, 共享 的通信区,内存的公共覆盖区等。如几个模块对同一个数据库的查询就属于这种 耦合。公共耦合可以分为松散

16、的公共耦合和紧密的公共耦合,其中松散的公共耦合是单向操作,如两个或多个模块对同一个文件的读操作;而紧密的公共耦合是 双向的操作,如两个或多个模块对同一文件的读写操作。 下面用图表示松散的和 紧密的公共耦合。g.内容耦合。即有下列情况时即出现内容耦合。(1) 一个模块访问另一个模块数据;(2) 一个模块不通过正常入口而转到另一个模块的内部;(3)两个模块有一部分代码重叠;(4) 一个模块有多个入口。却1p- ao-T梗诜诜问同一小梭I*做UR惟快匕b.两个横快有一部分代码至地Entry:上Ery上:d 一个植烧有弃十人口2、 为每种类型的模块内聚举一个具体例子。答:内聚标志一个模块内各个元素彼此

17、结合的紧密程度,它是信息隐蔽和局部化的自然扩展,一般模块的内聚性分为 7种,它们的关系如下图示:儡然内鬃|逻辑内相|时间内果过程内第|通信内聚|顺序内聚|功能内黑|下面举例说明各种内聚的情况a. 偶然内聚。即模块内各部分之间没有联系,或者即使有联系也很松散,这种即为偶然内聚,它是内聚程度最低的模块。如一些没有任何联系的语句可能在许多模块中重复多次,程序员为了节省存储,把它们抽出来组成一个新的模块,这个模块就是偶然内聚模块,例如C语言中的# define TRYODBCCb.逻辑内聚(LogicalCohesion)即这种模块把几种功能组合在一起,每次调用时,由传送给模块的判定参数来确定该模块应

18、执行哪一种功能。如根据输入的控制信息, 或从文件中读入一个记录,或向文件写出一个记录。c 时间内聚 ( ClassicalCohesion )这种模块大多数为多功能模块,但模块的各人功能的执行与时间有关, 通常要求所有功能必须在同一时间段内执行, 例 如初始化模块和终止模块。d 过程内聚 ( Procedural Cohesion )即一个模块内的处理是相关的,而且必须以特定次序执行, 则这个模块称为过程内聚模块。 例如我们把流程图中的循 环部分、判定部分、计算部分分成三个模块,这三个模块都是过程内聚模块。e 通信内聚 ( CommunicationCohesion ) 如果一个模块内部各功能

19、部分都使用可相同的数据输入,或产生了可相同的数据输入, 或产生了可相同的输出数据, 则称之为通信内聚模 块。通常,通信内聚模块是通过数据流图来定义的。f 顺序内聚 ,即一个模块内处理元素和同一功能紧密切相关,而且这些处理必须顺序执行 (通常一个处理元素的输出数据据作为下一处理元素的输入数据) 如 在对员工加工资的数据库操作中,读取数据和更新数据即具有顺序内聚的关系。g 功能内聚 ( Functional Cohesion )即模块内部所有处理元素属于一个整 体,完成一个单一的功能,则称为功能内聚,功能内聚是最高程度的内聚。第六章习题1 .隹i设只有SEQUENCE DO_WHIL两种控制结构,

20、怎样禾U用它们完成IF_THEN_ELSEB作? 答:转化如下:K = 1DO WHILE (条件 .AND. K.EQ.1) 程序块 1 K=K+1END DODO WHILE ( (.NOT. 条件 ) .AND. K.EQ.1) 程序块 2K=K+1 END DO2 .隹i设允许使用 SEQUENCED IF_THEN_ELSE两种控制结构,怎样禾U用它们完成DO_WHILE操作? 答:转化如下;label:IF (条件 ) THEN程序块 GOTO labelELSE 程序块 END IF3 画出下列伪码程序的程序流程图和盒图:STARTIF p THENWHILE q DO f EN

21、D DO ELSE BLOCK g n END BLOCK END IFSTOP 答:( 1 )流程图如图 6-1 所示:图6-1从伪码变成的程序流程图7.某交易所规定给经纪人的手续费计算方法如下:图6-2从伪玛变成的程序盒图总手续费等于基本手续费加上与交易中的每股价格和股数有关的附加手续费。如果交易总金额少于1000元,则基本手续费为交易金额的8.4%;如果交易总金额在 1000元到10000元之间,则基本手续费为交易金额的5%再加34元;如果交易总金额超过 10000元,则基本手续费为交易金额的4嘀口上134元。当每股售价低于14元时,附加手续费为基本手续费的5%除非买进、卖出的股数不是1

22、00的倍数,在这种情况下附加手续费为基本手续费的9%当每股售价在14元到25元之间时,附加手续费为基本手续费的2%除非交易的股数不是 100的倍数,在这种情况下附加手续费为基本手 续费的6%当每股售价超过 25元时,如果交易的股数零散(即,不是100的倍数),则附加 手续费为基本手续费的 4%,否则附加手续费为基本手续费的1%要求:(1) 用判定表表示手续费的计算方法;(2)用判定树表示手续费的计算方法判定表的每一列是一条计算规则。例如,第1歹U(规则1)规定,当交易总金额P少于1, 000元,且每股售价 Q低于14元,且交易的股数 n是100的倍数时,给经纪人的手续费为: (1+0. 05)

23、X 0. 084P第16歹U (规则16)表明,当交易总金额 P超过10 , 000元,且每股售价 Q在14元到25 间,且交易的股数 n不是100的倍数时,手续费为:(1+0 . 06)X(0 . 04P+134)工3士45fl78gto1112131415:16TTT"TlTTFFFFFF ,FFFF1 口聿> 尸w ioocwFFFFFF1TTT ,1FFFr户> 1叠0>00FFF 1F时FFFFF¥FTTTEJ-TFFFFTTFFFPTTFF1 d Wav 交 GFFTTPrFFTT_FFFF工TOoisFFFPTTFFFF工丁,F |4FFmA

24、 IM的情购TFTFTFTFT产TFTH'TF(1O S X.Oa 0184 JPX-< -b-QrXQ., 口日4 户XC |. *5。3)xAtXfl.XC L +Q. C 1 >OfiiFXC 1口自4尸X£1.十邛心 »XC 1 4- QhX tOP户+3$>X-(1 + 口.X CO. QbP + 3<>X< 1 4- 0.K(口. *当P+方/,X< I 十以 UO X Cw.XCl +凸"X g 55尸+窜4>Xf H-O, 4553X(J4户+ 130X< H-O, 09? X CO.

25、户 + 1 34 JX<.H-Cl-CO.1L14JM< 1 * CL OR、X CO.I S343X(1-1-0. Cl> xg. 0*/*+ 134)El ,中K£Q凸4户T!“电】oo倍数一pv 1OOO霾 一I ODD1 D OOO蟀王!L-L图6-7 判定树514!41435打不足 LOO 倍敏+O.O9) XQC芯4产2511军士5L-14也是 】。口<目数(H-0.02>x0,0&4/*打不均 10(】悟数(I +O.O&J X O.OB47J打是 lOQf音效-<1-1-0.01 >XO.C)K4JP用刁:息

26、lOOd音理文(】十O.")XO.O84/1r打母才散一 打木星工oo倍数1 1 +O.O5JX £0.0"+34(1+dOGjxe,O5尸* 二巾期 IQ0偌效(I+<JX)N)X£tLC3尸+34k 电 1OO in®1 £1+aQ8)x£O_O5 尸十二是 1OG 倍效Cl +0.0 ! )x (0.0534).不是 1O4J 倍魏<I +0.04x(0.05Z1+2收超 JOO僭害父口中dO¥jX(O.O4P+l34.不显 IW>佬懿E <I-l-O.O x<O.O4P+.可显

27、 100 倍数< 1x(0.041 3<"一= ? t4不足 I QO f盲畋(三+CLO6) X£LO4尸+'用是1Q0倍数一 也不是1004号政(I +0,0 I尸+1 3*<1+0.04)x(0,0471-吗?CEXAMPLE8。画出下列伪码程序的流图,计算它的环形复杂度。你觉得这个程序的逻辑有什么问题LOOP:DO WHILE X>0A=B+1 IF A>10ELSEENDIF Y<5THENELSETHEN X=AY=ZIFPRINT X,YIFY=2 THENELSE ENDGOTO LOOPC=3IFEND IFG=

28、H+R END DOIF F>0THEN PRINTELSE PRINTEND IF STOP环形复杂度V(G尸流图中的区域数二流图中判定结点数目+1=6+1=7 =节点数E-弧数n+2=19-12+1=7(2)该算法问题在于控制最外层循环的变量Z不仅没有经过初始化,并且在该循环内部没有任何有可能该变 Z的语句。因此,该段代码中的 WHILE循环部分代码要么不会执行,要么可能出现死循环。第七章习题7-4什么是模块测试和集成测试?它们各有什么特点?答:模块测试是对每个单独的模块,分别用黑盒和白盒测试技术,测试它的功能是否正确,检查模块控制结构中的特定路径并发现最大数量的错误。其特点是:主要

29、应用白盒测试的技术,对多个模块的测试可以并发的进行。集成测试是把模块装配在一起形成完整的软件包,在装配的同时进行测试。特点是:可能发生接口问题。为什么有了白盒测试还要有黑盒测试?白盒测试发现程序的隐患,内存泄漏,误差累计问题,黑盒测试在这方面存在严重的不 足。黑盒测试只有测试软件外部的表现,即使软件的输入、 输出都是正确的, 都不能说明软件是正确的,因为程序有可能用错误的运算方式得出正确的结果。白盒测试优点:(1)可构成测试数据使特定程序部分得到测试。(2)有一定的充分性度量手段(3)可获得较多工具支持。缺点:(1)不易生成测试数据(2)无法对未实现规格说明的部分进行测试(3)工作量大,通常只

30、用于单元测试,有应用局限。黑盒测试优点:(1)适用于各阶段测试(2)从产品功能角度测试(3)容易入手生成测试数据。缺点:(1)某些代码得不到测试(2)如果规则说明有误则无法发现(3)不易进行充分性测试。78.对一个包含10000条机器指令的程序进行一个月集成测试后,总共改正了15个错误,25个错误(第二个月改正了 10个错误),此时MTTF=10h经过两个月测试后,总共改正了MTTF=15h 要求:(1) 根据上述数据确定 MTTF与测试时间之间的函数关系,画出MTTF与测试时间T的关系曲线。在画这条曲线时做了什么假设?(2) 为做到MTTF=100h必须进行多长时间的集成测试?(3) 当集成

31、测试结束时总共改正了多少个错误,还有多少个错误潜伏在程序中? 解答:(1)因为平均无故障时间 MTTFf测试时间。之间存在线性关系,即MTTF=a+br ,由于:10=a+b, 15=a+2b,得到:a=5, b=5故:平均无故障时间 MTTF与测试时间。之间存在线性关系为:MTTF=5+5t(2)为做到MTTF=100h有方程:100=5+5° ,故19即必须进行19个月的集成测(3)由于经验:平均无故障时间与单位长度程序中剩余的错误数成反比,故有:MTTF=10000/( K * (ET-EC(c)由于:10=10000/( K * (ET-15),15 = 10000/( K

32、* (ET-25)得至k ET=45, K=33.33当集成测试结束时,MTTF=100h有:100 = 10000/(33.33* ( 45-EC(19)故:EC(19)=42,即当集成测试结束时总共改正了42个错误,还有45-42=3个错误潜伏在程序中。7-9 .如对一个长度为100000条指令的程序进行集成测试期间记录下下面的数据:(a) 7月1日:集成测试开始,没有发现错误。(b) 8月2日:总共改正 100个错误,此时 MTTF=0.4h(c) 9月1日:总共改正300个错误,此时,MTTF=2h根据上列数据完成下列各题:(1) 估计程序中的错误总数;(2) 为使MTTF达至ij 1

33、0h,必须测试和调试这个程序多长时间?(3) 画出MTT林口测试时间。之间的函数关系线。(1)据估算平均无故障时间MTTF的公式有:1/K(Et/100000-100/100000)=0.41/K (Et/100000-300/100000)=2得:K= 1000, Et=350即程序中的错误总数达 350。(2)当 MTTF= 10h 时,有1/K (350/100000-Ec/100000)=10得:Ec=340.按七八月分测试改错进度估算,还需进行2个月的集成测试。(4) MTT林口测试时间°之间的函数关系曲线如下:7-10.在测试一个长度为 24000条指令的程序时,第一个月

34、由甲、乙两名测试员各自独立测 试这个程序。经一个月测13t后,甲发现并改正20个错误,使MTTF达到10ho与此同时,乙发现24个错误,其中6个甲也发现了。以后由甲一个人继续测试这个程序。问:(1) 刚开始测试时程序中总共有多少个潜藏的错误?(2) 为使MTTF达到60h,必须再改正多少个错误?还需用多长测试时间?(3) 画出MTTF与集成测试时间t之间的函数关系曲线。解答: 本题中采用的是分别测试法,测试前程序中的错误总数:B0=B1*B2/bc=20*24/6=80(2)由于经验:平均无故障时间与单位长度程序中剩余的错误数成反比,故有:MTTF=24000/( K * (ET-EC( t

35、)由于:10=24000/( K * (80-20)得到:K=40为使MTTFFi到60h,有:60 = 24000/(40 * ( 80-EC( t)故:EC( t )=70 ,即总共需要改正70个错误,由于测试员甲和乙分别测试时,测试员甲已经更正了 20个错误,以后由甲一个人继续测试这个程序, 因此,还需要更正70-20=50个错误。覆盖测试1.为以下流程图所示的程序段设计一组测试用例,要求分别满足语句覆盖、判定覆盖、条 件覆盖、判定/条件覆盖、组合覆盖和路径覆盖。- 语句短益:则i式用例入为程序执行踞径K 1,V1abdh行语句 1 X>a be h (血行谄旬2 >X =1

36、7=6acgh (.执行谙旬3)刘安选号剜试用制输入为程序拉,行踏在X=- lrV=*labdtrK=1O.Y=1Oacfh三、条件覆盖对于第一个判定(X>8 AND Y>5)条件X>8取真值记为T1,取假值记为-T1条件Y>5取真值记为T2,取假值记为-T2对于第二个判定(X>0 OR Y>0)条件X>0取真值记为T3,取假值记为-T3条件Y>0取真值记为T4,取假值记为-T4 对于第三个判定(X>16 OR Y>10)条件X>16取真值记为T5,取假值记为-T5条件Y>10取真值记为T6,取假值记为-T6则i式用例执行

37、路径相狼条件植殖分支X工丫=-1abdh-T1 -T2 -T3- T4- T5 -T6bdX=17,Y=11acghT1T2 T3T4 T5T6eg四、判定条件藤盖都li式用作!lik行路径覆盖条件茕短分支X=-1Y=-1abdh'T1 -T2 -T3-T4- T5 -T6bdX = 17,¥=llT T2 T3T4TST6ce五、组合覆盖1、X>8, Y>5记做T11 T2,第一个判定的取真分支2、X>8, Y<=5记做T1-T2,第一个判定的取假分支3、X<=8, Y>5记做-T1T2,第一个判定的取假分支4、X<=8,Y<

38、=5记做-T1-T2,第一个判定的取假分支5、X>0,Y>0记做T3 T4,第二个判定的取真分支6、X>0,Y<=0记做T3-T4,第二个判定的取真分支7、X<=0,Y>0记做-T3T4,第二个判定的取真分支8、X<=0,Y<=0记做-T3-T4,第二个判定的取假分支9、X>16,Y>10记做T5T6,第三个判定的取真分支10、X>16,Y<=10记做T5 -T6,第三个判定的取真分支11、X<=16,Y>10记做-T5 T6,第三个判定的取真分支12、X<=16,Y<=10记做-T5 -T6,第三

39、个判定的取假分支现iliitE 杏4“行的诧给条件X=1ZV=11acgT1 T2 T3 TA TS T61 事 3 1 9X= JLrT1sbdti-T1 -TZ -TS-T-q- T5 -T64 .12X=-1tY=11/也上-TJ_ TZ -T3 T4 - T5 T6St 7 . 11X=17PY=- 1ai5e±iTJL -TZ T3- T4 T5 T62 1 & 10则试用例输入为程序也行哈接x=- 1P¥=-13bdhX=5PV=S3b eh犬=10丫=工口acfhX=2O.Y=X5acgh基本路径测试方法2、使用基本路径测试方法,为以下程序段设计测试用

40、例。void Do (int X,int A,int B)1 if ( (A>1)&&(B=0)2 X = X/A;3 if (A=2)|(X>1)4 X = X+1;5 .计算环形复杂度:环形复杂度: V(G)=10-7+2=5 或 V(G)=4+1=5.导出独立路径(用语句编号表示)路径1:1A1 2f3Z 4-5路径2:1A1 23 3X 4-5路径3:1A-1 2 一 3K 3X 5路径4:1A1 - 3A 4-5路径5:1Af3K 3X- 5四、设计测试用例:刎试用例输入数据手页期输出亚Ui式用背11 1八62 B7 K7测讯用例上B=0 X=3X=1 即

41、 XT剜i式用网3A-J B=0 X-0测试用制4A-2 B-l X-2XT测lift用甬11 5A=1 B=0 X=0第八章习题1 .软件的可维护性与哪些因素有关?在软件开发过程中应该采取哪些措施才能提高软件产品的可维护性?基本因素:可理解性,可测试性,可修改性,可移植性,可重用性。文档是影响软件可维护性的决定因素。软件重用技术是能从根本上提高软件可维护性的重要技术。面向对象的软件技术是目前最成功的软件重用技术。在进行需求分析时同时考虑维护问题。尽可能在软件开发过程中保证各阶段文档的正确性。重视程序结构的设计, 使程序具有较好的层次结构。使用维护工具或软件工程环境。提高程序可读性,尽量使用高

42、级语言编程2 .什么叫预防性维护!:把今天的方法学应用到昨天的系统上,以支持明天的需要。实质 上是软件再工程。百度的一张试卷一、填空题1. 软件生命周期可划分为、和3个时期,通常把这3个时期再细分为8个阶段,它们是 、和,其中的 阶段的工作量是8 个阶段中最大的。2. 可行性研究的任务是从 、和 等三个方面研究 。3. 至少应该从、和 4个方面验证软件需求的正确性,其中 和 这两个方面的正确性必须有用户的积极参与才能验证,而且为了验证这两个方面的正确性,往往需要开发 。4. 软件总体设计时应遵循、和 等6条基本原则。详细设计通常以 技术为逻辑基础,因为从软件工程观点看, 是 软件最重要的质量标

43、准之一。5. 软件测试的目的是 ,通常把测试方法分为 和 两大类。因为通常不可能做到 ,所以精心设计 是保证达到测试目的所必须的。6. 软件维护通常包括4类活动,它们分别是、。二、判断下述提高软件可维护性的措施是否正确,正确的在括弧内写对,错的写错。1. 在进行需求分析时同时考虑维护问题。()2. 完成测试后,为缩短源程序长度而删去程序中的注释。()3. 尽可能在软件开发过程中保证各阶段文档的正确性。()4. 编码时尽可能使用全局变量。()5. 选择时间效率和空间效率尽可能高的算法。()6. 尽可能利用硬件的特点以提高效率。()7. 重视程序结构的设计,使程序具有较好的层次结构。()使用维护工

44、具或软件工程环境。()8. 进行概要设计时尽可能加强模块间的联系。()9. 提高程序可读性,尽可能使用高级语言编程。答案栏A : B : C : D : E :四、下面给出了用盒图描绘的一个程序的算法,请用逻辑覆盖法设计测试方案,要求做到 用语句覆盖和路径覆盖五、某高校可用的电话号码有以下几类:校内电话号码由4位数字组成,第1位数字不是0;校外电话又分为本市电话和外地电话两类,拨外地电话需先拨0,如果是本市电话再接着拨 8位电话号码(第1位不是0),如果是外地电话则先拨区码(35数字),再拨当地电话号码(7 或8位数字,第1位不是0)。请定义上述的电话号码。六、以下是用程序流程图描绘的处理算法

45、,请把它改画为等价的盒图。七、办公室复印机的工作过程大致如下:未接到复印命令时处于闲置状态,一旦接到复印命令则进入复印状态, 完成一个复印命令规定的工作后又回到闲置状态,等待下一个复印命令;如果执行复印命令时发现缺纸,则进入缺纸状态,发出警告,等待装纸,装满纸后进入闲置状态,准备接受复印命令; 如果复印时发生卡纸故障,则进入卡纸状态,发出警告等待维修人员来排队故障,故障排除后回到闲置状态。请用状态转换图描绘复印机的行为。八.如下图所示的程序流程图描绘了一个非结构化的程序。2. 利用附加变量flag设计一个等价的结构化程序,用盒图描绘设计结果。3. 不用附加变量,设计一个等价的结构化程序,用盒图描绘设计结果。九、有一个长度为48000条机器指令的程序,第一个月由甲、乙二人分别测试它。甲改正

温馨提示

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

评论

0/150

提交评论