PRODUCT DESCRIPTION
PROCESS DESCRIPTION
INTERACTIONS WITH OTHER ACTIVITIES
Application Engineering is a Synthesis process for creating and supporting an application product that satisfies specified customer requirements. A product is represented by a set of associated work products that result from analysis of those requirements. Application Engineering is characterized by a comprehensive life-cycle process for the management, analysis, production, and support of a product as a set of work products that offer opportunities for reuse.
In an organization practicing opportunistic Synthesis, the Application Engineering process combines activities that create work products from scratch with activities that reuse existing work products, in whole or in part, available from Application Engineering Process Support. Activities involving reuse focus on application engineers resolving standardized decisions relating to the work product to determine whether members of existing work product families will satisfy Application Engineering needs. Based on these decisions, application engineers obtain useful work products from Application Engineering Process Support and tailor them into work products that completely meet customer requirements.
The objectives of Application Engineering are to:
Application Engineering requires the following information:
Application Engineering requires domain, business, and software knowledge and experience in:
The product of Application Engineering is a set of work products as determined by the process being followed. Projects use their organization's normal software development process producing familiar work products. Among the work products that an Application Engineering process might produce are software requirements documents, software system architectures, and software partitioned into separately developed components.
The Application Engineering Activity consists of a set of activities specific to the software development process your organization uses. You perform the same set of activities whether or not you practice opportunistic Synthesis. Within activities, however, you seek opportunities to reuse existing work products; thus, how you perform activities may differ when you incorporate opportunistic Synthesis into your software development.
Figure AE-1. A Prototypical Application Engineering Process. shows an ESP-derived and prototypical process for Application Engineering. It is recognizable as a conventional waterfall software development process and therefore straightforward to tailor to the needs of your organization. Reuse within this process is entirely localized to focus on rapid production of draft individual application engineering work products.
The activities of the Application Engineering process are organized into three classes. (In the ESP model, activities are grouped into subclasses, and the subclasses are grouped into classes.) The classes are as follows:
In this opportunistic Synthesis process, reuse occurs while performing certain Application Engineering activities-specifically, those yielding work products for which Domain Engineering has implemented application engineering work product families. Thus, application engineers perform the activities of the process shown in Figure AE-1. A Prototypical Application Engineering Process.
The way each activity is performed depends in part on whether Domain Engineering has provided work product families that support reuse within that activity. The consequences of Domain Engineering support for opportunistic reuse are described in the following five representative steps for creating a work product. An application engineer performs these steps to create a work product whether or not reuse is supported. However, when reuse is supported, application engineers perform these five steps somewhat differently. The heuristics for each step include descriptions of differences due to reuse.
Step: Define
Success Criteria for the Work Product
Step: Develop Internal Structure
Step: Produce the Work Product
Step: Baseline the Work Product
The risks associated with Application Engineering depend on the specific
software development process followed by the application engineers.
Nonetheless, the following risks are (more or less) independent of the
particular Application Engineering process.
Step: Verify the Work Product
Risk Management
INTERACTIONS WITH OTHER ACTIVITIES
Feedback to Information Sources
Feedback From Product Consumers