Domain analysis

From Wikipedia, the free encyclopedia

In software engineering, domain analysis, or product line analysis, is the process of analyzing related software systems in a domain to find their common and variable parts. It is a model of wider business context for the system. The term was coined in the early 1980s by James Neighbors.[1][2] Domain analysis is the first phase of domain engineering. It is a key method for realizing systematic software reuse.[3]

Domain analysis produces domain models using methodologies such as domain specific languages, feature tables, facet tables, facet templates, and generic architectures, which describe all of the systems in a domain. Several methodologies for domain analysis have been proposed.[4]

The products, or "artifacts", of a domain analysis are sometimes object-oriented models (e.g. represented with the Unified Modeling Language (UML)) or data models represented with entity-relationship diagrams (ERD). Software developers can use these models as a basis for the implementation of software architectures and applications. This approach to domain analysis is sometimes called model-driven engineering.

In information science, the term "domain analysis" was suggested in 1995 by Birger Hjørland and H. Albrechtsen.[5][6]

Domain analysis techniques[edit]

Several domain analysis techniques have been identified, proposed and developed due to the diversity of goals, domains, and involved processes.

See also[edit]


  1. ^ Neighbors, J.M. Software Construction using Components. Technical Report 160, Department of Information and Computer Sciences, University of California, Irvine, 1980.
  2. ^ Neighbors, J.M. "The Draco Approach to Constructing Software from Reusable Components". IEEE Transactions on Software Engineering, SE-10(5), September 1984.
  3. ^ Dennis de Champeaux, Douglas Lea, and Penelope Faure (1993). Domain Analysis Archived 2016-03-03 at the Wayback Machine, chapter 13, Object-Oriented System Development. Rahul Wis. ISBN 0-201-56355-X.
  4. ^ Frakes, W.B. and Kyo Kang, (2005), "Software Reuse Research: Status and Future", IEEE Transactions on Software Engineering, 31(7), July, pp. 529-536.
  5. ^ B. Hjørland, H. Albrechtsen, "Toward a New Horizon in Information Science: Domain-Analysis", Journal of the American Society for Information Science, No. 6, vol. 46 (1995), pp. 400-425
  6. ^ Birger Hjørland's definition of domain analysis Archived 2011-11-05 at the Wayback Machine