- 软件过程改进案例教程
- 韩万江 张笑燕 陆天波编著
- 1107字
- 2025-02-17 21:25:21
1.5 过程改进
随着软件工程知识的普及,软件工程师都知道,要开发高质量的软件,必须改进软件生产的过程。一旦建立了软件过程,改进这些过程就是一个重要任务,其实任何过程都需要进行改进。我们看一个Watts S. Humphrey的过程改进例子,他在服军役时,练习机枪射击,开始训练时,成绩很糟糕,并且经过练习也没有提高,教官对他进行了一段时间的观察后,建议他改用左手射击,作为一个习惯右手的人,刚开始肯定不习惯,但是经过一段时间的练习之后,他的成绩提高得非常快,而且几乎是优秀。这是一个过程改进的例子,首先教官采用测量来诊断问题,通过Watts S. Humphrey击中靶子和脱靶的情况分析,教官看出必须对他的射击过程进行调整,然后,客观分析数据,通过观察他的射击过程:上膛、就位、跟踪目标、瞄准,最后击发。教官的目标就是要发现Watts S. Humphrey哪些步骤存在问题,找到问题后,建议他改为左手射击。
过程改进是困难的,人们不愿意尝试新的事物,传统的习惯看起来很自然,以至于不相信改变会有什么帮助,Watts S. Humphrey习惯使用右手,从来没有想到左手射击是什么样子的,自从他采纳了教官的意见之后,成绩大幅度提高了。
过程改进的步骤与Watts S. Humphrey射击改进的步骤是类似的,一般地,过程改进的基本流程如图1-6所示。

图1-6过程改进基本步骤
①首先确定改进的目标,例如Watts S. Humphrey射击改进的目标是百发百中。
②然后度量目前过程:了解目前的过程,进行记录和度量,积累数据,例如,教官观察Watts S. Humphrey的操作之后,看看应该作哪些调整。
③通过对度量的过程数据进行分析,了解目前过程存在的问题,例如,教官发现Watts S. Humphrey右手射击无法进步。
④根据分析的结果,确定本次过程改进的内容,例如,教官建议Watts S. Humphrey改用左手射击。
⑤实施改进后的过程,例如让Watts S. Humphrey进行几轮左手射击。
⑥记录实施改进后的过程的结果,例如,教官数了数Watts S. Humphrey击中靶子和脱靶的数量。
⑦与定义的改进目标进行比较,根据分析比较结果,例如,从统计数字看,Watts S. Humphrey的成绩大大提高了。
⑧确定是否进行循环改进,根据过程的具体情况决定是否需要进一步改进。
在进行软件过程改进的过程中,可以基于一定的模型进行过程改进,基于模型的过程改进是使用一个结构化的架构来指导一个组织的过程改进,其目的是增强过程的能力。模型为过程提供了公共集合,结合了最好的实践,运用模型,组织可以使用模型中的最佳实践来改进本组织的过程或者建立过程,而且利用这个模型也可以评估软件过程的能力。例如,可以基于CMMI模型进行过程改进。
基于模型的过程改进开始于组织管理层对自己组织过程的承诺和评估,将评估结果作为下一步过程改进的基础,改进之后,可以再进行下一步的评估,以此类推,使得组织的过程逐步成熟。
必须牢记,软件过程的改善不可能在一夜之间完成,它是一个渐进的过程。