软件管理

软件研制和维护过程的管理。软件管理的任务是在一定的时间和预算范围内,有效地利用人力、技术和工具,完成预定的软件项目,实现预定的功能和其他目标(如可靠性、效率等)。软件管理贯穿于软件研制和维护的全过程。管理技能往往是软件项目成败和软件质量高低的重要条件。大型软件项目涉及较多的人力和时间,管理问题尤为突出。

软件生产是一项劳动和智力密集的活动。软件生产是以人为中心的过程,具有可见性差和定量化难的特点。可见性差指软件研制进度不易标志,存在问题不易及时发现和纠正。定量化难指软件的复杂性、成本和生产率不易度量。此外,软件可靠性的含义也有别于传统工程。软件管理有特殊的复杂性。

发展概况

软件管理是随着软件工程的发展而发展的。早在60年代末,已经有人讨论大型软件研制项目的组织管理问题。软件工程实践中发生的种种问题,往往是与管理密切相关的。例如,进度推迟,经费超支,可靠性差,程序人员不称职等。可管理性成为软件生产工程化的重要标志。因此,与软件工程化、产品化过程相适应,形成新的分工,出现了组织管理软件生产的管理员。并且软件管理本身也出现了专门的方法、技术和工具。软件管理的研究,最初主要在人员和组织方面,如软件心理学的研究。70年代初期美国国际商业机器公司(IBM)提出的主程序员设计组的概念等。随着数据库技术和软件工具的发展,利用计算机本身支持管理的软件管理工具获得了发展。70年代后期,对软件和软件工程模型化和定量化的研究,进一步促进了软件管理的发展。

基本内容

一个软件项目的管理进一步分为进度管理、成本管理质量管理、人员管理和标准化管理等。从管理活动的构成看,包括计划、控制、人员和组织等方面。

计划的作用是规定如何利用可用的资源以达到预定的目标,内容包括分解工作、分配任务、分配资源、规定进度、编制预算,以及制订人员培训目标和方法等。控制的作用是督促、审核、协调和调度研制过程中的各项活动,以保证计划的实施,或对计划进行调整和修改。有效的控制必须建立在及时获得充分反馈信息的基础上。

在软件计划和控制过程中有一重要概念称为里程碑。它表明研制过程重要阶段的划分。里程碑的建立有助于分解软件研制的复杂过程,它是管理者的“控制点”。管理者通过里程碑估价计划执行情况,作出控制决策。里程碑通过一定的书面文件形式和报告审核制度来体现。

人员和组织管理包括人员的估价和选择,人员的培训,人员积极性的调动,规定人员的地位、作用和职责,以及解决人员之间通信问题等。

人员管理有一定的规章制度,如责任制度、报告审核制度和对变动的控制制度等。规章制度的作用是限制和克服生产过程中人的不稳定性随机性的影响。

在组织管理方面,规定设计组内部的合理分工,并保持全组工作的协调统一。软件研制活动不仅包括设计、编码和测试等方面,还包括通信联络和文件资料管理等方面。组织结构应当与此相适应。

在软件生产过程中,文件不仅用来表示软件研制的中间产品和最后成品,也用来表示管理活动的内容。这些信息构成支援文件库,如程序员任务规定、测试计划和测试数据、设计文件、进度和变动状况,以及最后成品等。利用计算机对这些信息进行管理的程度越高,表明软件管理自动化的程度越高。

参考书目
  1. I.Sommerville,Software Engineering, Addison-Wesley, London, 1982.