Synthesis Leveraged Domain Engineering
PRODUCT DESCRIPTION
PROCESS DESCRIPTION
INTERACTIONS WITH OTHER ACTIVITIES
Domain Engineering is an activity of a Synthesis process that creates and
supports a standardized Application Engineering process and products in a
business area.
Domain Engineering is a comprehensive iterative life-cycle process with
management, analysis, implementation, and support activities for a product
family of primary value to a business-area organization.
The objectives of Domain Engineering are to:
-
Organize and direct resources to
accomplish the business objectives of
an organization
-
Define the nature, extent, and substance of a
product family
that complements those business objectives
-
Provide leverage by which projects within a domain can deliver a product more
effectively, predictably, and reliably
Domain Engineering requires the following information:
-
Domain knowledge
-
Business objectives
Domain Engineering requires domain and software knowledge and experience in:
-
The needs that motivate systems in the domain (i.e., application engineering
work products)
-
The environments in which the systems in the domain will operate
-
How the systems in the domain are built
-
How application engineering projects in the domain are managed
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.
-
- Purpose:
-
A Domain Plan (see
Section DE.1)
describes a plan for domain evolution
and defines the tasks and resource allocations for domain development
increments.
- Verification Criteria:
-
The expected needs of
the projected product market
in the business area are sufficient to compensate for projected costs and risks
of domain development.
-
- 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.
-
- Purpose:
-
A Domain Specification (see
Section DE.2.2)
formalizes expert knowledge of how to express problems in the domain and how to
create corresponding solutions for the problems.
- Verification Criteria:
-
The Domain Specification precisely expresses the domain as captured in the
Domain Definition.
-
- Purpose:
-
A Domain Implementation (see
Section DE.3)
is an implementation (with documentation and automated support) of the
Application Engineering process and product family for the domain,
as prescribed by the Domain Specification.
- Verification Criteria:
-
The Domain Implementation provides
the standardized Application Engineering process and product family
described in the Domain Specification.
Domain Engineering is an interaction among the four steps shown in
Figure DE-1. Domain Engineering.
Follow these steps for the Domain Engineering Activity.
Activity:
Domain Management
-
- Action:
-
Plan, monitor, and control the use of domain resources to provide
standardized process and product family for a domain of interest to achieve
organizational business objectives.
- Result:
-
Domain Plan
- Heuristics:
-
Define long-range and
near-term objectives for a business area.
Organize and manage domain resources to achieve those objectives.
Activity:
Domain Analysis
-
- Action:
-
Scope and specify a domain based on an analysis of
business objectives of
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.
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. Specify the standardized Application Engineering process for
building applications in the domain.
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
product
family
and process described in the Domain Specification. Incorporate variations into
the implementation of the solutions.
-
Create the standards and procedures, in documentation and supporting
automation, that institute a standardized Application Engineering process as
specified in the Domain Specification.
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
projects in the domain.
-
- Risk:
-
The products of Domain Engineering (standardization of Application Engineering
products and process)
will not lead to standardized domain
practices on projects.
- Implication:
-
The Domain Engineering investment will not produce projected benefits for
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.
-
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.
-
Provide unified management of domain engineering and application engineering
projects. Establish an organizational commitment to the combined success of
all participants.
None
-
- Contingency:
-
The standardized product family is
inadequate to support the needs of particular customers.
- 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
accommodate changing needs.
- Contingency:
-
The standardized Application Engineering process is inefficient or leads to
less-than-ideal results for a particular project.
- Source:
-
Application Engineering
- Response:
-
-
Determine that the benefits of process standardization outweigh the interests
of the particular project.
-
Evolve the definition of the Application Engineering process to reflect this
project's experience or to be adaptable to the particular conditions of
concern.