APP下载

软件项目开发模型的优劣势分析

2018-01-10王磊

科技传播 2017年22期
关键词:项目管理

王磊

摘 要 在过去十几年时间,软件工程已经总结出一些规范开发模型,进行软件项目管理。在企业信息系统开发中,各个供应商或者企业内部团队都有擅长或者偏好的软件项目开发模型进行系统实施和构建。在实际开发中,因为开发模型的不同,会影响项目的成果。每个模型都有自身的特色和优劣势、本文尝试分析不同的应用场景需要选择不同的开发模型。

关键词 项目管理;软件开发模型;敏捷开发

中图分类号 TP3 文献标识码 A 文章编号 1674-6708(2017)199-0104-02

近年来,随着企业内部自主软件开发或采取外包模式的软件开发增多,在项目管理中发现采用适当的软件开发模型是项目成功因素之一。笔者作为企业内部软件开发项目经理,总结针对不同的项目规模和对需求的把控程度要选择不同的软件开发模型。

1 传统瀑布模型开发

瀑布模型采用的是线性生命周期方法,一般会对项目不同阶段建立项目里程碑,分为可行性研究、需求分析、系统设计、系统开发实施、测试、系统维护等阶段。当一个阶段全部完成后,下个阶段才能开始。当各个阶段工作完成后,都会对项目里程碑进行回顾,确保项目处于正常项目进度和目标之内。从管理角度看,这是一种有效的管理方式,每项开发活动都是处于一个确保质量的环节。项目是通过文档来驱动,通过项目文档评审来对项目进行有效的指导。

但是传统瀑布模型中所有的需求都要在需求分析阶段从各方人员中完成收集,但是随着项目开展,业务部门会更深入的反思或者重构需求,导致需求发生变化时。这个模型很难在项目过程中进行需求变更,会耗费大量人天在需求变更和对应系统设计、开发的调整上。这种模型适合较小的项目并且是在充分理解需求的情况下采用。对于大型、复杂的项目,笔者认为这是一种危险的开发模型,因为项目中通常包含许多变量,它们不同程度的对项目能否正常开展产生影响。

2 V形模型开发

V形模型是在软件工程中不再按照线性方法,而是遵循V形格式步骤。这个模型强调软件产品的每个阶段都进行验证和确认。具体是需求和用户测试相互验证;系统架构设计和集成测试项目验证;详细设计和单元测试项目验证等。

V形模型和瀑布模型在各阶段执行方面类似,拟定好了执行步骤。在某一阶段开始之前,前置的阶段内容需要完成。V形模型在开发阶段不断进行各个级别的测试,反馈到前期对应阶段的内容里。所以項目执行效率会高。但是需求变更依然很困难,在项目周期中变更成本会很高。这个模型没有迭代概念,更适用于前期可以理解所有需求而且变更范围很小的场合。

3 螺旋模型

在投入大量时间和人力资源之前,可以开发软件代码的样品或模型。通过迭代的方式进行开发,重点关注风险分析。模型分成四个阶段:计划、风险分析、开发和测试。反复进行迭代。通过和业务用户沟通,解决特定的需求问题。

如果一个团队使用螺旋模型开展工作,可以尽快和用户确认需求,尽快调整变更。在项目管理上,螺旋原型可以让开发团队快速设计样品,进而验证当前对项目理解的正确性。团队快速开发模型和业务用户讨论是否可行。螺旋模型开发的目标是渐进式的改进,不像快速模型那样开发完原型后将其抛弃掉,原型方法中的原型将会被持续改进直到它达到最后的成品。每个开发阶段得到的反馈,都用来改进原型,从而满足用户需求。开发一个快速模型,是为了迅速理解提议的解决方案,演化型原型在实验环境中是不断的改进和创新,它适合于在需求不明确的项目中控制关键业务点。

它优势是在项目各个阶段都可以进行需求变更,可以分阶段构建大型系统,使流程变得简单容易,推荐用户参与到开发,保证项目方向不偏离。劣势在于用户不能确信这种方法的结果是可控的,而且开发周期长,螺旋模型适用于复杂项目。

4 快速应用开发

采用快速应用开发模型是不需要大量的前期规划或者调研、大面积的需求分析,而是依赖于快速原型的使用。在这种模型中,快速开发软件的过程与改进软件计划相互作用在一起。快速应用开发模型集成了选代开发方法和原型化方法。为了明确软件产品最终的实现结果,开发流程从创建业务流程模型和数据模型开始。通过应用原型设计,改进过程和数据模型。需求的明确化、清晰化会促进原型改进,原型测试和评价也可以提高数据和过程模型的质量。这些步骤的目标是集成业务需求和技术设计,其中技术设计可以提供软件开发项目的指导。

一般选用快速应用开发模型的主要原因是,如果依据其他模型,那么在开发软件时,需求往往会发生变化,开发人员必须回到绘图板上重新开始。快速应用开发模型允许客户参与开发阶段,目的是最终结果能以更现实的方式满足他们的需求,减少由于软件需求不确定带来的风险,能够快速吸引用户。但是这类方法适合互联网类的软件产品更新频繁的项目,进行迭代开发。跌势是这个开发模型项目过程文档不够完善,不能很好的支持后期运维工作。

5 敏捷模型

在行业内采用敏捷模型之前,一般开发团队都会严格采用面向过程的模型。就像瀑布模型那样,更强调遵循过程和步骤,而不是以更敏捷有效的方式工作。传统的项目管理是根据整体的问题和难度,按照计划一次解决完整问题,一次交付完整价值。敏捷模型是先把整体的问题分解和降低难度,快速开始行动,逐次解决问题,尽快得到业务用户的反馈,尽早交付更高的价值。敏捷模型是一个软件开发能力,是针对迅速变化的要求。敏捷模型具体的名称、概念、过程和条件不相同,相对于“非敏捷”而言,强调程序员和业务专家面对面交流和密切合作,对新的软件版本的频繁交付,紧凑和自我组织类型的团队,可以很好的适应需求改变的代码,但也更注重软件开发中人的作用。

敏捷模型关注的不是严格的、线性的、阶梯式的流程,而是侧重于增量和迭代开发方法,目的是适应不断变化的业务需求,业务部门可以对需求的增加、变化或取消进行更多的分析和判断。同时促进跨部门团队协作和持续反馈机制。相对于传统的重量级方法,该模型被认为是轻量级的,这意味着该模型不限于狭窄的视野和过于结构化的方法,足以满足每一个项目的需求。根据业界实践,即使是一个定义良好的过程库,也不能处理开发项目中的每一种情况。因此,时间和资源不再用于早期的大规模设计分析,资源更倾向于业务所需功能的增量式代码创建。此模型侧重于个人交互,而不是过程和工具。它侧重于弹性而不是严格执行计划。这种模型适用于小系统,不适用于大系统。项目管理的关键步骤是控制变化,使一切有序,而敏捷模型基于另一个想法,它允许从一开始就进行大量的需求更改。

本文只是基于笔者企业内部的项目管理经验,介绍了最常用的软件开发模型的优势、劣势和使用场景。如果一个项目选错了开发模型,会影响项目的成败。所以在项目开始之前要和项目团队确定好恰当的软件开发模型。

参考文献

[1]郭连明.谈瀑布模型及其局限性[J].科技展望,2016(6):143.

[2]蒋怿.基于Web标准和快速原型模型的网站开发方法研究[J].黑龙江科技信息,2011(33):33-34.

[3]白鱼秀,郑欢欢.敏捷开发在软件工程实践课程中的应用[J].计算机学报,2017(1):27-28.endprint

猜你喜欢

项目管理
装配式EPC总承包项目管理
基于大数据分析的集合式EPC总承包项目管理软件技术的应用
项目管理在科研项目管理中的应用
新形势下大数据分析方法在项目管理中的应用
未来如何更高效地进行工程项目管理
建筑施工项目管理
项目管理在通信工程设计中的应用
环境工程的项目管理
创新项目管理 凝聚农发正能量
浅谈如何有效进行项目管理