软件工程解答.doc_第1页
软件工程解答.doc_第2页
软件工程解答.doc_第3页
软件工程解答.doc_第4页
软件工程解答.doc_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件工程题库一. 单项选择题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 50. 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 100. 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 143. 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. 答:正确。9. 答:正确。10. 答:错。HTML 改成 统一建模语言UML11. 答:正确12. 答:错。进行需求分析 改成 度量软件的规模 13. 答:正确 14. 答:正确。15. 答:错。 设计结果 改成 设计模式16. 答:错误。一定的时间间隔 改成 基线 17. 答:错误。 程序 改成 文档18. 答:正确19. 答: 正确20. 答:错误。 处理规格说明 改成 实体关系图21. 对。22. 错。增量模型 改为 瀑布模型23. 对。24. 错。 编写程序 改为 测试阶段25. 错。 逻辑实现 改为 物理实现26. 答:错。 模块的内聚程度越高,耦合程度越低。27. 答:正确 28. 答:正确 29. 答:正确30. 答:错误。提高程序运行效率 改成 降低了程序运行效率。31. 答: 正确32. 答:错误。软件执行环境 改成 算法和数据结构33. 答:正确34. 答:错误。顺序内聚 改成 偶然内聚35. 答:错误。结构测试 改成 单元测试36. 答:正确37. 答:错。 系统要求 改成 用户要求38. 答:正确。39. 答:错误。用户帮助问题 改成 输入输出数据。40. 答:错误。 控制耦合 改成 内容耦合三. 名词解释1. 答:软件是计算机程序、数据及相关的各种文档的集合。2. 答:计算机辅助软件工程(CASE)工具是一个贯穿于软件生存周期各个阶段的开发工具,在它的支持下,可以实现软件开发的自动化。3. 答:结构化方法是软件项目开发的一种分析方法,它根据软件项目内部数据传递、变换的关系,遵循自顶向下逐步求精的指导思想,采用抽象与分解的原则,将复杂的软件项目逐步分解,通过软件开发的描述工具及其结构化语言的描述得到软件系统的逻辑模型。4. 答:IDEF方法是针对计算机辅助制造工程中,用于进行复杂系统分析和设计的方法,它是在结构化分析于设计技术的基础上进行的。5. 答:表示软件结构的一种图形工具,可以描述软件总的模块层次(H图)和每个模块的输入、输出及其处理(IPO图)的详细情况。6. 答:继承性是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。7. 答:多态性是指相同的操作或函数、过程可作用于多种类型的对象上并获得不同的结果。不同的对象,收到同一消息可以产生不同的结果。8. 答:封装性是指所有软件部件内部都有明确的范围以及清楚的外部边界。每个软件部件都有友好的界面接口,软件部件的内部实现与外部可访问性分离。封装性是保证软件部件具有优良模块性的基础。9. 答:事件是指定时刻发生的某件事情。它是事情发生的信号,它没有持续时间,它是一种相对性的快速事件。10. 答:状态图是一种图,用结点表示状态,结点用圆圈表示;圆圈内有状态名,用带箭头连线(弧)表示状态的转换,上面标记事件名,箭头方向表示转换的方向。状态图反映了状态与事件的关系。11. 软件质量保证就是向用户及社会提供满意的高质量的产品,确保软件产品从诞生到消亡为止的所有阶段的质量活动,即确定、达到和维护需要的软件质量而进行的所有有计划、有系统的管理活动。12. 时间冗余是指以重复执行指令或程序来消除瞬间时错误带来的影响。13. 瀑布模型又称传统模型。要求项目所有的活动都严格按照顺序惊醒,一个阶段的输出是以下一个阶段的输入。瀑布模型没有反馈,一个阶段完成后,一般不返回。14. 答:关联表示类之间的一种关系,就是一些可能的链的集合。15. 答:基线是软件生存期中各开发阶段的一个特定点,它的作用是把开发各阶段工作的划分更加明确化,使本来连续的工作在这些点上断开。16. 答:进行开发成本的估算以及了解取得效益的评估,确定要开发的项目是否值得投资开发。17. 答:要开发的项目是否存在任何侵犯、妨碍等责任问题,要开发项目目的运行方式在用户组织内是否行得通,现有管理制度、人员素质、操作方式是否可行。18. 答:投资回收期就是使累计的经济效益等于最初的投资费用所需的时间。19. 答:即有直接因果关系在程序中可以同时处理。20. 答:输入数据与输出数据结构找不到对应关系的情况,称为结构冲突。21. 答:将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护的过程,即将工程化应用于软件中。22.答:容错技术:对那些无法避开的差错,使其影响减少至最小的技术.也就是说,当错误发生时,尽可能地不影响其它的系统元素,或是把用户的影响限制在某些容许的范围内. 23.答:结构化维护: 如果维护工作是从评价完整的软件配置开始入手,确定软件的重要结构特点,性能特点以及接口特点;估量要求的改动将带来的影响,并且计划实施途径.然后首先修改设计并且对所做的修改进行仔细审查.接下来编写相应的源程序代码;使用在测试说明书中包含的信息进行回归测试;最后,把修改后的软件再次交付使用. 24. 答:模块独立性是模块化,抽象和信息隐蔽的直接产物.每个模块只要完成独立的功能,与其它模块联系越少,则模块的独立性就越强.通过模块与模块之间的耦合性和模块内部的内聚性来衡量模块的独立性.25. 答:指开发人员要准确理解用户的要求,进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义转换到相应的形式功能规约的过程。26. 答:模块化是指把一个复杂的问题按照自定向下逐步分解的原则,划分为若干个简单模块的过程。每个模块完成一个特定的子功能,所有模块按照某种方法组装起来成为一个整体,完成整个系统所要求的功能。27. 答:信息屏蔽是指对某一个模块来说,其内部包括的数据或过程不能被其他的模块访问,利用信息屏蔽可以限制对模块的过程和局部数据结构的存取。28. 答:结构化设计的优化原则是指在设计软件划分模块时尽量做到模块之间低耦合,模块内部高内聚,同时要保持模块的相对独立性。29. 答:软件编码是将详细设计阶段得到的模块处理的过程转换成为用某种计算机程序设计语言设计的程序,也就是编写源程序的过程。30. 答:程序设计风格是指在编写程序时所表现出来的编程习惯、逻辑思路等特点。好的程序设计风格对于提高开发效率、保证软件质量有较大的帮助作用。31. 答:数据流图:是描述数据处理过程的工具.它从数据传递和加工的角度,以图形的方式刻画数据流从输入到输出的移动变换过程. 32. 答:软件维护是软件生命周期的最后一个阶段,是在软件已经交付给用户使用之后,为了改正软件错误或满足新的需要而修改软件的过程.它包括四种类型的维护活动:改正型维护,适应型维护,预防型维护和完善型维护.33. 软件测试是一个为了寻找软件错误而运行程序的过程.目的就是为了发现软件中的错误.一个好的测试用例是指很可能找到迄今为止尚未发现的错误的用例.一个成功的测试是指揭示了迄今为止尚未发现的错误的测试.34. 程序的可维护性:为满足用户新的需求,或当环境发生了变化,或运行中发现了新的错误时,对一个已投入运行的软件进行相应诊断和修改所需工作量的大小.35. 软件生存周期是指从提出软件开发要求开始,直到该软件报废不用为止的整个时期。这个时期又分为若干个阶段,对软件生产的管理和进度控制有重要作用,使软件的开发有相应的模式,流程,工序和步骤. 36. 答:白盒法测试是针对程序的语句结构对数据处理过程进行的测试。37. 答:黑盒法测试是针对软件生存周期各个阶段的软件文档进行的测试。38. 答:校正性维护是指在软件开发阶段,由于软件中难免存在有一些隐含的错误,在软件交付使用后,为了能识别和修改这些错误而进行的工作。39. 答:对象的消息是指对象要执行的操作的说明,包括接受消息的对象名、要执行的操作名称、必要的参数。40.答:面向对象的设计是把分析阶段得到的需求分析的模块转换为抽象的系统实现方案的过程,面向对象的设计准则是将对象模块化、数据抽象化、对象信息屏蔽、模块间低耦合高内聚。四. 简答题1. 答:软件危机的具体表现是软件的开发计划难以制定。进度难以控制,开发出的软件系统不能满足用户的需求。软件开发方法不规范,没有统一文档。软件的可维护性差。由于缺少软件的质量保证体系,缺少完整的测试机制,软件的可靠性差。2. 答:可行性分析和项目开发计划阶段主要是由用户提出软件开发的需求,系统分析员进行调查,明确软件开发的任务,边界,功能,规模后,进行可行性研究,最终为用户提供软件项目可行性报告和项目开发计划,并将这些软件开发文档交用户进行讨论和审查。3. 答:数据字典(DD)用于说明数据流图中各个元素含义的,对各个元素的说明是标准的,无二义性的。数据字典是需求说明书的重要组成部分,数据字典和数据流图构成了系统的逻辑模型。4. 答,(1)收集来自用户各个方面对软件功能的要求,这些需求的表现形式是多样的,不系统的,有些甚至是不明确的。(2)对得到的需求进行补充,完善和加工,利用软件开发的描述工具,如数据流图,数据字典表示出软件项目的逻辑结构。(3)利用分析与综合的思想进行进一步的整理,形成软件需求说明书,以及其他相关的软件开发文档。这些文档为后期的软件开发提供依据。5. 答:(1)分析当前系统的物理模型 技术人员通过对当前系统的调查,分析出当前系统的实际工作过程。 (2)抽象出当前系统的逻辑模型 在对当前系统进行分析后,区别出本质因素和非本质因素,得到系统的抽象工作过程。6. 答:软件测试要经过单元测试,集成测试,确认测试,系统测试四个阶段。 单元测试是对源程序中的每一个程序单元进行的测试,目的是发现模块中的错误。 集成测试是将各个模块组装起来进行的测试。 确认测试是检查已经实现的软件是否符合软件需求说明书的各种要求。 系统测试是对软件项目进行的综合测试。7. 答:非渐增式方法和渐增式方法属于软件测试过程的集成测试。非渐增式方法将所有经过测试的单元模块一起组装起来进行的测试。渐增式方法采用逐步组装模块的方法,组装一部分测试一部分。8. 答:在软件开发的过程中,如果各阶段没有严格的科学管理和规划,会给软件的维护带来一些困难。不利于软件维护。这主要是因为对于修改程序的人员来说,在原有基础上进行程序修改,读懂别人的程序比较困难;在软件开发的过程中,文档与实际程序设计会存在一些差异。软件开发与维护这两项工作在时间上,人员上存在差异,同时维护工作会遇到一些困难,因此软件的维护工作不是非常吸引人。9. 答:快速原型开发方法可以按照快速分析,构造原型,运行原型,评价原型,修改原型的开发步骤进行。10. 答:对象设计包括设计对象,建立对象模型,对象算法设计,优化设计,实现对象控制,调整对象继承,设计对象关联关系。11. 答:分阶段生命周期模型可以提高软件开发过程的可见性,通过将阶段当作里程碑来更好地管理项目;并且更加详细的阶段将会允许更加严密地监控进程。12. 答:A,市场调研 B,项目计划、成本估计、编制需求规格说明书(可同时进行) C,需求复审 D,总体设计 E,详细设计 F,设计复审 G,实现 H,单元测试 I,系统测试 J,验收测试13. 答:功能分解法,数据流方法,信息建模方法,面向对象方法14. A,在结构体中所有的是否都初始化? B, 所有变量是否都声明了? C, 每一个“”是否都有一个匹配的“” D, 每一个相等比较是否都有连个“=”? E, 任何“while”语句或“if”条件语句都以“;”结束? F, 每一个类声明是否都以“:”结束? 15. 答:A,里程碑必须与软件开发过程中的进程先联系 B,当完成一个里程碑时必须是显而易见的。 16. 答:建立对象模型主要注意系统中对象的结构,对象的属性和对象的操作。建立对象模型的过程是: A,首先确定对象和类,找到对象的属性,操作和方法 B,确定类之间的关联关系和对象间的链。C,确定类的层次结构D,形成对象模型E,说明对象设计的内容。17. 答:软件开发的瀑布模型是一种线性的顺序模型,这种模型在软件的各个开发阶段存在着顺序性和依赖性,其中前一个阶段的工作是后一个阶段工作的基础。同时这种模型强调预先定义需求的重要性。但是,在实际的开发工作中,在软件开发的需求阶段,由于用户提出的需求本身是模糊的,这给软件开发的技术人员理解用户的需求带来了困难,软件开发的后期,用户可能会提出新的要求,因此软件需求是不断在变化的。按照瀑布模型的规范,瀑布模型不能适合用户需求的改变。由于这个问题的出现,使得软件开发的技术人员和用户之间难以沟通,软件的开发遇到了困难。18. 答:由于软件维护的工作周期长,费用高,因此维护工作也有可能产生一些副作用。为了保证软件维护工作的顺利进行,软件维护应按照一定的工作流程进行,包括制定维护申请报告,审查并批准维护申请,进行维护并做详细记录,复查等工作。19. 答:软件本身的特点说明了软件是一种复杂的,抽象的逻辑实体,这就给软件的开发带来了难题。为了保证软件能够满足设计的需求和用户的需求,因此在软件生命周期的各个阶段都要保证软件质量,由此而进行的有关活动称为质量保证。软件质量保证一般可以采用的策略包括以检验为重,以过程管理为重,以新产品的开发为重。20. 答:由于软件本身的特点,为了避免软件危机的出现,所以软件项目采用软件工程化的思想进行软件开发。由于软件工程是一项复杂的工作,所以需要相应的管理策略。 软件工程的管理工作非常重要,由于管理的失误造成项目的开发进度难以达到预期的要求,进度和资金的投入失控,这样对于软件的质量就难以把握了,所以应当切实做好软件工程的管理工作。21. 答:在进行软件开发时,某项工作的变更会引起软件配置的连带变更,对变更需要加以控制,否则会给软件的开发工作带来混乱。变更控制包括三个环节,当有变更的需求时,需要提出变更的申请,说明变更的原因,当决定要变更时,需要建立变更控制点进行变更,当变更结束时,需要对变更进行审查和验证。22答:软件文档可以提高软件开发过程的能见度,提高软件开发的效率,可以作为软件开发的阶段性成果,可以记录软件开发过程的有关信息,提供软件开发维护和培训的资料,可以帮助用户了解软件的功能和性能。23. 答:为了做好软件质量保证工作,要正确定义用户的需求,采用软件工程学的方法进行软件项目开发,运用先进的开发技术和管理方法,利用已有的软件成果,软件开发人员要进行充分的合作,加强信息沟通,制定切实可行的开发计划,确保软件开发任务的进行。24 答:软件可维护性是指软件能被理解,校正,适应及增强功能的容易程度。提高软件可维护性的方法包括要建立明确的软件质量目标,确定软件质量强调的是效率还是可移植性;要利用先进的开发技术和工具进行软件维护;建立明确的软件质量的保证体系加强软件维护工作的检查;选择可维护的语言,改进程序文档的编写和管理方法。25. 答:CASE的生存期包括需求,剪裁,引入,操作,演化,废止等过程。26. 答:确定软件项目的规模和目标,研究现行的系统,简历新系统的模型,得出几种设计方案,编写可行性研究报告。27. 答:可行性研究报告说明的是软件项目是否可以开发,是否值得开发的问题,它是在对原有系统进行了充分调查论证后得到的软件文档。 项目开发计划是确定了软件项目值得开发后形成的一份管理性文档,它说明的是软件项目的实施计划,人员分工和组织,资源分配情况,交付软件的期限等内容。28. 答:软件设计是一个把软件需求转换为软件表示的过程,软件设计包括软件概要设计和软件详细设计。软件概要设计主要完成的任务是设计软件的结构,设计数据结构,设计数据库文件,编写和评审软件概要设计说明书。29. 答:在软件的模块设计中,尽量做到模块高内聚低耦合,以此提高模块的独立性,为设计出高质量,可靠的软件系统打下基础。30. 答: 结构化程序设计采用的基本思想是自顶向下逐步求精的方法。利用结构化的方法进行程序设计由顺序,选择,循环三种结构构成程序。程序开发采用程序员负责制的管理方式,这样可以保证软件的质量。31. 答:JSP设计方法进行软件系统设计的步骤是分析和确定输入/输出数据的逻辑结构,并用Jackson结构图表示出数据结构,得到输入/输出数据结构中对应关系的数据单元,从输入/输出的数据结构中推导出程序结构,列出基本的操作和操作条件,用伪码编码。32. 答:(1)详细设计出模块的算法,将算法用有关设计工具如程序流程图,PAD图及过程设计语言描述出来。 (2)设计出模块内的数据结构 (3)设计出数据库的结构和数据的存储模式 (4)进行模块的编码设计,设计出模块的输入/输入出界面和人机对话接口。 (5)编写出详细设计的说明书 (6)对详细设计阶段的工作进行评审。33. 答:软件的可移植性是指所设计的程序可以在不同的计算机环境中运行的容易程序。在程序设计中,要提高程序的可移植性应当做到以下几点: A,选好程序设计语言,要选择标准的程序设计语言 B,程序模块的算法与操作系统环境的联系不能十分密切。 C, 程序设计风格要规范。34. 答:为了保证整体程序风格的一致,在项目规划时注意做到一下几点: A,为了便于阅读和维护源程序,源程序中必须加上必要的注释,数据,变量也应当加说明。 B,程序的结构应当尽量简单 C,所设计的输入输出应当尽量符合操作人员习惯 D,应适当考虑程序运行的时间效率和空间效率。35. 答:黑盒法测试主要发现的错误类型包括:检查是否有不正确或者遗漏的功能, 能否正确接收数据并得到正确的输出, 是否可以访问外部的信息,软件的性能是否满足设计的需要。36. 答:简单来说,软件体系结构问题包括软件系统总体组织和全局控制、通信协议、同步、数据存取,设计元素的功能分配和组织,规模和性能,以及在各设计方案间进行择等问题。37. 答:一般认为,模式和框架的不同之处在于。1),设计模式比框架更加抽象。框架可以在代码中体现,但在代码中只体现模式的实例。2),设计模式是比框架小的结构元素。一个典型的框架包括若干设计模式,但反之不能成立。3),设计模式比框架有更广泛的意义,框架往往有一个特定的应用领域,而设计模式可用于几乎所有种类的应用之中。38. 答:按照集成程度的高低,在软件开发环境中CASE工具的集成形式有以下几种:1交换 2界面 3共信息管理与信息共享 4集成 39. 答:软件生存周期是指从提出软件的开发要求开始到软件报废为止的整个时期。软件生存周期包括可行性分析和项目开发计划、需求分析、概要设计、详细设计、编码、测试、软件维护等阶段。40. 答:由于软件是一种特殊的逻辑产品,软件的生产有其特殊性。软件生产经历了程序设计阶段,程序系统阶段,软件工程阶段,其中在软件生产的第二阶段主要采用小集团合作方式,当时由于计算机硬件技术的发展,计算机硬件价格降低,性能提高,为计算机软件的应用和发展创造了条件。一些建立大型,复杂的应用系统的需求不断提出,但是应用软件系统的开发技术,开发方法并不规范,同时由于程序员的技术素质不高,造成了应用软件系统的开发过程中出现了一些问题,导致了开发出的软件系统不能满足用户需要的矛盾,因而导致了计算机软件危机的出现。五. 应用题1. 解:用PAD图描述如下:2 解:软件开发工具应用于软件开发可以大幅度地提高软件生产率,提高软件质量.方便软件管理,便于软件重用,减少低级重复劳动,支持快速原型设计,便于用户和开发人员的交流.降低大型复杂软件的开发难度.3 解:4 解:上图所示的数据流图既有事物型处理的特征又有变换型处理的特征,先分进行转换,再进行优化,转换的结果图如下。 5 解:如下图所示,将伪码表示的代码转换为PAD图。 6 解:7 解:8 解:9 解:软件就是程序的观点是不正确的。因为软件等于程序加文档加数据.文档是软件的一个非常重要的组成部分,在软件的开发过程中起着非常重要的作用.在软件开发的每一个阶段都应有相应的文档.它是开发人员与用户以及开发人员与项目管理人员之间交流的媒介 文档是软件在不同阶段的表现形式. 程序与文档必须一致,文档才有价值. 文档质量直接决定软件质量的高低. 文档也是软件测试和维护的依据.在没有文档或文档不全的情况下对大型软件进行测试与维护是不可思议的事情.文档是软件可重用的依据. 10 解: while a

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论