Insoftware engineering,domain analysis, orproduct line analysis, is the process of analyzing relatedsoftware systems in adomain 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 ofdomain engineering. It is a key method for realizing systematicsoftware reuse.[3]
Domain analysis producesdomain models using methodologies such asdomain specific languages,feature tables,facet tables,facet templates, andgeneric architectures, which describe all of thesystems in a domain. Several methodologies for domain analysis have been proposed.[4]
The products, or "artifacts", of a domain analysis are sometimesobject-oriented models (e.g. represented with theUnified Modeling Language (UML)) ordata models represented withentity-relationship diagrams (ERD).Software developers can use these models as a basis for the implementation ofsoftware architectures andapplications. This approach to domain analysis is sometimes calledmodel-driven engineering.
Ininformation science, the term "domain analysis" was suggested in 1995 byBirger Hjørland and H. Albrechtsen.[5][6]
Several domain analysis techniques have been identified, proposed and developed due to the diversity of goals, domains, and involved processes.
![]() | Thissoftware-engineering-related article is astub. You can help Wikipedia byexpanding it. |