人们在研究人的成长过程时,通常把特征相同的时期划分为一个阶段,如孕育期、婴儿期、幼儿期等,这样使得研究目标、过程容易控制。同样为了使规模大、结构复杂的软件开发容易得到控制和管理,人们也把软件从提出开发要求开始直到该软件报废为止的整个时期分为若干个阶段。软件生存周期是指一个软件从提出开发要求开始直到该软件报废为止的整个时期,从时间的角度对软件开发和维护的复杂问题进行分解,把软件的生存周期依次划分为若干阶段,每个阶段有相对独立的任务,然后逐步完成每个阶段的任务。生存阶段划分时应遵循的基本原则是各阶段的任务尽可能相对独立,同一阶段各项任务的性质尽可能相同,每一阶段都有明确的任务。软件生存周期的划分方法会随着项目规模、种类、开发方式、开发环境、方法论的不同而变化。典型的软件生存周期各阶段通常包括可行性研究和项目开发计划、需求分析、概要设计、详细设计、编码、测试、维护等活动。[3]
(1)可行性研究和项目开发计划。这一阶段的基本任务是回答:“要解决的问题是什么?该问题有行得通的解决办法吗?若有解决问题的办法,则需要多少费用、资源、时间等?”
结束标准是提出关于问题性质、工程目标和规模的问题定义书面报告;提出可行性研究报告;若问题值得去解决,制定项目开发计划。
(2)需求分析。这一阶段的基本任务是回答:“为了解决这个问题,目标系统必须做什么?”确定目标系统的功能。
结束标准是给出软件需求说明书。
(3)概要设计。这一阶段的基本任务是回答:“概括地说,应如何解决这个问题?”把确定的各项功能需求转换成需要的体系结构。设计软件的结构,确定程序由哪些模块组成及模块间的关系,设计该项目的总体数据结构和数据库结构。
结束标准是给出概要设计文档。
(4)详细设计。这一阶段的基本任务是回答:“应怎样具体地实现这个系统?”为每个模块完成的功能进行具体描述,把功能描述转变为精确的、结构化的过程描述。
结束标准是设计出程序的详细规格说明。(www.xing528.com)
(5)编码。这一阶段的基本任务是把每个模块的控制结构转换成计算机可接受的程序代码。写出的程序应是结构好,清晰易读,并且与设计一致。
结束标准是以某种程序设计语言表示的源程序清单。
(6)测试。测试是保证软件质量的重要手段,这一阶段的基本任务是在设计测试用例的基础上检验软件的各个组成部分,是否达到预定的要求。
结束标准是软件合格,能交付用户使用。
(7)软件维护。软件维护是软件生存周期中时间最长的阶段。这一阶段的基本任务是通过各种必要的维护活动使系统持久地满足用户需要。
在实践中,软件开发并不总是按照以上顺序来执行的,即各个阶段是可以重叠交叉的。
美国的Alan Cooper提出,交互设计应该作为软件生存周期的一个阶段考虑进去。交互设计旨在解决软件的可用性问题,并能使后续软件开发阶段的工作更清晰。这一阶段的基本任务是解决如何最佳地满足软件用户的目标。结束标准是达成共识的交互设计文档。很多软件由于没有经过这一设计阶段而导致最终失败,也有软件尽管在使用,但备受用户的抱怨,相反经过这一阶段设计的软件都取得了很好的成功。
在软件生存周期的各个阶段,都可以用工具对各个阶段的工作提供支持,使工程活动、管理活动得以自动、半自动地进行。如果把一系列的工具集成起来使用,使得一个工具产生的信息可以被另一工具使用时,就形成了一个支持软件开发的系统。这种集成了软件、硬件和一个软件工程数据库的软件工程工具,称为计算机辅助软件工程(CASE)。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。