UML软件工程组织

软件开发需要SCM
选择自 计算机世界

今天的软件产业,技术和产品日新月异,令所有的技术人员和管理人员都感到明显的压力。这种压力集中体现在两个方面:提高产品质量;缩短上市时间。

现在,软件产品的开发对市场投放速度的要求成倍提高;Internet/Intranet应用的发展改变着软件的开发、传递和分发方式;不断提高的软件质量要求使越来越多的软件机构感到规范开发工作的迫切性;多平台、多操作系统、多开发工具、多对象类型、多编程语言……软件开发环境越来越复杂、越来越难以控制。无组织的开发环境会导致潜在问题的产生,这些问题最初往往难以发现,直至出现影响整个系统的致命错误时才显露出来,但已经为时晚矣。

软件工程使软件开发从手工作坊上升到团队开发模式,其开发工作围绕着软件生命周期的分析设计、开发、测试、运行维护四个阶段进行。通过使用软件工程的方法与工具,可以避免开发过程中许多可能出现的错误,提高软件的可重用性,降低软件测试和维护中的工作量,从而大大提高软件产品的质量,缩短开发周期。

在团队开发的模式中,软件开发管理就显得更加重要,并将直接影响到软件产品的质量。在缺乏软件开发统一管理的情况下,常常会遇到以下问题:

● 由于开发经费及开发时间的限制,不可能一次开发就解决所有问题,许多问题有待维护阶段解决,由此带来的是软件产品的不断升级,而维护和升级所必需的文档往往非常混乱。

● 开发过程缺乏规范化的管理,即使有源程序文档也由于说明不详细而不能对产品进行进一步的功能扩充,用户不得不再次投入大量的经费去开发新产品,浪费大量的人力、物力和时间。

● 在软件的团队式开发中,人员流动在所难免,如果管理不善,有些人员的流动将对开发工作产生致命的影响。特别是软件开发管理人员或核心成员的流失,可能导致无法确定软件产品中各模块所处的状态及阶段,使软件产品的版本出现混乱,甚至可能泄露公司的核心机密。

● 管理不善可能致使未经测试的软件成分加入到产品中,不但影响产品的质量,有时还会导致致命错误,造成不可挽回的损失。

● 用户与开发商没有有效的沟通手段,用户投入了开发费用后,得到的只是执行代码和一堆杂乱无章的文档。即使是较好的文档,对不熟悉开发过程的专业人员来说也无从下手,更谈不上日后的维护和升级。总之,用户的利益无法保证。

软件生产达不到规模化,无法形成软件企业的内部标准构件仓库,软件产品总处于一种低水平、重复开发的状态,不但时间得不到保证,而且成本也无法降低,产品缺乏市场竞争力。

这些问题在实际开发中表现为:项目组成员沟通困难;软件重用率低下;开发人员各自为政;代码冗余度高;文档不健全。由此造成的后果是:数据丢失;开发周期漫长;产品可靠性差;软件维护困难;用户抱怨使用不便;项目风险增加。

缺乏软件开发管理,最终开发出来的软件产品质量难以保证,应用难以稳定。那么,怎样进行软件开发管理才能生产出高质量的软件产品呢?ISO 9000质量管理和质量保证体系制定了标准——《软件开发、供应和维护使用指南》。该标准除对软件生命周期的各个阶段做了严格的规定外,还在其质量体系中规定了与阶段无关的支持活动,其中SCM(Software Configuration Management,软件配置管理)被放在首位。

软件配置管理是一套规范、高效的软件开发基础结构。作为管理软件开发过程的有效方法,SCM早已被发达国家软件产业的发展实践所证明。它可以系统地管理软件系统中的多重版本、全面记载系统开发的历史过程,包括为什么修改、谁作了修改、修改了什么,同时管理和追踪开发过程中危害软件质量、影响开发周期的缺陷和变化。SCM对开发过程进行有效的管理和控制,完整、明确地记载开发过程中的历史变更,形成规范化的文档,不仅为日后的维护和升级提供帮助,而且更重要的是保护宝贵的代码资源,积累软件财富,提高软件重用率,加快投资回报。SCM是通往ISO 9000和SEI CMM标准的一块基石。

在软件开发团队中,正确地引入、实施软件配置管理系统,可以提高生产力、增强对整个项目的控制能力、改善软件产品的质量,使企业从容地面对快速上市和产品质量的双重压力。

软件配置管理系统的实施,一般来讲要考虑两个方面的因素:流程和工具。流程和工具是相辅相成的,流程起决定性作用,它确定了管理的规则和方法;工具用来将变更记录在一个中央存储库中,可以重现任一时期的历史版本。一个好的工具可以提高效率,是贯彻实施流程的必要手段。

因此,在一个开发团队中,实施配置管理流程比采用配置管理工具更重要。软件开发团队必须制定出适合自己企业的配置管理流程,该流程必须与公司的开发规范、质量系统完全融合。(刘晓)

(计算机世界报 第17期 B19)

 

版权所有:UML软件工程组织