关于运行维护实践域的一点认知
在即将发布的GJB5000B中,新增了一个“运行维护”实践域,这里抛砖引玉,谈谈对这一实践域的粗浅认知。
1、研制单位应否实施运行维护实践域?
按照GJB5000的裁剪要求,运行维护实践域对于维护视图,是必须实施的,而对于研制视图,是可选的。那么,作为一个研制单位,应否实施运行维护实践域呢?
对于研制单位来说,无论是否实施运行维护实践域,在软件产品交付之后也都有运行维护的任务要完成:对用户的培训、修复软件缺陷、适应新的环境、完善软件产品等等。运行维护本来就是研制单位应有之责。
所以,研制单位如果实施运行维护实践域,可以促进研制单位更好地实施运行维护过程,为用户提供更好的服务和产品。
另外,基于GJB5000的软件过程管理体系,有覆盖软件全生命周期的要求。软件的全生命周期,就是不只有软件开发周期,还有运行维护周期。所以,即便没有运行维护实践域,也需要规定运行维护工作如何开展。
综合以上两个原因,研制单位理应实施运行维护实践域。
GJB5000B研制视图中运行维护的可选可以解读为根据研制单位当前有无运行维护活动而在面对评价的时候是否需要提供项目证据。
2、研制单位如何实施运行维护实践域?
运行维护有两个方面的内容,分别是技术支持和产品维护。这个实践域有4条实践,分别是运行维护活动的策划、实施技术支持、实施产品维护、分析运行维护数据以改进产品和运行维护过程。
研制单位应根据自己的实际情况实施运行维护实践域:
实施时机
研制单位实施运行维护,需要在软件产品交付之后。当研制单位完成GJB5000B的换版之后,如果当前有软件产品的运行维护活动,就按体系要求实施这个实践域,如果没有软件产品运行维护,就不实施。
兼顾内外
就像实施验收交付活动时,软件交付的对象既有内部用户,也有最终用户,运行维护也有内部维护和外部维护。内部维护就是对应软件交付给内部用户之后需要运行维护的情况;外部维护则是对应软件交付给最终用户之后需要运行维护的情况。
研制单位的运行维护过程应能适应以上两种情况。
独立模型
运行维护不仅要有过程要求,还应有生命周期模型。运行维护生命周期模型建议仍然与软件开发的生命周期模型分开,作为一个独立的模型。这样可以比把开发和维护作为一个生命周期的开发部更容易满足GJB5000评价所要求的覆盖全生命周期的要求。
统一策划
运行维护包括技术支持与维护、产品升级和维护活动,这些活动中有的可以预先安排,比如技术培训、使用培训;有的活动不可预知,比如产品纠错性维护。前者,可以通过与用户协商排定计划;后者无法事先计划,只能等事件发生的时候再进行具体策划。而且这些不可预知的活动,也不太适合每次都给出一个正规的计划文档,那样过于繁琐和形式化。所以,运行维护的策划活动,可以在软件进行维护阶段时建立一个统一的计划文档,其中既包括可以预先安排的技术支持与服务计划,也包括不可预知的产品升级及维护的一般性计划。不可预知的维护活动一旦发生,直接按照维护生命周期模型开展活动,不再产生计划文档。
数据分析
通过分析纠错性维护、完善性维护、适应性维护的数据,找出维护的原因,可以用于对软件产品的改进;通过分析维护活动的过程数据,可以用于维护过程的改进。可用的维护过程的度量数据包括:每种维护活动花费的工作量、每种维护活动变更的代码行数、不同维护类型活动的比率等等。
这正是:
运行维护应实施,研制单位不缺失
两类活动都考虑,内外维护可统一
参考书目:现代软件测试技术与管理研究,作者:赵仕波 魏生斌 罗耀华,出版社:中国水利水电出版社