A cognitive model for software architecture complexity

More Info
expand_more

Abstract

Evaluating the complexity of the architecture of a softwaresystem is a difficult task. Many aspects have to be considered to come to a balanced assessment. Several architecture evaluation methods have been proposed, but very few define a quality model to be used during the evaluation process. In addition, those methods that do introduce a quality model do not neccesarilly explain why elements of the model influence the complexity of an architecture. In this paper we propose a Software Architecture Complexity Model (SACM) which can be used to reason about the complexity of a software architecture. This model is based on theories from cognitive science and system attributes that have proven to be indicators of maintainability in practice. SACM can be used as a formal model to explain existing quality models, and as a starting point within architecture evaluation methods such as ATAM. Alternatively, it can be used in a stand-alone fashion to reason about a software architecture’s complexity Preprint accepted for publication in the Proceedings of the International Conference on Program Comprehension (ICPC), Braga (Portugal), June 30-July 2, 2010, IEEE Computer Society.