Incremental Software Design Modeling

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:

Capture

cap2