Introduction to the notion
We need a principle that manages to reduce the semantic expression, a guide to obtaining “well formed” models. This is the factorization principle. It is a principle of economy according to which: a same element of meaning must only be formulated once in the model.
This principle will inspire several precepts or operating rules, notably in the terms chosen in the model, in its structuring and the decision to resort to particular modeling techniques like polymorphism
Classification implements the factorization principle
Classification consists in building a class hierarchy by distributing the features in the most economical way. The object-oriented approach is inheritance. The generic properties are included on the parent classes (or superclasses), the specific properties on the child classes (or subclasses). This procedure brings the factorization principle into play and makes the modeling ideal possible: expressing a single element of meaning, in a model, once and once only.
Other notions complete the mechanism around inheritance:
- abstract class (from which we can draw no instance, because it is too generic);
- virtual operation (defined on an abstract class, but only described at its child class level);
- polymorphism (mechanism taking advantage of the previous notions).
Armed with these notions, the modeler can undertake a task similar to cladistics and provide a representation of the system studied that is both complete and economical, without any redundancy.
The other means of factorization
Factorization intervenes on elements other than classes and by procedures other than classification. In the pragmatic aspect, for example, it leads to general activities being extracted and made available for several processes to use. Logical architecture seeks economy, in particular in building the technical system, for example by factorizing transversal mechanisms and isolating the pivot language, etc.