• 美文
  • 文章
  • 散文
  • 日记
  • 诗歌
  • 小说
  • 故事
  • 句子
  • 作文
  • 签名
  • 祝福语
  • 情书
  • 范文
  • 读后感
  • 文学百科
  • 当前位置: 柠檬阅读网 > 祝福语 > 正文

    除非此项目支持增量下载 [增量开发软件项目版本管理关键问题解析]

    时间:2019-03-31 03:14:16 来源:柠檬阅读网 本文已影响 柠檬阅读网手机站

      摘 要:介绍了版本管理的概念、意义,提出了增量开发生命周期软件项目在版本管理过程中必须关注的两个问题及其解决对策。   关键词:软件产品;增量开发;版本管理
      中图分类号:TP302 文献标识码:A 文章编号:1672-7800(2012)005-0003-02
      1 版本管理概述
      一款软件产品在生命周期中会形成多个版本,当前版本软件发生功能变更、性能调优、修正bug等多种情况时,需通过版本升级来区分新旧、标识变化。
      软件版本管理,是对软件不同版本进行标识、跟踪和控制的过程,是软件配置管理内容之一。其手段包括集中管理、跟踪记录、访问授权、变更升级、并发保护和追溯比较等。有效的版本管理,对于团队开发项目而言具有重要意义:①可避免未经授权的阅读和修改,保证安全;②可防止多人并发访问的冲突和相互覆盖,实现团队协同开发;③可防止意外的文件丢失、修改丢失;④提供区分和检索不同版本软件变化的手段,可对比排错和修改追踪;⑤可根据需要回退软件版本;⑥能对版本进行序列修改、分支合并。
      2 版本管理工作准备
      版本管理贯穿软件项目始末,是项目顺利开展进行的有力支撑,甚至在一定程度上影响项目的成败。要做好版本管理工作,需掌握基本的原则方法,根据项目需要选择并熟练应用版本管理工具,将管理意识落到实处。要注意下列准备工作:
      (1)软件项目的版本管理是广义管理,其控制内容除包括源代码,还包括相关文档,这些要素均应纳入集中统一管理范畴。
      (2)设立管理员,掌握版本管理服务器,拥有权限分配职能。
      (3)制定规范,约束成员行为。人是项目成败最为关键的因素,规范的行为可以有效避免不良后果,培养全团队的版本控制意识,改正不良习惯。
      (4)选择适合的管理工具,开展工具使用培训。常用的版本管理工具很多,包括VSS、CVS、SVN、PVCS、StarTeam、Clearcase、GIT、Mercurial、Monotone等,适用于不同规模的软件产品、开发团队,可根据实际需要作出选择。下面简单介绍两种:
      (1)VSS,Visual SourceSafe。来自微软,属入门级版本管理工具,简单易用,与Windows操作系统及微软开发工具有高度集成性。但功能相对基本,提供文件版本跟踪、build和基线管理、share(共享)/branch(分支)/merge(合并)的团队开发支持。不支持跨平台,不支持流程管理、异地团队开发,安全性较低,用户权限基于文件夹。
      (2)CVS,Concurrent Version System。开源集中式版本管理工具,服务器/客户端模式,可跨平台应用(包括Linux、Unix和Windows)。支持远程管理,支持并发版本控制,支持项目组分布式开发。CVS服务器提供自己专用的数据库,文件存储非“共享目录”方式,安全性高。其不足之处在于不支持文件改名,不支持目录管理,缺少技术支持。
      3 增量开发软件项目版本管理的关键问题
      3.1 问题提出
      增量开发生命周期具有较为灵活、容易见效的优点,但版本管理难度较大,需求和设计的整体把握难度较大。
      例如,某项目采用增量版本投产方式,阶段包括策划、研发、SIT、UAT、准生产测试、投产。其间,项目经理因工作疏忽以全量包方式下发SIT/UAT测试,到准生产测试阶段才发现问题,于是匆忙组织人员将该项目的增量版本分离出来,之后直接提交准生产测试。因没有SIT/UAT的测试保证,无法确认增量包的剥离是完整正确的。准生产测试果然发现增量包分离存在问题,只得再次调整和下发。另外,该项目准生产进行期间,优化升级包SP1以高优先级开发完成且先于该项目投产,则该项目的投产依据必须由当前生产基准版本转变为当前生产基准版本+SP1升级包。该项目只得在准生产阶段进行版本重组和下发才得以解决问题。这两个版本管理过程中出现的问题几乎导致项目失败。因此,选择增量开发方式的软件项目,其版本管理必须重视和解决下列两个关键问题:
      3.1.1 确定和确保投产顺序、投产依据
      通常软件项目在策划阶段会计划投产版本依据,UAT测试阶段准备投产版本依据,准生产阶段确定投产版本依据。如何通过版本管理来确定、确保投产顺序,减少因变更引发版本错误,是第一个关键问题。
      3.1.2 当发生变更时,如何实现版本重组
      实际工作中投产顺序的变更不可避免,某一阶段工期延迟、投产计划因其它产品投产影响而变更,投产环境准备不充分,版本UAT甚至投产期间有紧急SP包需先行下发等都会引起投产顺序、投产依据的变更。遇到变更如何进行版本控制,使得版本在流程上、技术上较为容易重组下发是第二个关键问题。
      上述两个问题解决得好,可以减少版本管理中的不确定因素,降低管理成本和开发成本,并可支持复杂灵活的开发模式。解决不好,则会导致版本管理紊乱、版本管理成本增加、开发人员工作量增加等问题,严重时甚至导致生产错误、项目失败等后果。
      3.2 解决对策
      问题一:确定和确保投产顺序、投产依据。
      对策:首先,项目策划期间,需周密考虑影响投产顺序的各方面条件,根据优先级、项目组开发进度、测试部门、产品用户可能面临的环境或资源风险等综合安排投产顺序。还要考虑预期风险转化为问题时,如何应对。
      第二,确定投产顺序后,项目组可协同业务部门提前将投产顺序与测试部门、产品用户沟通,让大家都掌握情况并反馈意见建议,便于确保投产顺序、投产依据。这项工作尽量在准生产之前进行,合适的时间是SIT后期、UAT期间。
      第三,从项目管理角度来说,任务的串行开发优于并行,并行任务在版本上能合并就不要分拆,如果可采用定期集中下发版本而不是事件驱动方式下发版本,则效果更佳。
      问题二:当投产顺序、投产依据确实发生变更时,如何实现版本重组。
      对策:利用版本管理工具,做到版本的清晰分离和灵活合并,实现成功的版本重组。
      首先,清晰地标示各个版本,能一目了然地知道哪些版本改动了哪些内容,再进行分离。可采用的分离方法包括程序员记录修改内容、另建物理开发库、增删改文件commit统一标注为问题单号,或增删改文件头特别版本字符串标注等。这其中只有另建物理开发库是版本分离最彻底的方法,但又有工作量大,后续修订bug时可能需要修订多个库多个版本,实际组包并不灵活等问题。不过,版本管理工具大多提供了很好的方法手段来实现分离,例如使用CVS版本管理工具的项目团队可应用Branch分支功能达到另建开发库的效果,同时规避掉另建的不足。
      在以上版本清晰分离的基础上,将分支待发布版本与原有投产依据拆分、与现有投产依据进行版本合并,最后下发。同样这项工作可应用版本管理工具实现,例如CVS提供的标签、Merge合并功能。
      综上可见,综合应用版本管理工具的分支合并功能有很好的效果,分支使得另建开发库变得容易,程序员在分支开发过程中无需记录修改了哪些程序等信息,程序在一个分支上修改完毕后,无需在其它多个版本上同步更改,应用Merge合并技术就可以将修改的内容合并到其它分支……通过技术的运用,版本的灵活重组成为可能。
      4 结束语
      在软件项目日渐复杂、开发团队规模日渐壮大的今天,版本管理工作应引起全员重视,并保证全员落实,应根据团队特点、开发方式等因素合理选择和高效使用管理工具,及时分析工作重点、难点,采取有效手段预防、规避和解决版本问题,将管理意识和工作贯穿项目始终,从而成为软件产品高效高质量实现的重要保证。
      (责任编辑:杜能钢)

    相关热词搜索: 增量 开发软件 解析 关键

    • 文学百科
    • 故事大全
    • 优美句子
    • 范文
    • 美文
    • 散文
    • 小说文章