`
Eileenlml
  • 浏览: 72479 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

软件项目的先行者--软件配置管理

阅读更多

软件配置管理是一门应用技术、管理和监督相结合的学科,通过标识和文档来记录配置项的功能和物理特性,控制这些特性的变更,记录和报告变更的过程和状态,并验证它们与需求是否一致。
-----摘自IEEE定义
简而言之,配置管理(Software Configuration Management , 简称SCM)就是对软件产品的配置项进行控制和管理。它的目标是最大限度的减少错误和混乱,保证软件项目工作产品在整个生命周期内的完整性。
配置管理的对象是配置项,主要包括:接口描述、过程描述、需求、设计、测试计划、测试结果、代码及模块、工具、系统参数、版本描述等。配置项与配置人员、配置工具、配置规范等构建起了整个配置管理体系。


软件技术迅速扩展,项目开发日趋复杂,人员数量不断扩充,系统开发平台多样化,开发及测试场所分布各地,开发规模日益扩大,随之而来的管理复杂性急剧增加。

软件系统越做越大,产品组件动辄上千,多者上万,版本控制如何着手,令人头痛。

配置管理的管理范围恰是项目开发、协调最混乱的地方:
     交付给用户的软件产品(需求、源代码等)

     软件产品的外部产生“环境”(操作系统参数、编译程序等)
     对项目内部而言工作产品(过程描述、流程控制等)
     那么,这种管理的特点是什么呢?它到底能带来什么好处呢?
特点  
     相对独立。配置管理相对独立于其他管理控制活动,它可以在其他活动都未开展或还不成熟的时候独立进行。

是其他各项管理的基础。需求管理、需求变更、资源变更、系统维护、合同管理、计划管理、文档管理等都是在配置管理这个“平台”基础上进行的。

优点 
      对项目产品单元进行统一的版本变更管理,统筹安排系统的修改、发布以及系统资源的使用,预防开发的进程混乱,保证系统版本的完整和一致。
      支持并行开发与维护。软件开发过程时常要求多个开发人员同时在同一个软件模块或项目文档上工作,同时对同一个代码或文档部分作不同的修改,配置管理能满足这样的要求,同时使跨平台、跨地域的并行开发成为可能。
      使项目管理人员能掌握项目开发进度。配置管理系统可以提供配置状态报告,对每日变更完成的工作量、开发中存在的问题等会有详尽的反映。
      减少人员变动对项目带来的影响。项目的变更轨迹可跟踪,文档的增删、代码的修改、参数的改变、配置项的状态、基线之间的差异等都有案可查。参照变更的原因、内容描述等内容,我们便可对项目的开发进程有详细而完整的把握,从而避免对相关人员的过分依赖。

配置管理的重点工作描述
1) 配置项识别
      配置项识别就是将配置项按规定统一编号,将其划分为基线配置项和非基线配置项,按一定的结构保存在配置库中,然后赋予不同人员不同的权限来使用它们。
      那么,“基线”又是什么呢?
      基线是由一组具有唯一标识号的配置项组成的。这些配置项构成一个相对稳定的逻辑实体,它们处于“冻结”状态,不能被任何人随意修改。
      基线通常与项目开发过程中的里程碑点相对应。在项目里程碑阶段,项目通常会进行阶段成果评审,经过正式评审并获得批准的阶段性项目成果的统一标识便标志着项目的不同基线。根据使用对象的不同,基线被分为建造基线(对内使用)以及放行基线(对用户使用)。

     对基线及其集成系统的任何修改,都必须按照特定的规程来评估和验证。

2) 变更控制;

     随着项目的进展,需求、开发资源及环境都可能会发生变更,变更控制便是对这些变更进行跟踪和规划,目的是便于变更的有效管理和追溯,避免工作的混乱。
    变更控制使配置项真正处于受控状态,并保障配置项在任何情况下都能迅速恢复到任一历史状态。
   上图是一个较典型的变更控制流程,它的重点在于变更申请审批、变更方案审核、变更结果评估等环节。通过这种审批、审核,来保证变更的合理性,降低变更风险。

3) 版本管理
       这里的版本包括各种文件、技术文档和程序版本。这些配置项均属于版本管理的范畴。
       版本管理的目的是按照一定的命名规则保存配置项的所有版本,避免发生版本丢失或混淆等现象,并确保能快速而准确地查找到配置项。
      版本管理对存取软件资源采取加锁等控制策略,保证了多人同时开发时软件资源的内容一致性和正确性。
      配置项的状态通常有三种:“草稿”、“正式发布”、“正在修改”。 配置项的不同状态由多种版本号所组成。随着状态流程的变迁,版本号发生变化,新的版本出现,版本管理就是对配置项各种版本的进行存储、登记、索引、权限分配等一系列管理活动。
4) 配置状态报告
根据配置库的记录情况,我们可以总结出不同角度的配置状态报告。它可以由CASE工具自动生成,如:《配置项的状态》、《基线之间的差别描述》、《变更日志》、《变更结果记录》等。
通过配置状态报告,我们可以了解基线配置项的状态、当前的工作进度、变更对项目进展的影响等情况。从而为开发决策提供参考依据。
软件配置管理工具的选择
    “工欲善其事,必先利其器”,配置工具的选择对配置管理的好坏影响巨大。
     配置工具是配置管理的自动化平台,是一个管理具体实施的基础。一套功能强大、实施容易、管理方便的配置管理工具,可以极大地提高配置管理的实施效果。
    目前配置管理工具大致分3类:
     版本控制工具,提供基本的版本管理功能,例如:CVS, Visual SourceSafe;
     项目级配置管理工具,适合中小型的项目,除版本管理功能外,还提供变更控制、状态统计功能,例如:ClearCase,PVCS,StarTeam;
     企业级配置管理工具,除上述功能外还提供较强的过程管理功能,例如:ALLFusion Harvest。
     如何选择配置工具呢?通常的选择标准如下:
     提供基线化管理,对于基线有明显的标识。在工具所管理的配置库中,所有的配置项都应清晰、完整的得到保存,对于同一基线所包含的配置项可以迅速而明确地查到。如:项目人员在实施某一个需求变更时,可以方便地查到与此更改相关的编码、文档、测试用例、使用手册等产品单元,从而保证变更的完整性。
     操作简单、流程便利。项目开发是一项复杂工程,项目人员工作繁重,应尽量减轻他们的工作压力,消除其使用戒心。
     提供完善过程管理功能。能根据实际情况定制不同的开发规范,包括访问权限控制、开发规则的实施等;能跟踪、控制开发过程中出现的缺陷、变更等,可以随时了解变更的实施状态。
     提供灵活多样的配置状态报告。在配置的不同阶段能提供多角度的配置状态报告,详细反映配置项的变化过程,追溯变更任务的进程,为项目管理提供第一手参考资料。
管理规范的制定与推广                          
      通常人们会认为,配置管理就是工具管理,就是找几个人,买几个工具,就可以开干了,这实在是大大的误解。再好的工具都要靠人来操作、管理。工具是死的,人是活的。工具虽好,若无严格可行的规章、流程做保证其实施,要做好配置管理是空谈。
     配置管理规范是成功实施配置管理的根本保障。它包括:配置管理计划、版本控制规则、变更控制规则、配置库操作规则、配置审计规则等,所有这些,构成了完整的配置规范及配置管理基础。

如何做好配置管理的相关规范及流程呢? 
1、明确项目要做到的配置管理目标。
2、根据目标确立配置管理应提供的功能。
3、确定相关人员,明确其岗位职责。
4、确定是否要引入配置管理工具,如需引入,要引入何种工具。
5、确定配置管理流程。
制定配置管理计划。
1)配置控制委员会(Configuration Contronl Board ,简称CCB)根据项目的开发计划制定阶段里程碑,明确开发策略;
2)配置管理人员(Confiuration Management Officer,简称CMO)根据CCB的规划,制定配置管理计划,交CCB审核;
3)CCB审核通过配置管理计划后,将其交项目经理批准,然后对外发布。
  
1)CCB设定项目研发的初始基线;
2)CMO设立配置库与空作空间,为软件开发做准备;
3)开发人员根据软件配置策略获得授权资源,进行研发工作。
4)CCB根据研发进展情况,审核项目变更请求,根据里程碑来确定新的基线,推进配置管理活动。


6、制定相关规范来保障流程的实施。
规范规定完毕,还要有执行,如何来推进配置管理各项制度及流程呢?
领导的重视是前提,没有领导的支持与推进,过程控制规范便没有执行力,是一纸空文。
      培训:不光要对配置管理人员进行培训,还要对相关的技术及管理人员进行培训,使他们认识到配置管理的重要性,应如何来应用,如何来配合。培训是化解阻力的重要手段,大家只有了解你的好处才会支持你,否则,迎接你的往往是拒绝。
      建立反馈渠道及反馈机制。“鞋子合适不合适,只有脚知道。”规章合理不合理,用户最清楚,听取各方的意见,不断自我完善,才能建立起切实可行的规范制度。
结束语  
      配置管理离不开“人、工具、规范”三要素,我们若把软件项目比喻成隆隆向前的战车的话,配置人员便是战车的机械师,负责及时通报战车的性能、方位,排除系统故障;配置工具则是战车的传送带,平稳而准确地推动着战车前进的步伐,确保它到达一个又一个新的目标;配置规范就是润滑油,有它在,战车的各个部件才能精确地耦合运转。配置管理对项目是如此重要,没有它的保障,项目“战车”便是一堆废铁。
      我们能指望这堆废铁什么呢?

  • 大小: 41.8 KB
分享到:
评论

相关推荐

    智慧工厂落地解决方案完整版.pptx

    - **企业层级**:包括ERP、PLM等企业管理软件。 - **协同层级**:通过互联网实现不同企业间的协作。 - **智能功能维度**: - **资源要素**:确保制造资源的有效配置。 - **系统集成**:通过信息技术集成各种制造...

    CAN-bus-gongju[1].pdf

    公司自主开发的多个型号产品技术已经达到甚至超过了国外水平,并已经在实际项目中得到了广泛应用。 #### CAN-bus专用芯片 1. **zP87C591**: 集成PeliCAN控制器的增强型8位单片机。 2. **zLPC2119/2129**: 集成2路...

    企业档案电子信息化实践与思考.pdf

    在开发过程中,企业可以参考先行者的经验,选择有经验的软件开发商,并确保开发团队深入了解档案管理知识,与档案管理人员紧密合作,以提供用户友好的操作界面和高效的系统性能。 4. **推进档案数字化方案**:档案...

    Jaesuk Ahn:Two Years of Life with OpenStack Swift

    自动化和配置管理: 使用Chef和Spring框架,KT ucloud storage实现了云计算部署和配置的自动化,以简化和加速服务的部署过程。这一点对于云计算提供商来说是至关重要的,因为它可以显著降低运营成本并提高效率。 云...

    电子商务综合实训室建设设计方案.doc

    软件配置应选择现代电子商务学习和模拟实训软件,让学生在实际操作中理解电子商务的运行机制,提升其职业技能。 为了达到这些目标,实训室的设备配置至关重要,需要更新换代,确保计算机性能足以支持高内存消耗和...

    vant-bot:基于Jukebox的Preba州官方Vanetti机器人

    这可能是一个Python脚本、Node.js应用或者其他编程语言的项目文件,包含了Vant-bot的核心逻辑和配置。 在更深入的分析中,我们可以预想Vant-bot的实现可能包括以下知识点: 1. **自然语言处理(NLP)**:为了让...

    集团客户服务体系建设方案及措施借鉴.pdf

    作为国内GIS领域的先行者,该公司在历经二十多年的风雨后,已从最初的项目团队成长为国内最大的GIS基础平台供应商,为我国民族软件行业树立了典范。在快速发展过程中,公司不断进行创新,不仅在产品、质量、技术和...

    ARM学习报告(pdf,全)

    这份报告详细记录了一位先行者在学习ARM过程中的思考与实践,对于初学者来说,它提供了宝贵的指导和启示。 首先,报告可能涵盖了ARM的历史和发展。ARM始于1980年代,由Acorn Computers公司研发,如今已成为全球领先...

    5G中的SDN_NFV和云计算.pdf

    设备商主导的Opendaylight项目虽然是先行者,但其在采用开放协议方案上存在排斥态度,引起了业界不满。与此同时,由运营商主导的ONOS项目逐渐受到看好。SDN的应用主要部署在数据中心之间,而在移动无线网络的部署...

Global site tag (gtag.js) - Google Analytics