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


DE. Domain Engineering Overview

Getting Started

Domain Engineering is an activity of a Synthesis process that creates and supports work products which support the Application Engineering process in a business area, particularly with respect to the needs of a specific project (hereafter termed the targeted project). Domain Engineering is a comprehensive iterative life-cycle process with management, analysis, implementation, and support activities for a product family. A product family is represented by a collection of work product families.

Objectives

The objectives of Domain Engineering are to:

Required Information

Domain Engineering requires the following information:

Required Knowledge and Experience

Domain Engineering requires domain and software knowledge and experience in:

PRODUCT DESCRIPTION

Domain Engineering creates four work products: Domain Plan, Domain Definition, Domain Specification, and Domain Implementation. Domain engineers evolve these products in subsequent iterations of Domain Engineering to support future projects, consistent with organizational business objectives.

Domain Plan

Purpose:
A Domain Plan (see Section DE.1) establishes the scope of domain development and defines the tasks and resource allocations for domain development increments.
Verification Criteria:
The expected needs of planned projects in the business area are sufficient to compensate for projected costs and risks of domain development.

Domain Definition

Purpose:
A Domain Definition (see Section DE.2.1) defines the informal scope and orientation that characterize a viable domain.
Verification Criteria:
The Domain Definition captures sufficient information to allow domain engineers to describe any existing or potential system in the domain (in particular, the system being built by the targeted project).

Domain Specification

Purpose:
A Domain Specification (see Section DE.2.2) defines a set of work product families that provides increased opportunities for reuse to the targeted project within its Application Engineering process.
Verification Criteria:
The Domain Specification precisely expresses the domain as captured in the Domain Definition.

Domain Implementation

Purpose:
A Domain Implementation (see Section DE.3) is an implementation (with documentation and automated support) of a set of work product families, as prescribed by the Domain Specification.
Verification Criteria:
The Domain Implementation provides each work product family described in the Domain Specification.

PROCESS DESCRIPTION

Domain Engineering is an interaction among the four steps shown in Figure DE-1. Domain Engineering.

Procedure

Follow these steps for the Domain Engineering Activity.

Activity: Domain Management

Action:
Plan, monitor, and control the use of domain resources to provide reusable work product families for a domain of interest to projects within a business-area organization.
Result:
Domain Plan
Heuristics:
Define near-term objectives that support the application engineering project targeted by Domain Engineering. Organize and manage domain resources to achieve those objectives.

Activity: Domain Analysis

Action:
Scope and specify a domain based on an analysis of needs of a targeted project in an organization.
Input:
Domain Plan
Result:
  • Domain Definition
  • Domain Specification
Heuristics:
  • Create an informal definition of the domain. Characterize its scope, the aspects common to all systems in the domain, and the features that vary across systems in the domain. Also characterize the work products commonly produced as part of Application Engineering. Explicitly state what is not part of the domain. Provide a glossary of common terms. Assess the viability of supporting each of the aspects you have characterized.
  • Precisely specify problems within the scope of the domain. Describe both common problems and variations in those problems. Specify solutions to the problems in the domain so that the solutions vary in the same way as the problems. Identify important work products (i.e., those susceptible to reuse). Specify the Application Engineering process commonly used in the domain, showing when a given work product is developed. Determine the work products for which (reusable) work product families will be developed.

Activity: Domain Implementation

Action:
Implement the domain as defined by the Domain Specification.
Input:
  • Domain Definition
  • Domain Specification
  • Domain Plan
Result:
Domain Implementation
Heuristics:
  • Implement the work product families and process described in the Domain Specification. Incorporate variations into the implementation of the solutions. Structure the implementation of the solutions as a set of work product families, each of which supports reuse for a particular work product that application engineers might want to develop.
  • Describe conventions, procedures, and standards for using these work products. Document how application engineers can perform reuse based on these descriptions. If time and resources permit, automate routine time-consuming tasks.

Activity: Project Support

Action:
Support a project in performing the Application Engineering process.
Input:
Domain Implementation
Heuristics:
Deliver, install, and support the Domain Implementation for use by the targeted project.

Risk Management

Risk:
The products of Domain Engineering will not lead to standardized reuse practices on projects.
Implication:
The Domain Engineering investment will not produce projected benefits for the targeted project or the business organization.
Mitigation:
  • Staff the Domain Engineering work with experienced project managers and engineers. Ensure that all work is actively reviewed by other experienced managers and engineers and is adequately reviewed by all participants of application engineering projects. Include engineers familiar with the needs of the targeted project.
  • Evaluate the effectiveness of the Domain Engineering process and work products relative to past project experiences. Ensure that the characteristics of that experience or the resulting systems are not in conflict with the process and work products.

INTERACTIONS WITH OTHER ACTIVITIES

Feedback to Information Sources

None

Feedback From Product Consumers

Contingency:
The work product families are inadequate to support the needs of the targeted project.
Source:
Application Engineering
Response:
  • Determine that expressed needs are outside of or otherwise conflict with chosen domain objectives or cannot be viably satisfied given available domain resources.
  • Evolve the domain to satisfy current needs.



PHS