Modeling Concepts

Modeling has been a natural part of software development a long time. But why do we really bother to make a model, instead of just hacking away at the keyboard and create some software? The answer is that by having a model we gain a lot of things that cannot easily be accomplished in any other way.

Here are some of the benefits, when it comes to producing source code:

But, modeling is much more then "just" describing the software components.

Companies that uses our software lives in a world where "business is constantly changing" and our task is to make an application that is capable of changing in the same pace. As the size of the application increases and the pace of business change also increases, the problem of keeping up with software development is getting bigger and bigger. We cannot recode every part of the software each time. By the time the new functions are ready the business may have changed again and the whole thing continues over and over again.

Also, packaging different flavors of the application into industry solutions and customizations makes it necessary to have a componentized application that can be assembled later on to an appropriate mix.

The trick is to identify what those components should be and how they should be assembled. They identify these components and describes them in such detail that they can be used both as input to the implementation models and as basis for component assembly and configuration.

More modeling benefits, this time from modeling the greater picture with logical components: