Domain analysis
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
Several domain analysis techniques have been identified, proposed and developed due to the diversity of goals, domains, and involved processes.
- DARE: Domain Analysis and Reuse Environment ,
- Feature-Oriented Domain Analysis (FODA)
- IDEF0 for Domain Analysis
- Model Oriented Domain Analysis and Engineering
References
- Neighbors, J.M. Software Construction using Components. Technical Report 160, Department of Information and Computer Sciences, University of California, Irvine, 1980.
- Neighbors, J.M. "The Draco Approach to Constructing Software from Reusable Components". IEEE Transactions on Software Engineering, SE-10(5), September 1984.
- 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.
- Frakes, W.B. and Kyo Kang, (2005), "Software Reuse Research: Status and Future", IEEE Transactions on Software Engineering, 31(7), July, pp. 529-536.
- 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
- Birger Hjørland's definition of domain analysis Archived 2011-11-05 at the Wayback Machine
See also
- Domain engineering
- Feature Model
- Product Family Engineering
- Domain-specific language
- Model-driven engineering