Premium
3.2.2 Enabling Economics‐Driven Systems Engineering Through Reusable Software Architectures and Components
Author(s) -
Selby Richard W.
Publication year - 2007
Publication title -
incose international symposium
Language(s) - English
Resource type - Journals
ISSN - 2334-5837
DOI - 10.1002/j.2334-5837.2007.tb02888.x
Subject(s) - software engineering , software development , software construction , reuse , computer science , software system , software quality , component based software engineering , systems engineering , software , software sizing , package development process , engineering , operating system , waste management
Economics‐driven systems engineering integrates system design principles with measurement‐based analyses of value, options, and tradeoffs. This study helps enable economics‐driven systems engineering by describing an example of measurement‐based analysis of software reuse in large‐scale systems. Software reuse enables developers to leverage past accomplishments and facilitates significant improvements in software productivity and quality. Software reuse catalyzes gains in productivity by avoiding redevelopment and gains in quality by incorporating components whose reliability has already been established. The purpose of this study is to characterize software reuse empirically by investigating one development environment that actively reuses software. Twenty‐five software systems ranging from 3000 to 112,000 source lines have been selected for analysis from a NASA systems development environment. The amount of software either reused or modified from previous systems averages 32% per project in this environment. Non‐parametric statistical models are applied to examine numerous development variables across the software modules in the systems. This research focuses on initial results and graphical characterizations of the data. Four classes of software modules are analyzed: (a) modules reused without revision, (b) modules reused with slight revision (< 25% changes), (c) modules reused with major revision (≥ 25% changes), and (d) newly developed modules. The modules reused without revision had the fewest faults, lowest fault correction effort, and lowest fault densities. In conclusion, we outline future research directions that build on these strategies and ideas.