RSP gb toc RSP Return Up Down GoTo Synthesis Opportunistic Domain Engineering
PRODUCT DESCRIPTION
PROCESS DESCRIPTION
INTERACTIONS WITH OTHER ACTIVITIES


DE.2.2. Domain Specification

Getting Started

The Domain Specification Activity is an activity of Domain Analysis for creating a Domain Specification. A Domain Specification is a description of the Application Engineering process for a domain and a definition of a collection of work product families that support reuse within that process. The Application Engineering process used by projects in the domain determines the types of work products whose creation could be supported by reuse. For targeted application engineering projects, those work products that offer the greatest opportunities for reuse are designated for formulation as a family.

A description of a work product family consists of a description of how members of the family vary, an abstract of the content of its members, and a specification of the design (i.e., composition and structure) of its members. The descriptions of content and design must allow for the diversity among members indicated by the described variation in the family.

Objectives

The objectives of the Domain Specification Activity are to:

Required Information

The Domain Specification Activity requires the Domain Definition.

Required Knowledge and Experience

The Domain Specification Activity requires domain and software knowledge and experience in:

PRODUCT DESCRIPTION

Name:
Domain Specification
Purpose:
A Domain Specification is a description of the Application Engineering process for a domain and a set of work product families that support reuse in that domain. Domain Specification identifies a collection of work product families which the targeted project can reuse (through adaptation and tailoring) to produce individual work products that meet the needs of its particular customer.
Content:
A Domain Specification consists of one of each of the following components:
  • Decision Model. A Decision Model identifies, for each work product family, the application engineering requirements and engineering decisions that determine how members of the work product family can vary (see Section DE.2.2.1). A Decision Model has one component for each supported work product family.
  • Product Requirements. Product Requirements describe, for each work product family, the abstracted content of the members of the family (see Section DE.2.2.2). Product Requirements have one component for each supported work product family.
  • Process Requirements. Process Requirements describe the established process of Application Engineering within a domain (see Section DE.2.2.3). It identifies the types of work products produced, and the types of work products for which families may be provided.
  • Product Design. A Product Design determines, for each work product family, the structure and composition of solutions provided by members of the work product family (see Section DE.2.2.4). A Product Design has one component for each supported work product family.
Verification Criteria:
Problems and solutions typical both of existing application engineering work projects and of the needs of the targeted project are adequately addressed within the perspective of the Domain Specification.

PROCESS DESCRIPTION

The Domain Specification Activity consists of the five steps shown in Figure DE.2.2-1 Domain Specification Process.

Procedure

Follow these steps for the Domain Specification Activity.

Activity: Process Requirements

Action:
Describe the process and work products of Application Engineering.
Input:
Domain Definition
Result:
Process Requirements
Heuristics:
  • Identify the types of work products, resulting from the Application Engineering process, that are normally used by projects in the domain. Make allowance for any deviations known to be required by the targeted project.
  • Determine how the process of work product development used by individual application engineers is to be modified to exploit reuse opportunities. Section AE provides a description of a typical process modified for reuse.

Step: Identify Work Product Families

Action:
Identify work product families targeted as the focus for increasing opportunities for reuse.
Input:
Process Requirements
Result:
None
Heuristics:
  • Identify those work product families that offer the best opportunities for reuse by the targeted application engineering project.
  • A survey of existing work products is the primary basis for determining which types of work products should be supported with families. Focus the survey on what is available and what the targeted project will need.

Activity: Decision Model

Action:
Define the set of requirements and engineering decisions that an application engineer must resolve to select an instance from a designated work product family.
Input:
Domain Definition
Result:
Decision Model
Heuristics:
  • Perform this step for each designated work product family. Define the decisions that lead to expected differences among the members of the family.
  • A Decision Model for a work product family should reflect the decisions that application engineers had to make when creating such work products in previous projects.
  • The Decision Model for a work product family should reflect the variability assumptions from the Domain Definition that are relevant to this particular work product family.
  • Ensure that supported decisions are sufficient to distinguish each existing work product from other members of the family.
  • Identify logical relationships among the decisions that characterize a work product family and use them to structure the Decision Model. Such relationships can reduce the number and complexity of separate decisions that application engineers have to make.

Activity: Product Requirements

Action:
Describe the content, in abstracted form, of the members of a designated work product family.
Input:
  • Domain Definition
  • Decision Model
Result:
Product Requirements
Heuristics:
  • Perform this step for each supported work product family. Describe the content of family members as briefly as possible without omitting key information.
  • To the degree that application engineering decisions change work product content, describe how content varies with respect to those decisions. This description will provide a partial basis for explaining the meaning of decisions to application engineers.

Activity: Product Design

Action:
Define the design (i.e., composition and structure) of the members of a designated work product family.
Input:
  • Decision Model
  • Product Requirements
  • Domain Definition: Legacy Products
Result:
Product Design
Heuristics:
  • Perform this step for each supported work product family. Create a design for the work product family An annotated outline is one model of a Product Design for a document work product family. An information hiding structure and process structure from the Ada-based Design for Real-Time Systems ( ADARTS ) (Software Productivity Consortium 1993) design method are models of a Product Design for a software work product family.
  • A key element of domain knowledge is how existing instances of the designated work product family are designed. When feasible, derive the initial Product Design for a family by extracting the design essentials of existing instances. Ensure that the composition and structure of existing instances are appropriately reflected in the design.
  • To the degree that Application Engineering decisions change work product composition and structure, describe how composition and structure vary with respect to those decisions. This description will provide a further, but still partial, basis for explaining the meaning of decisions to application engineers.

Risk Management

Risk:
The Domain Specification does not accommodate work products that meet the needs of the targeted application engineering project.
Implication:
The domain will not provide sufficient opportunities for reuse by the targeted project.
Mitigation:
Compare previously developed application engineering work projects that should be within supported families with expected needs of the targeted project. Check that likely differences are accommodated.

INTERACTIONS WITH OTHER ACTIVITIES

Feedback to Information Sources

Contingency:
The Domain Definition is incomplete, ambiguous, or inconsistent.
Source:
Domain Definition Activity
Response:
Describe the inadequacies in the Domain Definition. Proceed with Domain Specification, and document any assumptions made regarding the inadequate portions of the Domain Definition.

Contingency:
The Domain Plan cannot be satisfied with available technical capabilities.
Source:
Domain Management Activity
Response:
Propose (alternative) revisions to the Domain Plan that better match available capabilities. Complete a Domain Specification that satisfies the Domain Plan as closely as possible.

Contingency:
The practices and procedures specified in the Domain Plan are either ineffective or inefficient.
Source:
Domain Management Activity
Response:
Describe the ways in which the practices and procedures are either ineffective or inefficient. Propose revisions to the practices and procedures to make them more effective.

Feedback From Product Consumers

Contingency:
Suggestions are made for Domain Specification changes to exploit unforeseen opportunities. For example, 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 Implementation Activity
Response:
  • Revise the Domain Specification.
  • Refer opportunities to Domain Management for future planning.
  • Reject the changes due to conflicts with the Domain Definition.

Contingency:
The Domain Specification fails to provide the capabilities required by the Domain Plan.
Source:
Domain Management Activity
Response:
Evolve the Domain Specification to be consistent with the Domain Plan.

Contingency:
The Domain Specification for a work product family is incomplete, ambiguous, inconsistent, or incorrect.
Source:
  • Domain Implementation Activity
  • Domain Verification Activity
Response:
Refine the Domain Specification to correct any inadequacies.

Contingency:
The standardized Application Engineering process for developing application engineering work projects from a supported work product family is inefficient or leads to less-than-ideal results for the targeted project.
Source:
Project Support Activity
Response:
Revise the Application Engineering process to reflect the problems encountered. conditions of concern."

Contingency:
Supported work product families are not useful for the targeted project.
Source:
Project Support Activity
Response:
  • Determine that the nature of the problem and the consequent costs of upgrading the work product families outweigh expected benefits to the targeted project.
  • Evolve the domain engineering work product family to reflect this project's experience or to be more flexible under the particular conditions of concern.



PHS