One of the Holy Grails of software development has been reusability. Everyone is frustrated with continually reinventing the wheel; everyone knows that reuse would dramatically cut costs; and no one has shown an effective reuse paradigm. The trend has been to develop reuse paradigms without regard to past successful projects. Historically, successes with reuse have been accidental - based on personnel, not on process. Now a new paradigm has emerged that includes a focus on past investments in forming a reuse process. This initiative is DoD's push toward the megaprogramming paradigm. Megaprogramming divides system development into two lifecycles, the first focusing on the problem of leveraging assets through a family of related products, and the second focusing on the problem of delivering a single product. The process for the first lifecycle is domain engineering.
Domain engineering is not easy. It revolves around all kinds of questions that simulation software engineers are not used to asking such as: (a) Is this a viable domain?, (b) Is there an acceptably standard partition of the domain?, (c) Is this domain definable?, (d) What granularity is best for domain work products?, and so forth. Yet, if the DoD is going to successfully transition its approach for the development of software intensive systems to the megaprogramming paradigm, software development organizations are going to have to be empowered to meet these challenges.
The U.S. Navy and the Advanced Research Projects Administration are presently funding a megaprogramming demonstration project in the domain of Air Vehicle Training Systems. How has this project come to grips with the technical challenges of domain engineering? Mostly by leveraging the investments of previous research and development projects in this domain such as the Ada Simulation Validation Program (ASVP), the HAVE Module (Mod Sim) Project, the Software Engineering Institute's Structural Model Initiative, the Manned Flight Simulator (MFS), and a series of planned pilot efforts. This paper discusses the advantages and disadvantages on leveraging previous investments into new domain engineering efforts. Its discussion captures valuable lessons about the transition of existing organizational assets into the megaprogramming paradigm.