"The Heart and Soul of Apollo: Doing it Right the First Time"

Margaret Hamilton, the Lead Apollo Flight Software Designer, In a Mockup of the Apollo Command Module (MIT Photo)
Margaret Hamilton
Hamilton Technologies, Inc.
(Formerly MIT Instrumentation Lab for Apollo and Shuttle)

2004 MAPLD Presentation


This talk is about a technology that has had a core focus on reliability since its inception.  It is about a technology that can be used today for designing systems and building software to address problems considered next to impossible to solve, if not impossible, with traditional approaches, at least in the foreseeable future. It helps to suspend any and all preconceived notions when first introduced to this technology because it is a world unto itselfa complete new way to think about systems and software. Its preventative paradigm, Development Before the Fact (DBTF), will be discussed as well as its associated universal systems language (001AXES) and automated life cycle environment.

The technology in large part was derived and evolved as a result of lessons learned based on an empirical study of the Apollo on-board flight software effort. Apollo was and still continues to be the catalyst for how it got started and how it continues to evolve. It also takes roots from concepts older (e.g., mathematics) and newer than Apollo; keeping in mind the relevance of a technology is independent of its age. 

Defining software as a system in its own right, with a system engineering viewpoint, can lead to significant results. With this approach, instead of object oriented systems the designer thinks in terms of system oriented objects (SOOs); instead of model driven systems the designer thinks in terms of system driven models. Much of what seems counter intuitive with traditional approaches, that tend to be software centric, becomes intuitive with DBTF, which is system centric. Issues such as those related to inherently minimizing errors and inherently maximizing integration of systems to software, reuse, open architecture and evolvable systems; and increasing the productivity in a system's development become better understood; this understanding can then be used as a means to an end­­building better software; software that works.

Having said this, the essence of DBTF will be described as well as how it addresses some of today's most pressing system engineering and software development issues. Examples are used to illustrate the paradigm including some taken from work currently being done for the military to solve issues not heretofore addressed in this arena.

Presented in Session S: NESC Software Workshop


2004 MAPLD International Conference Home Page