Evaluating and Mitigating the Impact of Complexity in Software Models
December 2015 • Technical Report
This report defines software complexity, metrics for complexity, and the effects of complexity on cost and presents an analysis tool to measure complexity in models.
Software Engineering Institute
CMU/SEI Report Number
DOI (Digital Object Identifier):10.1184/R1/6573509.v1
Safety-critical systems, such as those used in the avionics, aerospace, medical, and automotive domains, are becoming more software reliant, and their size has increased enormously. These systems are becoming more complex, increasing certification costs. As certification is expensive and verification activities require significant manpower, this increasing complexity impacts the total cost of ownership. While part of the complexity is intrinsic to system functions and requirements, another part can be avoided. As software development is moving toward model-based approaches, reducing software model size and avoidable complexity would lower certification costs and reduce software maintenance efforts. This report defines software complexity, metrics for complexity in models, and the effects of model complexity on levels of effort in the development, integration, maintenance, and upgrade costs of a project lifecycle. It focuses on popular code metrics for models; their definition, measurement, and implications for development efforts; and techniques that have been used to reduce complexity, such as implementing a complexity measurement tool on a modeling tool. This report also presents an analysis tool that can be used to identify and measure complexity in a model-based development approach and explains how to apply the newly defined metrics.