Synthesis Opportunistic Domain Engineering
PRODUCT DESCRIPTION
PROCESS DESCRIPTION
INTERACTIONS WITH OTHER ACTIVITIES
The Product Implementation Activity is the activity of the Domain
Implementation Activity for creating a Product Implementation. A Product
Implementation is an implementation of a set of work product families.
A conventional implementation is a work product
that solves a specific problem. Similarly, a Product Implementation is an
implementation that is adaptable to decisions supported by the work
product family's Decision Model in order to solve any of a family of problems.
A Product Implementation consists of Adaptable Components (e.g., code,
documentation, and support for verification/validation) and procedures, as
needed, for selecting, adapting, and composing these components. The Adaptable
Components and procedures are used to create draft
application engineering work products in accordance with an Application Model
that describes the work
product. The Product Implementation Activity is performed for each work
product family in the domain.
The objective of the Product Implementation Activity is to implement the
Product
Design using artifacts that represent domain knowledge (e.g., code,
documentation, test plans) from existing systems.
This implementation is used by application engineers to generate required work
products for systems in the domain.
The Product Implementation Activity requires the following information:
-
Product Requirements
-
Product Design
-
Decision Model
-
Legacy Products
The Product Implementation Activity requires domain and software knowledge and
experience in:
-
The design method used in specifying the Product Design
-
Existing work products
in the domain, including how they are designed, implemented, and verified, and
what are their components and architectures
-
Target language and platform capabilities
-
The technologies for adapting and composing components into work products that
make up a
product
-
- Name:
-
Product Implementation
- Purpose:
-
A Product Implementation is an adaptable implementation of a set of work
product families.
An application engineer must be able to derive members of a work
product family by adapting the Product Implementation mechanically based on the
work
product family's decisions in an Application Model.
- Content:
-
A Product Implementation consists of the following parts:
- Verification Criteria:
-
The Product Implementation correctly constructs existing or envisioned
members of the work product family as specified in the Product Design.
The Product Implementation Activity consists of the three
steps shown in
Figure DE.3.1-1 Product Implementation Process
Follow these steps for the Product Implementation Activity.
Activity:
Component Implementation
-
- Action:
-
Create Adaptable Components for the work
product family.
- Input:
-
-
Product Requirements
-
Product Design
-
Legacy Products
- Result:
-
Adaptable Components
- Heuristics:
-
-
Derive Adaptable Components from Legacy Products.
-
Ensure that the Adaptable Component satisfies and is consistent with relevant
aspects of the Product Design and Product Requirements.
Activity:
Generation Implementation
-
- Action:
-
Automate or document a mechanical procedure by which application engineers can
derive draft
application work products consistent with an Application Model.
- Input:
-
-
Generation Design
-
Decision Model
-
Product Design: Product Architecture
- Result:
-
Generation Procedure
- Heuristics:
-
Ensure that the Generation Procedure satisfies and is consistent with relevant
aspects of the Generation Design.
Step: Organize Adaptable
Components
-
- Action:
-
Organize the Adaptable Components to facilitate reuse among all work product
families.
- Input:
-
-
Adaptable Components
-
Generation Procedure
-
Product Architecture
- Result:
-
Organization Structure
- Heuristics:
-
-
Develop an organization that can be mapped onto the available mechanisms in the
development environment of the targeted project (e.g., a hierarchical structure
can be mapped onto files and directories). If you have a reuse library or
database management system available, you can organize the components using
more complex mechanisms.
-
Create a structure that supports definition, in Process Support Development, of
procedures by which application engineers can locate, evaluate, and extract
work products. A simple approach is to make each work product family a
separate directory under a single root that locates the entire library. If you
have several work product families of the same type, you may want to group them
together.
-
Use the Product Architecture as the basis for the Organization Structure. Your
structure must allow use of all Generation Procedures.
-
Use standard, recognized structures in the domain (e.g., for modules, an
information hiding structure) to organize families. This can simplify browsing
among components in complex families.
-
- Risk:
-
The Product Implementation will be inconsistent with Product Requirements for a
work product family.
- Implication:
-
Application work products will be generated that do not satisfy the Product
Requirements.
- Mitigation:
-
When uncertainties arise, review the Domain Specification with domain analysts
to clarify their intent. Review the Domain Implementation with other
experienced engineers to identify omissions and inconsistencies. Derive test
work products based on knowledge of existing or anticipated systems for review
with experienced engineers.
-
- Contingency:
-
The Domain Specification is incomplete, ambiguous, or inconsistent.
- Source:
-
Domain Specification Activity
- Response:
-
Describe how the Domain Specification is inadequate, and suggest how it may be
modified. Proceed with Product Implementation as far as possible with the
current Domain Specification.
- Contingency:
-
Unforeseen opportunities arise that cannot be exploited given the current
Domain Specification, e.g., a situation where substantial software is made
available for use in the Domain Implementation that was not available when the
Domain Specification was completed.
- Source:
-
Domain Specification Activity
- Response:
-
Document the opportunities and the required changes to the Domain
Specification.
-
- Contingency:
-
The Product Implementation does not satisfy the Domain Specification for a work
product family.
- Source:
-
Domain Verification Activity
- Response:
-
Request clarification of the intent of the Domain Specification if necessary.
Modify the Product Implementation to satisfy the Domain Specification.
- Contingency:
-
Support for selecting, adapting, and composing Adaptable Components is
inefficient.
- Source:
-
Process Support Development Activity
- Response:
-
Revise the Generation Procedures based on Application Engineering experience.