Domain analysis is "the process of identifying, collecting, organizing,
and representing the relevant information in a domain, based upon the study of
existing systems and their development histories, knowledge captured from
domain experts, underlying theory, and emerging technology within a domain"[CMU/SEI-90-TR-21].
Domain Analysis should "carefully bound the domain being
considered, consider commonalities and differences of the systems in the
domain, organize an understanding of the relationships between the various
elements in the domain, and represent this understanding in a
useful way"[CARDS94].
Numerous Domain Analysis techniques currently exist. Each technique
focuses on increasing the understanding of the domain by capturing the
information in formal model(s). [CARDS94]
discusses six different domain analysis approaches. One such approach is the
Feature-Oriented Domain Analysis (FODA), developed at
the Software Engineering Institute (SEI) [FODA_bib].
FODA defines a process for domain analysis and establishes specific
product for later use
[CMU/SEI-90-TR-21].
Three basic phases characterize the FODA process:
- Context Analysis: defining the extent
(or bounds) of a domain for analysis
- Domain Modeling: providing a
description of the problem space in the domain that is addressed by software
- Architecture Modeling:
creating the software architecture(s) that implement solutions to the problems
in the domain
Note: The architectural modeling phase was initially defined as part
of the FODA methodology. However, the process of integrating FODA products with
architectural modeling has become part of the domain design activity in the overall concept of
Domain Engineering.
For further information, contact Sholom Cohen