Reliabilityassuranceinthelifecycleofsoftware??
?
摘要:本文将软件过程视为一个周而复始又螺旋推进的进化过程,软件一个版本的生存期看作是这个进化过程的一个周期,并依时序分为初始过程、开发过程、验证与确认过程、运行和维护过程。文中提出软件全生存期可靠性保证的设想及不同阶段可靠性保证的活动和事项。只有在软件全生存期内通过采用可靠性工程技术方法和加强对生存期中各阶段及每个阶段各环节的管理、检查、监督、控制,才可能实现软件产品预期的可靠性目标并使之获得有序而持续的改善。
主题词:软件过程软件生存期可靠性
引言?
随着计算机功能越来越强,软件规模越来越大,结构也越来越复杂。如何保证软件产品的质量和可靠性是自软件危机爆发近三十年来人们一直探求解决而至今仍未获得圆满解决的难题,因软件可靠性问题而发生重大、甚至灾难性事故时有所闻。究其原因是软件的复杂性与相对落后的软件生产方式与生产手段的矛盾未能得到根本解决。经过近三十年的摸索,发明了很多保证软件可靠性的技术、方法和工具,其中比较公认的有效途径是改进软件生产过程,引入工程化的生产方式,加强过程控制与监督,以保证软件生产过程的稳定和预防问题发生。本文将软件过程视为一个周而复始又螺旋推进的进化过程,软件一个版本的生存期看作是这个进化过程的一个周期。通过采用可靠性工程技术方法和加强对软件生存期内各阶段及每个阶段各环节的管理、检查、监督、控制,来保证软件产品的可靠性并使之获得有序而持续的改善。
1.软件生存期过程
软件生存期是软件产品从孕育阶段开始到退出使用所经历的时间历程。软件生存期过程是软件生存期内为实现软件项目或产品的预期目标而有计划进行的一系列活动或实施工作任务的总和。依时序软件生存期过程可分为初始过程、开发过程、验证与确认过程、运行和维护过程。
初始过程是软件产品孕育阶段的相关活动,包括提出初步的软件功能和可靠性、安全性等要求规范,开发单位的选择与评估,开发合同文件的准备等。初始过程是软件可靠性保证的基础。开发过程从系统分析开始到完成系统测试期间为开发满足用户要求的软件产品而开展的相关活动,包括系统分析、软件需求分析、软件设计、编码与单元测试、软件集成测试和系统测试以及中间环节的评审、检查、计划、管理等活动,软件可靠性在开发过程实现。
验证与确认过程是确认已完成开发的软件产品与软件需求分析及用户要求的一致性而进行的测试、验证和检查活动。软件可靠性在验证与确认过程得到检验,此外该过程还可以促进开发商在开发过程落实可靠性保证的技术、方法和措施。?
运行与维护过程指与软件运行相关的活动,为用户提供所需的技术支持和服务、故障或改进需求信息的采集、反馈和控制活动等。软件可靠性在该过程得到维持和提高。
KekaoXing.com
软件产品在经历上述四个过程后便完成了一个生存期、当改进需求及完成的修改累积到一定量后,将导致软件版本升级或用新的功能更强大、更完善的软件取代原来的软件,从而开始一个新的软件生存期。新的生存期不是原来生存期的简单重复,而是建立在更高基础上的一种回归现象。
2.软件生存期的可靠性保证?
2.1初始过程的可靠性保证工作
初始过程是软件一个生存期的开始,该过程的可靠性保证工作包含以下三方面内容:
2.1.1数据收集和分析
收集分析软件上一个生存期或现有类似软件的使用数据,根据待开发软件的功能要求、规模或复杂性、使用特点、开发可利用的资源(如经费、时间、可重用的软件、开发工具)等,提出待开发软件合理的可靠性要求,即在当前技术水平下是可实现的,而且在可利用的开发资源范围内进行了优化并能满足用户的需要。
[[i]本帖最后由goodrel于2007-3-522:14编辑[/i]]