当前位置:智城范文网>范文大全 > 征文 > 浅谈软件生存周期

浅谈软件生存周期

时间:2022-05-12 18:35:03 来源:网友投稿

摘要:随着科技的不断发展,软件在我们的学习和生活中得到普及和应用,一个软件就如同一个人一样,都要经历孕育、诞生、成长、成熟、衰亡等阶段,因此软件也被赋予了生命,有着它自己的生存周期,所谓的软件的生存周期也称为生命周期,是软件生命周期内为达到一定目标而必须实施的一系列相关过程的集合,是软件的产生直到报废的生命周期。

关键词:软件生存周期;阶段;软件发展

一、引言

软件产品或软件系统从设计、投入使用到被淘汰的全过程称软件生存周期(或软件生命周期)。

软件生存周期划分为若干个较小的阶段,每个阶段都有相对独立的任务和完成任务的步骤和方法,然后逐步完成各个阶段的任务,这有利于软件开发过程的组织和管理,从而降低整个软件开发过程中的困难程度,使规模大、结构复杂和管理复杂的软件开发变得容易控制和管理。对软件生存周期的研究有助于我们更好的研发、升级软件,延长软件的生存周期。

二、软件生存周期的阶段

一般来说一个软件完整的生命周期可以划分为三个时期,六个阶段。

三个时期分别是:计划时期(或定义时期)、开发时期、运行时期。

三个时期可以细分为六个阶段,这六个阶段分别是:可行性分析和项目开发计划、需求分析、软件设计、编码、软件测试、运行与维护。

接下来我们主要详细介绍这六个阶段。

(一)可行性分析和项目开发计划

这个阶段的任务就是分析用户面临的问题是否有行得通的解决方案,可行性研究的目的不在于如何解决问题,而在于确定问题“是否能够解决”和“是否值得解决”。这个阶段参加的人员有用户,项目负责人和系统分析员。

在这个阶段中经验起到了决定性的作用,很多时候都是靠系统分析员的经验来判断是否可行,在这个阶段中,可行性分析要依靠项目开发计划提供依据,而项目开发计划只有在初步得到可行性研究后才能再深入制定,两个活动可以说是互相制约,互相促进的关系。

在用户提出一个软件开发要求后,系统分析员要对此用户的机构进行了解,同时对使用此软件的最终部门要进行一系列的观察研究,组织开会讨论,通过这一系列工作就可以确定软件项目的性质、目标和规模,应该能够得出可行性研究报告

如果可行性研究的结果是可行的,接下来的任务就是制定详细的项目开发计划,项目开发计划主要根据所开发的项目的目标、性能、功能、规模来确定所需的资源,主要包括三个方面,即硬件资源、软件资源和人力资源,除此之外还有对项目的开发费用,开发进度做出估计,可供决策者和用户参考。

至此,本阶段的工作任务已基本完成,这时候系统分析员应将《可行性报告》和《项目开发计划》一并提交管理部门审查。

(二)需求分析

需求分析的任务是要准确地定义新系统的目标,准确回答“系统必须做什么”的問题,并用需求规格说明书规范的形式准确地表达用户的需求。这个阶段就是回答这个软件系统是做什么的,不是要你动手去解决实际问题,而是要你弄清楚将要解决的问题。这个阶段参加的人员有用户、项目负责人和系统分析员。

需求分析阶段是一个很重要的阶段,也是最难的一个阶段,需求分析的结果是否正确,关系到软件开发的成败和软件产品的质量,正确的需求分析是整个系统开发的基础。

现在随着科技日新月异的发展,软件的需求也越来越快,人的需求也越来越多。同样需求也是整个软件开发过程中不断变化和深入的。

需求分析阶段应交付的主要文档是软件需求规格说明书。它提供了用户与开发人员对开发软件的共同理解,其作用相当于用户与开发单位之间的技术合同,是后续设计和编码的基础,是测试和验收的依据。(注:需求规格说明书是项目开发里最重要的技术文档之一,但由于篇幅关系,这里无法给出实例文档,可在本站查找相关说明)

(三)软件设计

软件设计的基本目标是用比较抽象概括的方式确定目标系统如何完成预定的任务,即确定系统的物理模型,解决软件系统“怎么做”的问题。

软件设计分为两个阶段:概要设计(又称总体设计)阶段和详细设计(又称过程设计)阶段。概要设计阶段得到软件系统的基本框架,详细设计阶段明确系统内部的实现细节。

概要设计阶段要的依然不是编写代码,而是实现需求功能的软件结构,软件结构是以模块来组成的,所以这个阶段要做的就是把需求分析里所说明的软件功能用模块的形式描述出来,每个模块都有明确的意义和功能,概要设计的主要工作就是设计模块和组织模块。这个阶段参加人员有系统分析员和高级程序员。

到了详细设计阶段,现在该把注意力从全局移到局部了,但先别着急,现在还不是编码阶段,要做的仍然是软件的逻辑设计部分。这个阶段参加人员有高级程序员和程序员。

详细设计(又称为过程设计或模块设计),是编码的前导。其主要任务是确定每一个模块所使用的算法、块内数据结构和接口细节,用描述工具表达算法的过程,即对模块的具体实现过程进行详细地描述。

(四)编码

编码阶段的任务使用某种程序设计语言,将软件设计结果转换成计算机可运行的程序代码,此阶段产生的文档是源程序清单,参加的人员有高级程序员和程序员。

D.A.Fisher说过:“设计语言不是引起软件问题的原因,也不能用它来解决软件问题。但是由于语言在一切软件活动中所处的中心地位,它们能使现存的问题变得较易解决,或者更加严重。”这段话言简意赅地揭示了语言在软件开发中的作用,因此,我们要重视在编码之前选好适当的语言。语言选择合适,会使编码困难减少,程序测试量减少,并且可以得到易读、易维护的软件。

在选择语言时要从问题入手,确定它的要求是什么,以及这些要求的相对重要性。由于一种语言不可能同时满足它的各种需求,所以要对各种要求进行权衡,比较各种可用语言的使用程度,最后选择较适合的语言。

在程序编码中必须要制定统一,符合标准的编写规范。以保证程序的可读性,易维护性,提高程序的运行效率。

(五)软件测试

软件测试近年来好像提到了和需求分析同一个高度,有点实力的软件公司都有相应的软件测试队伍。软件测试的目的是为了发现软件产品中存在的软件缺陷,进而保证软件产品的质量。

测试阶段的根本目标是以最少的人力、物力和时间,尽可能多地发现并排除软件中潜在的错误,最终把一个高质量的软件系统交给用户使用。

软件测试方法很多,按照测试过程是否执行程序来分,一般分为静态测试方法和动态测试方法。动态测试方法又根据测试用例的设计方法不同,分为黑盒测试和白盒测试两类。

静态测试包括代码检查、静态结构分析、代码质量度量等,是指不在计算机上执行被测试软件,而是采用人工检测和计算机辅助静态分析的手段对程序进行检测。

利用计算机来运行相关软件产品进行的测试称为动态测试法,一般而言我们说的软件测试是指动态测试,它可分为白盒测试和黑盒测试。

软件测试阶段产生的文档是软件测试计划和软件测试报告,测试工作通常由另一部门的高级程序员或系统分析员承担,原则上不要让软件开发人员再作为软件测试人员,自己写的代码自己来测试,一来他会用“合法”的操作和数据来测试,不会出错,二来无论他是否愿意,都会有意无意的朝证明自已正确的方向进行,这样的测试很难发现重大的错误。

(六)运行与维护

已交付的额软件投入使用便进入运行与维护阶段。软件维护是指已完成开发工作,并交付用户使用以后,对软件产品所进行的一些软件工程活动。软件维护是软件生存周期中时间最长的阶段,也是花费精力和费用最多的阶段。

软件维护的类型可分为校正性维护、适应性維护、完善性维护和预防性维护。

三、结束语

关于软件未来的发展趋势,不同的人有不同的看法和想法,但为了更好地帮助人学习、工作、计算、娱乐等等,为了更好的方便人们的生活,软件行业也会不断前行,软件开发技术也会不断的创新和改造。

参考文献:

[1]高树芳.软件工程[M].大连:大连理工大学出版社,2018.

[2]郑人杰,马素霞,殷人昆.软件工程概述[M].北京:机械工业出版社,2014.

[3]吕云翔.软件工程实用教程[M].北京:清华大学出版社,2015.

[4]陈雄峰.实用软件工程教程[M].北京:机械工业出版社,2009.

作者简介:崔亚婷(1990.12-),性别:女,民族:汉,籍贯:河南省辉县市,学历:本科,职称:教员,单位:河南科技学院高等职业技术学院,主要研究方向:软件技术。

推荐访问: 浅谈 周期 生存 软件

版权所有:智城范文网 2010-2025 未经授权禁止复制或建立镜像[智城范文网]所有资源完全免费共享

Powered by 智城范文网 © All Rights Reserved.。粤ICP备20058421号