Ada-oriented software engineering environments
Authors: Larry E. Druffel
Venue: Proceedings of the conference on TRI-ADA '90 (1990)

Among the objectives of the Ada Program was to benefit from modern software engineering practices supported by powerful tools integrated into a software engineering environment. We believed that the introduction of Ada offered an opportunity to introduce improved software engineering practices. We also believed that Ada would be more broadly adopted if Ada were supported by a powerful integrated environment. I continue to hold these two beliefs. The process of defining the requirements for an environment were initiated in 1979, even before the language definition was complete. Following an approach similar to the Steelman process used by Whitaker and Fisher, we developed Stoneman -- an initial requirements document for an Ada Programming Support Environment (APSE). Stoneman proposed an initial kernel (KAPSE) as an open interface around which to establish a commerce in tools. Two contracts were initiated for building a KAPSE with a minimum suite of tools. The Army contracted for development of the Ada Language System and the Air Force contracted for the Ada Integrated Environment. To keep the interfaces consistent, we initiated a joint service, industry and academic team effort (KIT/KITIA), which produced a tool interface definition called the Common APSE Interface Set (CAIS). The two service environment contracts served the useful purpose of convincing the industry that we were seriously committed to the approach. The industry responded with serious private investment with three different approaches: Data General, DEC, HP, Gould and IBM incorporated Ada into their existing multilanguage framework. Verdix used UNIX as a base to capitalize on the growing number of tools for UNIX. Rational created an Ada-oriented environment. Efforts to develop an interface standard continued along divergent paths. The European Community produced PCTE with UNIX implementations while the U.S. produced CAIS-A. The tool vendors also responded with private investment, producing a variety of Ada-oriented tools. Many of the tools addressed front-end design and left the compiling to others. Today, we are seeing second generation environments based on early successes while removing some off those early systems limitations. We are also experiencing corporate partnerships among companies such as Alsys with HP, Rational and IBM, DEC with SDL. We also see tools appearing on multiple systems, although generally not as a result of interface standards. The initial government funded environments were necessarily oriented toward Ada coding with principal emphasis on the compiler. Today, two government funded environments are focusing on the broader issues of software engineering: the NASA SEE and the STARS program. The STARS efforts are focused on software engineering support for a process oriented/reuse paradigm. These efforts continue the government commitment to the importance of software engineering. One of the criticisms of the early focus on environments was that it delayed the introduction of Ada. It is certainly true that some program offices used the lack of a mature environment as an excuse to avoid use of Ada while sometimes accepting lesser capability in the support for the chosen language. In retrospect, the delay was probably beneficial because it allowed the Ada compilers to mature. While we have reasonably mature programming environments today, their existence supports, but does not ensure, the use of software engineering practice. The goal was not to have software engineering environments. Neither was it to have a set of tools. The goal was to promote modern software engineering practice through those environments and tools. Although we have made some progress toward that goal, we have a long way to go, but at least the journey has begun.