11.01.2017 Views

A Technical History of the SEI

ihQTwP

ihQTwP

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Configuration Management<br />

The Challenge: Configuration Support for S<strong>of</strong>tware Developers<br />

When <strong>the</strong> <strong>SEI</strong> was founded in <strong>the</strong> mid-1980s, s<strong>of</strong>tware development was already a complex activity,<br />

with single projects <strong>of</strong>ten involving millions <strong>of</strong> lines <strong>of</strong> code and large (<strong>of</strong>ten distributed)<br />

teams <strong>of</strong> developers. At <strong>the</strong> time, developers in government and industry, including government<br />

contractors, adapted established configuration management (CM) practices in o<strong>the</strong>r engineering<br />

disciplines, such as versioning <strong>of</strong> design documents and physical system parts and managing<br />

changes through change control boards [IEEE 1987]. They complemented <strong>the</strong>se practices with<br />

version control systems to manage versions and revisions <strong>of</strong> <strong>the</strong>ir source code; <strong>the</strong>y used databases<br />

for tracking versions and changes to <strong>the</strong> artifacts. Many were home-grown systems. However,<br />

s<strong>of</strong>tware development presented several unique challenges. First, s<strong>of</strong>tware development is a<br />

continuous design activity in which bug removal affects <strong>the</strong> design. Second, s<strong>of</strong>tware design and<br />

source code are easily changed, and configuration, parameterization, and deployment <strong>of</strong> s<strong>of</strong>tware<br />

on hardware can result in unexpected system behavior. Third, s<strong>of</strong>tware development is easily distributed<br />

across multiple teams, thanks to networked computing environments, which were emerging<br />

in <strong>the</strong> early 1980s. Finally, at that time, system engineering drove <strong>the</strong> development process,<br />

with s<strong>of</strong>tware developers getting involved late in <strong>the</strong> process and having to write code against ambiguous<br />

specifications and repeatedly changing requirements. (These were some <strong>of</strong> <strong>the</strong> factors<br />

contributing to <strong>the</strong> s<strong>of</strong>tware crisis that prompted <strong>the</strong> establishment <strong>of</strong> <strong>the</strong> <strong>SEI</strong>.)<br />

A Solution: Configuration Management Tools<br />

In <strong>the</strong> 1980s, DARPA—<strong>the</strong> main <strong>SEI</strong> sponsor—was interested in research into configuration support<br />

for s<strong>of</strong>tware development environments, both for Ada specifically and for environments in<br />

general. At <strong>the</strong> <strong>SEI</strong>, work was soon under way to establish a framework for improving <strong>the</strong> s<strong>of</strong>tware<br />

process, which became known as <strong>the</strong> Capability Maturity Model [Humphrey 1988]. This<br />

framework included configuration management as a key process area, leveraging established CM<br />

practices [IEEE 1987].<br />

From <strong>the</strong> mid-1980s to 1993, <strong>the</strong> <strong>SEI</strong> worked on tool-based solutions supporting <strong>the</strong> full s<strong>of</strong>tware<br />

development process and complementing <strong>the</strong> organizational process focus <strong>of</strong> <strong>the</strong> CMM. The <strong>SEI</strong><br />

quickly expanded from evaluating Ada environments [Weiderman 1987] to integrated s<strong>of</strong>tware<br />

development environments (ISDE). Recognizing <strong>the</strong> challenges <strong>of</strong> configuration management for<br />

s<strong>of</strong>tware, in 1988 <strong>the</strong> <strong>SEI</strong> established a series <strong>of</strong> international s<strong>of</strong>tware configuration management<br />

workshops under <strong>the</strong> auspices <strong>of</strong> <strong>the</strong> ACM, chairing <strong>the</strong> first set <strong>of</strong> workshops [Winkler 1988,<br />

Feiler 1991]. These workshops continued for more than a decade. The <strong>SEI</strong> published papers on<br />

<strong>the</strong> role <strong>of</strong> CM in integrated environments [Dart 1989], <strong>the</strong> different roles CM plays throughout<br />

<strong>the</strong> s<strong>of</strong>tware system lifecycle and <strong>the</strong> concepts supporting <strong>the</strong>m [Feiler 1988], and process support<br />

through CM [Feiler 1989]. To facilitate collaboration between <strong>the</strong> s<strong>of</strong>tware process and <strong>the</strong> ISDE<br />

research communities, <strong>the</strong> <strong>SEI</strong> published a set <strong>of</strong> s<strong>of</strong>tware process development and enactment<br />

concepts and definitions [Feiler 1992]. As promising research results emerged, <strong>the</strong> <strong>SEI</strong> assessed<br />

<strong>the</strong> state <strong>of</strong> <strong>the</strong> art in ISDE and its support for CM [Brown 1992, 1993a]. In <strong>the</strong> early 1990s, <strong>the</strong><br />

<strong>SEI</strong> provided <strong>the</strong> co-chair <strong>of</strong> <strong>the</strong> Navy NGCR Project Support Environments Standards Working<br />

Group (PSESWG) and took on a lead role in <strong>the</strong> development <strong>of</strong> a reference model for Integrated<br />

S<strong>of</strong>tware Engineering Environments [Brown 1993b], which included configuration management<br />

CMU/<strong>SEI</strong>-2016-SR-027 | SOFTWARE ENGINEERING INSTITUTE | CARNEGIE MELLON UNIVERSITY 203<br />

Distribution Statement A: Approved for Public Release; Distribution is Unlimited.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!