吉大网院20秋《软件工程》复习题

[复制链接]
发表于 2021-1-5 13:02:23 | 显示全部楼层 |阅读模式
                               《软件工程》复习题
一填空题
软件危机是指在计算机软件的       和        过程中所遇到的一系列严重问题或难题。
软件工程的基本方法是把软件生存周期划分成若干个相对独立的阶段,每个阶段结束都必须进行 严格的技术审查和管理复审。这是保证软件        、工程进度以及        的非常重要的手段。
3.可行性研究的实质就是要进行一次压缩,简化了的系统分析和设计的过程,也就是在较高层次上以较抽象方式进行系统分析和系统设计的过程,可行性研究应着重考虑如下五个方面:技术可行性、经济可行性、           、操作可行性、             。
4.数据流图简称DFD(Data Flow Diagram)图,它是描述                  的有力工具。
5.              是一个不断进行揭示和判断的过程。在此过程中我们将对在软件可行性研究阶段确定的软件范围加以提炼使之具体化,并分析各软件部件可能采用的解决办法。
6.总体设计的目标是设计出                 ,确定系统由哪些模块组成及它们之间的关系。
7.模块独立性的概念是             、          、信息隐蔽概念的一个直接产物。
8.内聚标志着                      各个元素彼此间结合的紧密程度。
9.详细设计的优劣,决定了最终程序代码的质量,同时也关系到未来的软件测试和维护工作。为了使软件测试与维护人员在不需要阅读程序代码,就能了解模块内部的程序结构,详细设计的目标既要在逻辑上正确地实现每个模块的功能,又要设计出简明易懂的处理结构。            是实现上述目标的关键,是详细设计的基础。
10.编码需要程序设计语言的支持,程序设计语言自身的特性和编码风格对程序的           、可读性、可测试性和             有着直接的影响。相对于软件生存周期的其他阶段而言,编码是最容易也是人们掌握得较好的一个阶段。
11.程序的环形复杂度取决于程序控制流的复杂程度,它与程序的结构有关。当程序中       个数与             个数变动时,环形复杂度也随之变化。
12.测试是为了发现程序中的             而执行程序的过程。
13.软件测试过程一般分为五个步骤:模块测试、             、系统测试、            和平行运行。每一个步骤在逻辑上是前一个步骤的继续。特别是大型软件系统,必须严格按照测试步骤进行测试。
14.软件可维护性是指维护人员             、改正、改动和             这个软件的难易程度。
15.制定进度计划的任务是把工程项目分解成许多              ,然后安排这些作业的顺序,确定每项作业需要用的时间,以及作业                和            的时间。
16.软件工程是研究软件生产的一门学科。它采用工程的概念、       、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。
17.软件工程的基本方法是把软件生存周期划分成若干个相对独立的阶段,每个阶段结束都必须进行严格的________审查和        复审。这是保证软件工程质量、工程进度以及软件工程成本的非常重要的手段。
18.可行性研究的实质就是要进行一次压缩,简化了的系统分析和设计的过程,也就是在较高层次上以较抽象方式进行系统分析和系统设计的过程,可行性研究应着重考虑如下五个方面:_________、经济可行性、运行可行性、_________、法律可行性。
19.系统流程图是描绘            的传统工具。
20.在软件需求分析阶段,软件的开发者和软件需求者起着同样的重要作用。软件        设法把有关软件功能和性能的一些模糊的概念加以重述,使之成为具体的细节,而软件          则起着询问、顾问和问题解决者的作用。
21.总体设计也称        ,它的任务是划分出组成系统的物理元素——程序、文件、数据库、人工过程和文档等,至于每个物理元素的具体内容将在详细设计阶段完成。
22.模块独立性的概念是            、抽象化、             概念的一个直接产物。
23.耦合是对一个              不同模块之间互连程度的度量。
24.如果说总体设计是软件结构的建立过程,那么详细设计就是要建立和完善上述过程的细节,给出软件结构中                过程描述,从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序。
25.编码需要程序设计语言的支持,程序设计语言自身的特性和编码风格对程序的         、可读性、              和可维护性有着直接的影响。相对于软件生存周期的其他阶段而言,编码是最容易也是人们掌握得较好的一个阶段。
26.McCabe方法的核心是:通过定量分析程序中              或            ,对软件测试难度进行定量度量,对软件最终的可靠性进行预测。
27.软件测试是保证软件质量的关键步骤,它是对软件            、设计和       的最后审查。
28.软件测试过程一般分为五个步骤:           、         、系统测试、验收测试和        。每一个步骤在逻辑上是前一个步骤的继续。特别是大型软件系统,必须严格按照测试步骤进行测试。
29.软件系统的文档分为         和             两大类。
30.配置管理的目的是保证资料的完整性与一致性,监督控制程序、文档和数据的             。
二、简述题
31.画出瀑布模型简图,阐述该模型的特点。
32.某装配厂有一座零件仓库,仓库中现有各种零件的数量以及每种零件的库存量临界值等数据记录在库存清单主文件中。如果哪种零件的库存量少于它的临界值时,则应报告给采购部门以便定货。规定每天向采购部门送一次定货报告。画出该系统完整的数据流程图。
33.简述所有分析方法都应遵守的准则是什么。
34.简述软件项目失败原因。
35.阐述内聚的概念,给出内聚的种类。
36.简述实体-关系图中的三种联系,举例说明。
37.阐述耦合的概念,给出耦合的种类
38.针对下面用C语言描述的程序,回答下述问题。
画出该程序对应的流图;
计算该程序的环形复杂度;
如果对该程序按照基本路径测试法进行白盒测试,请给出对应的线性独立路径集合。

                int average( )
                {
1:                char ch=0;
                        int count=0;
                        double temperature=0.0;
                        double average=0.0;
                        do {
2:                        cout<<"Enter a temperature reading: ";
                                cin>> temperature;
                                average += temperature;
                                count++;
                                cout<<"Do you want to enter another?(y/n):";
                                cin>>ch;
                                cout<<endl;
3:                } while (ch=='y'||
4:                        ch==’Y’);
5:                average /= count;
                        cout<<"Average temperature is "<<average<<endl;
                        return 0;
39.根据如下工程网络图回答下列问题,设时间单位为天。
/
(1)事件J的最早开始时间是多少?
(2)事件G的最晚开始时间是多少?
(3)给出该工程网络图的关键路径。
(4)在不延误项目总工期的前提下,活动E-G最多可以推迟几天开始?
40.把DFD图映射成软件结构的过程。

三、判断正误软件项目的质量管理工作可以交给该项目的测试团队来做。
使用等价划分法设计测试方案首先需要划分输入数据的等价类。
设计测试用例时,应该使每个测试方案只覆盖一个无效的等价类。
软件工程基本原理提倡采用大而全的开发团队。
模块的控制域定义为受该模块内一个判定影响的所有模块的集合。
软件可靠性是程序在给定的时间间隔内,按照规格说明书的规定成功运行的概率。
软件项目管理先于任何技术活动之前开始。
可行性研究的目的是用最小的代价在尽可能短的时间内确定系统的架构。
在一段程序中已经发现的错误数目往往和尚未发现的错误数目成反比。
软件生命周期由软件设计、软件开发和运行维护3个时期组成。
11.做功能测试或数据驱动测试,黑盒测试又称为结构测试或逻辑驱动测试。
12.指系统要记录和维护的信息;边界类指系统和外部要素间交互的边界;控制类指Use Case中行为的协调。
13.试是软件质量保证的唯一手段。
14.中与计算机硬件特性有关的部分集成在一起容易导致系统可移植性的降低。
15.象分析是提取和整理用户需求,并建立问题域精确模型的过程。面向对象设计则是把分析阶段得到的需求转变成符合成本和质量要求的、抽象的系统实现方案的过程。
16.方法而不是用文件结束符或输入序列结束符来判别输入的结束,这样做是一种良好的程序设计风格。
17.盖法则一定可以查出在判定中某些条件中关系运算符使用有误时产生的错误。
18.志一个模块内各个元素彼此结合的紧密程度,模块独立性由弱到强的同时模块内聚性由低到高的顺序是:功能内聚、信息内聚、通信内聚、过程内聚、时间内聚、逻辑内聚、巧合内聚。
19.象方法学的要点:尽可能模拟人类习惯的思维方式,使描述问题的问题空间与实现解法的解空间在结构上尽可能一致。以数据和信息为主线,把数据和处理相结合。
20.划分法的主要思想是首先将所有的输入数据划分成若干个有效等价类,然后设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的等价类,重复这一步,直到所有的等价类都被覆盖为止。
21手册要使用专门术语,并充分地描述该软件系统的结构及使用方法。
22.发时,一个错误发现得越晚,为改正它所付出的代价就越大。
23.析报告应把每个模块实际测试的结果,与软件需求规格说明书和概要设计说明书中规定的要求进行对照并作出结论。
24.发计划除去规定项目开发所需的资源、开发的进度等以外,还可以包括用户培训计划。
25究报告应评述为了合理地达到开发目标而可能选择的各种方案,以便用户抉择。因此,编写者不必提出结论。四、完成下列各题1. 名词解释:软件配置管理。
2. 软件规模估算的代码行方法存在哪些影响估算结果的问题?
3. 根据如下工程网络图回答下列问题,设时间单位为天。
/
(1)事件J的最早开始时间是多少?
(2)事件G的最晚开始时间是多少?
(3)给出该工程网络的关键路径。
(4)在不延误项目总工期的前提下,活动E-G最多可以推迟几天开始? 4 假设某公司人力资源管理系统中有如下一段代码。根据代码,回答下列问题。
(1)画出GetResult函数对应算法的判定树。
(2)计算GetResult函数的环形复杂度。
(3)根据(2)的结果,指出该函数存在的问题。
(4)根据模块独立性的内聚度划分,该函数的内聚度属于哪种?
(5)如何修改该函数,以达到较好的内聚度并解决(3)中的问题?
(6)根据上述问题的结论试叙述模块内聚度与单元测试工作量之间的关系。void GetResult(Manager m, Request r)
{
        if (m.ManagerLevel == “经理”) {
                if (r.RequestType == “请假” && r.Number <= 2) {
                        cout << m.Name << “:” << r.RequestContent << “ 被批准”;
                } else {
                        cout << m.Name << “:” << r.RequestContent << “ 我无权处理”;
                }
        }
        else if (m.ManagerLevel == “总监”) {
                if (r.RequestType == “请假” && r.Number <= 5) {
                        cout << m.Name << “:” << r.RequestContent << “ 被批准”;
                } else {
                        cout << m.Name << “:” << r.RequestContent << “ 我无权处理”;
                }
        }
        else if (m.ManagerLevel == “总经理”) {
                if (r.RequestType == “请假”) {
                        cout << m.Name << “:” << r.RequestContent << “ 被批准”;
                } else if (r.RequestType == “加薪” && r.Number <= 500) {
                        cout << m.Name << “:” << r.RequestContent << “ 被批准”;
                } else if (r.RequestType == “加薪” && r.Number > 500) {
                        cout << m.Name << “:” << r.RequestContent << “ 再说吧”;
                }
        }
}5述瀑布模型的内容和特点。
6.是软件维护,软件维护有哪些主要类型?试分别说明之。
7.是软件可靠性和可用性?假设用R(t)表示软件可靠性函数,A(t)表示软件可用性函数,对于允许修复并有一定修复能力的部门,R(t)≥A(t)成立还是A(t)≥R(t)成立?
8.是软件体系结构风格?任意列举3种体系结构风格。
9述软件自顶向下集成测试的过程,说明这种集成的优缺点。10.如下工程网络图,请计算每个事件的最早时刻(EET)和最迟时刻(LET),重新画出带有EET和LET的工程网络图,找出其中的关键路径,并在重新画出的工程网络图中用括号及括号中的数字标出每个作业的机动时间。11.一个长度为48000条指令的程序时,第一个月由甲、乙两名测试员各自独立测试这个程序。经过一个月测试后,甲发现并改正20个错误,使MTTF达到8h。与此同时,乙发现24个错误,其中的6个甲也发现了。以后由甲一人继续测试这个程序。问:
(1)刚开始测试时程序中总共有多少个潜藏的错误?
(2)为使MTTF达到240h,必须再改正多少个错误?
(注:评测部在评估时,作了如下三个假设:A. 在测试前,单位长度的故障个数ET / IT 为一常数,此常数基本上落在一个固定的范围内。其中IT 为被测程序的长度(即机器指令条数),ET 为被测程序中故障总数。B. 失效率正比于软件中剩余的(潜伏的)故障数,平均无故障时间MTTF与单位长度的剩余故障个数成反比,即 MTTF = 1/(K*εr )。其中εr 为单位长度剩余故障个数。C. 测试中发现的错误都得到了及时改正,在测试过程中没有引入新的错误。)
               
12.述牙科诊所管理系统的用例模型(画出Use Case图)和对象模型(画出类图)。(10分)
王大夫在小镇上开了一家牙科诊所。他有一个牙科助手、一个牙科保健员和一个接待员。王大夫需要一个软件系统来管理预约。
当病人打电话预约时,接待员将查阅预约登记表,如果病人申请的就诊时间与已定下的预约时间冲突,则接待员建议一个就诊时间以安排病人尽早得到诊治。如果病人同意建议的时间,接待员将输入约定时间和病人的名字。系统将核实病人的名字并提供记录的病人数据,数据包括病人的病历号等。在每次治疗或清洗后,助手或保健员将标记相应的预约诊治已经完成,如果必要的话会安排病人下一次再来。
系统能够按病人姓名和按日期进行查询,能够显示记录的病人数据和预约信息。接待员可以取消预约,可以打印出前两天预约尚未接诊的病人清单。系统可以从病人记录中获知病人的电话号码。接待员还可以打印出关于所有病人的每天和每周的工作安排。13.使用基本路径测试方法,设计测试下面用盒图所表示的程序的测试用例(分四步完成):14.换分析方法,按照如下数据流图中所标出的传入部分、变换中心和传出部分,将数据流图转换成软件结构,要求写出具体变换的步骤。(5分)
转载注明无忧答案网
快速回复 返回顶部 返回列表