We use cookies to improve your experience with our site.

支持软件体系结构的重用驱动演化的变更日志挖掘模型

Mining Patterns from Change Logs to Support Reuse-Driven Evolution of Software Architectures

  • 摘要: 现代软件系统的需求频繁变更,所处的操作环境也不断变化。Lehman的连续修改法要求软件系统要长期存在并不断演进,以延长它的产品寿命并提高它的经济价值,这需要不断更改现有软件。可重用的知识和实践被证实在软件有效且高效的持续开发和演化方面很有帮助。然而,为了支持或提升软件演化,必须解决一些挑战,如可重用知识和实践的经验获取和系统化的应用。我们调查研究了体系结构变更日志——挖掘体系结构为中心内容的软件演化历史——以此找到变更模型,以1)支持体系结构变更的复用,2)提高体系结构演化过程的效率。我们将体系结构变更日志建模成一个图,并应用基于图的形式化方法(即,图挖掘技术)以发现软件体系结构变更模型。我们已经开发了一个支持工具驱动自动化和软件演进中用户决策支持的原型。我们使用了ISO-IEC-9126模型以定性评价本文提出的方案。评价结果显示所提出的方案1)使得频繁的体系结构的变更可以复用,2)使得以结构体系为中心的软件演化过程更有效。此方案促进了利用结构体系变更历史以经验性地发现可以指导体系结构为中心的软件演化的实证知识的科研工作。

     

    Abstract: Modern software systems are subject to a continuous evolution under frequently varying requirements and changes in systems' operational environments. Lehman's law of continuing change demands for long-living and continuously evolving software to prolong its productive life and economic value by accommodating changes in existing software. Reusable knowledge and practices have proven to be successful for continuous development and evolution of the software effectively and efficiently. However, challenges such as empirical acquisition and systematic application of the reusable knowledge and practices must be addressed to enable or enhance software evolution. We investigate architecture change logs-mining histories of architecture-centric software evolution-to discover change patterns that 1) support reusability of architectural changes and 2) enhance the efficiency of the architecture evolution process. We model architecture change logs as a graph and apply graph-based formalism (i.e., graph mining techniques) to discover software architecture change patterns. We have developed a prototype that enables tool-driven automation and user decision support during software evolution. We have used the ISO-IEC-9126 model to qualitatively evaluate the proposed solution. The evaluation results suggest that the proposed solution 1) enables the reusability of frequent architectural changes and 2) enhances the efficiency of architecturecentric software evolution process. The proposed solution promotes research efforts to exploit the history of architectural changes to empirically discover knowledge that can guide architecture-centric software evolution.

     

/

返回文章
返回