Background

Domain oriented product development is today one of the prevalent ways of developing products. Corporations, companies, must of the organizations are almost organized around product lines or domains of applications. Simply because this is the most natural way of centralizing, capitalizing and maximizing the reuse of knowledge. Naturally the solution space corresponding to this domain oriented organization of the problem space is also domain oriented.

Applications of the domain represents specific solutions to the problem space. They are usually built on an incremental manner, evolving from the existing software. A part of their software represents core functionality of the domain, usually shared between several applications, and another part represents specific functionality.

What is important, is to abstract, from those specific solutions, generic specifications to derivate reusable, generic, highly evolutive, solutions to be able to implement new requirements/functionality within the domain at the lowest possible cost.

Up to now, most of the existing domain analysis approaches aim at preparing reuse by focussing on the identification of the common, invariant parts of the systems in the domain. The approach presented in this paper puts a strong emphasis on the identification/prediction and characterization of the variability, essential to master evolution. (Mechanisms dedicated to the identification of the invariant part are not described here, they are based on the common methodological framework that underlies current methods).