From retrospect to prospect: Assessing modularity and stability from software architecture
Kanwarpreet Sethi, Yuanfang Cai, Sunny Wong, Alessandro Garcia, Cláudio Sant’Anna · 2009
Architecture level decisions, directly influenced by environmental factors, are crucial to preserve modularity and stability throughout software development life cycle. Tradeoffs of modularization alternatives, such as aspect oriented vs. object-oriented decompositions, thus need to be assessed from architecture models instead of source code. In this paper, we present a suite of architecture level metrics, taking external factors that drive software changes into consideration and measuring how well an architecture produces independently substitutable modules. We formalize these metrics using logical models to automate quantitative stability and modularity assessment. We evaluate the metrics using eight aspect oriented and object-oriented releases of a software product line architecture, driven by a series of heterogeneous changes. By contrasting with an implementation level analysis, we observe that these metrics can effectively reveal which modularization alternative generates more stable, modular design from high-level models.