软件配置管理实施的若干问题是什么?
本文以软件配置管理在软件质量体系中的作用为切入点,以我国软件企业在软件开发、维护过程中忽视软件配置管理为着手点,从而过渡到软件企业要实施软件配置管理所要面临与考虑的问题,以及如何应对与处理这些问题作些具体探讨。
关键字:配置项 配置库 基线 软件配置 随着计算机应用的深入,软件项目的规模越来越大,复杂性越来越高。
传统的 二、三个人搞定一个项目的情况越来越少,稍大一点的项目已经不再是靠某个"技术高手"从头到尾一手操办。
从而在我们平时的软件项目中一些混乱现象往往是屡见不鲜,比如: 编那个程序的人现在离开本公司了,留下的程序因缺文档而导致无人能接上手。
多个程序员对一个模块操作,出现了怪异现象:一个程序员对该模块所作的变更消失了。
在一个模块中作了修改,导致另一模块不能正常运行。
上个星期已经把这个错误改正了,现在又出现了。
采用科学的配置管理思想,辅之以先进的配置管理工具,可以很容易的解决项目开发过程中由于管理上引起的问题。
我国软件企业可以从以下几方面思路去实施软件配置管理。
1、列出软件开发、运行、维护各阶段所需的软件配置项 所谓软件配置项就是在软件开发工作进展中得到的许多工作产品、阶段产品、使用的工具软件等信息项。
表一中列举了若干类软件配置项及其生成的阶段。
表一 只有明确了各阶段有哪些软件配置项,软件企业才能在实施软件配置管理时胸有成竹、游刃有余。
2、对现有软件配置项进行分类、补充,进一步完善软件配置 软件企业在实施某一软件时,针对不同的用户都有不同的需求。
表二是不同用户的工作环境: 为了满足各个用户的使用要求,我们的软件产品必须考虑到这些差异。
在产品的设计时我们尽可能的作成表三所示的安排: 为了实现这两种不同的软件配置,在实际开发应用中,我们完全可以将各个配置项分别开发出来,再根据用户的需求,组合成不同的产品,如图一所示: 3、对软件项目的变更要实行有效的控制和管理 软件企业在软件的开发、运行、维护过程中必然要遇到软件的变更。
引起软件的变更主要有两方面的因素:一方面是用户,如用户要求修改工作范围和需求等;另一方面是软件开发人员自身,如他们在工作中发现前期工作中的错误而修改源码甚至设计。
对于以上两种情况软件企业可以从以下几方面加以解决: 3. 1、明确实施变更的双方人员 事先应该明确用户有权提出需求变更申请的人员和软件企业项目开发组有权受理变更的人员,并且对双方人数要加以控制。
这样做的好处是可以约束需求方,使需求方每提一个需求都要经过仔细讨论 。
而项目开发组收到用户的需求变更时,通过有权实施变更人员讨论后,可以兼顾全局,对涉及到的相关文档、程序、计划都随之变更。
3. 2、 对变更进行严格的审核 并不是所有的变更都要修改,也不是所有变更都要立刻修改,审核的目的就是为了决定是否需要修改和什么时候修改。
比如涉及到界面风格问题,就可以先不修改,或者规划一下修改的时间待到以后进行优化。
另外,对于核心模块的修改要严格审核把关,否则会引起全局问题。
3. 3、 对变更的影响进行评估 变更都是有代价的,应该评估一下变更的代价和对项目的影响,要让用户了解变更的后果,并与用户一起做判断。
3. 4、让客户确认是否接受变更的代价。
在评估代价并且与客户讨论的过程中,可以请用户一起做判断:“我可以修改,但您能接受后果吗?”,并且对用户一一列出修改的后果。
什么是软件配置管理?
现在大家都已经认识到了有效的软件配置管理工作对于提高团队开发效率、保障软件产品质量的重要意义,很多朋友也开始了在配置管理实施方面的一些研究,市场上我们也可以看到一些软件配置管理工具厂商针对具体配置管理工具提供的实施服务;但是,实施软件配置管理到底应该做哪些东西?团队的配置管理现状怎么评估?在哪些方面还可以进行改进?我们相信,这些问题可能正困扰着大多数研发主管和项目经理。
国外软件产业界在软件配置管理这个专题上已经进行了多年的理论和实践上的研究。
在多年经验积累的基础上,产业界总结出来一系列“最佳实践”(Best Practices),我们可以使用这些“最佳实践”来作为评估一个组织软件配置管理能力的标尺,也可以作为我们实施软件配置管理的指南。
这些“最佳实践”包括: 1、 标识需要进行存储的工件(Artifact)并保障安全存储; 2、 控制并且审计(Audit)对于工件的修改; 3、 设立并管理基线(Baseline); 4、 记录并跟踪变更请求; 5、 维护稳定、一致的工作空间; 6、 支持对于工件和控件的并发修改; 7、 尽早集成、持续集成; 8、 保证软件构建的重现能力; 9、 以控件(Component)为单位实施版本控制; 10、 使用“活动”(Activity)来组织和整合版本集。
下文将介绍前5条最佳实践。
1、标识需要进行存储的工件(Artifact)并保障安全存储 在软件开发过程中,我们会得到各种各样的产出,比如各种文档、模型、源代码以及测试脚本等,我们把这些大家劳动的成果统称为工件(Artifact)。
对于一个软件开发组织来说,这些工件就构成了组织的核心资产。
对于如现金、有价证券之类的资产,我们都会准备一个保险箱,好好地保存;对于软件资产,我们也需要相似的措施。
所以,软件配置管理工作的第一步就是建立一个安全、可靠的存储库(Repository),用于保存组织的核心软件资产。
这个库对于开发团队来说,就像是财务室里的保险箱。
因此,容错能力和高可靠性是这个库最重要的属性。
除此之外,随着组织的增长,置于库中的数据会越来越多,为保证运行效率,库的可扩展性也是非常重要的一个属性。
对于存储库来说,良好规划的备份和灾难恢复过程是必不可少的。
令人惊讶的是,很多软件组织在这方面都没有给予必要的重视,因而也给组织的发展留下了严重的隐患,一旦灾难发生,后果不堪设想。
在建立好存储库以后,需要做的工作就是确定将哪些工件置于库中。
根据实际需要,组织可能会决定只将正式文档、模型文件、源代码、发布版本等文件放入库中,而对于临时文档、编译时产生的中间文件等,则不将它们放入库中。
我们把放入库中的文件称之为配置项(Configuration Item)。
2、控制并且审计(Audit)对于工件的修改 在标识相关的工件并将它们置于存储库中以后,我们需要建立对于这些工件的修改控制机制以及审计机制。
库里的工件不是谁想修改就可以修改的。
控制机制必须保证只有拿到授权的人员才能对相关工件进行修改,而审计机制则保证修改的动作被完整地记录,也就是说,谁修改了这个工件,什么时候做的修改,为什么原因做出这个改动,以及修改了哪些地方(Who、When、Why、What)。
软件配置管理指什么呢?
对于任何一个管理流程来说,保证该流程正常运转的前提条件就是要有明确的角色、职责和权限的定义。
特别是在引入了软件配置管理的工具之后,比较理想的状态就是:组织内的所有人员按照不同的角色的要求、根据系统赋予的权限来执行相应的动作。
因此,在本文所介绍的这个软件配置管理过程中主要涉及下列的角色和分工:项目经理(Project Manager,PM):项目经理是整个软件研发活动的负责人,他根据软件配置控制委员会的建议批准配置管理的各项活动并控制它们的进程。
其具体职责为以下几项:制定和修改项目的组织结构和配置管理策略;批准、发布配置管理计划;决定项目起始基线和开发里程碑;接受并审阅配置控制委员会的报告。
配置控制委员会(Configuration Control Board,CCB):负责指导和控制配置管理的各项具体活动的进行,为项目经理的决策提供建议。
其具体职责为以下几项:定制开发子系统;定制访问控制;制定常用策略;建立、更改基线的设置,审核变更申请;根据配置管理员的报告决定相应的对策。
配置管理员(Configuration Management Officer,CMO):根据配置管理计划执行各项管理任务,定期向CCB提交报告,并列席CCB的例会。
其具体职责为以下几项:软件配置管理工具的日常管理与维护;提交配置管理计划;各配置项的管理与维护;执行版本控制和变更控制方案;完成配置审计并提交报告;对开发人员进行相关的培训;识别软件开发过程中存在的问题并拟就解决方案。
系统集成员(System Integration Officer,SIO):系统集成员负责生成和管理项目的内部和外部发布版本,其具体职责为以下几项:集成修改;构建系统;完成对版本的日常维护;建立外部发布版本。
开发人员(Developer,DEV):开发人员的职责就是根据组织内确定的软件配置管理计划和相关规定,按照软件配置管理工具的使用模型来完成开发任务。
软件配置管理和质量保证
软件配置管理目的:● 通过使用配置管理软件,遵守版本控制、变更控制等规程,保证所有配置项的完整性和可跟踪性。
范围:● 适用于公司的软件开发项目,它规定了软件配置管理活动的具体规程及其工作产品。
角色与职责:● 配置管理员:编制项目配置管理计划;创建并维护配置库。
● 配置变更控制委员会(SCCB):审批配置变更申请。
● 软件开发组成员:在权限内使用配置管理工具操作配置库。
● 项目SQA人员:审计配置管理活动的规范性。
主要活动:1 在项目早期(在项目计划初稿后,并与项目计划一起评审)编制项目配置管理计划。
● 确定项目配置管理员。
● 项目经理和项目配置管理员共同指定项目组的SCCB。
● 项目经理与项目配置管理员按确定的软件生命周期,识别出项目要进行控制的软件配置项和纳入配置管理的日期。
● 项目经理与项目配置管理员依据项目定义软件过程,共同确定项目的基线,并标识每个基线的配置项。
● 项目经理确认由项目配置管理员制定的在软件生命周期各个阶段配置项的使用权限清单。
● 项目配置管理员按照《配置管理计划模板》制定项目的SCM计划。
● 项目配置管理员根据项目所使用的开发工具确定项目使用的配置管理工具。
● 项目配置管理员根据项目计划的变动,适时调整项目的SCM计划。
具体规程见《项目跟踪与监控过程》计划变更相关步骤。
● 由项目主管主持,项目经理、公司配置管理主管、项目配置管理员、软件工程组、软件相关组参加对配置管理计划书的评审。
具体规程参见《同行评审过程》。
2 按照配置管理计划,进行项目的配置库管理。
● 项目配置管理员规划、建立项目的目录结构。
该结构支持对配置项的存储和检索功能。
● 项目配置管理员根据项目的规模,规划和配置管理工具相关的配置库结构。
● 项目配置管理员依据经项目经理确认的权限清单对目录结构进行权限分配,以达到在相关组之间或配置库内部之间进行共享和传输。
● 项目配置管理员将配置项用配置管理工具统一管理,将软件工作产品存放在指定的服务器的软件基线库中。
● 项目配置管理员保证由软件基线库制造的产品的正确生成。
● 公司配置管理员定期对服务器的软件开发库、软件基线库进行备份,对配置项的归档版本提供存储和恢复功能。
软件配置管理有什么好处?
软件配置管理(Software Configuration Management,SCM)是一种标识、组织和控制修改的技术。
软件配置管理应用于整个软件工程过程。
在软件建立时变更是不可避免的,而变更加剧了项目中软件开发者之间的混乱。
SCM活动的目标就是为了标识变更、控制变更、确保变更正确实现并向其他有关人员报告变更。
从某种角度讲,SCM是一种标识、组织和控制修改的技术,目的是使错误降为最小并最有效地提高生产效率。
软件配置管理,贯穿于整个软件生命周期,它为软件研发提供了一套管理办法和活动原则。
软件配置管理无论是对于软件企业管理人员还是研发人员都有着重要的意义。
软件配置管理的概念是什么?
软件配置管理计划阶段一个项目设立之初PM首先需要制定整个项??研发计划之后,软件配置管理的活动就可以展开了,因为如果不在项目开始之初制定软件配置管理计划,那么软件配置管理的许多关键活动就无法及时有效的进行,而它的直接后果就是造成了项目开发状况的混乱并注定软件配置管理活动成为一种“救火”的行为
软件配置管理计划书
软件配置管理计划应包括以下几方面内容.1.配置管理环境的物理拓扑介绍(服务器ip和作用)2.配置管理计划涉及到的人员角色3.配置管理流程(一般是开发过程流程,如何使用流或分支,并行开发和合并代码的策略和流程)4.该计划的时间安排,基于项目开发里程碑点,何时做审计,打基线,发布包.5.人员培训需求表,配置管理工具和流程的培训该计划大部分都是不需要修改的,不如配置管理的物理拓扑,一些和项目相关的信息才需要修改.这样会减少编写时间
配置管理的发展前景如何做配置管理的发展前景(空间、方向、待遇…...
配置管理是非常有前途的。
首先,要了解配置管理的范围:版本管理(交付件文档、代码、测试资产、开发工具、二进制文件等)、变更管理(缺陷、问题、需求范围变更、风险、同行评审等等)、基线管理、配置审计、集成构建等。
如果想深入配置管理的思想,你需要先熟悉开发模型、需求管理、测试管理、变更管理、变更分析、度量等等思想。
你不但要关注过程,还要关注结果。
可以多了解ational的UCM思想,是多么好的配置管理思想。
有技术到哪里都不怕。
互联先锋提供1108种国外域名注册,提供香港、德国、英国、澳洲、美国等多国空间,提供香港、美国、台湾、韩国、日本、德国、英国、澳洲等多国服务租用。