STARS (Software Technology for Adaptable, Reliable Systems) is a long running ARPA project aimed at advancing the management, quality, adaptability, and reliability of DoD software intensive systems. Over the years, the STARS project has gradually focused on enabling a paradigm shift of DoD software practices to megaprogramming, or software product line development. The central megaprogramming concept is a process-driven, two-life-cycle approach to software development. One life-cycle spans the creation and enrichment of a family of related products, or domain engineering. The other life-cycle spans the construction and delivery of individual instances from the domain. This approach may provide substantial opportunity for leveraged reuse, that is, planned use of adapted software components in multiple products.
As part of the STARS project, The U.S. Navy and the ARPA are presently funding a megaprogramming demonstration project in the domain of Air Vehicle Training Systems (AVTS). The focus of this demonstration is the construction of a domain capable of supporting multiple instances of the Navy's training systems product family. This demonstration concludes in October of 1995. If megaprogramming proves useful in this domain, it promises dramatic increases in productivity along with corresponding reductions in the cost of building simulators.
Given the progress and investment in this technology thus far, it is appropriate to consider the changes in the training systems community that will occur if megaprogramming in the AVTS domain proves successful. Clearly, there will be significant changes in the nature of the training systems development, both in terms of technical practices and business practices. This paper introduces megaprogramming, discusses the challenges involved in adopting megaprogramming, and finally speculates as to the implications of change in the community if megaprogramming is adopted. The discussion is based on the experiences and lessons learned on the project.