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.

development language never<strong>the</strong>less needed to test <strong>the</strong> suitability <strong>of</strong> <strong>the</strong>ir chosen processors and<br />

<strong>the</strong> runtime performance <strong>of</strong> <strong>the</strong>ir chosen compiler. The <strong>SEI</strong> responded to this need by expanding<br />

<strong>the</strong> Ada Embedded Systems Testbed to <strong>the</strong> more general case [Weiderman 1989a]. Benchmarks,<br />

such as <strong>the</strong> Hartstone benchmark, were developed that enabled assessment <strong>of</strong> <strong>the</strong> performance <strong>of</strong><br />

a runtime system.<br />

Ano<strong>the</strong>r source <strong>of</strong> confusion for DoD program managers concerning <strong>the</strong> use <strong>of</strong> Ada for real-time<br />

systems were two prevalent notions, motivated in part by historical experience with <strong>the</strong> use <strong>of</strong><br />

o<strong>the</strong>r high-level languages for real-time systems: (1) <strong>the</strong> notion that <strong>the</strong> Ada language needed to<br />

be modified to achieve needed real-time solutions, and (2) <strong>the</strong> practice <strong>of</strong> extensively modifying<br />

<strong>the</strong> Ada compiler and/or vendor-supplied runtime system. The Distributed Ada Real-time Kernel<br />

(DARK) effort was initiated to address two distinct needs <strong>of</strong> real-time applications: distribution<br />

and hard real-time scheduling mechanisms. DARK was a prototype kernel that demonstrated <strong>the</strong><br />

functionality needed to effectively support <strong>the</strong> execution <strong>of</strong> distributed, real-time Ada applications<br />

in an embedded computer environment by returning control to <strong>the</strong> user [Bamberger 1988]. This<br />

effort was led by a newly hired <strong>SEI</strong> staff member who was formerly a member <strong>of</strong> <strong>the</strong> Ada Language<br />

Design Team and a Distinguished Reviewer, again providing credibility to early <strong>SEI</strong> work.<br />

The resulting prototype was <strong>of</strong>fered to compiler vendors and used by at least one.<br />

These early efforts helped those programs that selected Ada as <strong>the</strong> development language. But,<br />

despite <strong>the</strong> mandate, that decision was not always an easy one for DoD program managers. A program<br />

manager faced many considerations in making <strong>the</strong> language decision, some driven by myth,<br />

some by technology maturity, and some by simple bias. The Air Force program manager for <strong>the</strong><br />

<strong>SEI</strong> asked <strong>the</strong> <strong>SEI</strong> to develop a factual guide for program managers. Relying on <strong>the</strong> work <strong>of</strong> o<strong>the</strong>r<br />

Ada-related projects at <strong>the</strong> <strong>SEI</strong> and <strong>the</strong> substantial expertise <strong>the</strong> <strong>SEI</strong> had accumulated in Ada and<br />

real-time systems development, <strong>the</strong> <strong>SEI</strong> produced <strong>the</strong> Ada Adoption Handbook: A Program Manager’s<br />

Guide [Foreman 1987]. The handbook was an objective guide for DoD program managers<br />

that addressed many <strong>of</strong> <strong>the</strong> myths surrounding <strong>the</strong> use and practicality <strong>of</strong> using Ada on defense<br />

systems. Its thoroughness and objectivity helped establish <strong>the</strong> <strong>SEI</strong> as a source <strong>of</strong> unbiased guidance<br />

on s<strong>of</strong>tware technology. It was so well received and heavily used in <strong>the</strong> DoD that <strong>the</strong><br />

JAC/EG requested an updated version to capture changes in <strong>the</strong> supporting technology. The updated<br />

version was published in 1992 [Hefley 1992].<br />

Adoption <strong>of</strong> Ada was not as widespread as was originally expected, and <strong>the</strong> language has since<br />

been overtaken by o<strong>the</strong>r languages for many applications. To some, this represents failure. That<br />

view misses <strong>the</strong> important point that Ada was a significant step in defining advanced programming<br />

languages with capabilities that support <strong>the</strong> process <strong>of</strong> s<strong>of</strong>tware engineering and aid in system<br />

reliability, particularly for real-time systems. Ada afforded engineers an opportunity to develop<br />

s<strong>of</strong>tware for real-time embedded systems in a high-level language, including within <strong>the</strong><br />

language a capability to specify concurrent execution that was formerly available only by making<br />

reference to an operating system call. Because <strong>the</strong> language was well defined and compilers certified<br />

as being compliant with <strong>the</strong> definition, s<strong>of</strong>tware engineers could develop <strong>the</strong> s<strong>of</strong>tware on host<br />

machines with powerful s<strong>of</strong>tware development environments and reliably port <strong>the</strong> s<strong>of</strong>tware to a<br />

variety <strong>of</strong> target machines. In essence, Ada helped to perfect <strong>the</strong> viability <strong>of</strong> safety critical realtime<br />

systems. Several DoD and NASA programs realized <strong>the</strong>se benefits in developing reliable<br />

real-time systems. Although some <strong>of</strong> <strong>the</strong> people who joined <strong>the</strong> <strong>SEI</strong> had been deeply involved in<br />

<strong>the</strong> development <strong>of</strong> <strong>the</strong> language and supporting infrastructure, <strong>the</strong> <strong>SEI</strong> was not directly involved<br />

CMU/<strong>SEI</strong>-2016-SR-027 | SOFTWARE ENGINEERING INSTITUTE | CARNEGIE MELLON UNIVERSITY 20<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!