This paper reports on an exploratory study of how the architecture of a software product evolves over time. Because software is embedded in many of today’s complex products, and it is prone to relatively rapid change, it is instructive to study software architecture evolution for general insights into product design. We use metrics to capture the intrinsic complexity of software architectures as they evolve through successive generations (version releases). We introduce a set of product representations and metrics that take into account two important features used to manage the complexity in software products: layers and modules. We also capture organizational data associated with the product under development. We propose a three-step approach for the analysis and illustrate it using successive versions of an open source product, Ant. One of our findings is that software architectures seem to evolve in a non-linear manner similar to the S-shaped curve that characterizes technology evolution at the industry level. We also find several parallel patterns among architectural and organizational dynamics. Implications for research and practice are discussed.
- Design Engineering Division and Computers and Information in Engineering Division
Studying the Dynamics of the Architecture of Software Products
- Views Icon Views
- Share Icon Share
- Search Site
Sosa, ME, Browning, T, & Mihm, J. "Studying the Dynamics of the Architecture of Software Products." Proceedings of the ASME 2007 International Design Engineering Technical Conferences and Computers and Information in Engineering Conference. Volume 3: 19th International Conference on Design Theory and Methodology; 1st International Conference on Micro- and Nanosystems; and 9th International Conference on Advanced Vehicle Tire Technologies, Parts A and B. Las Vegas, Nevada, USA. September 4–7, 2007. pp. 329-342. ASME. https://doi.org/10.1115/DETC2007-34761
Download citation file: