Start Diagramming!

<- Previous

2. Modeling

Purpose of Models and Modeling

"A model is always a model of something. The thing being modeled can generically be considered a system within some domain of discourse. The model then makes some statements of interest about that system, abstracting from all the details of the system that could possibly be described, from a certain point of view and for a certain purpose."

A model is a representation of something in the real world.

Let's say a child came to you and asked you what an "elephant" was. How would you respond? You might start describing it as an "animal". You might describe it as having "4 legs", being as large as a truck, or being a greyish color. You might even draw them a rough sketch of an elephant. If you did a good job at describing an elephant, the child may walk away knowing generally what an elephant is and what it is isn't. Guess what you just did? You created and shared a model! You were modeling!

Modeling is essentially a communication tool. It is a way to communicate what something is and what it isn't, it's attributes, and it's behaviors. Modeling is especially helpful when trying to represent or describe an abstract concept.

Let's say that the same child came back and asked you what an "Order" was. Now how would you respond? It might become a little more difficult to describe since an order is a bit more abstract.

Language specifications like UML have been created to standardize the language and terminology we use to model abstract concepts. With this shared language, modeling abstract concepts becomes quick, easy, and efficient.

There may be many reasons why you want to model something. Here are a few purposes of modeling:

Modeling happens in many industries. For example, car manufacturers will make a model of a car before trying to produce it. Construction companies will draw up blueprints or make arechitectural models before hammering a nail into anything. For this guide, we will be mainly focusing on modeling in software and business.

Audience, Viewpoint, and Abstraction

"A Model is a description of a system, where 'system' is meant in the broadest sense and may include not only software and hardware but organizations and processes. It describes the system from a certain viewpoint (or vantage point) for a certain category of stakeholders (e.g., designers, users, or customers of the system) and at a certain level of abstraction."

The viewpoint, the audience (stakeholders), and the level of abstraction are just as important as the thing that is being modeled.

Consider our example above of describing what an "Order" is. What if you were describing an order to a junior developer who is working on your new order system. You might want to give a different viewpoint with more details and more specificity than to a child. What if it were your VP who wants to generally understand how orders relate to the promotions they will be running? You might give a different viewpoint with less details and a more zoomed out view of the system. Considering all of these points are important in deciding how you go about modeling.

"A Model is complete in the sense that it covers the whole system, although only those aspects relevant to its purpose (i.e., within the given level of abstraction and viewpoint) are represented in the Model."

Next ->