软考-软件设计师:软件工程-软件生存周期(软件生命周期)

介绍

与其他事物一样,一个软件产品或软件系统也要经历孕育、诞生、成长、成熟、衰亡的许多阶段,一般称为软件生存周期。

作用

把整个软件生存周期划分为若干阶段,使得每个阶段有明确的任务,使规模大、结构复杂和管理复杂的软件的 开发变得容易控制和管理。

软件生存周期

通常包括:

  • 可行性分析与项目开发计划
  • 需求分析
  • 设计(概要设计和详细设计)
  • 编码
  • 测试
  • 维护等活动

可以将这些活动以适当的方式分配到不同的阶段去完成。

1.可行性分析与项目开发计划

要确定软件的开发目标及其可行性。

必须要回答的问题是:

  • 要解决的问题是什么?
  • 该问题有可行的解决办法吗?
  • 若有解决的办法,则需要多少费用?
  • 需要多少资源?
  • 需要多少时间?

要回答这些问题,就要进行问题定义、可行性分析,制订项目开发计划。

可行性分析与项目计划阶段的参加人员有:

  • 用户
  • 项目负责人
  • 系统分析师

该阶段产生的主要文档有:

  • 《可行性分析报告》
  • 《项目开发计划》

2.需求分析

  • 准确地确定软件系统必须做什么

  • 确定软件系统的功能、性能、数据和界面等要求

  • 从而确定系统的逻辑模型

该阶段的参加人员有:

  • 用户
  • 项目负责人
  • 系统分析师

该阶段产生的主要文档有:《软件需求说明书》

3. 概要设计

开发人员要把确定的各项功能需求转换成需要的体系结构。

  • 设计软件的结构,明确软件由哪些模块组成,这些模块的层次结构是怎样的,这些模块的调用关系是怎样的,每个模块的功能是什么。

  • 设计总体数据结构和数据库结构,即应用系统要存储什么数据,这些数据是什么样的结构,它们之间有什么关系。

概要设计阶段的参加人员有:

  • 系统分析师
  • 软件设计师

该阶段产生的主要文档有:《概要设计说明书》

4. 详细设计

对每个模块完成的功能进行具体描述,要把功能描述转变为精确的、结构化的过程描述。即该模块的控制结构是怎样的,先做什么,后做什么,有什么样的条件判定,有些什么重复处理等,并用相应的表示工具把这些控制结构表示出来。

详细设计阶段的参加人员有:

  • 软件设计师
  • 程序员

该阶段产生的主要文档有:《详细设计文档》

5. 编码

把每个模块的控制结构转换成计算机可接受的程序代码,即写成某种特定程序设计语言表示的源程序清单。

6. 测试

测试是保证软件质量的重要手段,其主要方式是在设计测试用例的基础上检查软件的各个组成部分。

测试阶段的参加人员:通常是另一部门(或单位)的软件设计师或系统分析师。

该阶段产生的主要文档有:

  • 《软件测试计划》
  • 《测试用例》
  • 《软件测试报告》

7. 维护

是软件生存周期中时间最长的阶段。已交付的软件投入正式使用后,便进入软件维护阶段,它可以持续几年甚至几十年。

在软件运行过程中可能由于各方面的原因需要对它进行修改,其原因:

  • 可能是运行中发现了软件隐含的错误而需要修改;
  • 可能是为了适应变化了的软件工作环境而需要做适当变更;
  • 可能是因为用户业务发生变化而需要扩充和增强软件的功能;
  • 可能是为将来的软件维护活动做预先准备

原文出处:/show_1GWxJqSe1l2.html