软件工程基础期末复习资料完整版

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2.文档有何作用?程序代码属不属于文档?

答:文档指的是在软件开发和维护过程中形成的文字记录。从软件计划、分析、设计、实现(编码和测试)、维护等开发活动中形成的各种文件。文档属于软件的一部分,是软件维护和升级的重要依据,并且文档内容要与代码同步更新。没有文档的软件维护不但不能延长反而会缩短软件寿命。

文档包括需求规格说明书、设计说明书、用户使用说明书、在线帮助等,当然程序代码是必不可少的一种软件文档。

3.什么是软件危机?什么原因产生了软件危机?

答:软件危机指的是在计算机软件的开发和维护过程中所遇到的一系列严重问题。产生的原因是主客观不相适应。见书图1-2。

●客观上:软件规模增大、功能要求越来越复杂,需求不断变化等;

●主观上:传统的个体化开发观念和方法,无开发过程指导,无开发过程管理;

由于主客观矛盾,必然产生软件质量差、开发超期、超预算、维护困难等现象。

5.软件工程三要素是什么?

答:软件工程三要素是从计算机科学观点看软件工程,即从软件开发的技术层面应该有过程、方法和工具。见图1-4。

(2)“过程”是软件产品加工所经历的一系列有组织的活动,保证能够合理、高质量和及时地开发出软件。过程定义的活动集合及其序列见第2章。

(3)“方法”为软件开发提供“如何做”的技术,它涵盖了项目计划、需求分析、系统设计、程序实现、测试与维护等一系列活动的做法。如经常说的面向结构、面向对象、面向组件等开发方法,项目管理中估算、度量、计划等管理方法。软件工程以介绍方法为主,本书从第3章开始逐步介绍开发过程所用到的方法。

(4)“工具”为过程和方法提供自动的或半自动的支持。这些工具既包括软件也有硬件。软件工具包括编程、建模、管理等开发工具。通过网络环境把这些软件工具集成起来搭建一个支持团队开发的平台,称之为计算机辅助软件工程 (Computer Aided Software Engineering,CASE)。CASE集成了软件、硬件和一个存放开发过程信息的软件工程数据库,形成了一个软件工程环境。

6.软件工程的目标、过程和原则是什么?

答:目标、过程、原则是一切工程的三维框架,它是以工程的观点来看待软件开发。见书1.5.2节

(1)软件工程的目标:降低成本,及时交付高质量的软件产品(高质量、高效率、高效益)。(2)实现目标的过程:完成产品加工的过程。它包括:基本过程、支持过程和组织过程。(3)进行过程应遵守的原则:原则就是过程中的轨道约束。它包括:选取适宜开发范型、采用合适的设计方法、提供高质量的工程支持、重视开发过程的管理。

7.软件工程原理有哪几条?

答:软件工程的基本原理是指导软件工程实践的思想方法,一共有7条,这7条原理相互支撑,保证软件产品的质量和开发效率。见书1.5.4节。

(1)用分阶段的生命周期计划严格管理;

(2)坚持进行阶段评审;

(3)实行严格的产品控制;

(4)采纳现代程序设计技术;

(5)结果应能清楚地审查;

(6)开发小组的人员应少而精;

(7)承认不断改进软件工程实践的必要性;

2.软件过程与软件工程有什么区别和联系?

答:(1)过程与工程是两个层面的问题,过程是加工高质量软件产品的活动集合和顺序,具体的投入产出过程,关注在技术层面;工程是对过程的投入进行资源协调,是向过程要效益的管理层面。

(2)软件过程是软件工程的子集。在软件工程的过程、方法和工具三要素中,它是底层要素;在软件工程的目标、原则和过程三维全景图中,通过软件过程才能实现软件工程的目标。

3.什么是软件生命周期?与软件过程有何区别和联系?

答:

(1)软件生存周期:软件产品从定义到开发、经过使用和维护,直到最终被弃用;

(2)两者指同一个事情,只是表达问题的角度不同:

●软件过程:关注产品加工的活动集合、顺序和方法论;

●生命周期:关注软件产品从诞生到消亡的生命历程,实质内容也就是软件过程;

因此软件过程=软件生存周期,“软件生存周期模型”也称为“软件过程模型”或“软件开发模型”。

5.软件生命周期划分哪些阶段?每个阶段有哪些基本活动?

答:生存周期的基本划分:分成三个大的阶段也称三个时期,即计划时期、开发时期和运行时期。每个时期又由若干活动组成。

●计划时期:是软件项目的初始阶段。主要活动及顺序是问题定义和可行性研究;活动内容是搞清软件的开发目的、规模、约束条件和技术方案,属论证阶段;目标是获取软件开发项目。

●开发时期:软件开发的第二阶段。包括的活动及顺序是分析、设计和实现;活动内容是逐步细化软件模型、经过编码和测试,最终得到可运行的软件。开发时期属实质性开发阶段;目标是构建高质量的软件。

●运行时期:软件生存周期的最后阶段,软件处在运行中,往往也是最长阶段。主要活动就是维护;活动内容是治疗和进化软件;目标是延长软件的寿命。

6.介绍了哪四种传统开发模型?各有何特点?

答:瀑布、原型、增量、螺旋四个传统模型:

(1)瀑布模型:主要体现了分阶段、有控制的思想。活动间强调按顺序、文档化;存在的问题是:过于理想化,每一步的工作必须完整准确,否则无法进行下一步工作。

(2)原型模型:需求分析入手快速、表达直观、容易交流。重点解决瀑布模型需求分析入手难的问题。

(3)增量模型:对于需求复杂的系统,采用分块开发,逐步集成的开发策略。增量体现了演进、迭代思想,每一块就是一个增量。每个增量是一次迭代。增量模型的新版本叫做“极限编程”(XP)。

(4)螺旋模型:融合了上述三种模型,融进了循环往复、强化了演进迭代的思想,增加风险控制环节。但风险分析的正确性是左右软件演进的关键因素。

7.当需求不能一次搞清,且系统要求比较复杂时应选用哪种开发模型较适合?

答:开发模型不是孤立或排斥的,相互借鉴和参考。在上述四种古典螺旋模型中,螺旋模型是一种综合性的模型,适应于较复杂的系统。

8.RUP模型有哪些优越性?为何得到如此广泛的应用?

答:RUP采用了时间与过程的二维表达方式,全面贯穿了软件开发分段、分层、细化、往复、循环、迭代、并发、重叠、演进、基线、里程碑、评审、控制等方法论。

(1)生命周期模型分为初始、细化、构造和交付四个阶段,比三个时期的传统模型更为合理。因为各种活动不是随阶段的划分而戛然截止,每个阶段多种活动是重叠、

并发、延续、主次分明;

(2)阶段控制采用了基线与里程牌,工作有起点、有目标、有计划;

(3)模型反映了软件开发需要团队合作,因此RUP是一个团队模型;

(4)双重迭代,大迭代(周期迭代)完成一个新版本,小迭代(阶段内迭代)完成里程牌目标;

(5)RUP并不是不讲究维护,维护只是一个新的增量迭代(周期迭代)过程,在过程集合中有“配置和变更管理”活动来管理软件的维护;

1.软件计划时期有哪些工作活动?目标是什么?

答:

软件计划是基本生命周期模型中的的第一个阶段,作为项目的起点,多数活动处在商务层面,面向决策层。主要活动有三项:

(1)问题研究;

(2)可行性研究;

(3)项目计划。

该阶段目标就是完成产品立项,中心工作是确定开发什么样的软件、是否值得去开发、继而作出初步的安排。在RUP模型中属于“初始阶段”,它的里程牌就是“软件目标”。

2.问题定义阶段的目的、任务是什么?

答:

●问题定义阶段的目的:弄清要计算机解决的根本问题所在(目的),确定新系统的

作用域(范围与规模),以及项目所需的资源、工期和经费。就是搞清解决问题的

题意和约束条件。

●主要任务:在向用户调查研究的基础上,编写项目报告提交审查,并作为下一次工作可

行性分析的依据。

3.可行性研究的目的、任务是什么?

答:

●可行性研究的目的:确定项目以最小的代价在尽可能短(限定)时间里是否能够开

发,是否值得去开发。即在约束条件下问题是否有解。

相关文档
最新文档