(完整)软件工程导论(第6版)知识点总结、复习课,推荐文档

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

复习课

--------酷爱 YC

第一章

1、什么是软件危机,什么是软件工程

软件危机是指在计算机软件开发、使用与维护过程中遇到的一系列严重问题和难题。它包括两方面:(1)如何开发软件,以满足对软件日益增长的需求;(2)如何维护数量不断膨胀的已有软件。

软件工程:采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件,并有效地维护它。

2、完整的软件配置由哪些内容组成

软件配置主要包括程序,文档和数据等成分。

3、软件生命周期分为哪3 个时期和8 个阶段,每个阶段的任务(工作)分别是什么,重要性如何

概括地说,软件生命周期由软件定义、软件开发和运行维护3 个时期组成

1、软件定义(系统分析)。

软件定义时期的任务是:确定软件开发工程必须完成的总目标;确定工程的可行性;导出实现工程目标应该采用的策略及系统必须完成的功能;估计完成该项工程需要的资源和成本,并且制定工程进度表。这个时期的工作通常又称为系统分析,由系统分析员负责完成。软件定义时期通常进一步划分成3 个阶段,即问题定义、可行性研究和需求分析。

(1)问题定义,确定系统要解决的问题是什么。成果:关于问题性质、工程目标和工程规模的报告。

(2)可行性研究,确定问题是否有可用的、能行得通的解(包括:技术、经济、操作、社会等方面的可行性)。这个阶段的任务不是具体解决问题,而是研究问题的范围,探索这个问题是否值得去解,是否有可行的解决办法。成果:可行性研究报告。

(3)需求分析,确定软件系统的必须实现的功能、必须达到的性能、必须满足的运行环境要求。系统分析员在需求分析阶段必须和用户密切配合,充分交流信息,以得出经过用户确认的系统逻辑模型。通常用数据流图、数据字典和简要的算法表示系统的逻辑模型。在需求分析阶段确定的系统逻辑模型是以后设计和实现目标系统的基础,因此必须准确完整地体现用户的要求。成果:软件需求规格说明书(SRS),内容包括:系统的逻辑模型;系统(子系统)的名称、功能描述、接口、基本数据结构、性能、设计需求、开发标准、验收原则等。

2、软件开发。

开发时期具体设计和实现在前一个时期定义的软件,它通常由下述 4 个阶段组成:总体设计,详细设计,编码和单元测试,综合测试。其中前两个阶段又称为系统设计,后两个阶段又称为系统实现。

(1)总体设计(概要设计),回答“怎样实现目标系统”。

建立系统的总体结构,划分子系统;确定系统由哪些模块组成,各子系统间、各模块间

的关系(包括定义各子系统接口界面和各功能模块的接口,设计全局数据库或数据结构,规定设计约束,制定组装测试计划)。成果:概要设计说明书、数据库或数据结构说明书、系统的组装(集成)测试计划等文档。

(2)详细设计任务就是把解法具体化,也就是回答:“应该怎样具体地实现这个系统呢?”,设计每个程序模块的内部细节,包括数据结构、算法以及各程序模块间的接口信息,并

设计模块的单元测试计划。成果:详细设计规格说明和单元测试计划等详细设计文档。

以上(1)、(2)又合称为软件设计。

(3)编码和单元测试这个阶段的关键任务是写出正确的容易理解、容易维护的程序模块。根据详细设计规格说明,选用某种程序设计语言把详细设计的结果转化为机器可运行的

源程序模块;运行和调试每一个程序模块;每编写出一个程序模块的源程序,调试通过后,即对该模块进行单元测试。成果:按一定规则存在盘上的通过了单元测试的各功能

模块的集合;详细的单元测试报告等文档。

(4)综合测试通过各种类型的测试(及相应的调试)使软件达到预定的要求。最基本的测

试是集成测试和验收测试。成果:①满足概要设计要求、可运行软件系统和源程序清单;组装测试报告等文档。②验收测试报告、项目开发总结报告,向用户提交的源程序清单、最终用户手册、操作手册等文档资料;由专家、用户负责人、软件开发和管理人员组成

软件评审小组对软件验收测试报告、测试结果和软件进行评审,最终验收软件产品。

以上(3)、(4)又合称为软件实现。

三种不同的软件测试:单元测试、集成测试、验收测试。

3、软件运行与维护

软件技术人员通过各种维护活动使软件系统持久满足用户需要。

通常有4 类维护活动:改正性维护,也就是诊断和改正在使用过程中发现的软件错误;适应性维护,即修改软件以适应环境的变化;完善性维护,即根据用户的要求改进或扩充软件使它更完善;预防性维护,即修改软件为将来的维护活动预先做准备。

成果:①更新后的软件产品;②准确记录维护活动的文档。

4、几种传统软件工程生命周期模型:

瀑布模型:基本思想、主要优点

传统的瀑布模型

基本思想:瀑布模型严格按照软件生存周期各个阶段来进行开发,上一阶段的输出即是下一阶段的输入,并强调每一阶段的严格性。它规定了各阶段的任务和应提交的成果及文档,每一阶段的任务完成后,都必须对其阶段性产品(主要是文档)进行评审,通过后才能开始下一阶段的工作。因此,它是一种以文档作为驱动的模型。

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

快速原型模型:基本思想

基本思想:软件开发人员根据用户提出的软件基本需求快速开发一个原型,以便向用户展示软件系统应有的一部分或全部功能和性能,同时使用户熟悉系统。在征求用户对原型的初步意见后,进一步使需求全面化、精确化,并据此改进、完善原型。如此迭代,直到软件开发人员和用户都通过原型确认软件系统的需求并达成一致的理解为止。软件需求确定后,便可进行设计,编码、测试等以后的各个开发步骤。

增量模型:基本思想、主要优点

相关文档
最新文档