软件项目估算认识论文

2022-04-20

摘要:文章结合VRGIS虚拟现实软件项目的实施过程,分析研究了VRGIS软件项目的实施特点,同时,将现代项目管理方法和技术应用到项目的进度管理过程中,建立了一套适用于虚拟现实软件项目进度管理流程。实际应用表明,该框架有效地控制了项目各阶段活动的实施,降低了因进度迟缓而造成的工期延误,保证了项目顺利地通过验收交付,可以为同类项目实施提供参考经验。下面是小编整理的《软件项目估算认识论文(精选3篇)》,欢迎大家借鉴与参考,希望对大家有所帮助!

软件项目估算认识论文 篇1:

CMMI在网络学习空间软件项目中的应用研究

摘要:软件项目管理是建立软件生产线的必经之路,软件项目管理是以模型和理论为指导的,理解并结合软件组织的自身特征和开发现状的。CMMI(Capability Maturity Model Integration,即能力成熟度模型集成)是帮助软件项目控制和改进软件开发和管理过程,从而不断改进提高软件质量的国际通行标准,CMMI提出了软件项目管理并给出了达到各成熟等级的标准,但是CMMI缺少具体可操作的实施方法和确实有效的实施措施。该文从CMMI出发,选定网络学习空间软件项目为特定研究对象,分析了项目实施中遇到的问题和原因,结合CMMI第二级和CMMI第三级的关键过程域,提出了改进网络学习空间软件项目管理的策略,并对比了实施效果,以期通过提升项目管理水平使得网络学习空间的软件质量有所保证。

关键词:软件项目管理;CMMI;软件质量;软件过程改进

一、前言

随着信息技术的发展,网络学习空间软件的复杂性与规模化不断增长,但是网络学习空间的实践过程阶段不明显,在软件质量保证、项目管理等方面尚未得到足够的认识和重视,缺乏系统、完整、科学、适用的方法论和模型体系的指导和规范,开发风险不断增大,软件质量很难得到有效的保证。在这样的现实环境下,使得构建软件的过程(即软件过程)得到了更多的关注。基于此,卡内基—梅隆大学软件工程研究院(SEI)提了软件能力成熟度模型(CMM)。CMM的核心是对软件的实践过程进行管理和研究,使其流程化、科学化,最后达到保证软件质量的目的。

CMM模型的提出后,衍生了多种模型,分别针对软件过程的各个不同阶段和不同对象,但是这些模型又在配置管理、需求管理等方面有共同的方面,因此SEI整合了不同模型中的最佳实践,建立了覆盖不同领域的统一模型CMMI。CMMI被认为是把各种CMM和其衍生模型集成为一个系列的模型,CMMI在支持软件过程改进和提高的同时,减少了重复工作,消除了多种模型共存的不一致性和混乱性,CMMI的源模型包含:软件能力成熟度(CUU)2.0版,EIA-731系统工程能力评估模型,集成的产品开发能力模型IPDCMM(IPD)0.98a版。

二、研究理论

(一)CMMI模型

1.外部结构

CMMI有两种表示法:阶段表示法、连续表示法。阶段表示法是一个五级的阶梯式进化结构,具体描述如下:

(1)初始级:无计划、无流程、无管理,软件项目完成情况不稳定,随意变更项目计划,是否能成功完成项目主要依靠项目负责人的经验和能力。

(2)完成级:建立了最基本的管理規则,初步实现标准化开发流程,开发计划能稳定完成。但是,开发计划和项目管理依赖于以往的项目实践经验,盲目重复采用以往成功项目的条件。

(3)管理级:开发过程(包括研发和管理)实现配置管理,并建立了培训制度、同行评审制度,有效控制了各项实践活动,基本保证系统成功达到需求目标。

(4)定义级:建立了定量的质量目标,建立了过程数据库,实现了过程控制。开发活动中的生产率和质量是可量度的,因此可以预测软件质量趋势,如预测有偏差,实现及时纠正。

(5)优化级:能够防止出现缺陷、识别薄弱环节,可获得过程有效性的数据,并据此进行分析,采用新技术、新方法,从而改进现有过程,最终得出最佳实践方法。

连续表示法将过程域划分为四个类型,分别为“过程管理、项目管理、工程管理、支持服务管理”,并将过程域分成基础和高级,分别在每个过程域中建立实现基准。每个过程域的能力等级有六级:不完整级、执行级、管理级、定义级、量化管理级和持续优化级。在连续表示法中,项目可以追求单独的类型上的提升。

本文采用的是阶段表示法。

2.内部结构

CMMI模型每级的内部结构包括:等级特性、关键过程域(KPA)、关键实践(KP),这三者共同定义CMMI模型的每个成熟度等级,它们构成了成熟度等级的关键成功因素。CMMI阶段表示法的五个等级中共包括22个关键过程域,每个等级中的关键过程域都有特定目标,并有与之相应的关键实践用来实现这些目标,关键实践包括管理、技术和人员三方面的因素。通过对关键过程域的识别,能够找出过程成功所需的关键实践,从而确定项目活动的优先次序。

除初始级外的其他等级都包含了实现该级特定目标的若干个关键实践,不同的关键实践都有具体的实践活动的描述。通过分析各等级与关键过程域在管理、人员和技术三方面的因素,可以得出第二级与第一级相比最大的提高是在管理方面具有了需求管理以及项目跟踪和监督,第三级与第二级相比最大的提高是具有配置管理、人员培训和同行评审。由此可知,第二级和第三级是两个非常重要的阶段,在第二级中开始建立基本制度和规程,第三级中实现了标准化管理,处于该等级时,实践活动为软件质量的保证提供良好的基础。CMMI第二级和第三级共有18个关键过程域(PA),占据了五个等级所有关键过程域的八成。

3 CMMI的实施方案

对于软件项目,CMMI的实施需要基本的五个步骤:

第一步:调查分析研究。通过调查项目中开发、管理等关键流程,发现具有共性的重要问题,研究出现问题的潜在原因,并与项目组成员商议解决方案。

第二步:明确职责,优化结构。根据问题原因,明确重要岗位的职责,确定科学的组织架构,调整部分职责模糊的岗位和人员。

第三步,优化项目过程,配备管理工具。优化项目管理的流程,整合商务、研发和管理过程规范,配备与流程规范相配套的管理工具。

第四步,内部培训。为项目组成员提供全面的培训,让成员掌握过程规范和管理工具。

第五步,执行改进方案。项目组根据改进后的过程规范开展项目工作,项目过程改进人员监督并记录执行的情况,将问题反馈给项目组,然后再优化改进过程。如此反复,形成持续改进的良性循环,建立更加有效的项目运作机制,提高产品质量,控制生产成本和降低开发风险。

(二)软件项目管理

实施软件项目管理的目的是为了使软件项目的生命周期在控制之下,以预定的成本、进度、质量顺利完成并交付用户使用。软件项目管理主要涉及人员组织管理、项目计划、风险管理、配置管理、软件质量保证、软件过程能力评估等。

三、网络学习空间项目开发过程中存在的问题

(一)项目中存在的问题

影响软件质量的因素有很多,在本项目中主要存在的问題有:需求不明确、项目计划不充分、项目监控不到位、评审机制不完善、团队的组织不恰当等等。通过本项目的实施,并结合目前存在的一些普遍问题,归纳总结了两个产生严重影响的问题。

1.项目进度滞后

在项目初期,对网络学习空间系统的复杂性缺乏充分的估计,对需求没有进行详细分析和实际验证的情况下就开始盲目开发,项目计划制定的不充分、不到位。同时,项目很多工作完全依赖项目负责人协调沟通,没有明确的工作流程,项目关键内容缺少了必要的文档化。在项目执行过程中,出现了临时更改系统功能的情况,且没有可以采用的应对计划。在功能更改后,忽视了跟踪需求变更和评审开发内容。因此,影响了整体的开发的进度,导致项目进度延误,项目计划分成六个阶段45天完成,实际完成时间是51天,进度延误偏差率为13%。延误最为严重的环节是需求分析和测试阶段,需求分析计划天数是12天,实际完成是15天,测试计划天数是4天,实际完成时间是5天,这两个阶段的实际完成时间进度延误偏差都高达25%。

2.软件质量偏低

在项目的整个实施过程中,由于项目计划部分失效,出现了计划外的任务,造成软件出现明显缺陷。而这些计划外的任务多出现于开发阶段的后期,而此时完成这些计划外的任务所付出的成本代价是非常高的。另外,在缺陷管理方面,仅仅依赖测试报告来记录系统缺陷情况,造成在系统缺陷追踪上不畅通,出现了修复一个缺陷后继而暴漏出其他缺陷的恶性循环,从而严重的影响了软件质量。通过比较各个阶段的软件缺陷分布率,得知在需求分析阶段的缺陷率比较高,这说明了项目人员没有完全理解应用需求,并且对需求缺乏深入详细的挖掘以及分析,错失了潜在需求,忽视了功能后的实际应用效果,所以越来越多的缺陷逐渐暴漏在后续活动中;另外,测试阶段缺陷率也较高,在项目前期阶段,预防和及早发现缺陷,有利于控制项目预算和项目进度,而到了测试阶段,修复软件缺陷的成本代价将会成倍的扩大,缺陷越多,进度越延误。

(二)问题的原因分析

1.需求不明确,需求分析不透彻,需求管理活动混乱,导致不断修改需求,同时缺乏有效的管理,无法保证软件过程顺利进展,造成项目延期。

2.不重视项目的实际度量和分析,设计开发等进程建立在以往的项目经验上,缺乏科学的实施流程,项目进度完全依靠项目负责人协调沟通去推进。

3.缺乏设计和实施过程的标准定义,文档结构各异且版本管理混乱,出现交叉测试等缺乏管理规则的活动,忽略了设计开发与测试各个步骤之间的关联性,造成项目实现过程中缺少连贯性,项目只好停滞返工,重新设计开发,从而导致不能按照原定计划按时完成。

4.在开发中缺少有效的项目监管和评审机制,项目不能顺利交付,出现大大小小的偏差,致使项目进度滞后,软件质量偏低。

四、基于CMMI的改进建议

CMMI给出了规范化的过程,关注在开发过程中加强过程域的监督和管理,解决软件实施中的实际问题,并通过持续改进提升软件质量。以往项目进展只是依靠项目负责人的经验,实施过程无序且不可控,仅仅达到CMMI第一级的要求。显而易见,达到CMMI 1(初始级)并不能解决上文中提到的问题。因此,上述三个问题,本文以CMMI 2、3级为依据找到影响问题的关键过程域,提出网络学习空间的软件过程改进措施。主要的改进措施包括完善需求管理和质量保证体系、规范实施过程、建立监管和评审机制,涉及到的关键过程域有需求管理过程、技术解决方案、过程和产品质量保证、配置管理、项目监督和控制。

(一)完善需求管理

CMMI模型对需求管理提出了明确的目的是就软件项目中需要满足的各种功能性和非功能性需求建立约定。针对项目中存在的问题,从以下几个方面对需求管理进行了改进。

(1)在项目开始时,根据实际情况制定需求管理制度,并规定文档化的内容。建立需求管理小组,确定角色和责任。制定需求跟踪方案,明确需求偏离后的纠正流程,确立需求变更评审制度。对需求管理小组人员进行培训,从业务上加深需求理解。

(2)需求管理小组中有一定经验的设计人员、开发人员和测试人员协助进行需求调研,有益于项目各个执行部分对系统的理解,有效规避由于沟通不畅引起的问题。

(3)需求调研之后,对获得的需求进行分析和整理,定义各项需求的重要性和优先级,形成规范文档。

(4)变更管理是需求管理中最重要的部分,首先,需求变更规格化,必须由书面化的方式提出;其次,评审确定是否接受变更;如接受,在执行变更后验证是否成功。

(5)针对需求定期进行追踪,追踪每一个需求从定义到实现到验证的全过程,确保需求、设计、开发和测试之间的一致性,保证最终成果符合需求。

(二)完善质量保证体系

过程和产品的质量保证体系是为了向项目组提供软件过程的客观信息。网络学习空间软件项目出现进度延期、软件缺陷率高等问题,归根到底其本质是对软件过程把控的不足,对质量保证关注的不够。因此,参照CMMI第二级和第三级的关键过程域,对质量保证体系提出了改进建议,涉及到管理、人员、技术三个方面。

1.增设质量管理岗位

根据CMMI增设了软件质量管理人员,主要负责项目评审和验证并及时更新相关文档,检查开发活动和管理活动是否与已经制定好的策略一致。为保障评审的客观性,软件质量管理人员独立于项目组。

2.完善配置管理

配置管理作为CMMI第三级的关键过程域,其目的是用标识、控制、统计和审计等活动来保证网络学习空间软件的完整性和项目的可回溯性。根据CMMI的规定,配置管理分成三个部分:配置项、基线和变更控制,贯穿于网络学习空间软件项目的整个生命周期。

3.建立缺陷管理

在网络学习空间软件项目实施过程中出现的缺陷主要來源于需求和测试阶段,技术问题和管理问题混杂在一起。现将技术问题和管理问题区分管理,并且建立缺陷等级制度。缺陷等级分为三级:第一级不会影响项目进度,由项目组协商解决;第二级可能影响项目进度,需要记录缺陷并上报项目负责人,随后采取相应措施;第三级严重影响项目进度,可能导致项目停滞,上报项目负责人后,召开专家会议确定缺陷解决方案,专人全程跟踪并记录解决过程。

规范和完善的缺陷处理流程。首先,发现缺陷后记录,然后将其提交给负责人,通过评审,最后进行任务分配并解决缺陷问题,由缺陷发现人跟踪解决情况直至问题关闭。缺陷处理好后,评审人员对修复结果进行评审,确认无误后,此任务关闭,并将结果记录。为保证缺陷信息的完整性和即时性,项目负责人跟踪处理过程并记录过程,在结项时进行汇总统计。

五、基于CMMI的网络学习空间实现过程

在基于CMMI的网络学习空间的设计与实现过程中,强调文档标准化、准确化和完善化,强调项目顺利完成和软件质量很大程度上取决于实现过程。同时,网络学习空间采用开源B/S结构,下面将结合其技术特点讨论合理的系统实现流程,从过程上加以改进实现流程,达到标准化流程的要求,采用分步骤逐步推进的方法。

(一)网络学习空间的设计模式

网络学习空间展示页面设计模式采用的是JSP+持久层框架,后台管理页面设计模式采用的是JSP+EXT+持久层框架,完全基于W3C技术构建,具有很高的代码复用率,为敏捷开发提供了较好的解决方法。

(二)网络学习空间开发流程实现

在网络学习空间项目实施前,确认需求后,将实现流程映射到迭代增量开发模型,得到一个完整的基于CMMI三级和网络学习空间软件的开发流程,如下图所示,结合网络学习空间的自身特点,半年分四个阶段完成,四个阶段分别是:启动阶段、计划阶段、建设阶段和交付阶段。如下图所示。

每一个阶段通过质量保证体系,及时跟进并反馈项目进度、关键资源应用、问题缺陷等情况,分析跟踪结果,一旦出现项目进展和系统功能偏离项目计划时,采取纠正措施,直至项目结束,促使项目按照计划时间、预算、达到既定质量要求的情况下交付。下面几个步骤是具体的开发实例说明。

1.初始阶段

首先,调研网络学习空间的需求,建立需球管理,明确各类人员的分工和职责,利用适当的时间组织培训,加深开发人员对需求的理解,并确定技术路线。

2.计划阶段

对网络学习空间的开发过程进行适当的裁剪,确定其系统框架,建立项目里程碑,并用经验估算法对工作量进行估算。结合前两个阶段,网络学习空间功能模块及实现优先级如表1所示。

3.建设阶段

建设阶段的关键环节是系统设计与开发,该环节重点改进的是变更控制,包括配置管理和缺陷问题管理。同时,监督与评审也是网络学习空间的开发进行到第三个阶段的关键工作过程。综上所述,在此阶段,项目负责人监督项目进展和系统性能,一旦出现项目进展偏离项目计划或开发缺陷问题时,采取纠正措施,直至项目结束。

4.交付阶段

合理的环境和数据选择是网络学习空间部署实施的关键要素,发布系统并记录问题以及处理情况。最后,进行同行评审,确认无误后交付系统。

六、应用与改进效果

(一)网络学习空间的实际应用反馈

截止到本文发稿前,网络学习空间已经上线应用,其功能需求和性能需求都得到了百分百的实现。前台界面展示简洁友好,适合多种浏览器;后台管理操作简单便捷,易用性强。应用后的用户实际反馈如表2所示。

(二)开发过程改进效果

在项目进度方面,按照改进后的实现过程,网络学习空间开发进度延期情况明显改善,尤其是延误最为严重的需求分析和部署实施,初始进度延误偏差高达到20%,实施改进方案后,需求分析延误偏差为10%,系统实施阶段按时完成,无延误。

在软件缺陷方面,改进方案实施后,采用了较为科学的过程裁剪,选择了适合网络学习空间的开发过程颗粒度,使得开发过程较为顺利,软件质量得到基本保证,无明显需求偏离。

七、总结与展望

本文通过诊断并分析开发网络学习空间系统过程中遇到的问题及问题产生的原因,以CMMI第二级、第三级中关键过程域为基础,在软件项目管理上采取了一些改进措施,有效解决了部分问题。在系统开发过程中,出现缺陷问题是在所难免的,及时发现并提出行之有效的解决措施是提升软件质量的明智之举。CMMI模型只能提供理论框架,因此,不能一味地盲目追求。在软件项目管理的过程中,结合实际建立适合软件项目的管理体系,做好项目监管和质量评审工作,促进软件质量满足实际应用的需求,顺应教育教学的发展需求,迎合教育用户的消费心理,不断提升软件质量,才可以有利于教育软件持续发展,开创教育软件发展的新天地。

作者:张璇

软件项目估算认识论文 篇2:

虚拟现实软件VRGIS的项目进度管理研究及应用

摘要:文章结合VRGIS虚拟现实软件项目的实施过程,分析研究了VRGIS软件项目的实施特点,同时,将现代项目管理方法和技术应用到项目的进度管理过程中,建立了一套适用于虚拟现实软件项目进度管理流程。实际应用表明,该框架有效地控制了项目各阶段活动的实施,降低了因进度迟缓而造成的工期延误,保证了项目顺利地通过验收交付,可以为同类项目实施提供参考经验。

关键词:虚拟现实软件;进度管理;VRGIS;项目管理;进度评估

虚拟现实(Virtual Reality,VR)技术作为近年来发展起来的高级计算机技术,在社会各领域都得到了广泛应用,比较成熟的VR软件平台有VEGA、VRMAP、VRP、VR4MAX等。这些VR软件有的在VR展示方面表现出色,有的使用方便,但在城市仿真中,不能完全满足需求。VRGIS软件平台是一款VR与GIS紧密集成的虚拟地理信息系统:能够支持海量数据的实时绘制;能够自动生成城市仿真景观,实现自动漫游路径规划;支持GIS空间分析;支持快速二次开发等,为城市的建设和规划提供科学的依据和灵活的设计方法。

作为一门新兴的、处于不断更新、探索的研究型项目,VRGIS项目开发尚无很多成熟的进度管理经验可以借鉴,而随着项目规模的扩大、系统复杂度的增加,以传统方式为主的进度管理模式,存在出诸多问题,具体表现在:(1)缺乏层次清晰、目标明确的项目计划;(2)缺乏有效的进度监控管理机制;(3)用户需求不明确;(4)项目进度滞后,工期延误等。

针对以上存在的问题,本文融合项目管理领域成熟的进度管理方法,包括CPM(Critical Path Method,关键路径法)和关键链(Critical Chain)。同时,本文结合对虚拟现实项目特点的深入研究,通过制定进度计划,跟踪、协调计划的执行情况,控制整个项目的总进度,建立起一套适用于虚拟现实项目的进度管理流程,进而实现项目的按期完工。

一、VRGIS软件项目分析

在虚拟现实软件项目进度管理过程中,本文结合VRGIS 平台的研发特点来说明如何将现代项目管理的方法和工具应用到实际的研发活动中,为制定科学的进度计划及实施有效的进度控制提供一定的指导。

(一)VRGIS软件项目特点

作为一项多专业领域技术有机结合的系统工程,VRGIS项目所涉及的技术复杂,综合性强,协作面广,同时,由于用户对产品质量、艺术表现性和系统可靠性要求很高,因而较一般的软件项目,具有更高的实施风险和管理难度。其特点主要表现在:

1.技术探索性强。VRGIS项目在研发过程中,是通过采用当前虚拟现实领域的最新技术,实现具有新特性的发明、发现,并围绕这些创新性的成果展开创新性的活动。在系统的功能、性能等方面要求较高,开发难度系数较高,因而项目实施本身具有较高的技术风险。

2.不确定因素多样化。在VRGIS项目的研发与管理过程当中,存在着大量的不确定性因素或风险,主要体现在需求、技术代码编写不规范,系统设计可重用性差,软件的维护越来越困难等和进度管理等方面。以上这些不确定影响因素的存在,往往会引发项目进度拖延、无法如期完工等一系列问题。

3.业务流程复杂,合作主体趋于多维化。VRGIS项目的研发采用的是高校产学研一体化的合作模式,充分利用高校、研究院的教学科研实力和企业的市场运作优势,形成了多研究主体的协作网络。在项目实施中,由于各参与单位所承担的任务不同,形成了一种既相互关联又相互制约的紧前紧后关系。如果不能对整个项目各阶段活动所需资源、任务及目标给出明晰的定义,则会造成各单位成员仅关注于本部门内任务,无法形成对项目的宏观认识,从而影响到项目进度的管理。

基于以上特点,为了促进项目实施过程中创新成果的发现及市场推广,需要探索一种有利于促进目标实现的、创新性的管理流程。

(二)进度评估基本依据

1.关于项目范围划分。在虚拟现实软件开发过程中,本项目采用原型法与面向对象开发方法相结合、注重软件知识成果保护的研发管理思路。(1)在需求分析阶段,利用快速原型法确认用户需求。借助于快速原型生成工具,以具有可执行性的、简洁的软件原型与用户进行更深入、直接的交流,以求在软件开发初期明确系统需求。(2)另一方面,在系统设计实现阶段,采用统一建模语言(UML)来建立系统的业务模型。利用面向对象开发方法,实现系统结构和对象设计,使所开发的软件具有更好的可维护性和可重用性。(3)重视知识成果管理。针对本项目不同阶段的创新性研究成果,进行论文、专利、软件著作权等的成果认定,形成对核心技术的知识产权保护。

2.关于进度时间估算。以下为进度时间估算中的考量要素:(1)里程碑。里程碑标志着项目某个重要阶段的完成。本项目中,识别出实施过程中所涉及的重要阶段,同时定义各阶段可交付产物,主要包含系统原型、知识产权认定申请、测试文档以及验收报告等,将其作为进度估算及监控的重要标识。(2)专家判断和项目团队知识。在制定VRGIS项目计划时,专家依据自身经验及对项目实现所需技能的熟悉程度进行初步估算。同时,综合项目组成员所拥有的技能、知识种类及其程度,评估所设定的任务目标实现的可能性,保证目标计划的合理性,避免因过于紧张的计划时间给成员造成的压力,降低项目实施风险。(3)缓冲时间。在VRGIS中,缓冲区是依照总时间的80%的可能完成时间估算获得。实施中,通过监控项目缓冲区的占用情况,可以及时发现项目计划偏差,并制定补救、调整措施。

二、VRGIS进度管理流程的建立

(一)创建项目WBS,确定项目范围

工作分解结构(Work Breakdown Structure,WBS)是以可交付成果为导向对项目进行层次划分的方法,是进度计划、资源配置及费用估算的基础。其基本步骤是:

1.明确项目目标,识别和界定项目范围。

2.识别项目实施过程中各阶段可交付成果或最终产品。

3.综合项目实施过程和各阶段目标,对工作结构进行逻辑细分为在计划和控制上可管理的工作包。由此所创建的VRGIS平台的WBS如图1所示:

(二)获取活动排序,建立计划基准

网络计划技术是以网络图为基础的计划模型,可以直观地反映工作项目之间的相互关系,使一项计划构成一个系统的整体,为实现计划的定量分析奠定了基础。其基本步骤:

1.对所定义的活动进行排序,建立项目节点网络图如图2所示:

其中,红色代表关键路径。

2.依据专家判断和项目经验,分析各阶段任务时间分布情况,其中,各阶段时间分布比例为1∶3∶2∶4∶3∶2∶3∶1∶2(时间单位:周)。

3.确定关键路径,添加项目缓冲,建立项目进度计划比较基准如图3所示:

其中,可根据项目需要编制多级网络计划系统,随项目进展的深入而不断细化。

在VRGIS平台的整个研发过程中,所涉及的主要阶段性任务包含:(1)项目启动;(2)系统需求分析;(3)系统总体架构设计;(4)系统模块设计实现(依次为交互模块、绘制模块、特效模块、动画模块及GIS查询模块);(5)系统集成测试;(6)知识产权申请;(7)用户测试;(8)用户培训;(9)项目收尾。

(三)项目进度控制管理

项目进度控制管理是在项目实际进度的动态监控实现的,而进度计划是进度控制的基础。通过监控项目计划的执行情况,对比分析偏差原因,并及时采取措施调整计划,可以保证项目在调整后仍可按预期目标继续进行。其基本步骤是:

1.编制多级网络计划系统,分层实施、分层监控。

2.设立监控点,检查并掌握项目实际进度情况。

3.监控项目缓冲区占用状态,及时采取调整或补救措施。

其中,项目计划可随项目进展的深入而不断细化,并注重过程数据、资料积累,结合项目进度计划比较基准,总结分析出现偏差原因,以提高今后计划编制和进度控制水平。图4为项目实际进度与计划基准的对比情况:

三、结语

本文结合VRGIS平台的研发实施过程,探讨了一套适用于虚拟现实软件项目进度管理流程。首先,结合原型法和面向对象的开发方法,以及各阶段目标,创建WBS(工作分解结构),明确了用户需求和项目目标;其次,采用网络计划技术,并结合进度时间估算策略,建立了以项目成果为目标导向的项目进度计划;最后,设立监控点,监控项目缓冲区,实现了对项目进度的控制管理,降低了因进度迟缓而造成的工期延误。

通过该项目进度管理流程的实施,不但提高工作效率和增强项目风险的可预测性,还缩短项目周期及降低项目成本,最终保证项目的顺利交付验收(实现的VRGIS平台系统界面如图5所示),同时,为研发团队今后从事同类研发工作,或进一步开展研发成果的市场推广及应用,积累了先进的研发技术和丰富的管理经验。

但是,在虚拟现实软件项目中应用现代项目管理技术尚处于探索阶段,仍有需进一步研究的问题。例如,在资源冲突或成本约束条件下,如何有效地实施进度管理策略;如何对缓冲区进行有效地管理和监控;如何实施多项目进度管理等,这将成为今后的主要方向。

参考文献

[1]陈戈,齐永阳,陈勇,马纯永.面向城市仿真的VRGIS平台设计与实现[J].系统仿真学报,2009,(2).

[2]美国项目管理协会著,北京现代卓越译.PMBOK 2000[M].北京:北京现代卓越,2001.

[3]GOLDRATT EM.Critical Chain[M].North River Press,Great Barrington,MA,1997.

[4]齐永阳.VRGIS城域仿真平台的架构设计与开发管理[C].中国优秀硕士学位论文全文数据库,2008,(2).

[5]王明明,徐磊,贺雅丽.科技研发项目关键链管理应用研究[J].科学学研究,2008,(26).

[6]王敏.基于UML的快速原型方法的研究和实现[C].中国优秀硕士学位论文全文数据库,2006,(2).

[7]蒋国萍,陈英武.基于关键链的软件项目进度风险管理[J].计算机应用,2005,(1).

基金项目:上海市科学技术委员会科技攻关计划(项目信号:065115007);安徽省科技型中小企业技术创新基金(项目编号:09C26213401458)。

作者简介:祝莎莎(1984-),女,山东烟台人,中国海洋大学信息科学与工程学院海洋遥感所硕士研究生,研究方向:软件工程与软件项目管理。

作者:祝莎莎 陈 勇 齐永阳 陈 戈

软件项目估算认识论文 篇3:

降低软件项目风险的方法研究

摘要:在分析软件项目风险成因的基础上,对项目管理中的风险分析、风险管理进行了详细的研究,提出了软件项目风险的量化管理和降低软件项目风险性的方法。该方法有助于软件项目管理者更好地理解潜在的主要风险因素,从而进行更好的风险管理。

关键词:软件项目;风险管理;风险分析

The Research on the Methods to Reduce the Risk of Software Project

WANG Wei

(School of Software Engineering,Tongji University,Shanghai 200092,China)

Key words: software item; risk managemen; risk analysis

1 引言

随着信息技术的飞速发展,软件产品的规模也越来越庞大,个人单打独斗的作坊式开发方式已经越来越不适应发展的需要。各软件企业都在积极将软件项目管理引入开发活动中。软件开发不同于其他产品的制造,软件的整个过程都是设计过程(没有制造过程);另外,软件开发不需要使用大量的物质资源,而主要是人力资源;并且,软件开发的产品只是程序代码和技术文件,并没有其他的物质结果。基于上述特点,软件项目管理与其他项目管理相比,有很大的独特性,包括:抽象性、单件生产、劳动密集,自动化程度低、使用方法繁琐,维护困难、软件工作渗透了人的因素等。

软件项目的特殊性使其开发难度越来越大,各企业、团队面临的困难和风险也越来越多。近些年来,人们开始重视软件项目风险的研究,把项目风险纳入软件工程的一个重要研究范畴。研究的目的就是探索风险的概念、特性,风险处理的策略、方法,以降低或克服软件项目风险的危害性,从而提高软件产品的质量。

2 软件项目的风险成因

风险因素是指可能引起风险的不确定因素,识别风险因素对于风险管理有非常重要的意义。

2.1 外部因素

影响软件项目开发风险的外部因素主要包括:最终客户的相关信息、与内部或者外部中间承包商之间的关系、经过有效培训或者有经验的客户从另外一个项目获得的相关经验。外部因素通常很难控制,这就要求更多地协调项目之外的关系,对这些外部因素进行有效监控,及时采取应对措施。

2.2 管理因素

管理因素包括:項目的所有权和决策权不明确、实际的项目状态不清晰、不恰当的任务分工计划、对客户不切实际地承诺、不切实际的期望、团队成员间的矛盾冲突等。项目管理的缺陷也会影响到项目成功。由于项目经理往往是计划的制定人,往往不可避免地忽略或者避开自己管理方面的问题,而这恰恰是不可忽视的。

2.3 需求因素

需求问题主要有:缺乏对产品的认识和产品需求的相关文件、没有区分需求的优先级、在分析过程中缺乏与客户的沟通、新的不确定的需求不断产生、管理过程因无效的需求而变更等。大多数软件项目都面临不确定甚至是较为混乱的需求。如果不及时对需求状况进行控制,那么以后的项目过程中会产生更大的问题,甚至导致项目失败。

2.4 技术知识因素

软件技术不断发展,意味着项目团队很可能缺乏足够的技术知识以保证项目的成功。这些因素可以归纳为:缺乏必要的培训、对相关技术有不正确的理解、缺乏相关行业领域的经验、采用的技术方法没有起到作用或没有满足这些技术方法的前提条件、忽视了编写文档的过程或文档不充分。

3 软件项目的风险研究

3.1 项目风险管理的流程

风险管理包括五个阶段:风险管理计划、风险辨识、风险分析、风险跟踪、风险控制(见图1)。

1) 风险管理计划是叙述软件项目开发过程风险管理的目标、范围、程序的文档。风险管理计划明确了风险管理的目的、界定了风险管理的范围、赋予了风险管理的权力、描述了风险管理的程序。风险管理计划由企业决策者和项目主管共同制定。

2) 风险辨识识别出所有可能影响项目开发的风险因素和风险事件,确认风险不确定性的客观存在、区分风险因素和风险事件、建立风险目录清单并建立风险目录摘要。

3) 风险分析应用分析技术,用定性、定量方式处理风险不确定性。风险分析是风险管理的最重要环节,软件开发过程风险分析的任务包括:风险分类、分析风险后果、制订风险反应行动、研究风险影响、制订风险控制计划。

4) 风险跟踪对项目开发过程的数据(开发进程、人力资源投入情况等)进行动态收集、汇总、统计,并将结果及时报告给项目管理者,提供其决定是否采取以及采取何种风险控制行动。风险跟踪的任务包括风险度量数据收集、风险度量数据分类汇总、风险事件发展状况预测、风险险情报告。

5) 风险控制根据风险报告,采取风险行动来消除风险因素,从而达到避免风险事件的发生。风险控制体现为开发活动的具体行为的实施过程,如增加开发经费、增加开发人员、采用其他开发方法和技术、使用新的开发工具等。同时风险管理者应对风险控制的实施过程进行监督,并根据执行的效果及时调整风险控制行为。

3.2 项目风险管理评价体系

根据风险危害程度,可将风险划分为灾难性的、严重的、轻微的和可忽略的。在软件项目开发时必须要进行风险预测,对项目的风险性进行评价,主要从两个方面评估每一个风险:一是风险发生的概率或可能性;二是如果风险发生了,所产生的后果。项目计划者、管理者和技术人员,一起执行如下4个风险预测活动:1) 建立一个尺度,以标记风险发生的可能性;2) 描述风险的后果;3) 估算风险对项目及产品的影响;4) 评价风险预测的整体精确度,以免产生误解。

在风险识别的基础上,应建立一套完整的风险评价体系来进行风险分析(见表1),并把分析结果根据风险优先级进行量化,从而为风险跟踪和风险控制提供充分条件,有效地规避风险。

3.3 项目风险的量化

把风险分析结果根据风险优先级进行量化,根据Pareto的 80-20 规则:整个软件项目风险的80%(即可能导致失败的80%的潜在因素)能够由仅仅20%的已标出风险来说明。因此,重要的是量化不确定的程度和每个风险的损失程度。参照风险的影响力和重要程度进行组合评价量化,可以把可能性定义成 0-20,分为5个等级(1、2、3、4、5)。将后果分为 4 个等级(低、中等、高、关键的)(见表2)。

对风险按照风险影响进行优化排序,优先级别最高的风险,其风险严重程度等于1;优先级别最低的风险,其风险严重程度等于 20。对优先级别的风险应优先处理,从而可以从整体上降低软件开发的风险。

3.4 降低软件项目的风险方法

有以下几种方法值得借鉴:

1) 软件工程方法学

在软件项目开发过程中!全面使用软件工程的原理、方法、技术和工具,加强分析、设计、项目管理、及质量管理。这是降低软件风险的主要手段。

2) 软件系统建模软件开发系统建模的完整与严密性直接关系到系统质量。系统建模与软件风险有直接关系。我们应采用统一建模语言UML来为降低软件风险提供保证

3) 可行性研究

把项目的风险分析与风险处理作为一个重要的考虑范畴纳入软件开发的过程中,并作为一个重要任务!要一一列出可能遇到的主要风险,并仔细分析其发生的可能性和危害性,提出应变措施。

4) 软件过程管理

应对软件过程进行全面控制和管理。采用统一软件开发过程的原理,使用用例驱动过程、迭代与增量开发过程、以构架为中心的过程等新方法。

5) 软件质量管理

软件工程活动的最终目标是得到高质量的软件产品。质量与风险是紧密联系的!质量越高,风险发生的可能越小;质量越差,风险发生的可能越大。所以应全面加强项目的质量保证措施和监管水平,以降低软件风险性

6) 软件测试与维护

测试与维护是发现问题和风险的一个重要手段。采用适当方法,使风险早暴露、早发生,以使我们早应对,早采取防范和处理措施。

4 结束语

由于软件工程与一般工程相比,其特殊性主要体现在抽象性上。虽然前面对软件开发中的风险进行了分析,列举了一些开发过程中可能存在的風险,但软件开发中的风险是千变万化的,有很多隐含的潜在风险,需要从整体上、全过程上对风险进行深入细致地研究。

参考文献:

[1] 覃征.软件项目管理[M].北京:清华大学出版社,2004.

[2] 黄全舟.软件风险分析与风险管理研究[J].福建电脑,2005(5):7-9.

[3] 陶刘强,成筠.浅析软件开发中的风险管理[J].中国管理信息化,2006(2):86-88.

[4] 梁涛.基于聚类分析的软件项目风险趋势研究[J].信息工程大学学报,2006(3):88-102.

[5] 赵蔷.软件项目风险管理研究[J].计算机工程与设计,2007(7):3312-3315.

[6] 余坚,郑跃斌.信息系统开发过程风险管理的实施模型[J].计算机工程与应用,2002(12):110-153.

[7] 伊莱恩 M 霍尔.风险管理—软件系统开发方法[M].北京:清华大学出版社,2002.

作者:王 炜

上一篇:家校联合校园管理论文下一篇:唯物主义体系辩证论文