论文部分内容阅读
需求演化是软件项目中出现最频繁、对软件开发影响最大的风险之一。频繁的需求演化会造成软件质量下降、进度延期或成本超支等严重后果,而组织良好的需求演化能够有效的提高软件系统质量、增加客户满意度。因此,有效地管理需求演化是软件项目成功的关键。 当面对开源软件开发过程中产生的大量需求请求时,项目管理者需要快速识别有价值的需求演化,更好地捕获涉众偏好;在演化发生时,需要对演化可能带来的影响进行评估,以便提早进行风险监控和管理。 软件开发和维护过程中会产生大量数据,例如需求规格说明书、缺陷报告、开源环境的需求请求等,这些数据为需求演化管理提供了有利支持。本文基于这些软件工程数据,聚焦“如何快速有效地推荐有价值的需求演化”和“如何准确评估需求演化对软件项目的影响”这两个关键问题。本文研究工作的主要贡献有: (1)提出了一种基于隐性需求特征的演化需求推荐方法。隐性需求特征是指不涉及需求请求和评论的内容、可以通过抽取某些统计数据获得的特征,例如某需求请求的评论数目。与需求请求和评论的内容相比,这些特征反映了共性的涉众意愿,较易自动化获取,基于此能够快速过滤掉低价值的需求,为演化推荐提供决策支持。本文定义了12个隐性需求特征,通过问卷调研和实际项目研究,获取人们对于这些特征能否推荐需求演化的认知和做法。结论发现,7个特征可以用于需求演化的推荐,他们能够用于处理海量的需求请求数据,推荐最可能实现的需求。 (2)提出了需求演化对软件项目计划的影响分析和仿真模型。利用离散事件仿真方法,以需求依赖关系、需求和后续工作产品的跟踪关系为基础,建模并仿真了需求演化对于软件项目计划的影响。基于实际的项目数据进行案例研究,给出了仿真场景、影响分析及模型的效果评价,结论显示本模型可以较准确的仿真需求演化对于项目工作量和项目进度的影响。 (3)提出了基于需求依赖关系网的演化缺陷分析和预测模型。运用社会网络分析的方法,以需求为节点,需求之间的依赖关系为边,建立需求依赖关系网,并基于自我网和全局网计算了21个网络指标。分析了需求依赖关系网的网络指标和软件缺陷属性(主要是缺陷数目、缺陷严重程度、缺陷修复工作量)之间的相关性,并得到基于需求依赖关系网的软件缺陷预测模型。模型能够以很高的准确性和敏感度进行版本内、跨版本和跨组织的的缺陷预测。