软件工程练习题

  • 格式:doc
  • 大小:101.50 KB
  • 文档页数:11

软件工程选择题:(B)1.“软件危机”产生的主要原因是。

A.软件日益庞大B.开发方法不当C.开发人员编写程序能力差D.没有维护好软件(D)2.软件工程学的一个重要目标是。

A.提高程序的执行效率B.降低程序对存储空间的要求C.提高软件的可理解性D.提高软件的可维护性(D)3.编写程序的工作量通常占用软件开发总工作量的。

A.80%B.60%C.40%D.20%(A)4.数据字典是对数据定义信息的集合,它所定义的对象都包含于A.数据流图B.程序框图C.软件结构D.方框图(B)5.可行性分析是在系统开发的早期所做的一项重要的开发的决策依据,因此必须给出的回答。

A.确定B.行或不行C.正确D.无二义(C)6.需求分析阶段最重要的技术文档之一是。

A.项目开发计划B.设计说明书C.需求规格说明书D.可行性分析报告(C)7.为了提高模块的独立性,模块内部最好是( )。

A.逻辑内聚B.时间内聚C.功能内聚D.通信内聚(D)8.需求分析阶段的任务是确定。

A.软件开发方法B.软件开发工具C.软件开发费D.软件系统的功能(D)9.一个成功的测试可以。

A.表明程序没有错误B.发现所有错误C.提高软件可靠性D.发现尚未发现的错误(A)10.关联是建立之间关系的一种手段。

A.类B.对象C.角色D.属性(A)11.软件详细设计的主要任务是确定每个模块的。

A.算法和使用的数据结构B.外部接口C.功能D.编程(B)12.程序的三种基本控制结构是( )。

A.过程、子程序积分程序B.顺序、选择和重复C.递归、堆栈和队列D.调用、返回和转移(D)13.软件测试方法中,黑盒测试方法和白盒测试方法是常用的方法,其中黑盒测试方法主要用于测试。

A.结构合理性B.软件外部功能C.程序正确性D.程序内部逻辑(B)14.在软件开发和维护的过程中,为了定量地评价软件质量,必须对软件特性进行A.测试B.度量C.评审D.维护(A)15.在软件工程学中,我们把一组具有相同数据结构和相同操作的对象的集合定义为,此定义包括一组数据属性和在数据上的一组合法操作。

A.类B.属性C.对象D.消息(D)16.快速原型模型的主要特点之一是A.开发完毕才见到产品B.及早提供全部完整的软件产品C.开发完毕后才见到工作软件D.及早提供工作软件(B)17.因计算机硬件和软件环境的变化而做出的修改软件的过程称为A..校正性维护B.适应性维护C.完善性维护D.预防性维护(C)18.汽车有一个发动机。

汽车和发动机之间的关系是_____关系。

A.继承关系 B.依赖关系C.聚集关系 D.构成关系(C)19.对象是OO方法的核心,对象的类型有多种,通常把例如飞行、事故、演出、开会等等,称之为A.有形实体B.作用C.事件D.性能说明(A)20. 影响软件可维护性的决定因素是A.文档B.可理解性 C.可测试性 D.可修改性填空题:1)软件工程的三要素:过程、方法、工具。

2)可行性研究主要包括:经济性可行性、技术可行性、法律可行性和运行可行性。

3)从工程管理的角度看,软件设计可分为概要设计和详细设计两大步骤。

4)数据耦合传递的是数据参数_,控制耦合传递的是_控制信息_。

5)逆向工程与再工程是目前预防性维护采用的主要技术。

6)软件测试的步骤:模块测试、子系统测试、系统测试、验收测试、平行运行。

7)黑盒测试法有:等价划分、边界值分析、错误推测法__。

8)维护的种类:改正性维护、适应性维护、完善性维护、预防性维护。

9)在面向对象方法学中,对象的模板称之为__ _____。

10)UML的类包含三个部分:类的名称、类的属性、类的方法判断题1)软件开发小组人数越多越好。

(Χ)2)软件测试的目的是为了证明一个软件的设计没有错误,只有没有任何错误的软件才能使用。

(Χ)3)在可行性研究中最难决断和最关键的问题是技术可行性。

(Χ)4)软件测试中,应该尽量穷尽所有的数据,以便保证测试的质量。

(Χ)5)对象是属性和相关操作的封装。

()6)活动图表示对象的状态-事件-响应行为()7)流程图用三个基本的控制构件“分支”,“循环”,“重复”来表示()8)改造程序结构,要降低藕合度,提高内聚度。

()9)计算机软件由文档和数据组成。

()10)软件开发采用了软件工程之后,就不会发生软件危机了。

()名词解释:1)软件生存周期:是从设计软件产品开始到产品不能使用为止的时间周期。

2)软件需求:是指用户对要实现的软件系统在功能、行为、性能、设计约束等方面的期望。

3)结构程序设计:4)内聚性: 内聚性,又称块内联系,指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。

5)独立性:6)白盒测试:是把测试对象看做一个透明的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息设计或选择试用例,对程序的所有逻辑路径进行测试。

检验程序中的每条通路是否都能按预定要求正确工作,白盒测试又称为结构测试。

7)黑盒测试:黑盒测试——按照程序的功能测试程序,检验与程序功能有关的输入、输出与程序执行是否正确。

有四种方法既等价分类法、边界值分析法、错误猜测法和因果图法软件调试:软件调试是在进行了成功的测试之后才开始的,它是查找、分析和纠正程序中错误的过程,也称为纠错。

8)软件维护:指软件运行/维护阶段对软件产品所作的修改定义为软件维护。

9)软件工程环境:是指支持软件产品开发、维护和管理的软件系统,它在统一的集成机制下由一系列软件工具组成。

美国定义:一个软件工程环境是一组方法、过程及计算机程序的整体化构件,它支持需求定义、程序生成直到维护的整个软件生存周期。

①解答题:1) 软件生存周期通常划分为几个时期、几个阶段?答:(1)软件生存周期通常划分为软件定义、软件开发和运行维护3个时期。

(2)软件生存周期有以下几个阶段:①问题定义②可行性研究③需求分析④软件设计⑤编码和单元测试⑥综合测试⑦运行/维护2) 软件工程的风险分析包括那几部分?答:①风险识别②风险预测③风险驶驭3) 简述需求分析的步骤?答:一、需求获取需求获取通常从分析当前系统包含的数据开始。

例如当前系统使用的账册、卡片和报表,手工处理当前信息的方法与存在的不足,用户希望改进的主要问题及其迫切性等。

系统需求包括用户对软件功能的需求和界面的需求。

为了收集到全面完整的信息,需将客户按使用频率、使用特性、优先级等方面进行分类,每类选择若干用户代表,从代表那里收集他们希望的软件系统功能、用户与系统间的交互和对话方式等需求。

在确定功能需求之后,还需考虑对质量的要求,包括性能、有效性、可靠性和可用性等,提高用户对软件的满意程度。

如果客户的要求和已有产品很相似,则需要考虑可否复用一些已有的软件组件。

二、需求提炼:分析建模需求提炼的主要任务是建立分析模型。

图形化的分析模型是说明软件需求极好的手段,常用的模型包括数据流图、实体关系图、控制流图、状态转换图、用例图、类对象关系及其行为图等。

除建立系统模型外,有些软件还需要绘制系统关联图、创建用户接口原型、确定需求优先级别等。

系统关联图用于定义系统与系统外部实体之间的界限和接口的简单模型,同时也明确了通过接口的信息流和物质流。

当开发人员或用户一时难于确定需求时,也可以开发一个用户接口原型,通过评价原型使用户和其他参与者能更好地理解所要解决的问题。

对一个系统而言,如果各项需求、软件特性的优先级别不同,还必须确定本版产品将包括哪些特性或哪类需求。

三、需求描述:编写S R S软件需求规格说明必须用统一格式的文档进行描述。

为了使需求描述具有统一的风格,可以采用已有的且可满足项目需要的模板,例如在国际标准I E E E标准830-1998(I E E E-1998)中和我国国家标准G B9385中描述的S R S模板,也可以根据项目特点和软件开发小组的特点对标准进行适当的改动,形成自己的S R S模板。

为了让所有项目相关人员明白S R S中为何提出这些功能需求,应该指明需求的来源,例如来自客户要求,或是某项高层系统需求,或业务规范、政府法规、标准或别的外部来源等。

最好为每项需求注上标号,以便对需求进行跟踪,记录需求的变更,并为需求状态和变更活动建立度量。

四、需求验证由分析员提供的软件需求规格说明初稿往往看起来觉得是正确的,实现时却出现需求不清、不一致等问题;有时以需求说明为依据编写测试计划,也可能发现说明中有二义性。

所有这些都必须通过需求验证来改善,确保需求说明可作为软件设计和最终系统验收的依据。

以教材购销系统中的教材销售系统为例,说明需求分析的步骤。

需求分析阶段的工作,可以分为四个方面:问题识别,分析与综合,制订规格说明,评审.问题识别就是从系统角度来理解软件,确定对所开发系统的综合要求,并提出这些需求的实现条件,以及需求应该达到的标准.这些需求包括:功能需求(做什么),性能需求(要达到什么指标),环境需求(如机型,操作系统等),可靠性需求(不发生故障的概率),安全保密需求,用户界面需求,资源使用需求(软件运行是所需的内存,CPU等),软件成本消耗与开发进度需求,预先估计以后系统可能达到的目标.分析与综合逐步细化所有的软件功能,找出系统各元素间的联系,接口特性和设计上的限制,分析他们是否满足需求,剔除不合理部分,增加需要部分.最后,综合成系统的解决方案,给出要开发的系统的详细逻辑模型(做什么的模型).制订规格说明书即编制文档,描述需求的文档称为软件需求规格说明书.请注意,需求分析阶段的成果是需求规格说明书(好象软考曾经考过这个问题),向下一阶段提交.评审对功能的正确性,完整性和清晰性,以及其它需求给予评价.评审通过才可进行下一阶段的工作,否则重新进行需求分析。

4) 为什么模块设计要采用信息隐藏原理5) 黑盒测试在设计测试用例时旨在说明什么?6) 影响软件维护的因素有哪些?答:在软件的维护过程中,需要花费大量的工作量,从而直接影响了软件维护的成本。

应当考虑有哪些因素影响软件维护的工作量,相应应该采取什么维护策略,才能有效地维护软件并控制维护的成本。

系统大小:系统越大,理解掌握起来越困难。

系统越大,所执行功能越复杂。

因而需要更多的维护工作量。

程序设计语言:使用强功能的程序设计语言可以控制程序的规模。

语言的功能越强,生成程序的模块化和结构化程度越高,所需的指令数就越少,程序的可读性越好。

系统年龄:老系统随着不断的修改,结构越来越乱;维护人员经常更换,程序又变得越来越难于理解。

许多老系统在当初并未按照软件工程的要求进行开发,因而没有文档,或文档太少。

在长期的维护过程中文档在许多地方与程序实现变得不一致,在维护时就会遇到很大困难。

数据库技术的应用:使用数据库,可以简单而有效地管理和存储用户程序中的数据,还可以减少生成用户报表应用软件的维护工作量。