Feature oriented domain analysis (FODA) is a domain analysis method which introduced feature modelling to domain engineering. FODA was developed in 1990 following several U.S. Government research projects. Its concepts have been regarded as critically advancing software engineering and software reuse.
Feature-oriented domain analysis was first developed by the Software Engineering Institute in 1990.[1] In the initial technical report, a study performed determined that feature oriented domain analysis was not only beneficial, but was described as a "necessary first step" for software reuse.[2] The report introduced the concept of feature models to domain engineering in an effort to represent the standard features within the family of systems in the domain as well as the relationships between those features.[3] Since then, feature models have been characterized as "the greatest contribution of domain engineering to software engineering".[4]
Much of the work leading up to the development of FODA was sponsored by the U.S. Department of Defense through research programs related to software reuse during the late 1980s. FODA was developed as a comprehensive analysis and refinement of technology developed from 1983 - 1990.[5] While some aspects of FODA have changed, and it has become integrated with model-driven engineering, FODA is still known as the method that initially introduced feature models to domain engineering.
The intent of feature-oriented domain analysis is to support functional and architectural reuse. The objective is to create a domain model which represents a family of systems which can then be refined into the particular desired system within the domain[6] To do this, the scope of the domain must be analyzed (known as FODA context analysis) to identify not only the systems in the domain but also the external systems which interact with the domain.[7] FODA feature analysis then analyzes the end-user's view of the configurable requirements and candidate systems within the domain.[8] From the developed feature model, customers can select from configurable requirements to specify a final system.[9] Through this process, feature-oriented domain analysis ensures that a business can meet customers' demands efficiently through reuse of technology.[10]