Analytical Design of Evolvable Software for High-Assurance Computing

Abstract

Software is a ubiquitous feature of today's world. The goodness of products and services is frequently dependent on the goodness of the related software. Optimal software performs correctly and requires minimal effort and cost to develop and maintain. The development of optimal software is an admirable goal but is difficult to achieve. In particular, software maintenance and evolution is costly and error-prone. The significance of the problem is magnified for high-assurance applications that require the certainty that the software will behave reliably despite budget constraints and product evolution. Though automated software development is the ideal solution, design for evolution is the practical solution. For most applications, analysis of the required behavior (behavioral analysis) and translation into a blueprint for building the software (software design) are necessary. High-level design involves the organization of the required behavior into building blocks or components. Design for evolution is the generation of a software architecture that can be changed with minimal human effort to produce a class of similar applications. Design for evolution makes feasible the cost effective development of high-assurance applications. This dissertation presents a semi-automatable research approach for designing an evolvable software architecture. The research approach focuses on the partition of basic elements of a software solution into reusable components that localize the effects of change. The input to the partitioning process is a set of software requirements along with an analysis of the required behavior and planned or feasible evolution of the product line. The output is a partition of the required behavior into components that reduce the effort associated with developing a software product line. The dissertation provides an analytical verification of the research approach through proof and constructive examples.

Open PDF

Document Details

Document Type
Technical Report
Publication Date
Feb 14, 2001
Accession Number
ADA459872

Entities

People

  • Carol L. Hoover

Organizations

  • Carnegie Mellon University

Tags

Communities of Interest

  • C4I
  • Energy and Power Technologies
  • Human Systems
  • Space
  • Weapons Technologies

DTIC Thesaurus Topics

  • Application Software
  • Attrition
  • Cognitive Systems Engineering
  • Computer Programming
  • Computer Programs
  • Computer Science
  • Computers
  • Databases
  • Information Science
  • Information Systems
  • Operating Systems
  • Programming Languages
  • Psychology
  • Software Design
  • Software Development
  • Software Metrics
  • Word Processors

Fields of Study

  • Computer science
  • Engineering

Readers

  • Operations Research
  • Parallel and Distributed Computing.
  • Systems Analysis and Design