One of the problems that software faces is modeling scalability: when a system grows, it is hard for the model to keep up, so to say.
This is the problem that incremental modeling solves: there are base models, which are self-contained and model increments (something like add-ons, which can only be added to existing models)
There are different ways in which the base models can be combined: horizontal, vertical and feature-oriented. The model increments should be small in size. There are two types of them:
- Customization increment: a model that adapts the behavior or structure to be useful in a specific context
- Extension increment: add additional behavior or structure
So far this is all very abstract, so let’s look at an example: