This presentation was part of the First International Workshop on Software Architecture Metrics, held at the 11th Working IEEE/IFIP Conference on Software Architecture.
Industry practitioners grapple with poor and degraded architectures that slow the progress of software evolution and reduce profits. Practitioners require architecture metrics that support sustainable software architectures reflecting quality attributes such as maintainability, extensibility, component reliability, and structural integrity. Improving software maintainability thorough architecture design involves guiding the dependencies of architecture components to their most optimal configuration. Practitioners need to measure architecture extensibility to support feature evolution necessary to sustain a software business model. Metrics related to component reliability include component failure rate and quantified fault-tolerant design features that combine in models of system use. Metrics for structural integrity should support evaluation of the risk of injecting faults when modifying software components in an architecture.
Each of these areas relates to a specific business need that provides value to the product and the organization. Maintainability for software relates to development effort for new features and bug fixes. Extensibility relates to feature velocity, which in turn drives revenue through new software sales. Component reliability drives customer satisfaction and performance in business-critical systems. Structural integrity of an architecture drives customer satisfaction (controlling the bad-fix rate) and employee satisfaction through fewer issues with the product. Supporting architecture metrics in these domains will provide industrial practitioners with tools they need to manage software architecture in a business-case-driven corporate environment. This presentation covers experiences in the development of measurement objectives that support these domains.