软件工程答案

更新时间:2023-09-11 13:11:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

?软件工程的基本原理:1.用分阶段的生命周期计划严格管理;2.坚持进行阶段评审;3.实行严格的产品控制;4.采用现代程序设计技术;5.结果应能清楚地审查;6.开发小组的人员应该少而精;7.承认不断改进软件工程实践的必要性。

?什么是软件危机:指在计算机软件的开发和维护过程中所遇到的一系列严重的问题。 ?什么是软件生命周期模型?试比较瀑布模型、快速原型模型、增量模型、螺旋模型的优缺点,说明每种模型的使用范围。

软件生命周期由软件定义、软件开发和运行维护3个时期组成,每个时期又进一步划分成若干个阶段。生命周期模型规定了把生命周期划分成哪些阶段及各个阶段的执行顺序,因此,也称为过程模型。

瀑布模型的优点:1.可强迫开发人员采用规范的方法;2.严格规定了每个阶段必须提交的文档;3.要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。

瀑布模型的缺点:1.在软件开发初期,指明用户全部需求是困难的;2.需求确定后,经过一段时间才得到软件最初版本;3.完全依赖规格说明,导致不能满足用户需求。

适用中小型项目。

快速原型模型的优点:1满足用户需求程度高;2用户的参与面广;3返工现象少 快速原型模型的优点:不适用大型软件的开发 适用于小型项目。

增量模型的优点:1短期内可以交付满足部分用户需求的功能产品;2逐步增加功能可以让用户去适应新产品;3开放式的软件可维护性比较好;4开始第一构件前,已经完成需求说明。

增量模型的缺点:1对现有产品功能造成破坏;2意义上的矛盾 适用于中型软件的开发

螺旋模型的优点:1集成了瀑布模型、快速原型模型、增量模型的优点;2支持用户需求动态变化;3需求分析与软件实现紧密联系相互依赖;4原型作为刑式的可执行的需求规格说明,即利用用户和开发人员共同理解,又可作为后续开发的基础;5为用户参与决策提供方便;6提高目标软件的适应能力;7降低风险;8在大型软件开发过程中充分发挥优势。

螺旋模型的缺点:1迭代次数影响开发成本,延迟提价时间;2找不到关键改进点,人才、物力、财力时间引起无谓消耗;3成于风险分析,败于风险分析。 适用于内部开发的大规模软件项目。

?软件生命周期每个阶段的基本任务:问题定义;可行性研究;需求分析;总体设计;详细设计;编码和单元测试;综合测试;软件维护。

?在软件开发的早期阶段为什么要进行可行性研究?应该从哪些方面研究目标系统的可行性?

可行性研究的目的,就是用最小的代价在尽可能短的时间内确定问题是否能

够解决。

技术可行性、经济可行性、操作可行性 ?从哪些方面验证软件需求的正确性?

一致性,所有需求必须是一致的,任何需求不能和其他需求互相矛盾。 完整性,需求必须是完整的,规格说明书应该包括用户需要的每一个功能或性能。 现实性,指定的需求应该是用现有的硬件技术和软件技术基础上可以实现的,对硬件技术的进步可以做些预测,对软件技术的进步则很难做出预测,只能从现有技术水平出发判断需求的现实性。

有效性,必须证明需求是正确有效的,确实能解决用户面对的问题。 ?为什么模块的独立性很重要?

1有效的模块化的软件比较容易开发出来;2独立的模块比较容易测试和维护3模块独立式好设计的关键,而设计又是决定软件质量的关键环节。 ?在进行软件结构设计时的启发原则?

(1)改进软件结构提高模块独立化(2)模块规模应该适中(3)深度、宽度、扇出和扇入都应适当(4)模块的作用域应该在控制域之内(5)力争降低模块接口的复杂程度(6)设计单入口单出口的模块(7)模块功能应该可以预测 ?内聚和耦合从小到大排序?

1耦合:数据耦合、控制耦合、特征耦合、公共环境耦合、内容耦合 2内聚:低内聚(偶然内聚、逻辑内聚、时间内聚)、中内聚(过程内聚、通信内聚)、高内聚(顺序内聚、功能内聚) ?我们在设计耦合式的设计原则?

尽量使用数据耦合,少用控制耦合和特征耦合,限制公共环境耦合的范围,完全不用内耦合。 ?软件测试准则是什么?

(1)所有测试都应该能追溯到用户需求;(2)应该远在测试开始之前就制定出测试计划;(3)把Pareto原理应用到软件测试中;(4)应该从“小规模”测试开始,并逐步进行“大规模”测试;(5)穷举测试是不可能的;(6)为了达到最佳的测试效果,应该由独立的第三方从事测试工作。 ?黑盒测试、白盒测试的基本概念?

(1)黑盒测试,如果已经知道了产品应该具有的功能,可以通过测试来检验是否每个功能都能正常使用。(2)白盒测试,如果知道产品的内部工作过程,可以通过测试来检验产品内部动作是否按照规格说明书的规定正常进行。 ?大型的软件测试分几步进行?

答:模块测试、子系统测试、系统测试、验收测试、平行运行 ?非渐增式测试和渐增式测试优缺点比较

答:非渐增式测试一下子把所有模块放在一起,并把庞大的程序作为一个整体来测试,测试者面对的情况十分复杂。测试时会遇到许许多多的错误,改正错误更是极端困难,因为在庞大的程序中想要诊断定位一个错误是非常困难的。而且一旦改正一个错误之后,马上又会遇到新的错误,这个过程将继续下去,看起来好像永远也没有尽头。

渐增式测试与“一步到位”的非渐增式测试相反,它把程序划分成小段来构造和测试,在这个过程中比较容易定位和改正错误;对接口可以进行更彻底的测试;可以使用系统化的测试方法。因此,目前在进行集成测试时普遍采用渐增式测试方法。

?使用渐增式把模块结合到程序中去时,有自顶向下和自底向上两种集成策略。 自顶向下测试方法的主要优点是不需要测试驱动程序,能够在测试阶段的早期实现并验证系统的主要功能,而且能在早期发现上层模块的接口错误。

自顶向下测试方法的主要缺点事需要存根程序,可能遇到与此相联系的测试困难,低层关键模块中的错误发现较晚,而且用这种方法在早期不能充分展开人力。自底向上测试方法的优缺点与之相反。 16 DFD和软件结构图的区别?

答:DFD是逻辑模型(由实际业务抽象而来,平面图描述功能。

软件结构图是物理模型(有DFD而来,立体图描述模块功能的分解。 17什么是回归测试?

答:是指重新执行已经做过的测试的某个子集,以保证上述这些变化没有带来非预期的副作用,用于保证由于调试或其他原因引起的变化,不会导致非预期的软件行为或额外错误的测试活动。

18详细设计阶段的根本目标和任务是什么?

(1)为软件结构中的每一个模块,使用的算法和模块内部的数据结构,并使用某种特定的表达工具给出清晰的描述。 (2)为每个程序设计“蓝图”,以后程序员将根据这个蓝图写出实际的程序代码。 19什么是结构程序设计?

如果一个程序的代码块仅仅通过顺序、选择和循环这3种基本控制结构进行连接,并且每个代码块只有一个入口和一个出口,则称这个程序是结构化的。 20计算环形复杂度的方法?

(1)流图中的区域等于环形复杂度。(2)流图G的环形复杂度V(G)=E-N+2,其中,E是流图中边的条数,N是结点数。(3)流图G的环形复杂度V(G)=P+1,其中,P是流图中判定结点的数目。 21什么是测试?它的目标是什么?

(1)测试的正确定义是“为了发现程序中的错误而执行程序的过程”

(2)是暴露程序中的错误,从心里学角度看,由程序的编写者自己进行的测试是不恰当的。因此,在综合测试阶段通常由其他人员组成测试小组来完成测试

的工作。

22DFD(DD)要点:1顶层图是基本系统模型;2输入输出仔细说明针对顶层图;3每一个圆圈处理都要正确命名针对新画法;

然,让思想的光芒照亮每个心灵,让身心的热量变作普照大地的明媚,让蠕风的蠢蠢欲动万木复苏的定格。境是可绝缘的尘,合沓车马也无喧。吾生有无涯而也无涯,知也以有而随无也, 一点的痕迹,山风呼呼,细雨微微。人行翦翦,心韵盈盈。思邃恒古,本义使 在这片神圣的土地上,色彩是洁净的象征,静物是可修复的抱朴,人有有也者,有无也者,有未始有无也者,有未始有夫未始有无也者。

本文来源:https://www.bwwdw.com/article/y74h.html

Top