软件工程第一章概论 课后练习

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

软件工程第一章概论课后练习,复习资料

1.软件的定义

软件是计算机系统中与硬件相互依存的一个部分,它是包括程序、数据及其相关文档的完整集合。其中,程序是按事先设计的功能和性能要求执行的指令序列;数据是使程序能正常操纵信息的数据结构;文档是与程序开发、维护和使用有关的图文材料。

2.软件工程的定义和三要素

IEEE:软件工程是开发、运行、维护和修复软件的系统方法。

Fritz Bauer:建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法。

三个要素:方法、工具和过程。

方法为软件开发提供了“如何做”的技术。它包括了多方面的任务,如项目计划与估算、软件系统需求分析、数据结构、系统总体结构的设计、算法过程的设计、编码、测试以及维护等。

工具为软件工程方法提供了自动的或半自动的软件支撑环境。目前,已经推出了许多软件工具,这些软件工具集成起来,建立起称之为计算机辅助软件工程(CASE)的软件开发支撑系统。CASE将各种软件工具、开发机器和一个存放开发过程信息的工程数据库组合起来形成一个软件工程环境。

过程则是将软件工程的方法和工具综合起来以达到合理、及时地进行计算机软件开发的目的。过程定义了方法使用的顺序、要求交付的文档资料、为保证质量和协调变化所需要的管理、及软件开发各个阶段完成的里程碑。

3.软件工程和软件危机的关系

现有软件危机后有软件工程

为了解决软件危机,既要有技术支持措施(方法和工具),又要有必要的组织管理措施。软件工程正是从管理和技术两方面研究如何更好的开发和维护计算机软件的一门新兴学科。

4.软件生命周期的概念,划分的三个时期和八个阶段

概念:软件生命周期(SDLC,Systems Development Life Cycle,SDLC)是软件的产生直到报废的生命周期

三个时期:软件定义,软件开发,运行维护

8个阶段:问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级到废弃

5.理解结构化软件开发方法和面向对象软件开发方法

结构化开发方法:

早期的程序开发,如C语言,都是用结构化开发方法。

结构化开发又叫做面向过程开发,具体原理是将一个软件分为多个过程(函数)进行开发,用结构体管理数据。这种开发方式使得代码的可读性变得很低,并且代码难以移植。面向对象软件开发方法:这是一种自底向上和自顶向下相结合的方法,而且它以对象建模为基础,从而不仅考虑了输入、输出数据结构,实际上也包含了所有对象的数据结构。

6. 软件生命周期模型(又称做过程模型)各自阶段、特点和适用项目

瀑布模型

阶段:

特点:1),阶段间具有顺序性和依

赖性

2),推迟实现的观点

3),质量保证的观点

瀑布模型适用于结构化方法,也就

是面向过程的软件开发方法。软件项

目或产品选择瀑布模型必须满足下

列条件:在开发时间内需求没有或很

少变化;分析设计人员应对应用领域很熟悉;低风险项目(对目标、环境很熟悉);用户使用环境很稳定;用户除提出需求以外,很少参与开发工作

快速原型模型

特点:

快速建立起能够在计算机上运行的程序。

优点:软件产品的开发基本上是线性的

缺点:必须迅速地构建原型然后根据用

户意见循序的修改原型

适用范围:

用户需求不明确,需要通过构建原型来清

楚的了解用户的真实需求。

增量模型

特点:

增量模型的特点是引进了

增量包的概念,无须等到所

有需求都出来,只要某个需

求的增量包出来即可进行开

发。虽然某个增量包可能还

需要进一步适应客户的需求

并且更改,但只要这个增量包足够小,其影响对整个项目来说是可以承受的。

增量模型具有较大的灵活性,适合于软件需求不明确、设计方案有一定风险的软件项目

螺旋模型

螺旋模型最大的特点在于引

入了其他模型不具备的风险分

析,使软件在无法排除重大风险

时有机会停止,以减小损失。同

时,在每个迭代阶段构建原型是

螺旋模型用以减小风险的途径。

螺旋模型更适合大型的昂贵

的系统级的软件应用。

喷泉模型

优点:

喷泉模型不像瀑布模型那样,需要分析

活动结束后才开始设计活动,设计活动结束

后才开始编码活动。该模型的各个阶段没有

明显的界限,开发人员可以同步进行开发。

其优点是可以提高软件项目开发效率,节省

开发时间,适应于面向对象的软件开发过

程。

缺点:

由于喷泉模型在各个开发阶段是重叠

的,因此在开发过程中需要大量的开发人

员,因此不利于项目的管理。此外这种模型

要求严格管理文档,使得审核的难度加大,

尤其是面对可能随时加入各种信息、需求与

资料的情况。

喷泉模型适应于面向对象的软件开发

过程。

特点:

相互迭代:软件的某个部分常常被重复工作多次,相关对象在每次迭代中随之加入渐进的软件成分

无间隙性:它在各项活动之间没有明显边界

RUP

四个阶段

先启阶段:建立业务模型,定义最终产品视图,并且确定项目的范围。

精化阶段:设计并确定系统的体系结构,制定项目计划,确定资源需求。

构建阶段:开发出所有构件和应用程序,把它们集成为客户需要的产品,并且详尽地测试所有功能。

移交阶段:把开发出的产品提交给用户使用。

RUP最重要的它有三大特点:

软件开发是一个迭代过程

软件开发是由Use Case驱动的

软件开发是以架构设计(Architectural Design)为中心的。

RUP适用于大型软件团队开发大型项目。

敏捷过程

特点:具备可视、可集成和可运行使用的特点

敏捷过程的适用于:软件需求经常变化或者需求变化比较大;项目团队与用户之间进行沟通比较容易;项目的开发风险比较高;规模比较小,一般项目组成员在50 人之内;项目团队的成员能力比较强,而且具有责任感;项目的可测试性比较好。

相关文档
最新文档