您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > 软件工程复习题-答案
一、选择题1.软件工程研究的主要内容有(ABCD)A.软件开发方法、技术B.软件开发工具及环境C.软件管理技术D.软件规范(国际规范)2.目前典型的软件开发模型有(ABCD):A.瀑布模型B.增量模型C.螺旋模型D.喷泉模型3.包含风险分析的软件工程模型是(C):A.瀑布模型B.增量模型C.螺旋模型D.喷泉模型4.软件危机的主要表现是(BD)A.软件成本太高B.软件产品的质量低劣C.软件开发人员明显不足D.软件生产率低下5.以下属于非功能需求的有(ABC)A.机构需求B.产品需求C.外部需求D.领域需求6.需求分析的作用是(ABCD)A.定义软件的范围及必须满足的约束B.确定软件的功能和性能及与其他系统成分的接口C.建立数据模型、功能模型和行为模型D.最终提供需求规格说明,并用于作为评估软件质量的依据7.需求工程的基本活动包括(ABCD)A.获取需求B.需求分析与建模C.确认需求D.进化需求8.需求获取之所以困难,其主要原因有(ABCD)A.缺乏领域知识B.存在默认的知识C.存在多个知识源D.客户可能的偏见9.常用的需求分析方法有(BCD)A.功能分析方法B.结构化分析方法C.信息建模法D.面向对象的分析方法10.数据词典中可包含的条目有(ABCD)A.数据流B.数据项C.文件D.加工11.属于分布式的软件体系结构有(B)A.仓库模型B.客户/服务器模型C.分布式对象结构D.中间件12.对于以下给出的几种类型的耦合,按照耦合性由高到低排列的是(A)(1)内容耦合(2)公共耦合(3)控制耦合(4)复合耦合(5)数据耦合A.12345B.13425C.12534D.5432113.对于块内部联系的类型,内聚性由弱到强的是(A)(1)偶然型(2)逻辑型(3)瞬时型(4)通信型(5)顺序型(6)功能型A.123456B.124536C.324156D.65432114.(C)是指相同的操作(或函数、过程)作用于不同的对象上并获得不同的结果A.继承性B.封装性C.多态性D.动态绑定15.以下UML的几种图中,属于动态模型的有(ACD)A.状态图B.类图C.合作图D.顺序图16.以下软件复用中,抽象程度最低的是(A)A.代码的复用B.设计结果的复用C.分析结果的复用D.测试信息的复用17.以下软件复用中,抽象程度最高的是(D)A.代码的复用B.设计结果的复用C.分析结果的复用D.测试信息的复用18.可复用构件必须具备的条件有(ABD)A.功能上的独立性和完整性B.较高的通用性和灵活性C.严格的质量保证D.较高的标准化程度19.大多数的构件分类模式可以归纳为(ABC)A.枚举分类B.刻面分类C.属性值分类D.聚集分类20.软件测试的基本原则有(BD)A.尽量由程序设计者自己进行测试B.注重测试用例的选择C.尽早地和不断地进行软件测试D.充分注意测试中的群集现象21.以下测试方法中属于静态分析方法的有(ABD)A.桌前检查B.代码会审C.白盒法D.步行检查22.步行检查时,常使用的分析方法有(AB)A.调用图B.数据流分析图C.数据流图D.状态图23.下面6种常用的逻辑覆盖测试方法,按发现错误能力由弱到强排列的是(A)(1)语句覆盖(2)判定覆盖(3)条件覆盖(4)判定-条件覆盖(5)条件组合覆盖(6)路径覆盖A.123456B.654321C.143265D.16234524.属于黑盒法的测试方法有(ABCD)A.等价分类法B.边值分析法C.错误推测法D.因果图法25.描述软件开发计划进度的主要工具有(ABCD)A.一般的表格工具B.甘特图C.时标网状图D.PERT技术与CPM方法26.CMM表示(A)A.软件过程成熟度模型B.软件过程工业化控制C.国际软件质量认证D.软件统一性标准27.软件过程和产品质量有详细的度量标准,并且得到了定量的认识和控制。以下哪一级具有上述特征(C)A.可重复级B.已定义级C.已管理级D.优化级二、填空题1.软件工程是在克服1960年代末所出现的软件危机的过程中逐渐形成与发展的。2.软件工程的发展已经历了四个重要阶段:传统的软件工程,对象工程,过程工程,构件工程3.软件生命周期包括的阶段有:问题定义,可行性研究,需求分析,软件设计,编码,测试,运行与维护。4.软件开发方法可分为两大类:面向过程的开发方法,面向对象的开发方法5.对系统应该提供的服务和所受到的约束进行理解、分析、建立文档、检验的过程称作需求工程6.软件系统的需求分为用户需求和系统需求两类。7.系统需求分为功能需求,非功能需求和领域需求。8.需求验证的内容包括:有效性检查,一致性检查,完备性检查和可检验性检查9.画分层DFD图应遵循的基本原则有:数据守恒与数据封闭原则,加工分解的原则,子图与父图的平衡,合理使用文件10.对数据流图中包含的所有元素的定义的集合构成了数据词典11.对基本加工说明有三种描述方式:结构化语言,判定表,判定树12.软件设计阶段的主要任务有:软件体系结构的设计,用户界面的设计,数据结构的设计,算法的设计13.软件设计准则有:软件结构的准则,模块化准则,软件独立性准则14.软件独立性的度量标准是两个定性指标:耦合性用于描述模块之间联系的紧密程度,内聚性用于描述模块内部联系的紧密程度15.对象的最基本的特征是封装性和继承性16.动态绑定是在运行时根据对象接收的消息动态地确定要连接的服务代码17.一个系统应从不同的角度进行描述,从一个角度观察到的系统称为一个视图18.UML语言定义的图有:用例图、类图、对象图、包图、状态图、活动图、顺序图、合作图、构件图和部署图。19.UML中,模型元素与模型元素之间的连接关系常见的有,关联、泛化、依赖和聚合,其中聚合是关联的一种特殊形式20.状态图用来描述一个特定对象的所有可能的状态及其引起状态转移的事件21.顺序图用来描述对象之间动态的交互行为,着重体现对象间消息传递的时间顺序22.结构化程序设计方法的基本思想是自顶向下、逐步求精23.按照复用活动所跨越的应用领域的类型分,软件复用可分为:横向复用和纵向复用24.基于软件复用的软件开发过程的角度分,软件复用可分为:生产者复用和消费者复用25.基于构件的软件的开发过程包括两个并发的子过程,一个是领域工程,另一个是基于构件的开发26.构件库系统应提供的主要功能:构件的存储、管理、检索以及库的浏览与维护等27.软件系统中的错误和缺陷通常不是均匀地分布在整个软件系统的各个部分的,而是成群集中出现的,这种现象称作群集现象。28.软件测试按先后顺序可分为:单元测试、集成测试、确认测试、系统测试和验收测试。29.软件测试方法可分为两类:静态分析和动态测试30.动态测试常用的方法有白盒法和黑盒法31.模块测试时,需要使用的2类辅助模块是驱动模块和桩模块。32.常用的软件调试策略有:试探法、归纳法、演绎法、回溯法和对分查找法调试。33.软件维护可分为:完善性维护、纠错性维护、适应性维护和预防性维护34.软件项目管理过程主要包括:项目启动、项目规划、项目实施和项目收尾35.CMM将软件过程的成熟度分为5个级别,从低到高分别是:初始级、可重复级、已定义级、已管理级和优化级。36.CMM实施软件过程改进采用的方法称为IDEAL模型,分五步:初始化、诊断、建立、行动和推进三、判断题1.软件就是程序,编写软件就是编写程序(×)2.瀑布模型的最大优点是将软件开发的各个阶段划分得十分清晰(√)3.面向对象的开发方法有面向对象的分析与设计,以及面向对象的程序设计组成(√)4.用户需求通常只描述系统的外部行为,而不涉及系统内部的特性,往往是较模糊的。(√)5.系统需求较详细的给出系统将要提供的服务,以及系统所受到的约束,对系统的需求文档的描述应该是精确的。(√)6.领域需求是由软件系统的应用领域所决定的特有的功能需求,或是对功能的约束(√)7.问卷调查法是对面谈法的补充,是从多个用户中收集需求信息的有效方式(√)8.信息建模法是从数据的角度对现实世界建立系统的信息模型,基本工具是ER图。(√)9.结构化分析方法是一种以数据、数据的封闭性为基础,从问题空间到某种表示的映射方法,由数据流图(DFD图)表示(√)10.软件设计的目标就是构造一个高内聚低耦合的软件模型(√)11.采用分布式对象结构,每个对象在逻辑上是平等的,它们可以互相为对方提供所需的服务(√)12.软件独立性的含义是指开发具有功能专一,模块之间无过多相互作用的模块(√)13.对模块图中每个模块的过程进行描述,常用的描述的方式有:伪代码,流程图,N-S图,PAD图等。(√)14.MVC的意思是“模型-视图-控制器”,该设计模式的主要优点是可以为一个模型在运行时同时建立和使用多个视图。(√)15.传统软件开发方法无法实现从问题空间到解空间的直接映射(√)16.传统软件开发方法无法实现高效的软件复用(√)17.对象可以是事、物、或抽象概念,是将一组数据和使用该数据的一组基本操作或过程封装在一起的实体(√)18.活动图描述了系统中各种活动的执行的顺序。刻化一个方法中所要进行的各项活动的执行流程。(√)19.构成状态图的模型元素有:活动、转移、对象、信号、泳道等(×)20.活动图中只有一个起点一个终点(√)21.状态图的终态则可以有多个(√)22.软件复用不仅是对程序的复用,它包括对软件生产过程中任何活动所产生的制成品的复用(√)23.代码的复用既包括目标代码的复用,也包括文本形式的源代码的复用(√)24.领域分析是特定领域内软件重用的基础,它的目标就是:发现和挖掘在特定领域内可以被复用的构件。(√)25.领域分析不是针对某个特定的软件系统,而是针对一类软件系统的共同的特征、知识和需求。比需求分析更一般、更抽象、更广泛的特征(√)26.软件测试的目的是为了发现和改正错误(√)27.驱动模块模拟主程序功能,用于向被测模块传递数据,接收、打印从被测模块返回的数据(√)28.桩模块用于模拟那些由被测模块所调用的下属模块功能(√)29.将经过确认测试的软件,与计算机硬件、外设、支持软件等一起,在实际运行环境下进行的测试,称作为系统测试(√)30.在开发过程中增加人员,一般可以提高软件生产率。(×)四、问答题1.设有一图书销售系统,其中一加工为“优惠处理”,条件是:顾客的营业额大于1000元,同时必须信誉好,或者虽然信誉不好,但是20年以上的老主顾。答:请分别用判定表和判定树描述该加工123456781000元YYYYNNNN信誉好YYNNYYNN20年YNYNYNYN优惠XXX正常XXXXXY-满足条件N-不满足条件X-选中判断的结论12341000元YYYN信誉好YNN-20年-YN-优惠XX正常XX2.渐增式组装测试方案中,自顶而下增值与自底而上增值各有何优、缺点?自顶而下增值优点:能够尽早发现系统主控方面的问题。缺点:无法验证桩模块是否完全模拟了下属模块的功能。自底而上增值优点:驱动模块较容易编写桩模块,能够尽早查出底层涉及较复杂的算法和实际的I/O模块中的错误。3.什么是测试和β测试?答:alpha测试是由一个用户在开发者的场所来进行的,软件在开发者对用户的指导下进行测试,开发者负责记录错误和使用中出现的问题,alpha测试是在一个受控的环境中进行的。Beta测试是软件的多个用户在一个或多个用户的实际使用环境下进行的测试。开发者通常不在测试现场,Beta测试不能由程序员或测试员完成。因而,Beta测试是在开发者无法控制的环境下进行的软件现场应用。在Beta测试中,由用户记下遇到的所有问题,包括真实的以及主管认定的,定期向开发者报告,开发者在综合用户的报告后,做出修改,最后将软件产品交付给全体用户使用。Beta测试着重于产品的支持性,包括文档、客户培训和支持产品的生产能力。只有当Alpha测试达到一定的可靠程度后,才能开始Beta测试。由于Beta测试的主要目标是测试可支持性,所以Beta测试应该尽可能由主持产品发行的人员来管理。α测试,β测试两大主要区别:1、测试地点2、测试技术人员是否在场4.什么是判定
本文标题:软件工程复习题-答案
链接地址:https://www.777doc.com/doc-213086 .html