软件过程模型是一种描述软件开发过程中所涉及的人员、活动、资源和制品之间关系的静态模型。针对软件过程进行建模不仅有利于研究人员和流程管理者更全面地认识软件过程,并且有助于发现软件过程中存在的问题和漏洞,从而进一步对软件过程进行改进和提效。随着软件生命周期进一步扩展,在自动化工具和实践的驱动下,软件交付周期缩短;另外,大量支持开发的自动化工具被广泛应用,为更细粒度、更高保真度的软件过程建模提供了基础条件。但是,当前对于软件过程模型的构建面临着一系列挑战。挑战一,数据记录和建模目标不一致,软件资源库中记录的数据主要针对制品的属性信息而非过程的行为信息,导致无法直接获得过程描述数据。挑战二,数据质量差和有效性不足,这体现在数据记录中含有大量的不一致、缺失和难以理解的信息条目。挑战三,软件过程模型的构建效率低、保真度差。现有过程模型的构建很大程度上依赖于建模者的经验和对业务过程的认知,但认知建立过程效率低、主观性强,难以客观具体地还原过程原貌。为了应对构建软件过程模型面临的挑战,本文设计了一套软件过程自动建模方法,并基于该方法实现了一套名为“Software Process Analyzer”(SPA)的软件过程自动建模工具,用于辅助建模者进行数据处理和过程建模。针对挑战一和挑战二,SPA的数据处理模块能够将来自不同数据源、不同内容和格式的数据进行抽取、清洗、整合与转换,生成符合要求的过程事件日志。针对挑战三,SPA的过程挖掘模块集成了多种过程发现和模型评估算法,可以还原出客观具体的过程模型并对其进行评估;除此之外,SPA还能提供参数统计、聚类等一系列过程参数分析功能,方便建模者更加直观地认识目标对象的具体过程。最后,为了验证本文提出的软件过程自动建模方法的可行性与对应工具的有效性,本文选择软件工程中的持续集成(Continuous Integration,CI)过程作为案例进行研究。使用该建模方法及分析工具,对CI过程进行日志获取和处理、过程发现、一致性检验和参数分析,进一步验证了本文提出的软件过程自动建模方法,以及基于该方法实现的工具SPA,能够有效辅助建模人员进行软件过程建模的工作。
暂无评论