posted on 2013-11-11, 15:12authored byAakash Ahmad, Pooyan Jamshidi, Claus Pahl
Software systems continuously evolve as a consequence of frequent changes in their functional requirements and the environment surrounding them. Architecture-centric software evolution (ACSE) enables changes in software structure and behaviour while abstracting the complex implementation-specific details. However, due to recurring evolution there is a need for solutions that enable a systematic reuse of frequent changes in software architectures. In recent years, architecture change patterns and evolution styles proved successful in promoting reuse expertise to tackle architecture evolution. However, there do not exist any solutions that enable a continuous acquisition and application of architecture evolution knowledge to systematically address frequent changes in software architectures. In this paper, we propose a framework PatEvol that aims to unify the concepts of i) software repository mining and ii) software evolution to enable acquisition and application of architecture evolution knowledge. In the proposed PatEvol framework, we present knowledge acquisition (architecture evolution mining) to enable post-mortem analysis of evolution histories to empirically discover evolution-centric knowledge. Furthermore, we support reuse of discovered knowledge to enable knowledge application (architecture evolution execution) that enables evolution-off-the-shelf in software architectures. Tool support facilitates the knowledge acquisition and knowledge application processes in the PatEvol framework.
History
Publication
ACM SIGSOFT Software Engineering Notes;38(5), pp. 1-7