软件可靠性是个大问题(中)
软件可靠性是个大问题 不要认为,软件仅仅是一个计算机指令序列,它是为用户提供所需信息处理能力的逻辑上的信息处理设备。用户需要的是一个满意的软件产品。但是,不要把软件的产品实现和开发管理混为一谈,或者顾此失彼。产品实现包括从需求描述、系统设计、系统实现、测试验证到运行维护的整个生命周期。但是,几十年的经验表明,要实现一个高质量的软件产品,开发管理极其重要。软件生命周期定义了软件过程的框架和原则,但没有描述软件过程的活动、组织形式、工具和操作规程,以及开发方针和约束。这些正是当下所谓软件过程技术要研究的。由于当今的软件,无论是系统软件、中间件或应用软件,都不是一个单位、一个人能够完成的,需要合作和协同,因此,软件产业需要国际标准。20世纪80年代,卡内基-梅隆大学的软件工程研究所在美国国防部的支持下,提出了评价软件供应商过程能力的能力成熟度模型(CMM)。一个软件组织的能力成熟度的高低,就看该组织是否能站在比软件项目更高的层次上考察其实施软件开发所使用的软件过程。能够定义该软件过程者为成熟度三级;如能度量和管理,则达到成熟度四级;如果还能优化该过程,则达到了成熟度五级。只有在成熟的软件过程管理之下,才能生产出高质量的软件产品。CMM模型现在还在不断地丰富和改进。质量和生产率是软件工程的两个核心目标。CMM等已被公认为软件质量保证方面的事实标准。它强调软件过程的管理与控制,忽略软件人员个人的主动性和创造性。所以,进入二十一世纪,在美国成立了Agile联盟,提出了敏捷软件开发方法,以适应那些需求不够确定、软件开发团队不是很大的软件开发项目。在2000年,美国政府和商业机构公布了CMM水平评估结果。在第一、二级者超过一半,30%达到第三级,只有17%达到第四、五级。实际情况可能比这还要糟。CMM现在正发展成CMMI,以更广泛地评估一个单位创造复杂软件系统的能力。一个信息技术(IT)项目经理最重要的责任是为各种活动分配资源。其他责任还有项目计划和评估、控制、组织、合同管理,质量管理,风险管理,通讯和人力资源管理。项目经理的错误决策也许是今天软件失效的主要原因。技术管理的失误引起技术差错,但可以纠正,而错误的项目管理决策,例如雇用程序员太少或合同类型的错误,可能引起全盘皆输。