Domain analysis is the process of analyzing related software systems in a domain to find their common and variable parts. Several methods for domain analysis have been proposed. Each produces domain models such as feature tables, facet tables, facet templates, and generic architectures. A generic architecture describes all of the systems in a domain.