Synthesis Opportunistic Domain Engineering
PRODUCT DESCRIPTION
PROCESS DESCRIPTION
INTERACTIONS WITH OTHER ACTIVITIES
Generation Implementation is an activity of the Product Implementation Activity
for creating a Generation Procedure. A Generation Procedure is a precise
description of how to derive draft
application engineering work products consistent with the decisions in an
Application Model for a work
product family. A Generation Procedure may be automated or may take the form
of a precise description that application engineers can mechanically follow to
create work products.
The objective of the Generation Implementation Activity is to create a
Generation Procedure as specified by a Generation Design.
The Generation Implementation Activity requires the following information:
-
Generation Design
-
Product Architecture
-
Decision Model
-
Component Designs
The Generation Implementation Activity requires knowledge and experience in:
-
The notation used in specifying the Generation Design
-
The technologies for adapting and composing components into work products
-
- Name:
- Generation Procedure
- Purpose:
- This is a procedure that an application engineer uses to create draft
application engineering work products for a member of a work
product family using Adaptable Components. This procedure is either implemented
as a product generator or documented as a manual procedure.
- Content:
-
The Generation Procedure is a procedural description for producing an
application engineering work product that satisfies the mappings of a
Generation Design. The Generation Procedure describes how to select appropriate
Adaptable Components, how to apply decisions from an Application Model to adapt
them, and how to compose them to create the work product in final form.
- Form and Structure:
-
The form of the Generation Procedure depends on whether the procedure is
automated or manual. The Generation Procedure is either implemented as an
automated product generator or documented as a manual procedure to be followed
by application engineers. If the manual form is chosen, then the Generation
Procedure form is likely to resemble the form of a Generation Design. If the
Generation Procedure is implemented in the form of a product generator,
however, it will be a conventional software program.
- Verification Criteria:
-
-
The Generation Procedure for a work
product family can be used to produce application engineering work products
that exhibit the internal organization specified in the Product Architecture.
-
The Generation Procedure for a work
product family can be used to produce application engineering work products
that satisfy the Product Requirements.
-
If a manual form is used, the Generation Procedure for a work
product family clearly describes how draft
application engineering work products are constructed from Adaptable Components
based upon decisions contained in an Application Model.
The Generation Implementation Activity consists of the two steps shown in
Figure DE.3.1.2-1 Generation Implementation Process.
Perform one or both of the following two steps. The appropriate action depends
on what automation you determine to have a significant payoff in Application
Engineering.
Step: Document the Generation
Procedure
-
- Action:
-
Document some or all of the Generation Design.
- Input:
-
-
Generation Design
-
Product Architecture
-
Decision Model
-
Component Designs
- Result:
-
Generation Procedure
- Heuristics:
-
-
The Generation Design is a precise description of the required Generation
Procedure. Document the procedure in a form that is usable by application
engineers.
-
Include a description of how components are composed to form a work product
consistent with its Product Architecture.
-
Include a description of how to access the decisions in an Application Model
for a work
product family. The Decision Model provides the organization of the decisions'
conceptual schema.
Step: Automate the Generation
Procedure
-
- Action:
-
Develop automated tools that implement some or all of the Generation Procedure
as defined in the Generation Design.
- Input:
-
-
Generation Design
-
Product Architecture
-
Decision Model
-
Component Designs
- Result:
-
Generation Procedure
- Heuristics:
-
-
If the decision-making
Activity in Application Engineering is supported by automation, then the
Generation Procedure must access the decisions.
If the activity is not automated, then there must be an automated mechanism for
providing the decisions
as input to the Generation Procedure. The Decision Model provides the
organization of the decisions' conceptual schema.
-
If a metaprogramming technology, such as described in the Component
Implementation Activity (see
Section DE.3.1.1),
is used to implement the Adaptable Components, then the same metaprogramming
technology is used to instantiate those components. Metaprogramming technology
may also be useful in implementing portions of the Generation Procedure
itself.
-
Creating an automated Generation Procedure is a software development task. It
requires the design of the required program, implementation to that design in a
programming language, testing to verify that the resulting program implements
the Generation Design correctly, and documentation so that the program can be
correctly modified as the Generation Design changes.
-
Tools such as the UNIX make facility may be useful in automating the procedure
for composing adapted components into draft
work products.
None
-
- Contingency:
-
The Generation Design for a work product family
is incomplete, ambiguous, or inconsistent.
- Source:
-
Generation Design Activity
- Response:
-
Describe how the Generation Design is inadequate, and suggest how it may be
modified. Proceed with Generation Implementation activity as far as possible
with the current Generation Design.
Contingency:
The Generation Procedure for a work product family
does not satisfy the Generation Design.
Source:
Domain Verification Activity
Response:
Request clarification of the intent of the Generation Design if necessary.
Modify the Generation Procedure to satisfy the Generation Design.
Contingency:
A manual Generation Procedure is difficult to use.
Source:
Project Support Activity
Response:
Investigate new forms for conveying the Generation Procedure to the application
engineers.
Contingency:
The Generation Procedure cannot be used in its current form in the Application
Engineering process.
Source:
Process Support Development Activity
Response:
Revise the Generation Procedure (e.g., improve automation or upgrade
documentation) so that it can be effectively used by application engineers.