Towards evolvable software architectures based on systems theoretic stability



In today's increasingly volatile environments, evolvability is quickly becoming the most desirable characteristic of information systems. Current information systems still struggle to provide these high levels of evolvability. Based on the concept of stability from systems theory, we require that information systems should be stable with respect to a set of anticipated changes in order to exhibit high evolvability. This requires that information systems should be free from so-called combinatorial effects. Combinatorial effects occur when the impact of a change is dependent on the size of the information system. To eliminate these combinatorial effects, we propose four theorems that are constraints on the modular structure of software architectures. The theorems are prescriptive and ensure that stable information systems are built, thereby guaranteeing high evolvability. We further present five higher level modular structures called elements. These elements provide the core functionality of information systems and comply fully with the stringent constraints implied by the four theorems. The internal structure of these elements is described by design patterns which are eligible for automatic code generation. These design patterns offer a constructive proof that it is possible to build information systems in practice by applying this set of theorems. Copyright © 2011 John Wiley & Sons, Ltd.