While it is widely agreed that architectural simplicity is a key factor to the success of large software systems, it is not obvious how to measure architectural complexity. Our approach to measuring complexity is based on observation that large systems with a regular substructure are simple to create and maintain, whereas even relatively small systems created in an ad hoc fashion quickly become unmaintainable. This paper describes a system, called IAPR, that aids in architectural exploration and measurement by attempting to match patterns to an architecture. To do this, IAPR implements a heuristic form of sub-graph isomorphism--an NPhard problem--using the Constraint Satisfaction paradigm to limit the complexity of the problem space. Keywords Knowledge-based Software Engineering, Software Architecture, Patterns
Rick Kazman, M. Burth