云环境下软件过程的敏捷性度量方法与流程

文档序号:12595900阅读:201来源:国知局
云环境下软件过程的敏捷性度量方法与流程

本发明具体涉及一种云环境下软件过程的敏捷性度量方法。



背景技术:

随着经济技术的发展和人们生活水平的提高,定制化服务的概念已经广泛进入了人们的消费理念;同时,随着消费者购买力的日益增强和需求的多元化发展,定制化的软件服务也已经越来越受到了客户们的青睐。

但是,由于客户的需求存在多元化、多变化和不可预知性等因素,这导致软件的开发过程充满了许多未知因素,比如由于客户临时修改软件需求而导致预订开发工作的大幅度增加,甚至推倒重来,从而使得软件开发人员面临的开发压力容易增加,导致软件开发流程极度拖沓,效率低下。

敏捷性是软件过程中用于描述软件开发时面对变化、适应变化和创造变化的响应能力。当前的软件开发过程都引入了过程管理方法,对软件开发的全流程进行监控和管理,降低软件开发过程时由于外界需求变动所导致的软件开发的不确定性,改善软件开发的效率。然而,目前对于软件过程的评价模型或者评价方法,都缺乏专门用于度量软件过程敏捷性的方法,使得管理人员难以直观、快速地了解软件过程的敏捷性;而且目前的敏捷性评价的方法较为复杂,实时性不足。



技术实现要素:

本发明的目的在于提供一种能够在云环境下快速评价软件服务过程敏捷性的敏捷性度量方法。

本发明提供的这种云环境下软件过程的敏捷性度量方法,包括如下步骤:

S1.将目标软件服务分解为若干个目标软件服务构件,并确定各个目标软件服务构件的参数和要求;

S2.针对步骤S1分解得到的每一个目标软件服务构件,在云服务平台上进行搜索,得到每一个目标软件服务构件的候选软件服务构件;

S3.针对步骤S2得到的候选软件服务构件进行敏捷性评分;

S4.针对每一个目标软件服务构件,将步骤S2得到的每一个候选软件服务构件进行评分,并选取评分最优的候选软件服务构件作为该目标软件服务构件;

S5.将所有选取的候选软件服务构件进行聚合、检测和修正,形成最终的目标软件服务;

S6.针对步骤S5所述的将候选软件服务构件进行聚合、检测和修正的过程进行敏捷性评分;

S7.根据步骤S5获取的最终的目标软件服务所采用的候选软件服务构件及其对应的敏捷性评分,和步骤S6获取的候选软件服务构件在聚合、检测和修正过程的敏捷性评分,计算最终的目标软件过程的敏捷性评分,从而度量该软件服务的敏捷性。

步骤S1所述的各个目标软件服务构件的参数和要求,具体包括目标软件服务构件的功能特性,以及目标软件服务构件的输入数据的类型、数目、长度和精度,以及输出数据的类型、数目、长度和精度。

步骤S2所述的在云环境下进行搜索并得到候选软件服务构件,具体为采用如下规则进行搜索:

A.若搜索得到与目标软件服务构件的参数和要求相同的构件,则将该构件列为候选软件服务构件;

B.若无法搜索到与目标软件服务构件的参数和要求相同的构件,则将该目标软件服务构件列为自主开发的候选软件服务构件,并对该候选软件服务构件进行自主开发。

步骤S3所述的对候选软件服务构件进行敏捷性评分,具体为采用如下规则进行敏捷性评分:

a.若候选软件服务构件为在云环境下搜索得到的候选软件服务构件,则对云环境下搜索该候选软件服务构件的过程进行敏捷性评分;

b.若候选软件服务构件为自主开发的候选软件服务构件,则在候选软件服务构件开发过程中对开发过程进行敏捷性评价,从而得到该候选软件服务构件的敏捷性评分。

步骤a所述的对云环境下搜索该候选软件服务构件的过程进行敏捷性评分,具体为采用如下规则进行敏捷性评分:

1)获取搜索构件所耗费的时间t;

2)获取候选软件服务构件与目标软件服务构件之间的匹配程度p;

3)利用专家系统得到时间t和匹配程度p各自相对于敏捷性的权重t’和p’;

4)采用加权计算公式计算候选软件服务构件的敏捷性M=t*t’+p*p’。

步骤2)所述的获取候选软件服务构件与目标软件服务构件之间的匹配程度,具体为采用如下步骤计算匹配程度:

①.将该候选软件服务构件HWS分解为n个web service程序HWS=[hws1,hws2,…,hwsn],同时将目标软件服务构件TWS分解为m个webservice程序TWS=[tws1,tws2,…,twsm];

②.计算候选软件服务构件的各个web service程序hwsi与目标软件服务构件的web service程序twsj的匹配度qi,并将匹配度最大的hwsi和twsj作为一组配对结果,并将该匹配度作为候选软件服务构件的web service程序hwsi的匹配度值;

③.重复步骤②直至获取候选软件服务构件的各个web service程序hwsi的匹配度值q=[q1,q2,…,qn];

④.通过专家系统获取候选软件服务构件的各个web service程序hwsi的权重值qt=[qt1,qt2,…,qtn];

⑤.采用加权计算公式计算候选软件服务构件的匹配度p=q*qtT

步骤b所述的在候选软件服务构件开发过程中对开发过程进行敏捷性评价,具体为采用如下步骤进行敏捷性评价:

ⅰ.在开发过程中,建立构件的评价性指标体系;

ⅱ.针对步骤ⅰ所建立的指标体系,确定每一个指标对应的权重;

ⅲ.针对每一个指标进行Vague集打分,并转换为模糊值;

ⅳ.根据步骤ⅱ的权重值和步骤ⅲ的分值进行加权计算,得到构件的总得分。

步骤ⅱ所述的确定每一个指标对应的权重,具体为采用德尔斐法、熵权法或随机调查法确定权重。

步骤S5所述的将所有选取的候选软件服务构件进行聚合、检测和修正,形成最终的目标软件服务,具体为采用如下步骤进行聚合、检测和修正:

(1)获取目标软件服务的业务需求和工作流程,同时获取各个候选软件服务构件的输入和输出数据需求;

(2)根据步骤(1)获取的工作流程和候选构件的输入/输出数据需求,将候选软件服务构件进行构件之间的需求匹配,从而将构件进行快速聚合和组装,形成完整的构建序列;

(3)随后,将组装好的构件序列进行部署,从而实现将候选软件服务构件组装为可以工作的目标软件;

(4)将步骤(3)得到的初步的目标软件服务进行编译;

(5)根据步骤(4)的编译结果,按照如下规则进行判断:

若步骤(4)的编译结果通过,则表明初步的目标软件服务聚合合格,并以该初步的目标软件服务作为最终的目标软件服务;

若步骤(4)的编译结果未通过,则表明初步的目标软件服务聚合不合格,则定位编译未通过的候选软件服务构件,并对该编译未通过的候选软件服务构件进行人工修改;

(6)重复步骤(2)~步骤(5),直至初步的目标软件服务的编译结果通过,得到最终的目标软件服务。

步骤S6所述的对候选软件服务构件进行聚合、检测和修正的过程进行敏捷性评分,具体为采用如下步骤进行敏捷性评分:

㈠.对步骤(2)中候选软件服务构件进行构件之间的数据传输匹配的匹配复杂度PF进行评价,所述构件之间的数据传输匹配越复杂,则匹配复杂度的评价越高;

㈡.对步骤(3)中候选软件服务构件进行构件序列部署的部署复杂度BF进行评价,所述构件序列的部署越复杂,则部署复杂度的评价越高;

㈢.获取步骤(4)中的初步的目标软件服务在编译过程中的时间复杂度,并依据该时间复杂度得到编译复杂度YF,所述的编译过程中的时间复杂度越大,则编译复杂度越高

㈣.获取步骤(6)中重复编译的次数和对候选软件服务构件进行人工修改的工作复杂度,从而得到相应的编译次数复杂度NF和人工修改复杂度HF;所述的重复编译的次数越多,则编译次数复杂度越大,所述的人工修改的工作复杂度越大,则人工修改复杂度越大;

㈤.根据事先设定的匹配复杂度的权重值PFW、部署复杂度的权重值BFW、编译复杂度的权重值YFW、编译次数复杂度的权重值NFW和人工修改复杂度的权重值HFW,计算候选软件服务构件在聚合、检测和修正的过程进行敏捷性评分S3’=PF*PFW+BF*BFW+YF*YFW+NF*NFW+HF*HFW;

㈥.依据步骤3得到的候选软件服务构件的敏捷性评分,对候选软件服务构件对步骤㈤得到的候选软件服务构件在聚合、检测和修正的过程进行敏捷性评分S3’进行归一化处理,得到最终的候选软件服务构件在聚合、检测和修正的过程进行敏捷性评分S3。

步骤S7所述的根据候选软件服务构件及其对应的敏捷性评分,和候选软件服务构件在聚合、检测和修正过程的敏捷性评分,计算最终的目标软件过程的敏捷性评分,具体为采用如下步骤进行计算:

Ⅰ.依据最终的目标软件服务的每一个构件的重要程度,采用专家系统对每一个构件进行权重评分PW’=[pw’1,pw’2,…,pw’n];

Ⅱ.根据步骤Ⅰ得到的每一个构件的权重ps’i和每一个构件的敏捷性评分PS=[ps1,ps2,…,psn],按照下式计算得到软件服务构件的敏捷性评分S1:

Ⅲ.根据步骤Ⅱ得到的软件服务构件的敏捷性评分S1、候选软件服务构件在聚合、检测和修正过程的敏捷性评分S2、候选软件服务构件在聚合、检测和修正的过程进行敏捷性评分S3,以及事先设定的软件服务构件的敏捷性评分权重值SW1和候选软件服务构件在聚合、检测和修正过程的敏捷性评分的权重值SW2和候选软件服务构件在聚合、检测和修正的过程进行敏捷性评分的权重值SW3,按照下式计算最终的目标软件过程的敏捷性评分S:

S=S1*SW1+S2*SW2+S3*SW3

本发明提供的这种云环境下软件过程的敏捷性度量方法,针对目标软件服务在云环境下的匹配和聚合过程,从云环境下搜索得到的构件的维度、搜索得到的构件web service的维度、自主开发构件的开发流程维度等多角度提出了软件服务的敏捷性度量方法,因此本发明方法能够准确的、快速的评价软件服务过程敏捷性,也提供了一种科学可行的软件过程敏捷性评价方法和评价标准。

附图说明

图1为本发明方法的总体示意图。

图2为本发明方法的流程示意图。

具体实施方式

如图1所示为本发明方法的总体示意图:本发明方法的总体思路为在云环境下快速组装目标软件服务:通过对目标软件服务进行拆解,得到目标软件服务的M个构件,然后在云环境下搜索并得到若干个候选软件服务构件或自主开发若干个候选软件服务构件,然后再将候选软件服务构件进行筛选从而得到所需要的候选软件服务构件,最后将选定的候选软件服务构件进行组装从而得到目标软件服务。在云环境下快速组装目标软件服务的同时,对于在云环境下搜索到的候选软件服务构件,则直接对搜索过程进行敏捷性评价,而对于自行开发的候选软件服务构件,则自主进行敏捷性评价;在获得所有的候选软件服务构件的敏捷性评价后,再进行目标软件服务的敏捷性评价。

如图2所示为本发明方法的流程示意图:本发明提供的这种云环境下软件过程的敏捷性度量方法,包括如下步骤:

S1.将目标软件服务分解为若干个目标软件服务构件,并确定各个目标软件服务构件的参数和要求,具体包括目标软件服务构件的功能特性,以及目标软件服务构件的输入数据的类型、数目、长度和精度,以及输出数据的类型、数目、长度和精度等;

S2.针对步骤S1分解得到的每一个目标软件服务构件,在云服务平台上进行搜索,得到每一个目标软件服务构件的候选软件服务构件;

在搜索候选软件服务构件时,具体为采用如下规则进行搜索:

A.若搜索得到与目标软件服务构件的参数和要求相同的构件,则将该构件列为候选软件服务构件;

B.若无法搜索到与目标软件服务构件的参数和要求相同的构件,则将该目标软件服务构件列为自主开发的候选软件服务构件,并对该候选软件服务构件进行自主开发;

S3.针对步骤S2得到的候选软件服务构件进行敏捷性评分,具体为:

a.若候选软件服务构件为在云环境下搜索得到的候选软件服务构件,则在云环境下搜索该候选软件服务构件的敏捷性评分,具体为采用如下规则进行敏捷性评分:

1)获取搜索构件所耗费的时间t;

2)获取候选软件服务构件与目标软件服务构件之间的匹配程度p:

①.将该候选软件服务构件HWS分解为n个web service程序HWS=[hws1,hws2,…,hwsn],同时将目标软件服务构件TWS分解为m个webservice程序TWS=[tws1,tws2,…,twsm];

②.计算候选软件服务构件的各个web service程序hwsi与目标软件服务构件twsj的匹配度qi,并将匹配度最大的hwsi和twsj作为一组配对结果,并将该匹配度作为候选软件服务构件的web service程序hwsi的匹配度值;

③.重复步骤②直至获取候选软件服务构件的各个web service程序hwsi的匹配度值q=[q1,q2,…,qn];

④.通过专家系统获取候选软件服务构件的各个web service程序hwsi的权重值qt=[qt1,qt2,…,qtn];

⑤.采用加权计算公式计算候选软件服务构件的匹配度p=q*qtT

3)利用专家系统得到时间t和匹配程度p各自相对于敏捷性的权重t’和p’;

4)采用加权计算公式计算候选软件服务构件的敏捷性M=t*t’+p*p’;

b.若候选软件服务构件为自主开发的候选软件服务构件,则在候选软件服务构件开发过程中对开发过程进行敏捷性评价,从而得到该候选软件服务构件的敏捷性评分,具体为采用如下步骤进行敏捷性评价:

ⅰ.在开发过程中,建立构件的评价性指标体系;

ⅱ.针对步骤ⅰ所建立的指标体系,采用德尔斐法、熵权法或随机调查法等方法确定每一个指标对应的权重;

ⅲ.针对每一个指标进行Vague集打分,并转换为模糊值;

ⅳ.根据步骤ⅱ的权重值和步骤ⅲ的分值进行加权计算,得到构件的总得分。

比如:ⅰ.建立过程模块的评价性指标体系;

设置软件过程的第一级指标R={R1,R2,R3},其中R1为主要过程的指标,R2为支持过程的指标,R3为组织过程的指标;同时对于第一级指标R,设置各个指标的下属过程为第二级指标,具体为R1={r11,r12,r13,r14,r15},其中r11,r12,r13,r14和r15依次表示获取过程、供应过程、开发过程、运行过程和维护过程;R2={r21,r22,r23,r24,r25,r26,r27,r28},其中r21,r22,r23,r24,r25,r26,r27和r28依次表示文档编辑过程、配置管理过程、质量保证过程、验证过程、确定过程、联合评审过程、审核过程和问题解决过程;R3={r31,r32,r33,r34},其中r31,r32,r33和r34依次表示管理过程、基础设施过程、改进过程和培训过程;

ⅱ.针对步骤A所建立的指标体系,采用德尔斐法确定每一个指标对应的权重Wi={wi1,wi2,…,Wij},其中i=1,2或3;j=1,2,3,…,8;

ⅲ.针对每一个指标进行Vague集打分,并转换为模糊值;

ⅳ.根据步骤ⅱ的权重值和步骤ⅲ的分值进行加权计算,得到过程模块的总得分;

其中i=,2或3;j=1,2,3,…,8

此外,还可以将所述的该过程模块和该过程模块的敏捷性评分上传到云环境中,以便其他系统能够应用该过程模块的敏捷性评分;

S4.针对每一个目标软件服务构件,将步骤S2得到的每一个候选软件服务构件进行评分,并选取评分最优的候选软件服务构件作为该目标软件服务构件;

S5.将所有选取的候选软件服务构件进行聚合、检测和修正,形成最终的目标软件服务;具体为采用如下步骤进行聚合、检测和修正:

(1)获取目标软件服务的业务需求和工作流程,同时获取各个候选软件服务构件的输入和输出数据需求;

(2)根据步骤(1)获取的工作流程和候选构件的输入/输出数据需求,将候选软件服务构件进行构件之间的需求匹配,从而将构件进行快速聚合和组装,形成完整的构建序列;

(3)随后,将组装好的构件序列进行部署,从而实现将候选软件服务构件组装为可以工作的目标软件;

(4)将步骤(3)得到的初步的目标软件服务进行编译;

(5)根据步骤(4)的编译结果,按照如下规则进行判断:

若步骤(4)的编译结果通过,则表明初步的目标软件服务聚合合格,并以该初步的目标软件服务作为最终的目标软件服务;

若步骤(4)的编译结果未通过,则表明初步的目标软件服务聚合不合格,则定位编译未通过的候选软件服务构件,并对该编译未通过的候选软件服务构件进行人工修改;

(6)重复步骤(2)~步骤(5),直至初步的目标软件服务的编译结果通过,得到最终的目标软件服务;

S6.针对步骤S5所述的将候选软件服务构件进行聚合、检测和修正的过程进行敏捷性评分;具体为采用如下步骤进行敏捷性评分:

㈠.对步骤(2)中候选软件服务构件进行构件之间的数据传输匹配的匹配复杂度PF进行评价,所述构件之间的数据传输匹配越复杂,则匹配复杂度的评价越高;

㈡.对步骤(3)中候选软件服务构件进行构件序列部署的部署复杂度BF进行评价,所述构件序列的部署越复杂,则部署复杂度的评价越高;

㈢.获取步骤(4)中的初步的目标软件服务在编译过程中的时间复杂度,并依据该时间复杂度得到编译复杂度YF,所述的编译过程中的时间复杂度越大,则编译复杂度越高

㈣.获取步骤(6)中重复编译的次数和对候选软件服务构件进行人工修改的工作复杂度,从而得到相应的编译次数复杂度NF和人工修改复杂度HF;所述的重复编译的次数越多,则编译次数复杂度越大,所述的人工修改的工作复杂度越大,则人工修改复杂度越大;

㈤.根据事先设定的匹配复杂度的权重值PFW、部署复杂度的权重值BFW、编译复杂度的权重值YFW、编译次数复杂度的权重值NFW和人工修改复杂度的权重值HFW,计算候选软件服务构件在聚合、检测和修正的过程进行敏捷性评分S3’=PF*PFW+BF*BFW+YF*YFW+NF*NFW+HF*HFW;

㈥.依据步骤3得到的候选软件服务构件的敏捷性评分,对候选软件服务构件对步骤㈤得到的候选软件服务构件在聚合、检测和修正的过程进行敏捷性评分S3’进行归一化处理,得到最终的候选软件服务构件在聚合、检测和修正的过程进行敏捷性评分S3;

S7.根据步骤S5获取的最终的目标软件服务所采用的候选软件服务构件及其对应的敏捷性评分,和步骤S6获取的候选软件服务构件在聚合、检测和修正过程的敏捷性评分,计算最终的目标软件过程的敏捷性评分,从而度量该软件服务的敏捷性;具体为采用如下步骤进行计算:

Ⅰ.依据最终的目标软件服务的每一个构件的重要程度,采用专家系统对每一个构件进行权重评分PW’=[pw’1,pw’2,…,pw’n];

Ⅱ.根据步骤Ⅰ得到的每一个构件的权重ps’i和每一个构件的敏捷性评分PS=[ps1,ps2,…,psn],按照下式计算得到软件服务构件的敏捷性评分S1:

Ⅲ.根据步骤Ⅱ得到的软件服务构件的敏捷性评分S1、候选软件服务构件在聚合、检测和修正过程的敏捷性评分S2、候选软件服务构件在聚合、检测和修正的过程进行敏捷性评分S3,以及事先设定的软件服务构件的敏捷性评分权重值SW1和候选软件服务构件在聚合、检测和修正过程的敏捷性评分的权重值SW2和候选软件服务构件在聚合、检测和修正的过程进行敏捷性评分的权重值SW3,按照下式计算最终的目标软件过程的敏捷性评分S:

S=S1*SW1+S2*SW2+S3*SW3

本发明专利得到国家自然科学基金(项目编号61304184、61672221和61502057)的支持。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1