一种上下文感知的动态需求跟踪方法

文档序号:6518152阅读:252来源:国知局
一种上下文感知的动态需求跟踪方法
【专利摘要】本发明公开了一种上下文感知的动态需求跟踪方法,包括以下步骤:监控步骤:收集开发人员的操作;分析步骤:聚合收集到的操作信息,根据操作信息以及制品间的关联关系,自动生成扩展规则,并以此推测开发人员可能感兴趣的制品;推荐步骤:利用扩展规则从制品集合中自动挖掘开发人员最有可能感兴趣的软件制品;维护步骤:将推荐的制品类型展现给开发人员,建立并维护跟踪历史记录,以便进一步提高扩展规则的有效性和准确性。本发明通过上下文感知,系统性地整合制品之间多种类型的关联信息、开发人员的偏好和操作信息,具有更加准确和快捷的特点。
【专利说明】一种上下文感知的动态需求跟踪方法
【技术领域】
[0001]本发明涉及软件开发管理【技术领域】,尤其涉及一种上下文感知的动态需求跟踪方法。
【背景技术】
[0002]软件需求跟踪是“一种描述和跟踪整个需求生命周期(包括前向和后向)的能力”。软件需求跟踪可以帮助人们在高层的特征或功能和低层的软件制品之间建立映射关系,这将大大地提高开发人员在维护代码时的效率。一旦高层的需求发生变化,开发人员便可以通过这种映射关系快速地找到与之相对的一系列软件制品,从而保证了高层需求与不同软件制品之间的一致性。
[0003]软件需求跟踪辅助软件开发生命周期中很多活动的执行,它不仅可以作为确认和验证系统功能的活动的一种方式,挖掘代码变更背后蕴含的设计决策,帮助开发人员对系统组件进行复用,最后它还可以作为变更管理的重要依据。AybilkeAurum等学者提出“若在软件开发生命周期中忽略了需求跟踪,或使用了不完整、不一致的需求跟踪关系,将导致系统质量的下降和反复修改,从而提高了系统开发的时间和成本”。因此,软件需求跟踪被认为是一个影响软件开发和维护过程中各个阶段的重要因素,并影响最终软件产品的质量。
[0004]美国食品和药物管理局(FDA)声明,在软件开发过程中,必须使用需求跟踪分析来验证软件的所有需求都得到实现,而且所有的软件制品都可以跟踪到软件需求。美国联邦航空局通过D0-178B认证标准对所有新开发的航空软件进行验证,要求在开发的每个阶段“软件开发人员都必须证明设计与需求之间的可跟踪性”。此外,越来越多的组织在采用标准化软件开发过程(例如CMMI)时,也要求将需求跟踪实践纳入自身的开发及管理过程中。
[0005]由于需求跟踪在软件开发和管理过程中的重要性,由美国美国国家航空航天局出资,多位来自美国和欧洲学术界、工业界和政府的著名学者和研究人员在2006年组建了卓越软件跟踪性中心(Center of Excellence for Software Traceability, CoEST),专门解决在实施软件需求跟踪时所面临的挑战。美国国家科学基金会特别资助一个讨论会来讨论需求跟踪所遇到的一系列重大挑战(Grand Challenges of Traceability, GCT)。除此之夕卜,美国国家科学基金会还提供了 300万美元用于帮助需求跟踪研究社区将所研究出的技术或方法服务于软件行业协会和政府团队。
[0006]需求跟踪方法有静态跟踪和动态跟踪两种。传统的需求跟踪大多以静态跟踪为主,主要有需求跟踪矩阵和需求跟踪图等方法。静态需求跟踪需要进行手动设置,面临着易于出错、代价过大等问题。特别是在项目规模较大且周期较长的时候,跟踪关系的维护便成了一个巨大的负担。
[0007]在2005年的需求工程大会上,Cleland-Huang提出“动态需求跟踪(DynamicRequirement Traceability)”。动态需求跟踪从手工建立需求跟踪代价过高且易于出错的问题入手,以自动化技术为手段辅助开发人员建立和维护需求跟踪关系,而且在需求发生变更的时候可以根据跟踪关系自动提出变更提醒。因此,对动态需求跟踪的研究是现阶段的主要方向。主要的动态跟踪方法有基于信息检索的跟踪、基于规则的跟踪等。
[0008]下面将对几种主要的需求跟踪技术作一概述。
[0009]需求跟踪矩阵
[0010]需求跟踪矩阵(Requirements Traceability Matrix, RTM)是表不需求和其他系统元素之间联系链的最普遍方式。需求跟踪矩阵可以保持需求和其他软件制品之间的双向跟踪能力。双向跟踪能力是正向跟踪和逆向跟踪的能力,也就是从需求跟踪到最终广品和从最终产品回溯到需求的能力。需求跟踪矩阵的优点是易于创建和维护,可以很容易发现需求在软件制品之间的不一致情况,有助于开发人员及时纠正偏差。其缺点是,当需求或软件制品发生变更时,开发人员要及时更新需求跟踪矩阵。否则,随着开发工作的进行,跟踪矩阵会变得越来越不准确,并最终导致跟踪的失败。
[0011]需求跟踪图
[0012]需求跟踪图通过软件人员自已定义的对象和关系,将需求项与测试用例、设计文档和代码等软件制品之间的关系通过图形方式进行表述。需求跟踪图的一大特点是允许对象之间存在多种软件人员自定义的跟踪链,软件人员可以根据需要对它们进行调整以适应不同的环境。通过数学方法,软件人员可以为彼此之间没有直接链接关系的对象建立跟踪。由于需求跟踪图中的对象和关系都是由用户定义的,它们所表达的意义也就易于被软件人员所理解。但另一方面,它仍然没有解决跟踪关系难于维护的问题。而且,多种跟踪链的存在会更得跟踪关系的维护变得更加困难。
[0013]基于信息检索的动态需求跟踪
[0014]基于信息检索的动态需求跟踪利用文本之间的相似度来确定需求与软件制品之间的跟踪关系。这类方法将文本形式的需求文档与软件制品都视为待检索的文档,然后计算需求与软件制品之间的相似度,对于相似度高于一定阈值的需求与软件制品,就认为它们之间存在关联关系。基于信息检索的动态模式其优点在于方法简单且无需人工干预,通过文本之间的相似度就能够自动地建立关联。其缺点是这类方式是通过需求与软件制品中的标引词(Term)来计算相似度,如果标引词无法匹配,那么即使两个标引词描述的意义相同或者相近,最终计算得出的相似度也会很低,从而无法建立跟踪关系。因此基于信息检索的动态需求跟踪技术需要解决的一个关键问题是对一词多义和同义多词的处理。
[0015]基于规则的动态需求跟踪
[0016]Spanoudakis等学者提出了一种启发式需求跟踪方式,并称之为基于规则的动态需求跟踪。他们将动态需求跟踪分为两种情况,一种是需求文档或用例与软件制品之间的跟踪关系,另一种是需求文档以及用例相互之间的跟踪关系,这种关系是在前一种跟踪关系的基础上建立起来的。Spanoudakis还将跟踪关系按其逻辑上的关联分为四大类,软件开发人员可通过这些关联了解具有跟踪关系的软件制品之间彼此驱动的先后顺序和逻辑关系。这类方法的优点在于可以建立任何制品之间的跟踪关系,缺点在于需要针对不同的制品制定不同的跟踪关系匹配规则。
[0017]最近似的实现方案有两个,一个是加拿大麦吉尔大学的Robillard等学者提出的基于拓扑结构的软件探索工具Suade,以及美国德拉华大学的Emily Hill等学者提出的软件探索工具Dora。软件开发人员可以通过Suade或Dora对代码进行探索,并在探索的过程中建立不同制品之间的跟踪关系。[0018]使用Suade对代码进行探索时,软件开发人员需要通过先验知识等找出若干个与需求相关的代码元素(例如方法,字段等,在此特指代码中的方法)。之后,Suade会通过语法信息(例如方法调用,字段访问等)计算其它代码元素与需求的相关度。最后,Suade根据相关度对代码元素进行排序,并向用户提供排序结果。用户得到排序结果之后,并根据相关度建立起软件制品之间的跟踪关系。
[0019]Dora是对Suade的扩展,除了使用语法彳目息之后,他还利用了语义彳目息。使用Dora对代码进行探索时,开发人员首先需要构造一个用于计算方法相关度(Method RelevanceScore)的特征查询(一组关键词),方法相关度取决于关键词在方法体和方法名中出现的次数。之后,以开发人员给定的一个与特征相关的方法为出发点,Dora计算出所有与该方法存在调用以及被调用关系的所有方法以及它们的方法相关度,并以方法相关度作为判断方法是否与特征相关的指标。与Suade相同,Dora将根据相关度对方法进行排序,并向用户提供排序结果。
[0020]现有的技术存在以下不足:当开发人员为一个不熟悉的项目建立制品之间的跟踪关系时,他们很有可能花费大量的时间去探索与需求并不相关的软件制品,或者沿着错误的关联关系对软件制品进行探索。而现有的技术往往无法根据开发人员的操作提供必要的反馈。类如Suade和Dora所使用的探索技术,他们更多的是提供一步到位的扩展支持,无法根据开发人员的操作和上下文动态地调整所应推荐的代码元素或软件制品。

【发明内容】

[0021]本发明需要解决的技术问题是如何更好地实现软件需求跟踪。
[0022]为了解决以上技术问题,本发明通过监控用户的操作推测用户期望获取的软件制品,从而帮助开发人员建立不同软件制品之间的跟踪关系。该方法包括监控、分析、推荐和维护四个部分。监控部分收集开发人员的操作,如浏览的软件制品,设置的偏好或厌恶制品信息等;分析部分聚合收集到的操作信息,根据操作信息以及制品间的关联关系,自动生成扩展规则,并以此推测开发人员可能感兴趣的制品;推荐部分利用扩展规则从制品集合中自动挖掘开发人员最有可能感兴趣的软件制品;维护部份将推荐的制品类型展现给开发人员,并维护制品间的跟踪信息,如跟踪关系的创建轨迹,历史变化信息等。
[0023]本发明通过上下文感知,系统性地整合制品之间多种类型的关联信息、开发人员的偏好和操作信息,具有更加准确和快捷的特点。
【专利附图】

【附图说明】
[0024]当结合附图考虑时,通过参照下面的详细描述,能够更完整更好地理解本发明以及容易得知其中许多伴随的优点,但此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定,其中:
[0025]图1是本发明实施例一种上下文感知的动态需求跟踪系统框图。
【具体实施方式】
[0026]参照图1对本发明的实施例进行说明。[0027]为使上述目的、特征和优点能够更加明显易懂,下面结合附图和【具体实施方式】对本发明作进一步详细的说明。
[0028]如图1所示。感知器(I)可获取开发人员在前一个单位时间(例如20分钟)之内操作信息,其中包括操作的制品集合以及操作类型(如打开、编辑等)。另外,开发人员可以通过偏好设置(2)或厌恶设置(3)将他们认为与需求相关或不相关的制品提交给系统。得到操作信息、偏好设置信息和厌恶设置信息之后,位置相关性度量模型(5)、语义相关性度量模型(6)和依赖相关性度量模型(4)将分别从位置、语义和依赖这三个方面推导出用于查找开发人员所期望的制品的扩展规则。通过厌恶设置得到的不相关制品信息对扩展规则(投票机制)(7)进行去噪,然后再通过感知器得到的操作信息对扩展规则进行加权(8),从而最大程度地精化扩展规则。制品匹配器(9)得到扩展规则后,从制品集合(10)中筛选出所有与规则匹配的制品,并将制品的偏好一齐发送到制品推荐器(11)。在得到匹配的制品及其偏好信息后,制品推荐器(11)将生成一个推荐制品列表。推荐列表中详细记录了各制品间的跟踪关系、跟踪关系创建过程以及制品的推荐度。通过这个推荐制品列表,推荐列表管理器(12)将向软件开发人员提供一个推荐列表的查看界面,软件开发人员可以通过该界面查看所有的推荐列表,并根据自己的需求对列表进行排序或过滤等操作。跟踪关系创建器(13)将保存所有的跟踪关系及其历史变更信息。报表生成器(14)可以生成一个跟踪关系的报表,为软件开发人员提供一个更为全面的信息。开发人员在得到推荐列表之后,可以根据自己的理解,再从推荐列表中选择一部份加入到偏好设置或厌恶设置(15)。当开发人员对偏好设置或厌恶设置做任何操作时,该方法将自动开启新一轮的迭代,并自动为开发人员提供新的推荐列表。
[0029]上下文感知的动态需求跟踪方法,包括以下步骤:
[0030](I)感知器自动记录开发人员在前一`个单位时间的所有操作,例如打开的文件,浏览文件花费的时间等。
[0031](2)开发人员在探索的过程中可以根据自己的理解,通过偏好设置将自己认为最有可能与需求相关的制品加入偏好集合,以及通过厌恶设置将自己认为不可能与需求相关的制品加入厌恶集合。
[0032](3)当开发人员进行了偏好设置或厌恶设置时,该方法会自动将所收集到偏好设置、厌恶设置和操作记录发送到相关性度量模型。(4)相关性度量模型会分别从位置相关、语义相关和依赖相关这三个方向去挖掘用户的偏好,从而创建扩展规则。
[0033]a)位置相关度利用制品所在的位置信息(例如所在的目录)来计算不同制品之间
的相关性。给定两个制品ml和m2,可以通过它们的目录信息来比较从根结点至最终包含
制品的目录的路径差异性来计算相关性。对于两个制品节点nl和n2,path(nl,n2)表示从
nl至n2的最小路径,而len(nl,n2)则表示路径path (nl, n2)的长度。对于给定的两个制
品ml和m2,令cl和c2分别表示制品ml和m2所在的目录,r表示两个制品的根目录,而a
表示Cl和c2的最近公共父目录。那么可以通过以下的公式来计算ml和m2之间的位置相
关度如下:
【权利要求】
1.一种上下文感知的动态需求跟踪方法,其特征在于,包括以下步骤: 监控步骤:收集开发人员的操作; 分析步骤:聚合收集到的操作信息,根据操作信息以及制品间的关联关系,自动生成扩展规则,并以此推测开发人员可能感兴趣的制品; 推荐步骤:利用扩展规则从制品集合中自动挖掘开发人员最有可能感兴趣的软件制品; 维护步骤:将推荐的制品类型展现给开发人员,建立并维护跟踪历史记录,以便进一步提高扩展规则的有效性和准确性。
2.根据权利要求1所述上下文感知的动态需求跟踪方法,其特征在于,所述收集开发人员的操作包括:收集浏览、编辑的软件制品以及制品内容,在制品之间切换时所依赖的关联息。
3.根据权利要求1所述上下文感知的动态需求跟踪方法,其特征在于,所述收集开发人员的操作包括:设置的偏好或厌恶制品信息。
4.根据权利要求1所述上下文感知的动态需求跟踪方法,其特征在于,在监控步骤和分析步骤之间还包括相关性度量步骤,确定软件制品的相关度。
5.根据权利要求1所述上下文感知的动态需求跟踪方法,其特征在于,所述相关性度量步骤具体包括:位置和/或语义和/或依赖相关性度量。
6.根据权利要求3所述上下文感知的动态需求跟踪方法,其特征在于,所述维护步骤还包括:开发人员在推荐列表中选择他认为与需求相关的代码元素,并将其加入到偏好列表;或者开发人员在推荐列表中选择他认为与需求无关的代码元素,并将其加入到厌恶列表;重复分析步骤、推荐步骤和维护步骤,直至开发人员完成跟踪关系的建立。
【文档编号】G06F17/30GK103617190SQ201310548940
【公开日】2014年3月5日 申请日期:2013年11月6日 优先权日:2013年11月6日
【发明者】王金水, 郑建生, 杨荣华, 赵钊林, 唐郑熠, 詹先银, 黄丽丽, 薛醒思, 魏磊晶 申请人:福建工程学院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1