UML软件工程组织

软件企业过程改善解决方案
作者:中国系统分析员 本文选自:中国系统分析员 2003年04月23日

 前 言

随着企业信息化的深入,软件项目需求的日益复杂、变更频繁, 传统的个人英雄主义的开发方式已经越来越不能适应发展的需要。从软件企业的发展战略来说,如何在技术日新月异、人员流动频繁的情况下,建立本公司的知识库及经验库, 把企业中分散的隐性的财富,即个人的知识及经验转变为企业的知识和经验,以便提高工作效率,缩短产品周期, 加强企业的竞争力,具有至关重要的作用。采用科学的管理思想,辅之以先进的管理工具,已经成为企业未来发展必不可少的手段。
如果软件开发机构不能有效地控制和使用软件资源,则在面对风险时就可能导致软件开发活动出现各种问题。由于不能很好地管理软件过程,使得一些好的开发方法和技术没有起到预期的作用。项目的成功往往是通过工作组的杰出努力,这种仅仅建立在依赖特定高素质开发人员基础上的成功,不能保证全组织的持续稳定的软件生产和质量的长期提高。因此,要降低软件开发过程的风险、保证软件产品质量,就必须加强管理,而软件配置管理是企业过程改善和能力提升的基础。


存在的问题

对于一个软件企业或者一个软件开发团队来说,可能遇到过或者正在被以下问题所困扰,如:

1、版本难以控制
一个软件往往由许多的模块组成,在不同的阶段(基础功能、新增功能),很可能为了适应不同的环境(如不同的操作系统)、根据不同客户的要求开发了特点各异的版本,这些版本之间有大量的共享模块,以及属于自己的模块。在最后将这些模块组装成系统的某个版本时才发现,所需模块版本无法确定;
图表、源代码、文档等等,经过多人次修改后,发现实际有用的版本却不知去向了;
团队中并行开发引起的冲突。例如:编程人员 A和B共同修改同一个模块,两人经过几个昼夜的奋战之后,又都回存到服务器上,但到了程序试运行的时候,才发现有一个人的修改被冲掉了!
有的模块没有经过测试,就直接进入了产品之中;

2、资源变化频繁
某些开发人员在软件项目开发的过程中离去,由于他负责使用或维护的文档或者资源不完善,使得后续人员接手他的工作时困难重重,造成开发过程的停滞。
由于没有控制好软件变化过程,消耗了大量人力物力,导致项目严重超期、预算超支;
项目经过了几次大改动,几乎记不起原来是什么样子了;或者说,根据用户提出的多次变更要求更改后的成型软件,与用户的需要相距甚远。
软件变化未经控制进入开发或维护活动之中,引入更严重的问题。例如:某程序员未经正常的软件变化申请,自行修改软件中的某一错误,虽然局部错误是改正了,但由于没有考虑到局部改动对全局的影响,使得整个系统不能正常工作。

3、配置审核问题
对软件生命周期中的变化没有正常的审核过程:比如在上述示例中导致的问题。
对于客户所提出的变更要求,缺少必要的审查和确认程序。
物理配置审核问题:比如发布出去的产品中,缺少文档,或者文档与应用不一致。

4、项目开发中的组织管理问题
项目开始之后,每人每天都在编程序,但却不知道他们的进展如何。
项目开发过程中,一部分人昼夜奋战,另一部分人则无事可干。
整个项目的开发可控性差,无法做到阶段控制。

软件配置管理SCM Software Configuration Management

软件配置管理SCM (Software Configuration Management),是一套规范、高效的软件开发基础结构,作为管理软件开发过程有效的方法,SCM早已被发达国家软件产业的发展和实践所证明。SCM可以系统地管理软件系统中的多重版本;全面记载系统开发的历史过程;管理和追踪开发过程中危害软件质量以及影响开发周期的缺陷和变化;SCM对开发过程进行有效地管理和控制,完整、明确地记载开发过程中的历史变更,形成规范化的文档,不仅使日后的维护和升级得到保证,而且更重要的是,这还会保护宝贵的代码资源,积累软件财富,提高软件重用率,加快投资回报。

软件配置管理作为软件开发过程的必要环节和软件开发管理的基础,支持和控制着整个软件生命周期,同时对软件开发过程的宏观管理,即项目管理,也有重要的支持作用。良好的配置管理能使软件开发过程有更好的可预测性,使软件过程具有可重复性,使用户和主管部门对软件质量和开发小组有更强的信心。若要有效的实施软件配置管理,必须要培养软件开发者的管理意识,结合开发组织的实际情况制订出相应的配置管理规范,由开发人员依据规范,通过专业化的配置管理工具来实现。

如何实施配置管理
根据CMM二级中的阐述,软件配置管理的目标是在项目的整个软件生命周期中建立和维护软件产品的完整性,它是软件过程和管理过程不可缺少的部分。配置管理在软件开发过程中的重要地位已不言而喻。许多软件企业已深深体会到这一工作的重要性,而在实施或正在准备实施。以往实践经验证明,在软件开发组织中实施或改进配置管理,仅仅依靠工具往往不能取得令人满意的效果,而需要软件开发组织指派拥有较高技术水平、管理水平的人员负责,尚须投入一定人力、物力和时间来重点进行以下工作:

组建配置管理过程构造小组
建立或改进一个企业的配置管理过程往往需要在初期投入一定的人力物力,通常需要组建一个配置管理过程构造小组进行这项工作。小组成员中包括:技术支持专家,配置管理技术专家、质量保证部门代表、项目负责人员代表、有关开发人员代表等。

企业配置管理基础评估
人员评估:企业人员的态度,可能受到的阻力;
技术评估:技术现状影响对工具的选择:
现有流程评估:可提升的环节;
项目评估:即如配置管理的程序;
期望值评估:预计管理的效益

配置管理工具及其供应商的评估
配置管理工具实用性评估
系统功能是否满足需要、能解决问题;
系统运行效率是否能达到要求;
系统是否易于使用和维护;
系统成熟性、稳定性,和安全性是否达到要求;
系统与当前工具、流程,环境的兼容性;
系统的购买、安装、培训,和维护的费用;
系统的发展前景
配置管理工具供应商的评估
供应商在相应行业的从业时间
该产品是否为供应商的主导产品
供应商产品的稳定情况
供应商的客户支持能力和技术服务能力
供应商的声望和信誉

制定配置管理实施计划
分析对企业当前管理过程的影响
确定配置管理的目标和标准
确定计划完成的各项任务
进行人员组织和任务分工
确定任务实施计划
风险管理

定义配置管理过程
确定配置项标识方法
确定与配置项相关的信息格式
确定获取配置项信息的人员权限
确定获取配置项内容的人员权限
定义变更配置项信息的过程
定义变更配置项内容的过程
确定配置状态过程报告
确定审核过程


人员培训
包括以下几个方面的培训:
配置管理理念。
管理思想不应该只停留在几个精英的头脑中,而应该深入每一个项目人员的意识,这样才能够让每一个人都能够积极主动地配合实施工作;

工具培训。
包括对开发人员和不同层次的管理人员使用配置管理系统的方法、技术。
实施过程培训。
让相关人员了解各种配置管理活动的过程,以及自己在整个过程中要做哪些操作、如何进行操作。
(总之,要通过上述的一系列步骤才能保证所选工具确实满足需要,计划切实可行,从而达到实施或改进软件配置管理的预期目的。然而,许多软件开发组织自己做往往是耗费了相当的人力物力和时间,最终的效果也不佳。为此,北大青鸟公司推出了一套高效、低费用的软件配置管理专业化实施方案。)
青鸟软件配置管理系统JBCM
(JadeBird Software Configuration Management)

JBCM是北京大学软件工程国家工程研究中心(北京北大青鸟软件工程有限公司)在国家重点科技攻关项目——青鸟工程的成果,是在杨芙清院士的亲自指导下研制、开发的,是一种新一代的基于构件的软件配置管理工具。作为青鸟软件生产线的重要组成部分,JBCM的研制采用了新一代的软件配置管理模型——大粒度、构造性的基于构件的配置管理模型,面向软件企业开发、管理相关资源的需求,符合ISO9000-3和SEI CMM软件质量保证体系的要求,支持基于构件的软件开发方法,可以有效地改善软件企业的开发过程。JBCM是中国软件企业通往ISO9000-3和SEI CMM标准的最佳实施工具。JBCM系统结合了领先的构件技术和软件开发过程中质量管理的精髓,将给软件开发带来更全面的管理和更高的效率,保证软件质量,最大限度地保护企业的知识财富。

要使一个企业的软件开发管理水平达到较高的层次,单单靠拥有CASE工具是不够的。因为每一套CASE工具都是一种软件工程管理的思想方法的具体支撑平台,只有深刻理解蕴含在这些CASE工具中的软件工程管理的思想方法,并按照这些思想方法进行日常的软件开发工作,CASE工具才能起到它应有作用,使团队的软件工程达到一个很高的水平。因此,本公司不但注重CASE工具的研制开发工作,而且更重视对用户的专业咨询服务工作和软件工程管理思想的推广工作。

JBCM产品系列

JBCM系统采用Client/Server结构,建立在Windows平台上,面向软件企业不同层次的开发管理需求,分为两个产品序列:
Ø项目组级系统(JBCM/Team)
Ø企业级系统(JBCM/Enterprise)

JBCM/T是面向项目小组级开发、管理需求的配置管理系统。JBCM/T能够满足ISO9000-3和CMM 2级中的配置管理要求。通过JBCM/T可以有效地进行版本管理、配置管理、人员与权限控制、审计和统计等工作,并提供对团队中并行开发的支持功能。

JBCM/E是面向软件企业级别开发、管理需求的配置管理系统。JBCM/E可以全面支持企业实现CMM 2与ISO9000-3质量管理中的配置管理要求,并基本满足CMM 3级中对软件过程管理的需求。JBCM/E可以完整地存储、管理大型企业内部资源及其重要关系,改善软件企业的开发过程。通过分布、多层次的结构,可在JBCM/T系统基础之上建立起覆盖企业范围的全面、完善、统一的资源管理系统。
(青鸟软件配置管理系统JBCM作为资源管理的基础,与青鸟软件变化管理系统JBCCM、青鸟软件过程管理系统JBPM共同构成了青鸟软件项目管理支撑工具体系。)

JBCM软件配置管理全面解决方案

1.JBCM的功能特点:
JBCM系统是基于构件的软件配置管理思想,采用先进的软件构件模型,并与现代工程管理方法融为一体的一套软件配置管理工具。它具有以下特点:
提升管理粒度,适应现代大规模、分布式、多层次的软件系统开发与维护
支持基于构件复用的软件工业化生产技术,工程化开发方法
具有完善、灵活的版本控制能力,通过可视化的版本树管理功能,对软件系统的不同演化方向提供管理支持,适应企业对需求变化的管理要求
提供强有力的人员管理与权限控制机制,确保资源安全
高效支持团队并行开发,可支持中长期同步的协作工作模式和紧密结合的短期同步协作模式(构件/文件合并功能)
具备审计与统计功能,可检索、管理系统和资源的日志和各种信息

2、实施与服务
虽然大部分SCM系统功能能解决大部分开发过程中出现的软件资源管理问题,如果客户购买到产品的不能正确的使用,理解不了系统中蕴含的管理思想,那么,SCM就发挥不出它应有的作用,这样,用户就等于白白浪费了一笔资金。
因此,为了让用户的投资得到应有的回报,我们不仅仅是推广产品,而且一直把服务放在最重要的位置。基于这种原因,我们在售出产品的同时,附带一套专门针对配置管理实施,可以帮助客户理解配置管理思想,熟练使用工具,制定计划,并制订详细实施过程的专业咨询服务。
我们的配置管理专业服务,目的在于指导并帮助用户根据先进的配置管理思想方法,去管理他们的开发过程,改进现有的管理水平。我们所提供的不只是JBCM这套配置管理工具的使用说明,而是青鸟软件工程有限公司基于对国内软件开发管理现状的调查研究,融入了国内外成功的软件开发管理经验、以及很多早期用户和自身的使用经验而总结出的基于JBCM的管理方法和过程。
根据用户的不同要求,我们可以电话服务或派出专业配置管理咨询人员,同软件开发组织指定的管理员一起,针对软件企业现有状况,如管理组织结构、角色责任、工作流程等进行交互,评估分析并确定其配置管理需求,然后据此需求,为软件开发组织制订可行的配置管理目标,编制符合组织现实状况的配置管理计划。
为了企业能够更好的全面实施配置管理,通常先组织实施一个实验项目,然后通过这个项目的实施,总结经验教训,然后根据这些经验全面实施配置管理,在实验过程中,我们可以提供以下帮助:

协助企业选择实验项目:
协助企业确定试验组成员;
协助企业定义试验成功的标准和时间安排;
对相关人员进行培训;
安装配置管理工具;
协助企业建立配置管理过程;
和企业试验组成员共同总结经验教训。

对于还没有实施配置管理的软件开发团队,通过我们提供的软件配置管理专业化的咨询服务,可以逐步建立起自己的配置管理体制,并逐步改善;对于已经实施配置管理的团队,也可以通过我们的服务来改进、完善自己的管理体制。

实施配置管理的效果
软件组织如果认真地实施配置管理,将会有效地保证软件产品的完整性、一致性和可控性,使其产品最大程度的与用户的需求吻合;
加快产品开发速度,降低维护成本,更好地保证软件质量;
可为软件组织节省大量的人力和物力,有助于规范工作流程,从资源方面更好地掌握项目的进度,了解开发人员的负荷、工作效率和产品质量状况、交付日期等信息;
管理者能够掌握企业的整体软件资源,减轻人员流动对开发过程的影响;
新老成员可以更加快速地实现任务交接,减少因人员流动带来的损失。具体说来,可以为软件组织带来以下好处:

构件版本得到很好的控制
所有软件开发过程中相关的历史信息和有用版本的全部内容(包括:文档、代码,以及相对应的文件)都被保留,不会出现版本丢失;
并行开发井然有序,甚至不同的人对同一个文件进行同时更新,也不会出现丢失信息;
建立应用时构件取用方便、快捷、准确,不会出现错乱、混杂的现象;
所有代码都经过受控的途径进入产品,产品中不会出现未经确认的代码;
保证发布的产品中应用程序与配套文档一致;
构造系统时能够迅速得到精确的配置项。

配置支持使项目更易于管理
基线的建立,使得软件开发具有更好的阶段可控性;
配置管理的状态统计功能,使得软件资源状态更具有可见性。
可方便的管理同时进行的多个项目,以及相关的资源;

所有开发人员对资源的访问都得到有效的管理
保证开发和管理人员受控地获取所需要的软件资源;
支持分层的人员权限结构对资源的访问;
控制不同人员对资源访问的信息权限、可读权限和修改权限;
每个人的工作过程及相应资料(包括:源代码、文档,重要步骤的理解等),都会被详细的纪录并保存下来,有效的避免了由于开发人员的流动对工作造成的影响。

有效的审计和统计
只有批准实施的变更才会进入受控软件生产过程;
收集和统计各种信息,并实现对信息的查询和分析,便于项目管理人员跟踪、分析和决策。

(总之,配置管理的实施不是一件简单工作,需要软件组织所有开发人员的积极参与,相关管理人员的支持和监督,并在工作中不断调整、充实和完善软件配置管理过程,使其日趋规范化。只有这样,才能充分发挥配置管理的作用,使企业真实地达到ISO 9001或CMM中对软件配置管理的要求,更好的保证软件质量,保证企业在日趋激烈的竞争中立于不败之地。)



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