ASE2 CARD CATALOG ENTRY
Synthesis is a methodology for constructing software systems as instances of a family of systems that have similar descriptions (Campbell, Faulk, and Weiss 1990). This guidebook provides an introduction to the practice of the Synthesis methodology of software development. To the degree that you understand the essential similarities and variations in the systems you build, Synthesis enables you to exploit those similarities to eliminate redundant work. A mature organization will be able to satisfy the needs of its customers by answering the questions that are left open because of variations.
Synthesis focuses on your need both to deliver high quality products to customers and to accomplish this profitably. To this end, a Synthesis process consists of two subprocesses: Application Engineering and Domain Engineering. Application Engineering is how a group (or project) in your organization creates a product to meet customer requirements. Domain Engineering is how your organization improves productivity by creating a product family and a supporting Application Engineering process, tailored for projects in your business area. The details of these subprocesses will differ depending on the capabilities of your organization to practice reuse effectively.
Since projects in the same business area tend to build systems that satisfy similar needs, these systems can be thought of as instances of a family. A family of systems is a basis for a flexible approach to standardization that can accommodate diverse and changing needs. A business area whose objectives are fulfilled by a family is a domain. Both the mission of an organization and the changing needs of its customers determine the objectives of that business-area organization (i.e., product line). Synthesis is a comprehensive, business-area-level solution to problems of software productivity, product quality, manageability, and responsiveness in the building of systems to meet diverse and changing needs. Synthesis is a systematic approach to software development founded on the belief that the resources of a business-area organization should be managed not only to meet the immediate needs of customers, but also as an investment in future capability.
This guidebook describes two instances of a Synthesis family of processes, one that is opportunistic in character, the other that is leveraged. The opportunistic process is oriented toward organizations having modest reuse needs and capabilities. The leveraged process is oriented toward organizations that can make a greater commitment to reuse and that have more advanced needs and capabilities.
This guidebook defines Synthesis, a sound approach for effective family-oriented software development. It serves as a detailed guide to the practice of Synthesis and helps you begin to practice it. As you gain experience in practicing Synthesis, you will be able to refine and modify this guidance to meet the specific needs of your organization more effectively.
The scope of this guidebook includes all activities and work products related to production of software and support of the needs and objectives of a business-area organization and its customers. Synthesis activity is initiated, via a Reuse Adoption process (Software Productivity Consortium 1992c), with the establishment of organizational business objectives for a domain. In addition, various Synthesis activities require you to standardize management, requirements, design, implementation, and verification and validation practices throughout your organization. Synthesis is an integrating framework for the methods you choose to standardize your practices. Detailed descriptions of particular methods are generally outside the scope of this guidebook. Such descriptions are available to you, often in other Consortium publications that are referenced, where appropriate, throughout this guidebook. Standardization of these activities in terms of purpose and technique, using methods of your choice, is essential to an effective Synthesis practice.
The audience for this guidebook includes business-area managers, project managers, and engineers of all disciplines who work together to accomplish the objectives of a business-area organization. Readers should be knowledgeable and experienced in the standard (or prevailing) software development methods used in their organization, but are assumed to have no experience with Synthesis. Practical use of this release of the guidebook requires the participation of knowledgeable technologists. Pilot projects are a requisite first step in transitioning to production use.
2.0.3 1 June 94 Initial release to the PAL
Approved for public release; Distribution unlimited
This documentation is provided "AS IS" and without any expressed or implied warranties whatsoever. No warranties as to performance, merchantability, or fitness for a particular purpose exist. The user must assume the entire risk and liability of using this document. In no event shall any person or organization of people be held responsible for any direct, indirect, consequential or inconsequential damages or lost profits.
Powered by the Generic Web-Based Reuse Library (GWRL)