Software systems undergo several changes along their life-cycle and hence, their models may become outdated. To tackle this issue, we propose an efficient algorithm for adaptive learning, called partial-Dynamic L*M (∂L*M); that improves upon the state-of-the-art by exploring observation tables on-the-fly to discard redundant prefixes and deprecated suffixes. Using 18 versions of the OpenSSL toolkit, we compare our proposed algorithm along with three adaptive algorithms. For the existing algorithms in the literature, our experiments indicate a strong positive correlation between number of membership queries and temporal distance between versions and; for our algorithm, we found a weak positive correlation between membership queries and temporal distance and a significantly lower number of membership queries. These findings indicate that, compared to the state-of-the-art algorithms, our ∂L*M algorithm is less sensitive to software evolution and more efficient than the current approaches for adaptive learning.
Learning to reuse: Adaptive model learning for evolving systems