过程选型的量化工具设计与实现.docx

上传人:b****6 文档编号:14151360 上传时间:2023-06-21 格式:DOCX 页数:79 大小:1.34MB
下载 相关 举报
过程选型的量化工具设计与实现.docx_第1页
第1页 / 共79页
过程选型的量化工具设计与实现.docx_第2页
第2页 / 共79页
过程选型的量化工具设计与实现.docx_第3页
第3页 / 共79页
过程选型的量化工具设计与实现.docx_第4页
第4页 / 共79页
过程选型的量化工具设计与实现.docx_第5页
第5页 / 共79页
过程选型的量化工具设计与实现.docx_第6页
第6页 / 共79页
过程选型的量化工具设计与实现.docx_第7页
第7页 / 共79页
过程选型的量化工具设计与实现.docx_第8页
第8页 / 共79页
过程选型的量化工具设计与实现.docx_第9页
第9页 / 共79页
过程选型的量化工具设计与实现.docx_第10页
第10页 / 共79页
过程选型的量化工具设计与实现.docx_第11页
第11页 / 共79页
过程选型的量化工具设计与实现.docx_第12页
第12页 / 共79页
过程选型的量化工具设计与实现.docx_第13页
第13页 / 共79页
过程选型的量化工具设计与实现.docx_第14页
第14页 / 共79页
过程选型的量化工具设计与实现.docx_第15页
第15页 / 共79页
过程选型的量化工具设计与实现.docx_第16页
第16页 / 共79页
过程选型的量化工具设计与实现.docx_第17页
第17页 / 共79页
过程选型的量化工具设计与实现.docx_第18页
第18页 / 共79页
过程选型的量化工具设计与实现.docx_第19页
第19页 / 共79页
过程选型的量化工具设计与实现.docx_第20页
第20页 / 共79页
亲,该文档总共79页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

过程选型的量化工具设计与实现.docx

《过程选型的量化工具设计与实现.docx》由会员分享,可在线阅读,更多相关《过程选型的量化工具设计与实现.docx(79页珍藏版)》请在冰点文库上搜索。

过程选型的量化工具设计与实现.docx

过程选型的量化工具设计与实现

摘要

软件外包服务企业面对不同领域各种各样的软件项目,能否根据项目自身特点和环境正确地选择软件开发过程模型是成功交付软件项目的关键因素之一。

针对这一需求,本文对已有的选型研究成果进行分析,对其研究方式进行借鉴,完整设计和实现一套满足软件外包服务企业的量化选型工具。

本次设计的选型量化工作有以下几方面创新点:

1、使用GQM方面获取度量项,与质量目标、进度目标、成本目标、客户满意度目标、变更响应速度目标紧密联系;

2、度量项数据采集改变已有选型研究只使用有限的整数的方式,采用0~5之间任何数字来为度量项打分,可以保留3位小数的精度。

为度量和选型评估精确性打下了基础;

3、度量项中保留度量项对目标影响的描述,为工具的进一步优化和数据修正提供了条件;

4、对影响过程模型达成某个目标的度量项采取了设置权重的功能,避免了平均化处理带来的选型结果偏差。

5、对匹配得分做了2次比率处理,第一次是对度量项采集数据和度量项理想值之间的差距进行了偏差率处理,第二次是对不同的目标匹配得分进行了达成率处理后求和,获得总的匹配得分。

6、选型量化工具采用了匹配得分表和雷达图两种方式对选型结果进行了展示。

另外,本文通过实例项目过程选型演示的方式展示了选型量化工具的应用和效果,并提出了展望和优化方向。

关键词:

过程选型,量化选型,雷达图,软件过程模型,软件外包服务

ABSTRACT

Softwareoutsourcingcompaniesfacevarioussoftwareprojectsindifferentfields.Tochooseasuitablesoftwaredevelopmentprocessmodelisakeyfactorforthesuccessfuldeliveryofsoftwareprojects.Inresponsetothisdemand,thispaperhasanalyzedtheresearchresultsofmodelselection,baseontheresearchresults,thispaperresearchesdeeply,designsandimplementsaquantitativeselectiontoolforsoftwareoutsourcingcompany.

Thequantitativetoolhasthefollowinginnovations:

1,UsetheGQMmodeltoobtainmetrics,whichcontactwithobjectivesclosely.

2,Usedecimalsbetween1and5,forimprovingaccuracyofmetricvalues.

3,Retaindescriptionofimpactanalysisforfurtheroptimizationanddatacorrection.

4,Setweightsforeachmetricforavoidingdeviation.

5,Reducetheimpactofdifferentobjectivevaluesbyusingratioofscoretocalculatetotalresult.

6,Showtheresultofselectionusingmatchingscoretableandradarchart.

 

Keywords:

SoftwareProcessModel,RadarChart,SoftwareOutsourcing,SelectionofSoftwareProcessModel

 

图表目录

第一章绪论

1.1研究背景与动机

软件开发过程模型是软件开发全部过程、活动和任务的结构框架。

软件开发过程模型能清晰、直观地表达软件开发全部过程,明确规定要完成的主要活动和任务,它用来作为软件项目工作的基础[1]。

软件开发过程模型在本文以下章节中简称“过程模型”。

随着软件行业的成熟,软件交付呈现规模化,软件产品已进入各个行业领域,软件业务复杂度越来越大,同时软件需求市场的扩大催生了数不胜数的软件供应商,软件市场竞争愈演愈烈。

软件供应商必须在软件项目目标达成上有保证,才能在激烈的竞争中生存下来,才能保证其赖以生存的利润空间。

软件项目主要目标包括质量目标、进度目标、成本目标、快速响应变更能力目标、达成客户满意的目标。

软件质量在ANSI/IEEE Std 729—1983中定义为“与软件产品满足规定的和隐含的需求的能力有关的特征或特性的全体”。

本文质量目标是指达成质量要求的指标;进度目标指在交付软件的时间点期限;成本目标是指软件团队在预计投入成本的情况下完成软件交付的指标;快速响应变更能力目标指软件研发过程中需求变更的适应能力指标;达成客户满意的目标指软件交付过程和结果达到客户期望,使客户满意的指标。

项目目标的达成程度依赖于项目活动和任务的开展,而项目从事的活动和任务是在过程模型裁剪后的结果。

在软件行业实践中,因为选择不合适的过程模型导致项目失败,重新选择过程模型开展工作成功交付的典型案例数不胜数,甚至在切换过程模型时衍生出新的过程模型的案例,例如FDD过程模型的诞生。

因此如何选择适合的过程模型和恰当的裁剪过程模型,以达成项目目标成为软件供应商必须研究的课题。

本人从事的软件服务外包行业,在软件研发交付上有以下几个特点:

1、面对的业务种类繁多,业务复杂程度各不相同,有电信级的复杂业务,有小工具类的简单业务,也有复杂度介于中间的企业管理类的业务等。

2、面对各类采购企业,需求明确稳定程度各不相同。

有的采购企业以规范形式下发需求,需求明确稳定,有的采购企业以市场反应不断改变需求。

同时各类采购企业的文化存在不同,有的采购企业关注结果,有的采购企业关注过程。

关注结果的采购企业给供应商各种发挥空间以保证结果;关注过程的采购企业千方百计的想了解项目研发的过程情况,这就要求供应商企业能及时的给与反馈,以提升采购企业的信心和满意程度。

3、软件交付规模大,项目团队众多,各团队内部配合程度,技能水平各不相同。

且交付环境和软件交付团队情况不能在短时间内改变,过程活动的选择就成为项目目标达成的关键。

4、软件供应商企业的文化也不尽相同,有的软件供应商喜欢繁忙的景象,有的软件供应商强调有条不紊,注重实际效率,项目经理在交付项目时必须将这些作为事业环境因素进行考虑。

由于项目环境各不相同,软件服务外包企业迫切需要一种快速过程选型方法和工具,指导软件项目的研发。

这个需求随着软件产业的成熟已逐渐明确清晰,1991年Alexander,L&Davis,A[2]发布了指导过程选型的方法,使用二十个固定的衡量维度,每个维度以三个刻度值的衡量方式,对过程模型和项目匹配程度进行了计算,矩阵乘积求和的值最大的过程模型被认为是最适合的过程模型。

2006年Kettunen&MaaritLaanti[3]从项目风险出发,对各过程模型在应对风险时的表现进行对比,进而选出能化解项目风险的过程模型。

2008年ShibaniBasava[4]对选型出发点进行了更细致的划分,从目标出发识别出选型的衡量维度,利用Alexander,L&Davis,A[2]的矩阵乘积方法进行选型,同时对目标权重做了评估调节,使选型结果更贴近实际应用。

以上三个选型方法,逐渐发展,在各自的时期解决了软件项目过程模型选型的难题。

然而随着软件行业的发展,三种选型方法也暴露出不同的问题:

1、评估粒度较粗,结果偏差较大。

Alexander,L&Davis,A[2]和ShibaniBasava[4]选型度量项的可选择值有3个,评估的力度比较粗,结果偏差比较大。

2、选型方法缺少度量项对目标影响的分析描述,不利于优化和修正处理。

选型度量项只有度量项和可选值,度量项对项目目标的影响缺少分析描述,只能适用于特定的软件环境项目,软件环境变化时,选型人员没有办法进行一些考量和修正处理。

3、未考虑度量项对目标影响的不同权重

ShibaniBasava[4]对各目标要求进行加权处理,但没有考虑对一个目标有影响的度量项对目标影响程度是不同额,采用了平均化的处理,可能导致结果存在偏差。

4、三种方法均未使用简单直观的可视化方法来辅助决策者做选型。

1.2研究及解决的问题

本次研究设计和实现一种过程选型的量化工具,工具采用界面化操作,可以供没有过程选型经验的人员对项目及环境数据收集后即可通过可视化结果了解最适合的过程模型,以及当前项目环境对各模型不匹配的度量项。

数据采集按项目及环境类别分别采集,采集时以调查问题方式开展。

选型工具从各模型对特定项目在质量目标、成本目标、进度目标、变更响应速度目标、客户满意度达成目标方面的达成起的作用方面进行度量和评估。

选型工具支持瀑布模型、演化模型、UP模型、Scrum模型、XP极限编程模型。

1.3研究方法

1、对当前已存在的典型的过程模型选型方法进行研究,包括1991年Alexander,L&Davis,A[2]的选型方法,2006年Kettunen&MaaritLaanti[3]的选型方法,2008年ShibaniBasava[4]的选型方法,分别将这几种典型的选型方法对当前所在的软件服务外包企业选型需要满足情况进行分析。

2、通过组织过程模型专家研讨,总结过程模型各自特点、应用限制和使用经验,掌握各过程模型在特定项目及环境下各项目标的可达成情况,或者各模型达成某几项目标需要项目及环境的条件是什么。

3、选择量化度量项的获取方法,对GQM[5]方法进行学习和分析,使用GQM[5]方法获得度量项。

4、根据本次研究对工具的需求的分析,对工具的度量项对目标的影响进行分析,生成各模型对度量项值的要求,同时生成度量项的分类数据采集表。

5、设计通过度量项采集数据和度量项期望数据计算选型得分的方法。

6、设计选型结果的表格展示形式和雷达图展示形式。

通过以上过程和方法完成选型工具的设计与实现。

1.4本文的组织结构

第一章绪论描述研究背景和动机、研究及解决的问题、研究方法,为本次研究的现实意义,要解决的问题,以及研究大体思路和方法进行描述,为本次研究编制大纲。

第二章基础知识介绍对本次研究涉及的过程模型和使用的GQM方面进行简述,为继续研究做好知识基础。

第三章过程选型量化工具需求分析

1、分析已有的选型方法,包括1991年Alexander,L&Davis,A[2]的选型方法,2006年Kettunen&MaaritLaanti.[3]的选型方法,2008年ShibaniBasava[4]的选型方法,分析出这三种选型方法对软件服务外包行业选型需要满足情况。

2、对本次研究需要设计和实现的选型量化工具需求进行分析。

3、组织过程模型专家研讨,总结过程模型各自特点、应用限制和使用经验,掌握各过程模型在特定环境下各项目标的可达成情况,或者各模型达成某几项目标需要的环境条件是什么。

第四章过程选型量化工具设计,在前面章节分析的基础上对选型量化工具进行设计,包括对度量项的设计,目标影响表设计,选型匹配值计算设计,选型结果展示设计。

度量项的设计完成度量项的提炼整理和分类,输出件作为数据采集的调查表。

目标影响表设计把各过程模型在各个目标达成上度量项的理想值和各个度量项对目标影响的权重值评估出来,这些值作为选型时匹配计算的基础。

选型匹配值计算设计是对选型评估计算模型的设计。

选型结果展示设计从易用性角度出发,设计易于使用的选型操作方式。

第五章过程选型量化工具实现,使用JavaEE技术对第四章的设计内容进行实现,完成B/S架构的选型量化工具。

第六章选型工具选型应用实例,通过两个实例项目选型过程的展示,使读者了解选型过程工具的使用流程和方法。

第七章总结与展望对本次研究的结果进行总结,对在本次研究成功的基础上继续研究进行一些展望,希望能给其他研究人员的研究带来一些借鉴。

第二章基础知识介绍

1

2

2

2.1过程模型简介

本次研究涉及的过程模型包括瀑布模型、演化模型、UP模型、SCRUM模型、XP极限编程模型。

2.1.1瀑布模型

瀑布模型将软件生存周期的各项活动规定为依固定顺序连接的若干阶段工作,形如瀑布流水,最终得到软件产品。

瀑布规定了开发阶段活动为:

提出系统需求、提出软件需求、需求分析、设计、编码、测试和运行,并且规定了自上而下相互衔接的固定顺序[6]。

图2.1瀑布模型

2.1.2演化模型

演化模型主要针对事先不能完整定义需求的软件开发。

用户可以给出待开发系统的核心需求,并且当看到核心需求实现后,能够有效地提出反馈,以支持系统的最终设计和实现。

软件开发人员根据用户的需求,首先开发核心系统。

当该核心系统投人运行后,用户试用之,完成他们的工作,并提出精化系统、增强系统能力的需求。

软件开发人员根据用户的反馈,实施开发的迭代过程。

每一增量过程均由需求、设计、编码、测试、集成等阶段组成,为整个系统增加一个可定义的、可管理的子集[1]。

图2.2演化模型

2.1.3UP模型

统一过程是用例驱动,以架构为核心,迭代并且增量IvarJacobson,GradyBoochandJamesRumbaugh[JAC99]。

UP模型将研发过程分为四个阶段,初始、细化、构造和交付四个阶段,每个阶段可以有多个迭代过程完成(如图2.3)。

[7]

图2.3UP模型

UP模型使用UML建模语言对系统进行分析、设计、实现和测试。

图2.4UML模型

2.1.4Scrum模型

Scrum是一个框架,在这个框架中人们可以应对复杂的适应性问题,同时也能颇有成效地和具有创造性地交付最高价值的产品。

Scrum是轻量级的、容易理解的、极难驾驭的。

Scrum的角色、工件、事件和规则是不可变的。

虽然只实施部分的Scrum是可能的,但这样就不是Scrum了。

[8]

图2.5Scrum模型

2.1.5XP极限编程模型

XP要求我们坦承自己有能力做什么,然后去做这些能力所及的事情。

同时允许并希望其他人也这样做。

XP是关于每个人是如何成为最好的自己,如何成为自己所能成为的最好的开发者的过程。

[9]

2.2软件度量方法

GQM[5]量化模型首先找出度量中的目标,然后识别出目标对应一组问题,最后将问题结果进行量化。

数据可以是客观的,数据依赖于测试对象,与测量角度无关。

例如,文档的版本数,一个任务上投入的时间,程序大小。

数据也可以是主观的,数据既与被操作对象有关,也与操作角度有关。

例如,文本的可读性,用户满意程度。

GQM[5]模型从目标开始,指定测量的目的,测量对象,测量的问题,测量的角度。

目标被分解为问题,每个问题再被定义为度量项,主观度量项和客观的度量项。

一个度量项可能被不同的问题应用。

多个GQM[5]模型可能有共同的问题和度量项。

不同的视角下度量项的值可能不同。

GQM[5]模型需要一直修正定义和适应,因此我们定义的测量必须能帮助我们评估,不仅包括测量对象,也包括用来评估的模型的可靠性。

一旦GQM[5]模型开发完成,我们将选择合适的数据收集技术,工具和过程。

表2-1GQM示例

如表2-1GQM示例,首先确认待度量的目标,从项目管理者的视角提升变更请求处理的及时性。

根据目标首先提出第一个问题:

当前的变更请求处理速度是怎样的?

如何来回答这个问题呢?

需要了解当前的平均处理时间、标准偏差、超出处理时间上限的案例比例,那么以上几个需要了解的量化指标就是细分出来的度量项,表中只展示了一个问题和三个度量项,实际应用中可以提出更多问题,挖掘更多的度量项,只有在不断的修正过程中,GQM方法度量才会更有效。

 

第三章过程选型量化工具需求分析

3

3.1现有的过程选型方法分析

3.1.1基于度量项的量化选型方法

Alexander,L&Davis,A[2]开发了基于度量项的量化选型方法,Alexander,L&Davis,A[2]在研究中总结出20个度量项(如表3-1)。

表3-1Alexander&Davis选型条件和值

每个度量项有3个可选度量值,各过程模型在20个度量项上的匹配要求进行分析,以0或1的方式标记匹配要求(表3-2)。

各过程模型在20个度量项条件上的匹配要求确认后作为固定的数值,用于每一次选型匹配计算。

针对特定项目进行度量项的度量,生成度量结果矩阵(图3.1.2)。

表3-2Alexander&Davis传统模型矩阵

表3-3Alexander&Davis项目特性矩阵

表3-4Alexander&Davis传统模型选型计算示例

在模型度量项匹配要求矩阵值和特定项目度量项的度量矩阵获得后,使用公式

(3-1)

求得适配结果。

值最大的过程模型被认为是最适合特定项目的过程模型。

其中,Sij是特定项目的度量结果数据,aij是各过程模型匹配要求的数值。

Alexander,L&Davis,A[2]的量化方法给过程选型量化提供了很好的思路,可以在简单软件环境下进行初步评估,但对当今复杂的软件环境下选型存在以下几个问题:

1、选型度量项的可选择值有3个,评估的力度比较粗,结果偏差比较大。

例如,没有经验,有经验,专家三个选项,如果把不是专家的情况列为有经验可能低估了实际情况,如果这样的度量项较多,评估的结果就会偏差大。

2、选型度量项只有度量项和可选值,度量项对项目目标的影响缺少分析描述,只能适用于特定的项目,软件环境变化时,选型人员没有办法进行一些考量和处理。

3、度量项没有区分目标不易于决策评估。

ShibaniBasava[4]在Alexander,L&Davis,A[2]的基础上进行了扩展,将模型使用度量项分为成本、时间、团队、研发、问题、缺陷、市场/用户,管理大的维度类,然后将各个模型在度量项方面的值的要求以大的度量类的矩阵形式分拆计算。

ShibaniBasava[4]工具解决了不区分目标导致难于做决策的问题,分拆为几个大的维度类可以从不同的目标视角去评估过程模型的匹配情况。

同时在计算矩阵乘积的时候为每个维度类(目标)给不同的权重值,使决策更符合实际应用。

可以优化以下方面:

1、将每个度量项对维度类(目标)的影响权重进行分配,以使结果更符合实际情况,毕竟不同的度量方面对目标的影响程度都是不同的。

2、将选型工具操作界面化,可视化的量化选型工具可以更好的为没有选型经验的人员服务。

3.1.2基于优劣势的矩阵对比选型方法

PetriKettunen&MaaritLaanti[3]研究面向市场驱动的通信行业嵌入式软件的研发,构建了一个基于项目问题和目标的优劣势矩阵对比选型方法。

矩阵对比分析了不同过程模型面对问题和风险因素时的表现。

课题研究中通过文字调研完成,包括对瀑布、增量、螺旋、RUP、FDD、ASD、XP的矩阵对比。

针对各模型在解决项目问题和目标达成方面困难的优劣势进行分析,形成各模型在处理项目问题和目标达成方面的优劣势矩阵对比表格,然后通过主观权衡,选择认为适合的过程模型。

PetriKettunen&MaaritLaanti[3]的选型方法将优劣势进行了对比描述,有利于选型人员对特定的软件环境进行权衡评估,在软件环境变化的时候可以根据对比描述进行修正处理。

在量化选型方法中加入度量项对目标的影响说明将起到和优劣势描述一样的作用,便于在软件环境变化情况下,选型人员对选型方法进行修正处理,以使选型方法适应各种不同的软件发展阶段和软件环境发展阶段。

3.2过程选型量化工具功能需求

通过对已有过程选型研究的分析,以及当前软件外包服务行业对选型工具的需求,本次过程选型量化工具需要满足以下几方面需求:

1、评估精确性。

评估时度量项评估值范围从0~5,采用3位小数的精度。

2、采用分目标评估和综合评估两个层面进行评估。

通过分目标评估把握各目标的达成需求,有利于决策支撑;综合评估直观简单的表达初步选型结果。

需要评估的目标包括质量目标、成本目标、进度目标、客户满意度目标、变更响应速度目标。

3、可视化操作。

为了满足软件外包服务企业进行快速选型,选型工具要求可视化操作,易用性强,可以供没有选型知识和经验的人员进行选型。

4、支持工具的修正和优化。

选型工具在使用中不断的数据修正和度量项优化,要求选型工具支持新增、修改、删除各项选型数据,供选型工具管理人员进行使用。

5、支持瀑布模型、演化模型、UP模型、Scrum模型、XP模型。

现阶段支持以上几种过程模型,满足当前项目需要,在项目需求其他过程模型时,由选型工具管理人员对其进行扩展,满足项目需要。

3.2.1度量项

度量项模块通过调研分析的方法,掌握各过程模型的特点和使用条件,提炼出影响质量、进度、成本、客户满意度、变更响应速度方面的目标度量项。

针对每条度量项需要进行编号以便在选型中清晰的区分度量项的大类,为了方便度量项维护,为每个度量项定义唯一的编号,格式为Ca-b,a为度量项大类编码,b为大类中度量项流水号;度量项的类别方便在度量项修正优化过程中类别的区分,从可操作的角度进行分类,例如,客户特质、项目特质等,方便用户过程选型时对软件研发环境分类进行数据采集;度量调研问题用于项目环境特性数据的度量和采集,是直接呈现给选型人员的问题,选型人员根据度量项的不同类别,进行分类采集,对问题评分后数据采集工作就完成了;对目标影响描述描述度量项对目标的影响,用于指导选型人员了解度量项的意义,同时在软件企业经验不断丰富后对度量项进行更细致的优化和细化,选型结果的精确程度会提高,用于选型工具的不断修正优化,本次设计和实现的选型工具是不断优化的工具,随着组织软件研发经验的增加和对软件研发理解的深入,度量项不断的细化修正,越来越好的作为选型的支撑。

度量项得分是待选型项目在数据采集中对度量调研问题的评估得分,是数据采集的输出,也是过程选型的唯一输入。

度量项分为项目特质、团队特质、企业特质、客户特质。

项目特质指项目本身影响选型结果的特质,例如变更响应要求、合同类型、产品缺陷影响、发布紧急程度、需求可衡量性等。

团队特质指交付项目的团队在团队绩效等方面的特质,这些特质的情况影响着各个过程模型在项目交付目标达成上产生较大影响,例如某项技能的掌握情况,团队稳定情况等。

企业特质指软件供应商企业的特质,主要是企业的资源情况和企业文化情况,不同的企业在行为上有不同的指导原则,不同的指导原则和过程模型的理念匹配上存在差异,通过对企业特质的分析可以更客观的了解某过程模型在项目中实施的程度,例如在严格作息时间,不允许加班赶工的企业,不能通过延长团队成员的工作时间来满足时间目标的达成;过于强调职能型的企业组织结构,不能很好的实现一体化团队,敏捷的思路不能很好的落实并达到期望。

客户特质指项目用户方的特质,例如可访问性,客户需求清晰程度等。

客户可访问性低意味着不能及时获得客户的反馈,基于文档的交流更能满足需求。

度量项管理模型要求可以新增、编辑、删除度量项,是选型工具管理人员维护选型工具的功能。

3.2.2目标影响量化

量化度量项对目标达成的影响需要对各度量项在过程模型达成每个目标时的影响权重和度量项的理想值进行管理。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2