软件开发周期:软件生存周期

软件生存周期
    软件生存周期是软件工程学最基本的概念之一。各种各样的开发方法都不同程度地承认这个基本概念。
一、含义
    软件生存周期是指:从构思软件产品开始到产品不能再使用时为止的时间周期。软件生存周期典型地包括需求分析阶段、
设计阶段、实现阶段、测试阶段、安装和验收阶段、运行和维护协段,有时还包括引退阶段。在引退阶段内.对软件产品的支持将
被终止。
    相关的一个概念是软件开发周期。它是指从决定开发一个软件产品开始到产品交付为止的时间间隔。
    软件工程的生存周期方法学从时间进程的角度把软件的开发和维护过程划分为若干个阶段;每一个阶段的工作任务相对
独立,工作性质相近;每一个阶段工作的结束均经技术审查和管理复审;前一阶段工作的结束和确认是后一阶段工作开始的前
提;作为阶段间的通讯手段和阶段工作的审查依据,每个阶段均应提交高质量的文档资料。从而在软件开发结束时,可以提交一
个完整而准确的软件配置,成为运行维护阶段管理的依据。
    粗略来看,软件生存周期由计划、开发和运行三个时期组成,每一时期可再细分一些工作阶段。在不同的软件开发规范
中,尽管对阶段的划分表面看来略有差别,但实质上是完全一致的。生存周期概念仍然是解决复杂问题的普遍策略一抽象和分
解的体现。把整个开发问题分解为一个个子问题,便于各类人员分工协作,各个击破。在完成每个阶段的任务时,仍强调使用结
构化的系统技术,从而降低整个开发工程的难度。随着开发周期的时间进程,也就是在有限步内,把需要解决的问题从抽象逻辑
概念逐步转化为具体的物理实现,直到最终的源程序为止。
二、计划时期
    计划时期是软件生存周期的开始时期,这个时期的主要任务是确定软件开发任务的总目标;确定是否存在可行的系统解
决方案;在确定开发任务可以继续进行的前提下,制订开发工程的人力、资源和进度计划。
    可以把计划时期再细分为几个阶段:
    1.问题定义
    要确定的是:要求解决的问题是什么?经过初步的调查和访问,即可明确问题的性质、工程的目标和规模。
  2.可行性研究
  要确定的是:问题有解吗?经过粗略的分析和设计,应该得到若干个系统方案,对每一个解决方案都可以从技术上、经济
上、社会因素上分析可行性,即能不能做和应不应该做。
  3.制定开发计划
  在工程决定正式开发时,制定资源和进度计划。
三、开发时期
    如果在计划时期中断定软件的开发可行,那么软件进入到它的开发时期。在开发时期中,通过分析和设计,最终实现软件
系统。这一时期可细分为五个阶段:
    1.需求分析
    首先是确定系统的功能、性能和其它方面的要求,也就是回答:系统必须做什么?    、
    2,概要设计
    确定系统的事务处理流程,确定软件的总体结构和全局数据结构,以及对输入和输出、安全性控制等等方面作出全局性的
规划,从而回答系统应该怎么做,才能满足需求规定。
    3.详细设计
    给出软件的每一个构成元素,如程序模块、存贮数据结构、输入/输出数据等等的实际方案的详细策划。相当于其它工业产
品的制造蓝图设计。    ’    、  .
    4.编码    ’  ’
    生成软件在预定环境中的源程序形式,一般意义的“写程序”。    ’    .
  5.测试和排错    .
  设法找到程序的潜在错误,并加以修正,以提高软件的正确性和可靠性。    ’
四、运行时期
    软件开发完成,投入运行。运行时期的主要工作是软件维护。维护的目的在于使系统持久地满足用户的需要,直到不得不
开发新的软件为止。
    从上面的简要叙述可以看到软件生存周期方法的几个主要观点:    ’
    (1)阶段的顺序性和依赖性。采用工程化的方法开发软件时,从对任务的抽象逻辑分析开始,一个阶段一个阶段顺序工
作。前一阶段的完成是后一阶段工作的前提和依据,而后一阶段的完成往往又使前一阶段的成果在实现过程中具体了一个层
次。    。
    (2)逐步求精的结构化方法。从时间进程来看,整个软件的开发就是一个从抽象到具体的分层次实现过程,而每一个阶段
的工作,亦体现出自顶向下、逐步求精的结构化技术特点。
    (3)推迟实现的观点。对于有一定规模的软件;编码越早,完成的时间反而会更长,甚致导致不可挽回的失败,这是为无数事
例所证实了的。工程化方法在软件分桥阶段和设计阶段的工作,会导致独立于环境的抽象而完备的逻辑结果,这样必然大大缩
短编码实现时间,大大提高软件的正确性、可靠性和可维护性。
    (4)质量保证措施。工程方法规定每一阶段都要生成高质量的文档。文档是通讯的手段,是开发工作的依据,也是维护阶段
的重要支持信息。每一阶段对文档的复审,就是对本阶段工作成果的评定,使错误较难传递到下一阶段。越早纠正错误,付出的
开销就越少,这是工程化方法的基本观念之一。
  软件文档
    对文档(docMment)的一种定义是:一种数据媒体和其上所记录的数据。它具有永久性并可以由人或机器阅读,通常仅用于
描述人工可读的东西。在软件工程中,文档常常用来表示为了对活动、需求、过程或结果进行捞述、定义、规定、报告或认证的任何书面或图示的信息。
    文档有时也被称为文件。这时应该区分另一个也常常称为文件(file)的术语。它是指作为一个单位来看待的一组相关的记
录。而记录则是作为一个单位看待的有关数据(域)的集合,是客观世界信息实体的抽象表示。这种意义的文件,越来越多称之为
文卷,以便和文档含义的“文件”相区别。不幸的是,文卷这个名称又容易和另外一个也常译为卷(volumn)的术语混淆。卷是外
存没备上存巴数据的另一个逻辑单位,通常一个眷可以包含若干个文件(file)。
二、文档的作用
    在任何工业产品的生产过程中,总是伴随大量的信息要记录,要使用。比如全套制造田纸、各种工艺规范;使用手册、维护
说明、形形色色的管理报表、各类底账……等等。不难理解,文档在产品的开发生产过程中起着重要的作用。    ,
    首先,文档是记录手段。人的记忆能力有限,各神信息有必要以某种可阅读的形式录制下来,供各环节生产、管理、以及以
后的维护修改活动使用。
    文档又是通讯相交流的手段。这种交流可能是开发过程中专业人员和用户之间的交流,保证产品是符合用户需要的。也可
能是任务不同的专业人员之间的交流,使得对生产的目标有共同的理解。
    文档对生产过程起重要的控制作用。某一类文档的产生是某一生产阶段的工作成果和结束标志,也是下一阶段工作的依
据。后阶段的工作必须在前阶段由文档来体现的工作基础上继续进行,而绝不能自行其是。
    文档是生产过程的管理依据。任何质量保证体系,都必须依靠各类文档记录的信息来监督和协调生产过程,直到完成由文
档所预先确定的生产目标。
    文档又是维护的依据。没有开发过程中记录的完整而一致的信息,产品维护将会难以进行。对于软件产品这种具有高度逻
辑复杂性的产品来说,如果没有开发文档,维护工作将寸步难行。  
    文档还是产品的介绍媒介。阅读有关文档,可以得到对产品更深入、更全面的认识相评价。
    既然软件已经从手工技艺的开发方式发展到一种工业化的生产方式,文档在开发过程中就起到关键作用。从某种意义上
说,文档是软件开发规范的体现和导引。按规范要求生成一整套文档的过程,也就是按照开发规范完成一个软件开发的过程。所
以,在使用工程化的原理和方法来指导软件的开发和维护工作时,应该充分注意软件文档的编制和管理。
。  因此,软件绝不是程序的词义词。软件是与计算机系统的操作有关的程序、规程、规则及任何与之有关的文档及数据。
    文档的编制是软件开发过程中的重要工作,是工程化方法的重要体现。如果开发人员把软件文档的编制仍然看作是“额外
负担”,或者是开发过程完成后,“有空”才补写的说明资料,甚致认为源程序就是全部的“文档”,那么他就没有掌握软件工程化
开发方法的基本概念和原理。也许不能完全否认,直到今天我们仍然可以使用个体化的技艺方式来完成某一个软件的开发任
务。可是为什么我们不在自己的发展道路上,及早用业已证明是简单而有效的原理和方法武装自己,以免终有一天踏上那条必
然导致软件危机的历史旧路呢?
三、文档的形式和管理
    软件文档大体上可分两类:一类是开发过程中填写的各种图表,可称之为工作表格;另一类则是应编制的技术资料或技术
管理资料,可称之为文件。
    从编制形式来看,可以用自然语言,特别设计的形式语言,介乎二者之间的半形式语言(如结构化的描述语言),各类图形
表示、表格来编制文档。文档可以书写,也可以在计算机支持系统中产生,但是它必须是可阅读的。
    软件产品(包括文档和程序)在开发的不同时期具有不同的组合,这个组合,随着开发工作的进展而在不断变化,这就是所
谓软件配置的概念。从管理的角度,作为一个单位来看待的软件成份的集合称为配置项。可以想像,开发过程中涉及众多的配置
项,加上每一部份可能出现的修改要求,以及这些修改的影响扩张程度,对此所做的估价、协调,批准不批准等管理动作就相当
复杂,这样才能保证软件产品的最终质量。
    就软件开发的管理工作的内容而言,可以分为这样几个方面:项目管理(首先是费用管理和进度控制),质量管理和配置管
理。
    配置管理是标识和确定系统中配置项(文档、程序、数据的各种版本)的过程,在软件的整个生存周期内控制这些项的投放
和更动、记录并报告配置的状态和更动要求、验证配置项的完全性和正确性,以及系统级上的一致性。配置管理可以由专人负
责,也可借助于配置管理的工具。这些工具的核心是软件信息数据库,以方便对配置项进行跟踪和控制。
第二章 软件开发规范的国家标准 国家标准局在1988年1月发布了《计算机软件开发规范》(GB8566—88)和《软件产品开发文件编制指南》(GB8567—88),作为软件开发人员工作的准则和规程。两个国标(下面简称为《规范》和《指南》)已经从1988年7月开始实施。 计算机软件开发规范(GB8566—88) 《规范》基于软件生存周期方法,把软件产品从形成概念开始,经过开发、使用和不断增补修订,直到最后被淘汰的整个过程,划分为8个相互区别而又有联系的阶段,并详细规定了每个阶段的任务、实施步骤、实施要求、完成标志,以及全过程提交的N种文档资料。

相关推荐

相关文章