Evolving strategies for software architecture and reuse
Josef Nedstam, Mark A. Staples · Software Process Improvement and Practice · 2007
Abstract To achieve their business objectives, software developing companies employ different technical and managerial strategies concerning architecture and reuse. These strategies include component‐based development, software platforms, product lines and highly configurable code bases. Frameworks for describing these strategies have recently emerged, presenting them in orders of ‘increasing maturity’, with researchers declaring specific architectural strategies to be more mature than others. Such frameworks can be useful in helping a company realize a particular architectural strategy but they do not provide guidelines concerning which architectural strategies are appropriate for companies in particular situations. Different companies have different needs—the business context and business goals of a company will determine which architectural strategy is most suitable for that company. There is no universally ‘most mature’ strategy. In this article, we have studied architectural situations in thirteen companies in order to determine why and how these companies have moved between architectural strategies and how these relate to reuse and business goals and conditions. We present a framework for describing these and provide guidelines for companies about how to traverse the maze of architectural evolution. Copyright © 2007 John Wiley & Sons, Ltd.