首页> 中国专利> 一种基于拓扑势的软件需求用例优先级排序方法

一种基于拓扑势的软件需求用例优先级排序方法

摘要

本发明提供了一种基于拓扑势的软件需求用例优先级排序方法,包括以下步骤:构造并解析软件需求用例模型,得到需求用例和需求用例间依赖关系的集合;将上述获得的集合中的需求用例和需求用例间的依赖关系映射为有向网络模型的节点和边来构建网络拓扑;计算上述构建的网络拓扑中所有节点的拓扑势;根据上述节点拓扑势的大小对网络拓扑中所有节点进行排序;对排序后具有相同拓扑势的节点对应的需求用例进行基于重要程度的优先级二次排序;以可视化的方式输出上述排序结果。本发明屏蔽了影响传统需求分析正确性的一些主观因素,有助于客观地评价需求用例的优先级;并将需求用例的内容与需求用例间的依赖关系结合起来分析,排序结果会更为合理。

著录项

  • 公开/公告号CN102004641A

    专利类型发明专利

  • 公开/公告日2011-04-06

    原文格式PDF

  • 申请/专利权人 武汉大学;

    申请/专利号CN201010556884.0

  • 申请日2010-11-23

  • 分类号

  • 代理机构武汉科皓知识产权代理事务所(特殊普通合伙);

  • 代理人张火春

  • 地址 430072 湖北省武汉市武昌区珞珈山

  • 入库时间 2023-12-18 01:48:00

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2013-10-02

    授权

    授权

  • 2011-05-25

    实质审查的生效 IPC(主分类):G06F9/44 申请日:20101123

    实质审查的生效

  • 2011-04-06

    公开

    公开

说明书

技术领域

本发明涉及软件工程技术领域,特别涉及一种软件需求用例优先级排序方法。

背景技术

20世纪80年代以前,软件开发的焦点一直是编码和设计,需求分析很少受到重视。随着软件系统规模的激增,需求分析在软件开发中的地位越来越重要,直接关系到软件开发的成功与否[1]。需求分析的一个重要环节是需求的优先级排序(requirements prioritization)[2],优先级排序除了能辅助项目管理者判断候选需求实施的轻重缓急,还能帮助他们权衡各方要求、消解冲突和规划增量式版本开发进度,从而达到尽可能减小开发风险的目的。

需求价值评估和基于“成本最小化,价值最大化”原则的比较法是目前需求优先级排序的主要方法。其中,需求价值评估包括层次分析法[3](analytic hierarchyprocess)、成对比较法[4](pair-wise comparisons)和规划法[5](planning game)等,但这些方法均受用户核心业务价值、开发团队可用资源、开发者和用户对系统目标和限制的理解程度、环境的演化等诸多因素影响[6],难以有效支持实际项目的实践。以“成本最小化,价值最大化”作为需求优先级排序的原则[7],基于自适应[6]、动态规划[8]、多属性群决策[9]等技术的新方法被相继提出,但上述方法也存在如下问题:

(1)需要综合理解候选集中的用户需求属性(目标、价值、风险、与其它需求的依赖关系等)并做出权衡,在很大程度上依赖需求分析师的个人能力和经验,这使得方法的通用性受到很大的限制;

(2)忽视了用户需求之间的依赖关系[10],而且实践表明[10],从整体和全局(如网络)的角度来分析需求间的各种依赖,更有助于客观地评价需求的重要性;

(3)当软件需求的规模快速增长时,由于过于关注用户需求的内容,已有方法的可伸缩性(scalability)不强[11],导致处理需求优先级排序的效率会受到明显影响。

用例(Use case)是一种从系统使用者角度描述软件需求的方法,刻画“谁”使用目标系统能做“什么”,而不是“怎么做”[12]。该方法最早由Ivar Jacobson博士提出,后被集成到UML(Unified Modeling Language)规范[13]中,成为一种业界标准化的需求表述方式,广泛应用于软件需求获取和建模中。UML定义了包含(include)、扩展(extend)和泛化(generalization)关系来显式描述需求用例间的依赖关系,从而形成较为完整的软件需求模型。如果忽略用户需求中的一些主观因素,将需求用例抽象为节点、需求用例间的依赖关系抽象为有向边,则可使用网络模型来刻画软件需求模型,这样需求用例的优先级排序就可抽象为网络节点在网络中的重要性排序问题。

传统社会网分析(social network analysis)一般使用度(degree)、介数(betweenness)和接近度(closeness)等指标来评价网络中节点的重要性[14],另外,Google的PageRank[15]是一种通过链接分析来计算网页相对重要性的算法,但上述方法在刻画节点间的相互作用和局域(local)影响方面存在不足[16]。例如,度、介数和接近度指标均未考虑节点间的相互作用;PageRank算法虽然通过基于链接的评分机制来描述节点间的相互作用,但却未考虑节点间的局域影响,而在实际中这种影响确实是存在的,它类似于物理学中的粒子(particle)的场(field)。粒子都具有一定的场,并对场内的其它粒子产生影响而形成势,这种相互作用力反比于粒子间的距离,且随着距离的增加而迅速减小[17],具有十分明显的局域特性。

已有文献[16,18]将物理学中“场”的概念引入到无向网络中,利用高斯函数定义节点的拓扑势(topological potential)用以描述节点间的局域相互作用,从而获得关于节点重要性的全局排序结果。其中,mj为节点质量,为节点对应实体的某种重要内部属性,如节点表示飞机场,其质量可为每天进出的航班架次;dij为节点间的拓扑距离,通常表示为最短路径;σ为影响因子,用以调节每个节点的局域影响范围。在网络中,节点的拓扑势越大,其重要性越高。仅针对无向网络,上述五种指标的主要特点对比如表1所示。

表1五种指标主要特点对比

文中涉及的参考文献如下:

[1]Lamsweerde V A.Requirements Engineering in the year 00:A research perspective[A].InProceedings of the 22nd International Conference on Software Engineering(ICSE 2000)[C],Limerick Ireland,June 4-11,2000,pp.5-19.

[2]Karlsson J and Ryan K.A cost-value approach for prioritizing requirements[J].IEEE Software,1997,14(5):67-74.

[3]Saaty T L.The Analytic Hierarchy Process[M].New York:McGraw-Hill,Inc.,1980.

[4]Karlsson J.Software Requirements Prioritizing[A].In Proceedings of the 2nd InternationalConference on Requirements Engineering(RE 1996)[C],Colorado,USA,April 15-18,1996,pp.110-116.

[5]Beck K.Extreme programming explained[M].MA:Addison-Wesley,Reading,1999.

[6]黄蒙,舒风笛,李明树.一种风险驱动的迭代开发需求优先级排序方法[J].软件学报,2006,17(12):2450-2460.

[7]Azar J,Smith R K and Cordes D.Value-oriented requirements prioritization in a smalldevelopment organization[J].IEEE Software,2007,24(1):32-37.

[8]熊兆文,李娟,李奇.基于组件最优组合的需求优先级排序方法[J].计算机工程与设计,2009,30(1):105-109.

[9]熊健,陈英武,杨克巍,等.一种基于多属性群决策的需求优先级排序方法[J].系统工程,2009,27(3):79-83.

[10]Lehtola L,Kauppinen M and Kujala S.Requirements Prioritization Challenges in Practice[A].In Proceedings of the 5th International Conference on Product Focused Software ProcessImprovement(PROFES 2004)[C],Kausai Science City,Japan,April 5-8,2004,pp.497-508.

[11]Herrmann A and Daneva M.Requirements Prioritization Based on Benefit and CostPrediction:An Agenda for Future Research[A].In Proceedings of the 16th InternationalConference on Requirements Engineering(RE 2008)[C],Barcelona,Spain,September 8-12,2008,pp.125-134.

[12]Cockburn A.Writing Effective Use Cases[M].Boston,MA,USA:Addison-WesleyLongman Publishing Co.,Inc.,2001.

[13]Rumbaugh J,Jacobson I and Booch G.The Unified Modeling Language Reference Manual[M].Reading,MA:Addison-Wesley Professional,1999.

[14]Bonacich P.Power and Centrality:A Family of Measures[J].The American Journal ofSociology,1987,92(5):1170-1182.

[15]Brin S and Page L.The Anatomy of a Large-Scale Hypertextual Web Search Engine[A].InProceedings of the 7th International Conference on World Wide Web(WWW 1998)[C],Brisbane,Austrtralia,April 14-18,1998,pp.107-117.

[16]He N,Gan W Y and Li D Y.Evaluate Nodes Importance in the Network using Data FieldTheory[A].In Proceedings of the 2nd International Conference on Convergence InformationTechnology(ICCIT 2007)[C],Gyeongju,Republic of Korea,November 21-23,2007,pp.1225-1230.

[17]Landau L D and Lifshitz E M.The Classical Theory of Fields(Fourth Edition:Volume 2)[M].Oxford:Butterworth-Heinemann,1980.

[18]Hu J,Han Y N and Hu J.Topological Potential:Modeling Node Importance with Activity andLocal Effect in Complex Networks[A].In Proceedings of the 2nd International Conference onComputer Modeling and Simulation(ICCMS 2010)[C],Vol.2,Sanya,China,January 22-24,2010,pp.411-415.

[19]Ma Y T,He K Q,Liu W,et al.A Grid-Oriented Platform for Software Component RepositoryBased on Domain Ontology[A].In IEEE Proceedings of 2007 International Conference onServices Computing(SCC 2007)[C],Salt Lake City,USA,July 9-13,2007,pp.628-635.

发明内容

针对上述存在的技术问题,本发明的目的是提供一种以软件需求用例模型为载体的基于拓扑势的软件需求用例优先级排序方法,该方法屏蔽了影响传统需求分析准确性的一些主观因素,能客观准确地评价需求用例的优先级。

为达到上述目的,本发明采用如下的技术方案:

一种基于拓扑势的软件需求用例优先级排序方法,包括以下步骤:

(1)构造并解析软件需求用例模型,得到需求用例和需求用例间依赖关系的集合;

(2)将上述获得的集合中的需求用例和需求用例间的依赖关系映射为有向网络模型的节点和边来构建网络拓扑;

(3)根据公式分别计算上述构建的网络拓扑中所有节点的拓扑势tp,其中,k为指定节点i的局域影响范围内节点的数目;lij为指定节点i到其局域影响范围内的节点j的最短路径长度;σ为影响因子,取值范围为[0,D],D为上述构建的网络拓扑的直径;

(4)根据上述节点的拓扑势的大小对网络拓扑中所有节点进行排序;

(5)对排序后具有相同拓扑势的节点对应的需求用例进行基于重要程度的优先级二次排序;

(6)以可视化的方式输出上述排序结果。

上述步骤(1)中所述的软件需求用例模型是采用UML 1.4及以上版本标准构造,并保存为基于XML(Extensible Markup Language)的XMI(XML MetadataInterchange)格式文件。

上述步骤(1)中所述的解析软件需求用例模型的工具是XML解析工具,且XML解析工具采用dom4j。

上述步骤(2)中所述的有向网络模型采用Java公共网络/图框架(Java UniversalNetwork/Graph Framework,简称JUNG)支持的有向图的数据结构格式。

上述步骤(3)具体包括以下子步骤:

(3.1)计算指定节点集合node的未访问的可达的直接邻居节点集合neighbor,其中,集合node的初始值为指定节点,集合neighbor的初始值为空;

(3.2)根据公式计算指定节点的拓扑势tp,其中,tp的初始值为0;函数size()用来计算指定集合中元素的规模;l为从指定节点到集合neighbor中节点的最短路径长度,其初始值为1且循环一次值加1;

(3.3)将集合node中节点访问过的所有节点设置访问标志,node=neighbor;

(3.4)将指定节点的局域影响范围半径jump的值减1,其中,jump的初始值为如果jump大于0,执行子步骤(3.1),否则结束本过程。

上述步骤(5)中所述的对排序后具有相同拓扑势的节点对应的需求用例进行基于重要程度的优先级二次排序采用需求价值评估方法采用需求价值评估方法。

上述步骤(5)中所述的需求价值评估方法是成对比较法。

上述步骤(6)中所述的以可视化的方式是采用pajek工具。

与现有技术相比,本发明具有以下优点和积极效果:

(1)通过使用有向网络模型来刻画软件需求用例间的依赖关系,屏蔽了影响传统需求分析正确性的一些主观因素,并从系统全局的角度分析需求用例间的局域相互作用,符合实际物理认知的规律,有助于客观地评价需求用例的优先级;

(2)对用拓扑势无法区分优先级的需求用例进行基于重要程度的优先级二次排序,将需求用例的内容与需求用例间的依赖关系(即结构)结合起来分析,排序结果会更为合理。

附图说明

图1是本发明实施例的总体流程图;

图2是从用例图到有向网络模型的映射对应图;

图3是实施例软件需求的UML用例图片段;

图4是实施例软件需求的UML用例图对应的网络拓扑;

图5是可视化的排序结果。

具体实施方式

下面通过实施例结合附图对本发明技术方案的优势做进一步说明。

本发明提出的一种基于拓扑势的软件需求用例优先级排序方法,具体步骤如下:

(1)构造并解析软件需求用例模型,得到需求用例和需求用例间依赖关系的集合:

首先,在需求分析师的帮助下,明确需求用例间的依赖关系,将软件需求模型表示为UML用例图;其次,借助UML建模工具,如IBM Rational Rose或ArgoUML,将获得的UML用例图转化为基于XML的XMI文档,便于机器处理;然后,使用XML解析工具,如dom4j,分析获得的XMI文档,基于关键字“Usecase”抽取需求用例、基于关键字“Include”、“Extend”和“Generalization”抽取需求用例间的依赖关系,进而得到需求用例和需求用例间依赖关系的集合。

(2)将上述获得的集合中的需求用例和需求用例间的依赖关系映射为有向网络模型的节点和边来构建网络拓扑:

首先,依照图2所示的方式,将步骤(1)中获得的集合中的需求用例和需求用例间的依赖关系映射为有向网络模型的节点和边,其中UML用例图符号使用ArgoUML工具的图例表示;然后,根据JUNG支持的有向图的数据结构格式,构造对应的软件需求用例网络拓扑,其中节点的自依赖关系(即起点和终点相同的有向边)应予以删除,且确保任意两个节点间有且仅有一条同向边。

(3)根据公式分别计算上述构建的网络拓扑中所有节点的拓扑势tp,其中,k为指定节点i的局域影响范围内节点的数目;lij为指定节点i到其局域影响范围内的节点j的最短路径长度;σ为影响因子,取值范围为[0,D],D为上述构建的网络拓扑的直径:

该步骤所述的节点拓扑势的计算方法进一步包括以下子步骤:

(3.1)计算指定节点集合node的未访问的可达的直接邻居节点集合neighbor,其中,集合node的初始值为指定节点,集合neighbor的初始值为空;

(3.2)根据公式计算指定节点的拓扑势tp,其中,tp的初始值为0;函数size()用来计算指定集合中元素的规模;l为从指定节点到集合neighbor中节点的最短路径长度,其初始值为1且循环一次值加1;

(3.3)将集合node中节点访问过的所有节点设置访问标志,node=neighbor;

(3.4)将指定节点的局域影响范围半径jump的值减1,其中,jump的初始值为如果jump大于0,执行子步骤(3.1),否则结束本过程。

(4)根据上述节点的拓扑势的大小对网络拓扑中所有节点进行排序:

节点的排序采用升序还是降序方式,由项目管理者根据实际情况决定。

(5)对排序后具有相同拓扑势的节点对应的需求用例进行基于重要程度的优先级二次排序:

根据节点的拓扑势的大小对网络拓扑中所有节点进行排序后,假设有n个具有相同拓扑势的节点,采用成对比较法对这n个节点对应的需求用例进行基于重要程度的优先级二次排序,具体子步骤如下:

(5.1)将需要比较的n个需求用例构造成n(n-1)/2个需求用例对,并确保每个需求用例对是唯一的;

(5.2)依次比较所有需求用例对中需求用例之间的重要程度,根据表2所示的9分位比率标度得到需求用例对所对应的重要程度评分,当需求用例i和需求用例j比较时,得到值为1到9之间的评分,而当需求用例j和需求用例i比较时,其重要程度评分为需求用例i的评分的倒数值;

表29分位比率标度

(5.3)建立判断矩阵A=(aij)n×n,其中aij为需求用例i对需求用例j的重要程度评分;

(5.4)计算判断矩阵A中所有元素的相对值和每一行元素相对值的和采用归一化方法得到需求用例i的重要程度评分为sumi/n;

(5.5)计算需求用例重要程度评分结果的一致性指标其中,λmax为判断矩阵A的最大特征值;

(5.6)计算需求用例重要程度评分结果的可接受比率其中,RI可通过表3所示的层次分析法随机指标获得,当CR≤0.1时,认为子步骤(5.4)所得到的需求用例重要程度评分结果是可以接受的,否则执行子步骤(5.2)重新判断需求用例对的重要程度评分。

表3层次分析法的随机指标

在本步骤中采用成对比较法对具有相同拓扑势的节点对应的需求用例的优先级进行二次排序,但本步骤的实施并不仅限于使用成对比较法,采用层次分析法、规划法以及基于“成本最小化,价值最大化”原则的方法等均可以实现本步骤。

(6)以可视化的方式输出上述排序结果:

使用网络建模和分析工具,如pajek,对排序结果进行可视化展示,方便项目管理人员进行进度安排。

下面将结合一个面向制造业信息化领域的软件构件库(software componentrepository)平台[19]的软件需求用例模型来详细描述本发明的实施过程。该平台采用ISO/IEC 19763标准构造软件构件属性本体(ontology),用于规范软件构件的注册、查询和管理,并支持与遵循其他标准(如电子商务领域的ebXML)的软件构件库进行资源共享和互操作(interoperation)。借助该平台,软件开发商通过软件构件的快速组装能明显提高应用软件系统的开发效率。

首先,执行步骤(1)和(2),构造并解析该平台的软件需求用例模型,将需求用例映射为节点、需求用例间的依赖关系映射为有向边,构造网络拓扑,如图4所示。

根据需求用例模板,主要包括用例的名称、编写者、提出者、概要性描述、前置和后置条件、优先级、正常和可选执行流程、依赖关系等项,明确不同参与者(actor)提出的用户需求间的各种依赖关系,形成较为完整的软件需求用例模型,并将其表示为UML用例图。使用IBM Rational Rose绘制该平台的UML用例图,图3为其中的软件构件属性分类体系(classification)管理的需求用例。从IBM Rational Rose中将完整的UML用例图导出为XMI文档,使用dom4j分析获得的XMI文档,基于关键字“Usecase”抽取需求用例、基于关键字“Include”、“Extend”和“Generalization”抽取需求用例间的依赖关系,得到需求用例和需求用例间依赖关系的集合。按照图2所示的映射关系,构造有向网络的节点集和边集:从1开始给每个节点赋予数字序号,并和其关联的需求用例名称一一对应;有向边表示为从起点到终点的节点序号对(i,j)((i,j)≠(j,i)),用以刻画软件需求模型中需求用例间真实存在的依赖关系。

其次,执行步骤(3)和(4),计算上述构造的网络拓扑中每个节点的拓扑势,根据节点的拓扑势的大小对网络拓扑中所有节点按升序方式排序,对于具有相同拓扑势的节点,按节点序号的大小进行升序排列,排序结果如表4所示。

表4用例节点的拓扑势

在图4中,对应“查询软件构件”需求用例的40号节点不存在连出边,即没有可以访问的邻居节点,且在表4中其拓扑势为0,表明40号节点不受周围节点的影响,发生变化的几率很小,可以被优先细化和实施。对于对应“多重选择查询”需求用例的13号节点而言,首次执行子步骤(3.1)时,集合node为{13},其未访问的可达的直接邻居节点集合neighbor为{14,15,16,17,18,40},集合neighbor中节点对13号节点的影响力均为其中,从13号节点到上述节点的最短路径长度l都为1;σ的值为(熵值最小时的取值,计算方法见参考文献[16]);jump的初始值为3,减1后大于0,继续执行子步骤(3.1)。此时,集合node变为{14,15,16,17,18,40},计算其未访问的可达的直接邻居节点集合neighbor为空,40号节点没有可以访问的邻居节点,不会对13号节点造成影响,结束计算过程,得到13号节点的拓扑势为即1.9479148。节点的拓扑势越大,表明它受周围节点的影响越大,发生变化的几率就越大,应被推后分析和细化。

然后,进行步骤(5),对具有相同拓扑势的节点对应的需求用例,采用成对比较法进行基于重要程度的优先级二次排序。

根据上一步的计算结果,对应“关键字搜索”需求用例的14号节点、对应“分类搜索”需求用例的15号节点、对应“属性搜索”需求用例的16号节点、对应“关联搜索”需求用例的17号节点和对应“统计搜索”需求用例的18号节点具有相同的拓扑势,采用成对比较法对5个候选需求用例进行基于重要程度的优先级二次排序,具体实施过程如下:

1)构造10个用于比较的需求用例对(以“序号-序号”形式表示),即14-15、14-16、14-17、14-18、15-16、15-17、15-18、16-17、16-18和17-18;

2)根据表2所示的评分规则,构建判断矩阵A(5×5),如表5所示;

表5判断矩阵

3)计算判断矩阵A中所有元素的相对值、每行元素相对值的和,以及需求用例i的归一化重要程度评分,如表6所示。

表6计算元素相对值后的判断矩阵

4)计算判断矩阵A的最大特征值为5.329,根据判断矩阵A的最大特征值计算需求用例重要程度评分结果的一致性指标CI为0.082。

5)根据表3,当n为5时,RI取值为1.12,计算需求用例重要程度评分结果的可接受比率为0.074(小于0.1),表明需求用例重要程度评分结果是可以接受的。

6)按需求用例重要程度评分的降序方式给出需求用例优先级二次排序的结果为14,15,16,17,18。

对所有具有相同拓扑势的节点对应的需求用例集合进行基于重要程度的优先级二次排序后,最后执行步骤(6),借助pajek对上述排序结果进行可视化,如图5所示,方便项目管理人员进行进度安排。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号