Issue No.03 - May (1996 vol.13)
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/52.493021
Product-line development seeks to achieve reuse across a domain, or family, of systems. Product-line development separates the software-development process into two separate life cycles: domain engineering, which aims to create reusable assets, and application engineering, which fields systems using those assets. We used product-line development on a $14 million demonstration project to develop real-time training systems for flight crews. Our project was part of the US Department of Defense's Software Technology for Adaptable, Reliable Systems project. Our domain was Air Vehicle Training Systems, and our first product was the T-34C Flight Instrument Trainer. The project had two phases. In the first phase, a small team was to domain-engineer a slice of the AVTS domain. Following a successful readiness review, in phase two a larger team was to develop the AVTS domain in full so that it was capable of supporting the development of a specific product, the T-34C Flight Instrument Trainer. Our project was a technical success. The goals identified in the restructured project were met or exceeded with fewer resources than promised. The project remains one that is "management challenged": Managers are challenged to change the organizational concepts of procuring, contracting, developing, and maintaining software-intensive systems. We learned that product-line development demands careful strategic planning, a mature development process, and the ability to overcome organizational resistance.
Randall R. Macala, Lynn D. Stuckey, Jr., David C. Gross, "Managing Domain-Specific, Product-Line Development", IEEE Software, vol.13, no. 3, pp. 57-67, May 1996, doi:10.1109/52.493021