当前位置:问答库>论文摘要

题目:群体软件开发模型与质量管理方法研究

关键词:群体软件工程;质量-成本-报酬开发模型; TopCoder;博弈论

  摘要


随着通信和计算技术的迅猛发展,先进网络基础设施和信息应用系统建设已经步入“大规模系统”时代。如何设计、开发和维护大规模软件系统,使之成为可以长期持续运行、有效管理和可靠服务的信息基础设施,为广大的用户提供丰富而个性化的服务,是摆在软件工程研究人员面前的巨大挑战。软件工程开发由此从软件工厂模式转变为群体生产模式,代表了应对大规模系统的软件危机的革命性变革。群体软件工程开发模型和质量管理方法可以为应对软件危机、开发大规模软件提供理论保证和实践指导。

传统的计划驱动型软件开发方法已经主导了软件工程领域几十年的时间,其思维方式植根于硬件系统,假定用户的需求可以事先完全确定,每个软件开发中出现的问题都可以找到精确和可预测的解决方案。然而,面对高度分散化、存在内在冲突和未知需求的大规模系统,传统软件开发方法缺乏足够的柔性和灵活度,因此难以适应连续不断的软件演化和部署需求。

本文面向大规模软件系统的体系架构和开发过程,基于群体软件工程的基本理论,采用博弈理论和经验软件工程的分析方法,重点围绕群体软件工程开发模型的构建以及其中竞争社区、质量保证等关键技术进行了深入研究。

首先,针对大规模软件在分布式开发环境中由于各开发团队相对独立,导致软件的质量、成本与报酬难以统一描述与管理的问题,提出了群体软件工程的质量-成本-报酬(Quality-Cost-Value, QCV)开发模型。该模型突破了传统软件开发模型仅考虑单一因素的局限性,建立了质量目标、成本目标、报酬目标三者之间的关联模型,构建了一种综合较优的软件开发过程模型,从而为大规模软件的群体开发提供了理论指导。

其次,为了刻画竞争性群体软件社区中开发者的动态行为和交互关系,提出了一种全面的分析和建模方法,分别从个人行为模式和社区交互两个方面来分析群体软件开发社区。通过收集和分析十年来在TopCoder平台上运行的所有开发比赛的数据集,验证了所提出的分析框架。对TopCoder比赛中的个人行为和决策模式建模,来描述每个参赛者的决策过程。同时引入了竞争网络的概念,用来表达TopCoder开发人员之间的竞争互动关系,并以此为基础进行竞争网络的拓扑特性分析,以探讨开发人员的竞争互动对开发人员的排名和软件项目质量的影响。

第三,针对群体软件对抗性质量保障过程中的竞争问题,提出了一个多人博弈模型,刻画对抗性质量保障过程的群体竞争交互行为。对该博弈模型的纳什均衡分析,确定了影响群体软件人员对其他人发起对攻挑战决策的主要因素。通过对TopCoder 算法竞赛的挑战阶段相关的数据集的经验分析,验证了该理论模型。