Domain analysis

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

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.


  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

See also[edit]