第2章 软件过程

“软件过程”及“软件过程工程”概念是软件工程发展到一定阶段,传统软件工程难以解决愈发复杂的软件开发问题时提出的新的解决办法,它使软件工程环境进入了过程驱动的时代。

“软件工程”技术的形成和发展的基本原动力就是提高软件的质量和软件开发的生产效率,这也是软件开发活动中一直追求的两个主要目标。为了达到这样的目标,软件人员很自然地将注意力集中到软件开发过程中所使用的方法、技术、工具和环境等问题上。

从20世纪70年代初开始,各种软件开发模型相继提出,如瀑布模型、演化模型和螺旋模型等,为最初形成的“过程观”注入了具体内容,即开发人员注重需求分析、概要设计、详细设计、编码、质量保证、配置管理和维护等若干个活动步骤。这样的思维方式和以此为基础的软件开发活动,把软件开发纳入了工程化的轨道。软件工程的这些研究所带来的结果是令人欣慰的:出现了大量有效的方法与工具,软件质量得到了改善,软件开发与维护的费用大为减少,以及用户的满意率提高等。“软件过程”概念就是在这样的形势下,被提出和发展的。

1984年10月召开的第一届国际软件过程讨论会正式提出了“软件过程”的概念并赋予明确定义,即软件过程(Software Processes)是在软件生存周期中所实施的一系列活动(Activity)的集合,且每个活动可由一些任务(Task)组成。

这是“软件工程”史上一次认识上的飞跃,它标志着人们已经认识到软件过程因素对软件开发的重要影响,促使人们把注意力从对抽象的软件生存周期模型的研究,转向那些对软件项目的成功起着关键作用的过程细节的研究。

进入20世纪90年代以来,对“软件过程工程”技术研究的步伐日益加快,“过程建模”“过程实施”“过程度量”“过程改进”,以及其他的诸多相关内容,纷纷纳入“软件过程工程”技术的研究范围中,有效地推动了软件开发的高速发展。