第1页共4页《软件工程》期终考试题学号:姓名:一讨论题(25分)根据自己的理解,简要分析下述说法的合理性,若结合自己的大作业实践更佳。1.程序设计是一种任人发挥创造才能的技术领域,是个人按自己意图创造的“艺术品”。程序只要能在计算机上得出正确的结果,程序的写法可以不受任何约束。2.在软件项目开发进度滞后时,可以通过增加人力的方式,加快软件开发速度,满足进度要求。3.软件开发应遵循“信息隐藏”的原则,将模块设计成“黑箱”,实现的细节隐藏在模块内部,不让模块的使用者直接访问。这就是信息封装,使用与实现分离的原则。使用者只能通过模块接口访问模块中封装的数据。4.软件开发需遵循严格的阶段划分,包括:制定开发计划,进行需求分析和说明,软件设计,程序编码,测试及运行维护。只有当每个阶段的工作完成后,才能继续进行下一项活动。5.运行正确的程序就是一个高质量的软件。第2页共4页二分析设计(45分)上图是一个简化的SafeHome控制面板,其基本功能如下:1)房主观察SafeHome控制面板,确定系统就绪状态。当系统检测传感器信息,发现某个门或者窗是开着,显示“Notready”信息;房主关闭门和窗后,“Notready”信息消失。2)在系统就绪状态下,房主用键盘键入4位密码,该密码和系统中存储的有效密码比较。如果密码错误,控制面板鸣叫一声后,自动复位以等待再次输入;如果密码正确,控制面板等待进一步操作。a)房主选择键入“Stay”,表示房主在家,只需激活房屋外部传感器,房屋内部传感器关闭。b)房主选择键入“Away”,表示房主出门,则激活房屋所有的传感器。3)传感器激活后,房主可以看到一个红色的警报灯。针对上述SafeHome系统,完成以下工作:1.分析系统的主要功能,采用UML用例图(UseCaseDiagram)建立需求模型。2.分析识别系统的类及其关系,给出系统的面向对象设计,采用UML类结构图(ClassDiagram)进行建模。3.分析系统的行为,识别用例功能所对应的对象之间的交互场景,采用UML序列图(SequenceDiagram)进行建模。第3页共4页三软件测试(30分)1.黑盒测试用来确认系统功能,不考虑程序的内部结构;而白盒测试侧重于程序的结构分析。两种测试方法互为补充。请分别举出至少一个例子,说明:1)黑盒测试能发现到白盒测试中无法检测到的错误。(3分)2)白盒测试能发现到黑盒测试中无法检测到的错误。(3分)2.白盒测试(9分)XY测试用例I03测试用例II12测试用例III-12测试用例IV31在结构测试用例设计中,有语句覆盖、条件覆盖、判定覆盖(即分支覆盖)、路径覆盖等。其中,(A)是最强的覆盖准则。为了对上图所示的程序段进行覆盖测试,必须适当地选取测试用例组。如x、y是两个变量,可供选择的测试用例组共有I、II、III、IV四组(如表中给出),则实现判定覆盖至少应采用的测试用例组是(B);实现条件覆盖至少应采用的测试用例组是(C)。供选答案:A:①语句覆盖②条件覆盖③判定覆盖④路径覆盖B-C:①I和II组②II和III组③III和IV组④I和IV组⑤I、II和III组⑥II、III和IV组3.用等价类划分法设计测试用例(15)三角形问题是在软件测试文献中使用最广的一个例子。三角形问题接受三个整数a,b和c作为输入,用做三角形的边。整数a,b和c必须满足以下条件:c1.1200ac2.1200bc3.1200cc4.abcc5.bacc6.cab程序的输出是由这三条边确定的三角形类型:等边三角形、等腰三角形、不等边三角形或非三角形,或是错误信息。1)如果三条边相等,则程序输出“正三角形”。2)如果任意两边相等,则程序输出“等腰三角形”。3)如果没有任何两条边相等,则程序输出“不等边三角形”。4)如果输入值违反了c1,c2,c3中的任何一个,则程序输出错误信息,如“b的取值不在允许范围内”。5)如果输入值违反了c4,c5,c6中的任何一个,则程序输出“非三角形”。第4页共4页对于上述三角形判定程序,请回答以下问题:1)任意设计5个测试用例,以覆盖上述5种不同的输出结果。(5分)2)请用等价类方法设计输入数据的等价类,并设计5个测试用例。(5分)3)请用边界值方法设计5个测试用例。(5分)