Evaluating and Mitigating the Impact of Complexity in Software Models

Abstract

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.

Open PDF

Document Details

Document Type
Technical Report
Publication Date
Dec 01, 2015
Accession Number
AD1044993

Entities

People

  • James Mchale
  • John J. Hudak
  • Julien Delange
  • Min-young Nam
  • William R. Nichols

Organizations

  • Carnegie Mellon University

Tags

Communities of Interest

  • C4I
  • Cyber
  • Space

DTIC Thesaurus Topics

  • Air Force
  • Application Software
  • Computer Programming
  • Computer Programs
  • Computers
  • Control Systems
  • Debugging
  • Engineering
  • Language
  • Maintenance
  • Maintenance Costs
  • Operating Systems
  • Programming Languages
  • Reliability
  • Software Design
  • Software Development
  • Software Testing

Fields of Study

  • Computer science
  • Engineering

Readers

  • Life Cycle Cost Analysis
  • Software Engineering.
  • Systems Analysis and Design

Technology Areas

  • Space