视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
软件工程复习重点 有部分答案版,华工软件工程,习题答案参考,试卷资料,电信学院大三
2025-09-29 19:20:04 责编:小OO
文档
软件工程复习要点

1、软件过程步骤,主要解决问题,做什么东西(需求、设计、测试……)

需求分析和定义
系统设计
程序设计
编写程序
单元测试
集成测试
系统测试
系统交付
维护
软件测试是开发过程的重要组成部分,是用来确认一个系统的品质或性能是否符合用户提出的要求和标准。软件测试是在软件投入运行前,对软件需求规格说明、设计规格说明和编码的最终复审,是软件质量保证的关键过程。

2、软件危机

a)计算软件开发和维护过程中所遇到的一系列严重问题。包含两方面:一是如何开发软件以满足不断增长日趋复杂的需求,另一方面是如何维护数量不断膨胀的软件产品。

3、可以移植

a)是软件从某一环境转移到另一环境的能力。

4、软件过程模型-瀑布、增量、螺旋(风险驱动)、原型化等模型

a)瀑布模型:一个开发阶段必须在另一个开发阶段开始之前完成

b)原型化:原型是一个部分开发的产品,它使客户和开发人员能够对计划开发的系统的相关方面进行检查,以决定它对最终产品是否合适或恰当。原型化模型:允许开发人员快速构造整个系统或系统的一部分以理解和澄清问题。原型化可以改善对需求和设计的理解,因此,选择原型化过程可以降低很多项目风险。

c)增量开发:需求文档中指定的系统按功能划分为子系统,定义发布时首先定义一个小的功能子系统,然后在每一个新的发布中增加新功能,而迭代开发是在一开始就提交一个完整的系统,然后在每一个新的发布中改变每个子系统的功能。他们是阶段化开发的两种方法。

d)螺旋模型:它把开发活动和风险管理结合起来,以将风险减到最小并控制风险。它以需求和一个初始的开发计划为起点,在产生“操作概念”的文档之前,该过程插入一个评估风险和可选原型的步骤。螺旋模型的每一次迭代都根据需求和约束进行风险分析,以权衡不同的选择,并且在确定某一特定选择之前,通过原型化验证可行性或期望度。当风险确认之后,项目经理必须决定如何消除或最小化风险。

5、模块的内聚和耦合

a)耦合是对一个软件结构内各个模块之间互连程度的度量,其强弱取决于模块间接口的复杂程度、调用模块的方式以及通过接口的信息。

b)内聚是标志一个模块内各个元素彼此结合的紧凑程度。

c)应做到低耦合高内聚。

6、快速原型的开发,细分为……,用于替代实际阶段,帮助我们设计

7、软件开发环境,包括哪些方面

a)

8、编写代码要规范,程序序言说明

a)

9、结构化强调什么东西

a)

10、软件质量的度量模型(哪几个方面)

a)

11、软件复杂性,如何度量,为什么要……-工作量,成本,常用方法

a)

12、面向对象的要素

a)

13、软件生成周期,软件结构设计

14、需求分析方法,涉及到问题的数据、功能

a)结构化分析法:基于问题分解与抽象的观点,将任何信息处理过程看作是将输入数据变换成所要求的输出信息的装置,因此数据流分析是需求分析的出发点。

b)面向对象的分析方法:

15、在与用户需求为动力,以对象模型为驱动(软件开发模型)

16、软件产品的特点,主要成本体现在哪(人)

a)

17、流程图采用什么样的……解决什么问题,描述……

a)

18、编程风格

a)

19、软件项目进度安排

a)项目的进度安排应该综合考虑各种情况,从各种开发资源得到最佳利用的角度估计每个开发阶段的工作量和所需时间,从而得到将会日期,这其中必须充分考虑到软件系统测试时间。但实际工程更常见的是最后交付日期由用户方确定,因此软件进度计划常采用倒计时方式安排。

20、什么是软件项目计划、管理

a)

21、制定项目开发计划文档,包含哪些内容,哪些人

a)项目开发计划主要内容如下:

i.项目概述:说明项目的各项主要工作以及软件的功能、性能;用户及合同承包者承担的工作、完成期限及其他条件;应交付的程序所使用的语言及其存储形式;应依附的文档。

ii.实施计划:说明任务的划分,每阶段应完成的任务,项目开发的进度,各项任务的责任人,项目的预算,以及各阶段的费用支出预算。

iii.人员配置:说明该项目所需人员的类型和数量以及组成结构等。

iv.支付期限:说明项目最后交付的日期。

22、UML干什么,特点,好处

UML统一建模语言是用于文档化软件规格说明和设计的一组表示法。UML根据对象和方法表示系统,对象类似于实体,按照具有继承层次的类进行组织。是一种功能强大的,面向对象的可视化系统分析的建模语言,它的各个模型可以帮助开发人员更好地理解业务流程,建立更可靠,更完善的系统模型。从而使用户和开发人员对问题的描述达到相同的理解,以减少语义差异,保障分析的正确性。

23、软件详细设计、概要设计,主要任务

a)详细设计任务:算法设计、数据结构设计、物理设计、其他设计、编写详细设计说明书、评审

b)概要设计任务:

24、软件可靠性,质量,什么方法来加强

25、可靠性

a)可靠性指与在规定的一段时间和条件下,软件能维持其性能水平能力有关的一组属性

26、需求追踪

a)

27、注释——两类

a)

28、软件产品在交付使用前

a)

29、数据流图,概念

a)

30、软件管理哪些需要控制

a)

31、软件项目管理过程的一个关键活动是什么活动

a)

32、容错技术主要手段

对于规定功能的软件,在一定程度上对自身的错误的作用具有屏蔽能力,能从错误状态恢复到正常状态,在发生错误时仍然能在一定程度上完成预期的功能,在一定程度上具有容错能力。容错的一般方法:冗余——指所有对于实现系统规定功能来说是多余的那部分资源,包括硬件、软件、信息和时间。有四类冗余技术:结构冗余、信息冗余、时间冗余、冗余附加技术

33、测试——仿真,(模拟上层模块……)

a)

34、软件测试需要什么相关信息

a)

35、白盒测试,覆盖标准,发现错误最强是……

a)白盒测试是穷举路径测试,其覆盖标准有逻辑覆盖、循环覆盖和基本路径覆盖测试。其中逻辑覆盖包括语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖。这六种覆盖标准发现错误的能力由弱至强变化。

36、渐增式测试

a)渐增式测试:是先从单个模块开始测试,然后每次将测试后的一个模块添加到系统中并测试,系统像“滚雪球”一样越滚越大,直到把所有的模块都组装并测试完毕。渐增式测试又可以根据每次添加模块的路线分为自顶向下测试、自底向上测试和混合测试等方式。

b)渐增式有利于排错。如果模块界面间有错,如果用非渐增式,这类错误要到最后联合测试时才能发现,此时很难判断错误发生在程序的哪一部分,但如果用渐增式,这类错误就较容易定位,它通常与最新加上去的那个模块有关。

37、测试有几种

a)依次单元测试-集成测试-确认测试-系统测试-验收测试。

b)单元测试指集中对用源代码实现的每一个程序单元进行测试,检查各个程序模块是否正确地实现了规定的功能。单元测试是在测试过程中的最小粒度,它在执行的过程中紧密的依照程序框架对产品的函数和模块进行测试,包含入库和出口的参数,输入和输出信息,错误处理信息,部分边界数值测试。

c)集成测试把已测试过的模块组装起来,主要对与设计软件体系结构的构造进行测试。集成测试是在单元测试的基础上,测试在将所有的软件单元按照概要设计规格说明的要求组装成模块、子系统或系统的过程中,各部分工作是否达到或实现相应技术指标及要求的活动。测试各个模块和函数之间的相互衔接情况,互动情况,输入输出情况。

d)确认测试则是检查已实现的软件是否满足了需求规格说明中确定了的各种需求,以及软件配置是否完全、正确。

e)系统测试把已经经过确认的软件纳入实际运行环境中,与其他系统成分组合在一起进行测试。

f)验收测试看软件是否完成了需求的要求,测试重点主要是产品是否按照需求开发的,而不从针对功能进行的测试。验收测试的测试手段目前来说还是靠用户体验。对照合同的需求进行测试

38、维护几种类型(发生错误)

a)改正性维护:在软件运行中发生异常或故障时进行的,它的任务就是诊断和修改软件,以识别和纠正软件中存在的错误,去掉软件性能上的缺陷,排除运行中的误操作等。

b)适应性维护:对软件进行适当的修改,以便使运行的软件能与变化后的环境相适应。经常发生同时可以控制。

c)完善性维护:通过修改软件,扩充软件的功能,提高原有软件的性能,满足用户日益增长的需求。

d)预防性维护:为提高软件的可维护性、可靠性等,对软件进行一些适当的改动,这种改动既不是修改错误也不是提高软件效率,而是为了今后进行的软件维护活动,为进一步改进软件打下良好的基础。

e)在维护的不同阶段,各种维护的工作量也在不断地发生变化,在开始时期,改正性维护占了大部分的工作量,随着错误的修正而减少,但同时适应性和完善性维护工作量上升又会引发新错误。几种维护所占比例最大是完善性维护(50%),依次是适应性维护(25%)、改正性维护(20%)、预防性维护(5%)。维护占软件生存期的70%左右。

39、可维护性好,从哪几方面看。提高软件可维护性方法。

a)软件可维护性是指软件被理解、改正、调整和改进的难易程序。可理解性、可测试性、可修改、可移植性

b)方法可从五方面入手:软件的质量目标和优先级,建立明确的质量目标并规定它们的优先级。提高软件质量的技术和工具。质量保证审查。程序设计语言。软件文档,具有好的文档才具有较高的可维护性,软件系统的文档可分为用户文档和系统文档两类。

40、没文档,只有程序怎么维护

41、文档对软件开发的作用

a)文档是影响软件可维护性的决定性因素,有用户文档和系统文档两类。

b)用户文档主要描述系统功能和使用方法,它包括功能描述、安装说明、使用说明、参考手册、操作员指南等五方面的内容。

c)系统文档描述系统设计、实现、测试等各个方面的内容,包括从问题定义、需求分析到验收测试计划这样一系列与系统实现有关的文档。

d)文档可以规范对软件开发过程的管理,提高软件开发工作的效率,避免公司资源的流失,使公司不会在项目开发上被动,帮助公司走向专业化,提高软件质量,便于软件过程的改进,应对年审等等。让开发者在开发过程中清楚自己的位置和工作的进展,便于自己将来对以前的代码进行阅读和改进,让自己在开发工作中时刻保持主动的位置,帮助自己由原来的开发人员上升到开发管理的层次或是便于你对开发团队的管理等等。

1、瀑布模型

a)将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试、运行维护等基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。一个开发阶段必须在另一个开发阶段开始之前完成。

b)存在问题:各个阶段划分完全固定,阶段之间产生大量的文档,极大地增加了工作量。由于开发模型是线性的,用户只有等到整个过程的末期才能看到开发成果,增加风险。早期的错误可能要等到开发后期的测试阶段才能发现,后果严重。

2、软件开发方法

a)结构化方法。即面向功能或数据流的软件开发方法。基本要点是自顶向下,逐步求精,模块化设计。

b)面向数据结构的开发方法。根据数据结构设计程序处理过程的方法。思想是自顶而下、逐步求精、单入口、单出口,基本原则是抽象和功能分解。最适合于详细设计阶段使用。

c)面向对象的方法。一种自底向上和自顶向下相结合的方法,而且它以对象建模为基础,从而不仅考虑了输入、输出数据结构,实际上也包含了所有对象的数据结构。

d)视觉化开发方法。在可视化感叹具提供的图形用户接口上,通过操作接口元素,由可视感叹具自动生成应用软件。

3、原型开发步骤

a)明确用户基本信息需求

b)建立初始原型

c)评价原型,评价系统的优点和不足,进一步明确用户需求,提出修改原型系统的具体意见。

d)根据修改的需求,进一步修改和完善原型。

4、可行性研究主要任务、目的。可行性分析包含什么内容,从几方面讲

a)任务:用最小的代价、在尽可能短的时间内确定问题是否能够解决。根本目的并不是解决问题,而是确定问题是否值得去解决,也就是判断系统原定的目标和规模是否能实现,软件使用所带来的效益是否能够值得客户去投资开发。

b)包括经济可行性、技术可行性、法律可行性、开发方案选择。

5、增量式构造模型特点

a)增量开发:需求文档中指定的系统按功能划分为子系统,定义发布时首先定义一个小的功能子系统,然后在每一个新的发布中增加新功能,整个产品被分解成若干个构件,开发人员逐个构件地交付产品。

b)好处是软件开发可以较好地适应变化,客户可以不断地看到所开发的软件,从而降低开发风险。

c)缺陷:由于各个构件是逐渐并入已有的软件体系结构中的,所以加入构件必须不破坏已构造好的系统部分,这需要软件具备开放式的体系结构。在开发过程中,需求的变化是不可避免的,增量模型的灵活性可以使其适应这种变化的能力大大优于瀑布模型和快速原型模型,但也很容易退化为边做边改模型,从而使软件过程的控制失去整体性。

6、软件工程研究的主要内容,面临的重要问题

软件工程是一门工程学科,涉及软件生产的各个方面,从最初的系统描述一直到使用后的系统维护,都属于其研究的内容。其内容不仅涉及软件开发的技术过程,也涉及诸如软件项目管理、支持软件生产的工具、方法和理论的开发等活动。

面临主要问题

1、多样性挑战。必须开发出新技术,制作可靠的软件,从而足以灵活应对这种多样性。

2、交付上的挑战。在不损及系统质量的前提下,缩短大型、复杂系统的移交时间。

3、信任的挑战。研究能说明软件可信的技术。

7、需求分析遵循什么原则

1)分析人员要使用符合客户语言习惯的表达,尽量多的了解客户的业务及目标,以期获得满足客户功能和质量要求的系统。

2)分析人员必须编写软件需求报告,要求得到需求工作的解释说明。

3)开发人啼要尊重客户意见,开发人员要对需求及产品实施提出建议和解决方案,同时分析人员也要尊重开发人员的需求可行性及成本评估。

4)和各种方法特别是容易理解和交流的图形来准确而详细地描述需求,描述产品使用特性。

5)尽量重用已有的软件组件。

6)及时作出决定。

7)认真细致地评审需求文档和原型。

8、需求分析的基本任务

对目标系统实现的功能等提出完整、准确、清晰、具体的要求。具体任务:

1)确定对系统的综合要求。包括功能要求、性能要求、运行环境要求和其他要求等方面。

2)分析系统的数据要求。由系统的信息流归纳出系统数据要求中所需要的数据以及数据间的逻辑关系。

3)导出目标系统的详细逻辑模型。

4)修订系统开发计划。

5)开发原型系统。使用户通过实际的尝试,增加对未来系统的认识,从而帮助用户进一步验证、更正或补充他们的需求。

9、墨盒测试,白盒测试

黑盒测试也称为功能测试或数据驱动测试,它是在已知产品所应具有的功能上,通过测试来检测每个功能是否都能正常使用。 在测试时,把程序看作是一个不能打开的黑盒子,在完全不老虎程序内部结构和内部特性的情况下,测试者在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息,并且保持外部信息的完整性。方法主要有等价类划分、边值分析、因果图、错误推测等,主要用于软件确认测试。穷举输入测试,只是把所有可能的输入都作为输入情况使用,以这种方法查出程序中所有的错误。

白盒测试也称结构测试或逻辑驱动测试,它知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都能按预定要求正确工作,而不考虑它的功能。主要方法有逻辑驱动、基本路径测试等,主要用于软件验证。

P91 8

P196 20

P234 1下载本文

显示全文
专题