论文部分内容阅读
面对软件市场的激烈竞争,快速且准确的获得需求模型和需求优先级,对于提高软件竞争力具有重要意义。已有需求建模和优先级评估方法主要存在以下5个问题:1)忽视需求间依赖关系:在需求建模和优先级评估中的忽视需求间依赖关系的存在,需求间依赖关系难以获取,缺少系统化的方法发现和运用需求间依赖关系;2)建模内容不全面:多数情况下,只关注于功能需求建模,忽视对非功能需求的建模;3)知识复用程度低:大部分方法基于需求工程师的主观经验,缺少对领域知识的构造和使用;· 4)结果准确性无法保障:优先级评估过程中对主、客观信息整合不够充分,评估结果的准确性过于依赖涉众主观认知和经验水平;5)扩展性差:面对大规模需求时,需求建模和优先级评估的效率低、耗时长,方法可操作性差。针对上述亟需解决的问题,本文开展了以下研究工作:(1)提出了一种基于软件非功能属性的领域知识构造方法NFADKC(Non-Functional Attributes based Domain Knowledge Construction)。在整合软件质量、安全性等规范和已有文献研究的基础上,首先建立软件非功能属性结构分解树NFAT(Non-Functional Attributes Tree),指导需求的定义和精化;然后,定义基于模糊集合的隶属度函数,实现个体知识的采集、转化和融合;接着,设计隐性依赖关系发现算法,根据已有显性知识获得隐性知识;通过整合显性知识和隐性知识,生成非功能属性依赖关系模型NFADKM(Non-Functional Attributes based Domain Knowledge Model)。实验案例证明本方法能够有效地辅助涉众建立领域知识。(2)提出一种基于NFADKM的非功能需求建模辅助方法。在面向领域的软件非功能属性依赖关系模型NFADKM的基础上,首先定义NFADKM和NFR框架(Non-Functional Requirements Framework)中依赖关系的形式化描述方式,用于刻画领域知识和需求依赖关系,为推理规则的设计和应用提供基础;其次,设计领域知识应用规则,用来实现领域知识和需求模型的融合;然后,提出一种基于规则的推导算法,在基于NFR框架的需求模型的基础上用于自动化的生成扩展后的非功能需求模型。交叉实验证明该方法可以有效的提升需求模型的信息完整性和NFR框架的建模效率。(3)针对需求优先级评估结果严重依赖涉众主观经验的问题,提出一种基于依赖关系和用户偏好的需求优先级评估方法DRank。首先,在目前优先级方法文献中所涉及到的优先级评估属性的基础上,对其进行了整理和分类,提出统一的评估属性分解树 PEAT(Prioritization Evaluation Attributes Tree),帮助需求分析人员按照项目特征高效率的选择合适的评估属性;然后,通过使用机器学习算法RankBoost计算用户的偏好,基于PageRank设计链路分析算法确定需求的影响力;最后,结合需求间业务逻辑关系,达到了整合主客观因素评估需求优先级的目的。(4)组织受控实验对DRank和CBRank、AHP、EVOLVE方法的可用性分别进行了比较和评价。在实验中,设计了相关问卷,调查被试关于DRank的易学性、易用性以及使用意图的意见;同时,从人工耗时、需求优先级结果的Top匹配率和评估结果逆序率3个方面,采用假设检验方法分析了 DRank与其它3种方法在可操作性和结果准确性上的差异。分析结果表明被试普遍认为DRank比较有用,容易使用;就所得到的需求优先级的准确性方面,DRank均优于CBRank、AHP、EVOLVE 方法。(5)设计了支持需求建模和优先级评估的原型系统。系统提供的客户端应用可以方便用户在PC机上描述、提交个体知识以及完成对需求的建模、优先级评估操作等;此外系统在服务器端部署的数据管理和分析功能既可以从客户端采集数据和反馈用户请求,还负责完成数据的整理分析工作。本研究对系统的架构和功能设计进行了说明。