📜 ⬆️ ⬇️

Types of models

A properly asked question quickly leads to the correct answer. I was recently asked: “Why are business analysis standards focused on identifying requirements, but they don’t say anything about turning these requirements into a solution?” At the very beginning of my analyst career, I looked for the answer to the question: how to analyze the subject area and how to turn the analysis result into a structure models: where to get classes, attributes and methods? Then I found one more or less intelligible method, described in the book by Craig Larman Application of UML 2.0 and Design Patterns. An introduction to object-oriented analysis, design, and iterative development . The analyst was offered to go through the text with markers of different colors: Red highlights nouns and is the basis for creating classes, green - adjectives, participles, and so on. - The basis for creating the attributes of these classes. And the verbs are highlighted in blue - the basis for creating methods.

However, in reality, this method did not work. I could model the same fact with the help of a class, attribute value or method depending on my desire. This is written in detail by Criss Partridge in Business Objects: Re-Engineering for Re-Use .

He gives an example from a collie. It can be a class of objects, it can be the value of the Breed attribute with a value type of either string, or a reference to the object of the Breed directory, or the value of “yes” of the Boolean attribute Collie.

In the example of Criss Partridge, we choose between a class and an attribute. But there is an alternative in which one and the same fact can be modeled using a class or method.
')
For example, you can imagine a situation that gilding can be modeled using a class of objects, using the value of an attribute, and, possibly, a method.
The choice of modeling method depends on the context and boundaries of the information model. However, sooner or later there comes that moment when the boundaries of the information system grow to volume, when the same fact from one point of view needs to be modeled with the help. class, on the other - using a function, operation, or attribute value. And then the mapping between these different points of view becomes a real challenge for the analyst.

An obstacle is not only the technological complexity of such a mapping, but also the limitations of our imagination.


I wrote about all this earlier. But there is another important question that we must ask ourselves before we start modeling. We need to figure out what type of model we are going to build. Recently, I heard the thesis: a model of a model is also a model (the property of transitivity of models was mentioned). For example, if you have a “Contract” document that is an agreement model, then the Word file that models this agreement is also an agreement model. The trick is that this thesis is valid only for one type of model - for object models. For another type of model — conceptual model — this thesis is incorrect. Few people make a difference between them. Therefore, I decided to move away a bit from the main line of presentation and tell about the types of models with which analysts work.

Classification of models



To begin with, what we usually call a model. By model we mean an information object. Assume that the subject decided to transfer to another subject his idea of ​​some object of the real world. To do this, using the notation (language), he makes a description of his presentation of this object as an information object. This information object falls into the hands of another subject and, knowing the notation, recreates in his mind the presentation of the first subject. This is the transfer of knowledge from one subject to another, and therefore language plays such an essential role in learning.

Strictly speaking, a model is what the subject has in mind, and an information object is a model of this model. But, due to the transitivity of the models, it is believed that the information object is also a model. This information object can be constantly refined and corrected as necessary, which is what happens when one subject explains something to another.

Suppose that the subject in different tasks collides with similar objects. For example, with similar details. Then for different parts he can get similar models. At some point, the analyst is involved in it, and this analyst requires the unification of models. Unification is needed in order to work once, to save time on modeling.

The unification is that for all similar parts the analyst creates one model. This is a concept of detail. Its difference from the model of the part is that the model of the part can be refined infinitely, but the concept of refining infinitely does not work, because it refers not to one, but to a lot of details. Details differ from each other and therefore there is no possibility to refine the concept infinitely.

Is it possible to restore the object model by concept? It is possible, but with the help of speculation. We easily conceptualize the object model. However, the ease with which we do this does not mean that the concept model is an object model. To restore an object model based on its concept, a context is needed that will complement the concept model to the object model.

Now we will complicate the task and assume that the subject models the construction. Let me remind you that a construction is a set of objects and connections between them. Obviously, the design model, like the object model, can be refined indefinitely.

Now suppose that, as in the case of the details, the subject has the task of modeling similar structures, for example, diesel locomotive structures. By doing the same as in the first case, the subject can unify the models and create one for a variety of designs - the concept of the design.

A construction concept consists of a set of concepts — the concepts of objects — the construction elements and the concepts of the connections between these elements. For the concept of a diesel locomotive construction, the following statement will be true: for each element in the concept construction there is one and only one element in a real diesel locomotive. Otherwise, it can be reformulated as follows: the “arity” of relations in the concept model of a diesel locomotive design is always “one-to-one”.

But in general this is not true. Often one can come across conceptual models in which the “arity” of connections differs from “one-to-one”.

Concept designs are also called conceptual models. True, there is one very serious mistake in the common definition of the conceptual model. It is usually said that a conceptual model is a model of concepts and links between them. This is wrong, because in the conceptual model there are not links, and not even link models, but link concepts. In order to somehow disguise this error, it is said that the connections in the conceptual model have arity - for example, “one to three”. I wrote about all this earlier and you can read about it in my article Modeling accounting objects in the “arrows” section.

To better imagine this kind of model, you can look at any ER model. On them we see concepts of objects and concepts of connections. Is it possible to restore the model of the concept structure based on the ER model? Alas, it is impossible. And, therefore, it is impossible to restore the model of the structure.

So, to summarize, we can say that there are two types of models - object models and concept models. For object models, the principle of transitivity is true, but for concept models this principle does not work.

Examples



Suppose that there is an agreement between the two counterparties. This arrangement has a model - a written contract. There are several such documents, each of which is a model of this agreement. Let there be a Vord file with a model of written documents. It is convenient to make changes in one place in order to be able to print as many copies as necessary. It turns out that this Word file is also an agreement model.
Let there is a set of arrangements, for each of which it is necessary to create a written document. Let's make unification, and for all these documents we will create one model - a standard contract. The model contract is convenient because it allows you to quickly create a model of a specific agreement. But he is not a model of a specific agreement. Therefore, the Word file with a standard contract is not a model of a specific agreement. And the transitivity of the models is not here.

Question: what type of model is created using BPMN notation? I will not answer this question, hoping that you yourself are capable of answering it.

Question: what type of model is created using IDEF0 notation? I also hope that you yourself will answer this question.

Source: https://habr.com/ru/post/336272/


All Articles