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.Neighbors, J.M. [http://www.bayfronttechnologies.com/l02draco.htm#diss80 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. Domain analysis is the first phase of domain engineering. It is a key method for realizing systematic software reuse.Dennis de Champeaux, Douglas Lea, and Penelope Faure (1993). [http://g.oswego.edu/dl/oosdw3/ch13.html Domain Analysis] {{Webarchive|url=https://web.archive.org/web/20160303214746/http://g.oswego.edu/dl/oosdw3/ch13.html |date=2016-03-03 }}, chapter 13, Object-Oriented System Development. Rahul Wis. {{ISBN|0-201-56355-X}}.
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.Frakes, W.B. and Kyo Kang, (2005), "Software Reuse Research: Status and Future", IEEE Transactions on Software Engineering, 31(7), July, pp. 529-536.
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.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[http://www.iva.dk/bh/core%20concepts%20in%20lis/articles%20a-z/Domain%20analysis.htm Birger Hjørland's definition of domain analysis] {{webarchive|url=https://web.archive.org/web/20111105172824/http://www.iva.dk/bh/core%20concepts%20in%20lis/articles%20a-z/Domain%20analysis.htm |date=2011-11-05 }}
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 [http://wfrakes.wordpress.com/2008/07/24/dare-bibliography/], [https://web.archive.org/web/20110810170108/http://208.29.54.207:8080/dareonline/]
- Feature-Oriented Domain Analysis (FODA)[http://www.sei.cmu.edu/reports/90tr021.pdf]
- IDEF0 for Domain Analysis [https://web.archive.org/web/20110716231304/http://4c.ucc.ie/web/upload/publications/article/IDEF0Simran.pdf]
- Model Oriented Domain Analysis and Engineering [https://link.springer.com/chapter/10.1007/978-3-642-36654-3_11]