DOMAIN ANALYSIS

by Marie-Agnes Gandrieau (Matra Marconi Space) & Guillermo Mayobre (Hewlett Packard)

Domain oriented product development is today one of the prevalent ways of developing products. Corporations, companies and organizations are almost always organized around product lines or application domains. This is simply because this is the most natural way of centralizing, capitalizing and maximizing the reuse of knowledge.

With the evolution of market trends, new requirements have to be considered. As a result of that, applications of the domain are usually built in an incremental manner, evolving from the existing software, to implement new functionalities.

An adaptive software development strategy that minimizes both the cost of reusing/ delivering the invariant functionality and the cost of addition of variant functionality is the most appropriate strategy to keep development costs under control.

In that context, a reuse only approach focusing on the identification of the common, invariant parts of the systems in the domain is somewhat insufficient. It does not consider, or only very poorly, the variability which plays an essential role in keeping evolution costs under control. The contribution of the PROTEUS domain analysis methodology is the strong emphasis put on identification/prediction and characterization of the variability.

When analyzing the domain, variability is classified and a probability of occurrence is associated with it. A modelling rationale is associated to that classification, ensuring the construction of predictive models that anticipate new (unpredicted) requirements, and ensuring the evolution of software at a minimal cost.

The Proteus domain analysis approach is an iterative process which includes the following activities: ¥ domain description ¥ domain qualification ¥ domain modelling ¥ domain models validation

Domain description is the foundation for understanding and describing the different applications within the domain. Domain boundaries are defined, and a preliminary domain definition is built.

Domain qualification determines whether there is a business case for the domain analysis. It produces a feasibility report.

Domain modelling aims at building models of domain products, formalizing knowledge about the products Ð especially modelling their commonalities and variants.

Domain models anticipate predicted evolutions for a family of systems, from which future systems may be instantiated. They are built taking as input the experience of past products (user or software requirements documents, but also informal knowledge of domain experts).

Different types of models may be built, depending on what kind of information the model is expected to represent:

¥ domain requirements models: ¥ models of user requirements ¥ models of software (or system) requirements ¥ domain architectural models

The PROTEUS approach for modelling is based on the use of Object Oriented Analysis methods, and more particularly OMT (Object Modelling Technique).

Many of the concepts necessary for domain representation are inherent in object-oriented methods. OMT in particular provides different means of representing variants vs. commonalities in each of its three views (object, dynamic and functional), including:

¥ constraints on domain entities

¥ generalization/specialization: a relationship allowing one to group commonalities and t o represent variants with specialized classes.

¥ multiplicity values on associations

¥ abstract classes and operations: useful to structure (classify) classes sharing common abstract properties

Other supports, such as metrics or classifications, can be used in association with the models to characterize them more deeply, and to add relevant information on object models.

Validation aims at checking the correctness and completeness of domain models. The models are reviewed by analysts and domain experts. Their applicability is tested against prototyped variances. Model rationales provide a useful support to validation.