1、软件工程题库一. 单项选取题1. D 2. B 3. A 4. C 5. D 6. C 7. D 8. D 9. D 10. B 11. D 12. A 13. C 14. D 15. A 16. D 17. B 18. B 19. B 20. C 21. D 22. D 23. A 24. C 25. C 26. A 27. C 28. A 29. C 30. D 31. D 32. D 33. B 34. B 35. B 36. A 37. A 38. D 39. C 40. A 41. D 42. A 43. D 44. D 45. A 46. D 47. A 48. D 49. B 5
2、0. B 51. B 52. D 53. A 54. D 55. C 56. D 57. B 58. C 59. C 60. D 61. D 62. B 63. C 64. C 65. B 66. B 67. B 68. A 69. C 70. A 71. B 72. A 73. C 74. C 75. B 76. D 77. B 78. A 79. B 80. B 81. C 82. C 83. C 84. B 85. D 86. B 87. C 88. C 89. A 90. A 91. C 92. D 93. D 94. B 95. B 96. D 97. D 98. A 99. B 1
3、00. C 101. C 102. C 103. A 104. C 105. D 106. C 107. A 108. D 109. A 110. A 111. C 112. B 113. C 114. C 115. C 116. C 117. A 118. C 119. D 120. D 121. B 122. B 123. A 124.B 125. A 126. A 127. A 128. B 129. A 130. D 131. B 132. C 133. D 134. A 135. A 136. B 137. B 138. A 139. D 140. C 141. D 142. A 1
4、43. C 144. A 145. B 146. B 147. A 148. B 149. C 150. B 151. D 152. C 153. B 154. A 155. B 156. D 157. C 158. B 159. B 160. B 二. 判断改错题1. 答:错。 是 改成 不是。2. 答:对的3. 答:错。 它是软件唯一合成技术 改成 它所具备封装和集成特性。4. 答:错。集成化CASE环境集成涉及工具集成,界面集成和办法集成。5. 答:对的6. 答:错,对于特定程序而言,满足条件覆盖测试数据,不一定必然也满足鉴定覆盖。7. 答:错。每一种对象都是其相应类一种实例。8. 答:
5、对的。9. 答:对的。10. 答:错。HTML 改成 统一建模语言UML11. 答:对的12. 答:错。进行需求分析 改成 度量软件规模 13. 答:对的 14. 答:对的。15. 答:错。 设计成果 改成 设计模式16. 答:错误。一定期间间隔 改成 基线 17. 答:错误。 程序 改成 文档18. 答:对的19. 答: 对的20. 答:错误。 解决规格阐明 改成 实体关系图21. 对。22. 错。增量模型 改为 瀑布模型23. 对。24. 错。 编写程序 改为 测试阶段25. 错。 逻辑实现 改为 物理实现26. 答:错。 模块内聚限度越高,耦合限度越低。27. 答:对的 28. 答:对的
6、 29. 答:对的30. 答:错误。提高程序运营效率 改成 减少了程序运营效率。31. 答: 对的32. 答:错误。软件执行环境 改成 算法和数据构造33. 答:对的34. 答:错误。顺序内聚 改成 偶尔内聚35. 答:错误。构造测试 改成 单元测试36. 答:对的37. 答:错。 系统规定 改成 顾客规定38. 答:对的。39. 答:错误。顾客协助问题 改成 输入输出数据。40. 答:错误。 控制耦合 改成 内容耦合三. 名词解释1. 答:软件是计算机程序、数据及有关各种文档集合。2. 答:计算机辅助软件工程(CASE)工具是一种贯穿于软件生存周期各个阶段开发工具,在它支持下,可以实现软件开
7、发自动化。3. 答:构造化办法是软件项目开发一种分析办法,它依照软件项目内部数据传递、变换关系,遵循自顶向下逐渐求精指引思想,采用抽象与分解原则,将复杂软件项目逐渐分解,通过软件开发描述工具及其构造化语言描述得到软件系统逻辑模型。4. 答:IDEF办法是针对计算机辅助制造工程中,用于进行复杂系统分析和设计办法,它是在构造化分析于设计技术基本上进行。5. 答:表达软件构造一种图形工具,可以描述软件总模块层次(H图)和每个模块输入、输出及其解决(IPO图)详细状况。6. 答:继承性是子类自动共享父类数据构造和办法机制,这是类之间一种关系。7. 答:多态性是指相似操作或函数、过程可作用于各种类型对象
8、上并获得不同成果。不同对象,收到同一消息可以产生不同成果。8. 答:封装性是指所有软件部件内部均有明确范畴以及清晰外部边界。每个软件部件均有和谐界面接口,软件部件内部实现与外部可访问性分离。封装性是保证软件部件具备优良模块性基本。9. 答:事件是指定期刻发生某件事情。它是事情发生信号,它没有持续时间,它是一种相对性迅速事件。10. 答:状态图是一种图,用结点表达状态,结点用圆圈表达;圆圈内有状态名,用带箭头连线(弧)表达状态转换,上面标记事件名,箭头方向表达转换方向。状态图反映了状态与事件关系。11. 软件质量保证就是向顾客及社会提供满意高质量产品,保证软件产品从诞生到消灭为止所有阶段质量活动
9、,即拟定、达到和维护需要软件质量而进行所有有筹划、有系统管理活动。12. 时间冗余是指以重复执行指令或程序来消除瞬间时错误带来影响。13. 瀑布模型又称老式模型。规定项目所有活动都严格按照顺序惊醒,一种阶段输出是如下一种阶段输入。瀑布模型没有反馈,一种阶段完毕后,普通不返回。14. 答:关联表达类之间一种关系,就是某些也许链集合。15. 答:基线是软件生存期中各开发阶段一种特定点,它作用是把开发各阶段工作划分更加明确化,使本来持续工作在这些点上断开。16. 答:进行开发成本估算以及理解获得效益评估,拟定要开发项目与否值得投资开发。17. 答:要开发项目与否存在任何侵犯、妨碍等责任问题,要开发项
10、目目运营方式在顾客组织内与否行得通,既有管理制度、人员素质、操作方式与否可行。18. 答:投资回收期就是使合计经济效益等于最初投资费用所需时间。19. 答:即有直接因果关系在程序中可以同步解决。20. 答:输入数据与输出数据构造找不到相应关系状况,称为构造冲突。21. 答:将系统化、规范、可度量办法应用于软件开发、运营和维护过程,即将工程化应用于软件中。22.答:容错技术:对那些无法避开差错,使其影响减少至最小技术.也就是说,当错误发生时,尽量地不影响其他系统元素,或是把顾客影响限制在某些容许范畴内. 23.答:构造化维护:如果维护工作是从评价完整软件配备开始入手,拟定软件重要构造特点,性能特
11、点以及接口特点;预计规定改动将带来影响,并且筹划实行途径.然后一方面修改设计并且对所做修改进行仔细审查.接下来编写相应源程序代码;使用在测试阐明书中包括信息进行回归测试;最后,把修改后软件再次交付使用. 24. 答:模块独立性是模块化,抽象和信息隐蔽直接产物.每个模块只要完毕独立功能,与其他模块联系越少,则模块独立性就越强.通过模块与模块之间耦合性和模块内部内聚性来衡量模块独立性.25. 答:指开发人员要精确理解顾客规定,进行细致调查分析,将顾客非形式需求陈述转化为完整需求定义,再由需求定义转换到相应形式功能规约过程。26. 答:模块化是指把一种复杂问题按照自定向下逐渐分解原则,划分为若干个简
12、朴模块过程。每个模块完毕一种特定子功能,所有模块按照某种办法组装起来成为一种整体,完毕整个系统所规定功能。27. 答:信息屏蔽是指对某一种模块来说,其内部涉及数据或过程不能被其她模块访问,运用信息屏蔽可以限制对模块过程和局部数据构造存取。28. 答:构造化设计优化原则是指在设计软件划分模块时尽量做到模块之间低耦合,模块内部高内聚,同步要保持模块相对独立性。29. 答:软件编码是将详细设计阶段得到模块解决过程转换成为用某种计算机程序设计语言设计程序,也就是编写源程序过程。30. 答:程序设计风格是指在编写程序时所体现出来编程习惯、逻辑思路等特点。好程序设计风格对于提高开发效率、保证软件质量有较大
13、协助作用。31. 答:数据流图:是描述数据解决过程工具.它从数据传递和加工角度,以图形方式刻画数据流从输入到输出移动变换过程. 32. 答:软件维护是软件生命周期最后一种阶段,是在软件已经交付给顾客使用之后,为了改正软件错误或满足新需要而修改软件过程.它涉及四种类型维护活动:改正型维护,适应型维护,防止型维护和完善型维护.33. 软件测试是一种为了寻找软件错误而运营程序过程.目就是为了发现软件中错误.一种好测试用例是指很也许找到迄今为止尚未发现错误用例.一种成功测试是指揭示了迄今为止尚未发现错误测试.34. 程序可维护性:为满足顾客新需求,或当环境发生了变化,或运营中发现了新错误时,对一种已投
14、入运营软件进行相应诊断和修改所需工作量大小.35. 软件生存周期是指从提出软件开发规定开始,直到该软件报废不用为止整个时期。这个时期又分为若干个阶段,对软件生产管理和进度控制有重要作用,使软件开发有相应模式,流程,工序和环节. 36. 答:白盒法测试是针对程序语句构造对数据解决过程进行测试。37. 答:黑盒法测试是针对软件生存周期各个阶段软件文档进行测试。38. 答:校正性维护是指在软件开发阶段,由于软件中难免存在有某些隐含错误,在软件交付使用后,为了能辨认和修改这些错误而进行工作。39. 答:对象消息是指对象要执行操作阐明,涉及接受消息对象名、要执行操作名称、必要参数。40.答:面向对象设计
15、是把分析阶段得到需求分析模块转换为抽象系统实现方案过程,面向对象设计准则是将对象模块化、数据抽象化、对象信息屏蔽、模块间低耦合高内聚。四. 简答题1. 答:软件危机详细体现是软件开发筹划难以制定。进度难以控制,开发出软件系统不能满足顾客需求。软件开发办法不规范,没有统一文档。软件可维护性差。由于缺少软件质量保证体系,缺少完整测试机制,软件可靠性差。2. 答:可行性分析和项目开发筹划阶段重要是由顾客提出软件开发需求,系统分析员进行调查,明确软件开发任务,边界,功能,规模后,进行可行性研究,最后为顾客提供软件项目可行性报告和项目开发筹划,并将这些软件开发文档交顾客进行讨论和审查。3. 答:数据字典
16、(DD)用于阐明数据流图中各个元素含义,对各个元素阐明是原则,无二义性。数据字典是需求阐明书重要构成某些,数据字典和数据流图构成了系统逻辑模型。4. 答,(1)收集来自顾客各个方面对软件功能规定,这些需求体现形式是多样,不系统,有些甚至是不明确。(2)对得到需求进行补充,完善和加工,运用软件开发描述工具,如数据流图,数据字典表达出软件项目逻辑构造。(3)运用分析与综合思想进行进一步整顿,形成软件需求阐明书,以及其她有关软件开发文档。这些文档为后期软件开发提供根据。5. 答:(1)分析当前系统物理模型 技术人员通过对当前系统调查,分析出当前系统实际工作过程。 (2)抽象出当前系统逻辑模型 在对当
17、前系统进行分析后,区别出本质因素和非本质因素,得到系统抽象工作过程。6. 答:软件测试要通过单元测试,集成测试,确认测试,系统测试四个阶段。 单元测试是对源程序中每一种程序单元进行测试,目是发现模块中错误。 集成测试是将各个模块组装起来进行测试。 确认测试是检查已经实现软件与否符合软件需求阐明书各种规定。 系统测试是对软件项目进行综合测试。7. 答:非渐增式办法和渐增式办法属于软件测试过程集成测试。非渐增式办法将所有通过测试单元模块一起组装起来进行测试。渐增式办法采用逐渐组装模块办法,组装一某些测试一某些。8. 答:在软件开发过程中,如果各阶段没有严格科学管理和规划,会给软件维护带来某些困难。
18、不利于软件维护。这重要是由于对于修改程序人员来说,在原有基本上进行程序修改,读懂别人程序比较困难;在软件开发过程中,文档与实际程序设计会存在某些差别。软件开发与维护这两项工作在时间上,人员上存在差别,同步维护工作会遇到某些困难,因而软件维护工作不是非常吸引人。9. 答:迅速原型开发办法可以按照迅速分析,构造原型,运营原型,评价原型,修改原型开发环节进行。10. 答:对象设计涉及设计对象,建立对象模型,对象算法设计,优化设计,实现对象控制,调节对象继承,设计对象关联关系。11. 答:分阶段生命周期模型可以提高软件开发过程可见性,通过将阶段当作里程碑来更好地管理项目;并且更加详细阶段将会容许更加严
19、密地监控进程。12. 答:A,市场调研 B,项目筹划、成本预计、编制需求规格阐明书(可同步进行) C,需求复审 D,总体设计 E,详细设计 F,设计复审 G,实现 H,单元测试 I,系统测试 J,验收测试13. 答:功能分解法,数据流办法,信息建模办法,面向对象办法14. A,在构造体中所有与否都初始化? B, 所有变量与否都声明了? C, 每一种“”与否均有一种匹配“” D, 每一种相等比较与否均有连个“=”? E, 任何“while”语句或“if”条件语句都以“;”结束? F, 每一种类声明与否都以“:”结束? 15. 答:A,里程碑必要与软件开发过程中进程先联系 B,当完毕一种里程碑时必
20、要是显而易见。 16. 答:建立对象模型重要注意系统中对象构造,对象属性和对象操作。建立对象模型过程是: A,一方面拟定对象和类,找到对象属性,操作和办法 B,拟定类之间关联关系和对象间链。C,拟定类层次构造D,形成对象模型E,阐明对象设计内容。17. 答:软件开发瀑布模型是一种线性顺序模型,这种模型在软件各个开发阶段存在着顺序性和依赖性,其中前一种阶段工作是后一种阶段工作基本。同步这种模型强调预先定义需求重要性。但是,在实际开发工作中,在软件开发需求阶段,由于顾客提出需求自身是模糊,这给软件开发技术人员理解顾客需求带来了困难,软件开发后期,顾客也许会提出新规定,因而软件需求是不断在变化。按照
21、瀑布模型规范,瀑布模型不能适合顾客需求变化。由于这个问题浮现,使得软件开发技术人员和顾客之间难以沟通,软件开发遇到了困难。18. 答:由于软件维护工作周期长,费用高,因而维护工作也有也许产生某些副作用。为了保证软件维护工作顺利进行,软件维护应按照一定工作流程进行,涉及制定维护申请报告,审查并批准维护申请,进行维护并做详细记录,复查等工作。19. 答:软件自身特点阐明了软件是一种复杂,抽象逻辑实体,这就给软件开发带来了难题。为了保证软件可以满足设计需求和顾客需求,因而在软件生命周期各个阶段都要保证软件质量,由此而进行关于活动称为质量保证。软件质量保证普通可以采用方略涉及以检查为重,以过程管理为重
22、,以新产品开发为重。20. 答:由于软件自身特点,为了避免软件危机浮现,因此软件项目采用软件工程化思想进行软件开发。由于软件工程是一项复杂工作,因此需要相应管理方略。 软件工程管理工作非常重要,由于管理失误导致项目开发进度难以达到预期规定,进度和资金投入失控,这样对于软件质量就难以把握了,因此应当切实做好软件工程管理工作。21. 答:在进行软件开发时,某项工作变更会引起软件配备连带变更,对变更需要加以控制,否则会给软件开发工作带来混乱。变更控制涉及三个环节,当有变更需求时,需要提出变更申请,阐明变更因素,当决定要变更时,需要建立变更控制点进行变更,当变更结束时,需要对变更进行审查和验证。22答
23、:软件文档可以提高软件开发过程能见度,提高软件开发效率,可以作为软件开发阶段性成果,可以记录软件开发过程关于信息,提供软件开发维护和培训资料,可以协助顾客理解软件功能和性能。23. 答:为了做好软件质量保证工作,要正拟定义顾客需求,采用软件工程学办法进行软件项目开发,运用先进开发技术和管理办法,运用已有软件成果,软件开发人员要进行充分合伙,加强信息沟通,制定切实可行开发筹划,保证软件开发任务进行。24 答:软件可维护性是指软件能被理解,校正,适应及增强功能容易限度。提高软件可维护性办法涉及要建立明确软件质量目的,拟定软件质量强调是效率还是可移植性;要运用先进开发技术和工具进行软件维护;建立明确
24、软件质量保证体系加强软件维护工作检查;选取可维护语言,改进程序文档编写和管理办法。25. 答:CASE生存期涉及需求,剪裁,引入,操作,演化,废止等过程。26. 答:拟定软件项目规模和目的,研究现行系统,简历新系统模型,得出几种设计方案,编写可行性研究报告。27. 答:可行性研究报告阐明是软件项目与否可以开发,与否值得开发问题,它是在对原有系统进行了充分调查论证后得到软件文档。 项目开发筹划是拟定了软件项目值得开发后形成一份管理性文档,它阐明是软件项目实行筹划,人员分工和组织,资源分派状况,交付软件期限等内容。28. 答:软件设计是一种把软件需求转换为软件表达过程,软件设计涉及软件概要设计和软
25、件详细设计。软件概要设计重要完毕任务是设计软件构造,设计数据构造,设计数据库文献,编写和评审软件概要设计阐明书。29. 答:在软件模块设计中,尽量做到模块高内聚低耦合,以此提高模块独立性,为设计出高质量,可靠软件系统打下基本。30. 答: 构造化程序设计采用基本思想是自顶向下逐渐求精办法。运用构造化办法进行程序设计由顺序,选取,循环三种构造构成程序。程序开发采用程序员负责制管理方式,这样可以保证软件质量。31. 答:JSP设计办法进行软件系统设计环节是分析和拟定输入/输出数据逻辑构造,并用Jackson构造图表达出数据构造,得到输入/输出数据构造中相应关系数据单元,从输入/输出数据构造中推导出
26、程序构造,列出基本操作和操作条件,用伪码编码。32. 答:(1)详细设计出模块算法,将算法用关于设计工具如程序流程图,PAD图及过程设计语言描述出来。 (2)设计出模块内数据构造 (3)设计出数据库构造和数据存储模式 (4)进行模块编码设计,设计出模块输入/输入出界面和人机对话接口。 (5)编写出详细设计阐明书 (6)对详细设计阶段工作进行评审。33. 答:软件可移植性是指所设计程序可以在不同计算机环境中运营容易程序。在程序设计中,要提高程序可移植性应当做到如下几点: A,选好程序设计语言,要选取原则程序设计语言 B,程序模块算法与操作系统环境联系不能十分密切。 C,程序设计风格要规范。34.
27、 答:为了保证整体程序风格一致,在项目规划时注意做到一下几点: A,为了便于阅读和维护源程序,源程序中必要加上必要注释,数据,变量也应当加阐明。 B,程序构造应当尽量简朴 C,所设计输入输出应当尽量符合操作人员习惯 D,应恰当考虑程序运营时间效率和空间效率。35. 答:黑盒法测试重要发现错误类型涉及:检查与否有不对的或者漏掉功能, 能否对的接受数据并得到对的输出, 与否可以访问外部信息,软件性能与否满足设计需要。36. 答:简朴来说,软件体系构造问题涉及软件系统总体组织和全局控制、通信合同、同步、数据存取,设计元素功能分派和组织,规模和性能,以及在各设计方案间进行择等问题。37. 答:普通以为
28、,模式和框架不同之处在于。1),设计模式比框架更加抽象。框架可以在代码中体现,但在代码中只体现模式实例。2),设计模式是比框架小构造元素。一种典型框架涉及若干设计模式,但反之不能成立。3),设计模式比框架有更广泛意义,框架往往有一种特定应用领域,而设计模式可用于几乎所有种类应用之中。38. 答:按照集成限度高低,在软件开发环境中CASE工具集成形式有如下几种:1互换 2界面 3共信息管理与信息共享 4集成 39. 答:软件生存周期是指从提出软件开发规定开始到软件报废为止整个时期。软件生存周期涉及可行性分析和项目开发筹划、需求分析、概要设计、详细设计、编码、测试、软件维护等阶段。40. 答:由于
29、软件是一种特殊逻辑产品,软件生产有其特殊性。软件生产经历了程序设计阶段,程序系统阶段,软件工程阶段,其中在软件生产第二阶段重要采用小集团合伙方式,当时由于计算机硬件技术发展,计算机硬件价格减少,性能提高,为计算机软件应用和发展创造了条件。某些建立大型,复杂应用系统需求不断提出,但是应用软件系统开发技术,开发办法并不规范,同步由于程序员技术素质不高,导致了应用软件系统开发过程中浮现了某些问题,导致了开发出软件系统不能满足顾客需要矛盾,因而导致了计算机软件危机浮现。五. 应用题1. 解:用PAD图描述如下:2 解:软件开发工具应用于软件开发可以大幅度地提高软件生产率,提高软件质量.以便软件管理,便
30、于软件重用,减少低档重复劳动,支持迅速原型设计,便于顾客和开发人员交流.减少大型复杂软件开发难度.3 解:4 解:上图所示数据流图既有事物型解决特性又有变换型解决特性,先分进行转换,再进行优化,转换成果图如下。 5 解:如下图所示,将伪码表达代码转换为PAD图。 6 解:7 解:8 解:9 解:软件就是程序观点是不对的。由于软件等于程序加文档加数据.文档是软件一种非常重要构成某些,在软件开发过程中起着非常重要作用.在软件开发每一种阶段都应有相应文档.它是开发人员与顾客以及开发人员与项目管理人员之间交流媒介 文档是软件在不同阶段体现形式. 程序与文档必要一致,文档才有价值. 文档质量直接决定软件
31、质量高低. 文档也是软件测试和维护根据.在没有文档或文档不全状况下对大型软件进行测试与维护是不可思议事情.文档是软件可重用根据. 10 解: while a do If x0 then x1; Else x2; If y0 then y1; If z0 then z1; Else z2; Else y2; Y3; End; 11. 解:条件覆盖, a=1,b=0,x=3(满足a1,b=0,a2,x1)a=2,b=1,x=1(满足a1,b0,a=2,x1)12. 解:a=2,b=0,x=0 覆盖途径1,2,4. a=2,b=1,x=1 覆盖途径1,3,4 a=1,b=1,x=1 覆盖途径1,3,
32、5 a=3,b=0,x=1 覆盖途径 1,2,513. 答:14. 答:15. 解:16. 解:17. 解:18. 解:19. 解:20. 解:分析因果关系: 因素编号 1:第一列字符是X 2:第二列字符是P 3:第二列字符是W成果编号21:执行操作G22:给出信息F123:给出信息F2因果图 21. 解:(1)面向对象办法更符合人思维方式,更容易抓住问题主干. (2)所开发出软件更符合高内聚,松耦合原则.所设计出类模块独立性更强. (3)更适合于开发大型软件,更适合于迅速原型法开发办法.使软件生产率大大提高. (4)使用面向对象技术开发出软件可测试性和可维护性都较强. (5)面向对象办法和技
33、术可以贯彻软件开发全过程.从分析,设计,编码到测试维护,采用面向对象办法不存在语义断层,使人思维持续,减少各阶段之间所采用办法不向融性. (6)使得软件可重用性大幅度提高. 22. 解:用PDL语言描述如下: N=1 WHILE N=10 DO IF A(N)=A(N+1) MAX =A(N+1); ELSE MAX =A(N) ENDIF; N=N+1; ENDWHILE; 23. 解: 生产科图 技术科图24. 解:最后顾客可以看到是软件界面,软件界面是顾客与计算机交互接口.如果界面不和谐,顾客不乐意使用,那么软件功能再强,也是没有用.这就规定软件界面应以顾客为中心进行设计.设计应遵循如下原则: (1)一致性,菜单选取,命令输入,数据显示等功能应使用一致风格. (2)提供故意义反馈. (3)容许取消大多数操作. (4)减少在动作间必要记忆信息量. (5)在对话,移动和思考中提高效率. (6)容许错误. (7)按功能对动作分类,并据此安排屏幕布局 (8)提供上下文有关帮组机制. (9)命令用简朴动词或动词短语命名. 只有顾客乐意使用软件才是好软件,因此软件界面设计好坏直接影响软件质量.