After a semester in teaching model driven software engineering in my Advanced Software Engineering course at Politecnico, I feel the urgency of echoing once again a few words about the reason of models, inspired also from some content in our last book on Model-driven Software Development, or MDSE (see more here or on www.mdse-book.com).
By the way, don’t mind the girl picture now, we will come back to her later.. by now, you (and my students) can just consider her as attention-catching trick.
My main point is that you cannot avoid modeling.
The human mind inadvertently and continuously re-works reality by applying cognitive processes that alter the subjective perception of it. Humans generate a mental representation of the reality which is at the same time able to:
- generalize specific features of real objects (generalization);
- classify the objects into coherent clusters (classification);
- aggregate objects into more complex ones (aggregation).
These represent natural behaviors that the human mind is natively able to perform (babies start performing these processes since they are a few months old) and that are performed by people in their everyday life. This process is known as abstraction, also widely applied in science and technology, where it is often referred to as modeling.
So, we can informally define a model as a simplified or partial representation of reality, defined in order to accomplish a task or to reach an agreement on a topic. Therefore, by definition, a model will never describe reality in its entirety.
And here we are to our nice girl in the picture. She actually is a “model” (actually, a top model). She is not reality. She is an idealized representation of reality, incarnating beauty, grace, desire or whatever feature you want to name, which is instrumental to some purpose (in this case, to show and sell clothes). You will not see all the aspects of her life. You only see her as a partial abstraction of the concept of “desirable girl”.
If we want to go back to more “serious” usages, models have been and are of central importance in many scientific contexts. Just think about physics or chemistry: the billiard ball model of a gas or the Bohr model of the atom are probably unacceptable simplifications of reality from many points of view, but at the same time have been paramount for understanding the basics of the field; the uniform motion model in physics is something that will never be accomplished in the real world, but is extremely useful for teaching purposes and as a basis for subsequent, more complex theories. Mathematics and other formal descriptions have been extremely useful in all fields for modeling and building upon models.
Modeling has been proven very effective at description and powerful at prediction.
A huge branch of philosophy of science itself is based on models. Thinking about models at the abstract and philosophical level raises questions in semantics (i.e., the representational function performed by models), ontology (i.e., the kind of things that models are), epistemology (i.e., how to learn through or from models) and philosophy.
In many senses, also considering that it is recognized that observer and observations alter the reality itself, at a philosophical level one can agree that “everything is a model”, since nothing can be processed by the human mind without being “modeled”.
Therefore, it’s not surprising that models have become crucial also in technical fields such as mechanics, civil engineering, and ultimately in computer science and computer engineering.
Within production processes, modeling allows us to investigate, verify, document, and discuss properties of products before they are actually produced. In many cases, models are even used for directly automating the production of goods.
That’s why discussion about whether modeling is good or bad is not really appropriate. As I said at the beginning, we all and always create a mental model of reality. This is even more appropriate when dealing with objects or systems that need to be developed: in this case, the developer must have in mind a model for his objective.
The model always exists, the only option designers have is about its form: it may be mental (existing only in the designers’ heads) or explicit. In other words, the designer can decide whether to dedicate effort to realizing an explicit representation of the model or to keep it within her/his own mind.
I find this discussion intriguing and profoundly motivating for neophytes. You can read more on this and on the purpose of modeling in the book Model-driven Software Development in Practice written by Jordi Cabot, Manuel Wimmer and myself (see more here and on www.mdse-book.com).
To keep updated on my activities you can subscribe to the RSS feed of my blog or follow my twitter account (@MarcoBrambi).
It's interesting how you are bringing these two worlds together, the one of modeling and the one of top-modeling 🙂
As a female researcher I must confess that, while being completely convinced about the usefulness of modeling I am undecided when it comes to the *usefulness* of top-modeling. For the latter I would argue the discussion of whether it is good or bad is very important, because at the end the top-models are humans (as opposed to the artifacts in modeling). At the moment I tend to think, that in order to answer the question about the usefulness of top-models one would have to see which purpose they serve. Is their role e.g. the displaying of fashion or is it more complex (creating desires, being some -unachievable- role model for young girls etc.)?
Best regards,
Sabina
I'm currently working on a project that aims to address the confusion that comes when developers, or anyone for that matter, attempts to retain the model in their heads. I'm a constructivist and believe that everything you 'understand' is based on your own personal experiences in life. No one else has the same life as you so their understanding will never be the same.
The value of models is to reach a common understanding and reduce the risk of 'getting it wrong' because everyone thought they agreed but what was actually delivered was something else. Unfortunately, while explicit models are used successfully in technical and scientific areas they are not used enough in the business World. They appear to be impenetrable to most 'business' people, except for a few specialists, and that is part of my goal to make models more accessible and to become something that anyone can naturally reach for and use.
Hi Sabina,
you are perfectly right. Typically the purpose of “using” top models goes far beyond simple showing some garments (otherwise, a simple synthetic dummy could work).
I didn't want to endorse or push for their use or for the moral correctness of using them. Actually, I was expecting some reaction from woman researchers :). I could have probably used a male model, but you know the male/female ratio in the software engineering community.
No jokes, I agree with you that abuse or misuse of the role of top models could be extremely dangerous for youngsters, both in terms of education and potential risks for their psychological and physical well-being.
However, it's a fact that top models are what they are, and it's not by chance that they are called “models”.
If you want more “neutral” or “positive” examples, here are some others: advertisement as a whole is just a set of models: the model of the perfect family, the perfect environment, the perfect worker or business man, and so on. And finally, another example of “human models” that points in completely opposite direction is that of Saints. The Church selects a set of people as representatives and “models” for showing the faithfuls some examples to imitate for good.
Thanks Craig,
I think that the crucial point that comes out here is that the crucial move from a mental and personal modeling of reality to an explicit model written on paper.
Just stopping and thinking how to explain things is a big step towards common understanding. This is definitely needed in business but also in software engineering.
Standard notations and communication rules play a big role in making things understandable.
Hi Marco, you definitely got me thinking about the top-models 🙂 something which e.g. advertising was not able to achieve in my case.
In any case, thanks a lot for the interesting blog post, I'll need some more time to think deeply about the whole issue. Recently I've read a nice paper from Jeff Rothenberg, titled “The Nature of Modeling” (it's part of the book “Artificial Intelligence, Simulation, and Modeling” edited by Lawrence E. Widman, Kenneth A. Loparo and Norman R. Nielsen). I am thinking about revisiting this paper with the top-model question in mind.
Best regards,
Hi Marco,
Interesting post. I post an essay related to yours but used a monster as example.
😀
I like the example, fashion model, too. I've repeatedly think about that and a few of quite different examples called model, which helped me to make a general conception of model, called “Model as Use”, that is, model not a class/type of entity but a role. So I'd like to say that: She is served as a model, most people regard her as a top model.
Regards!
TY
Hi TY,
I'm pretty sure monsters can play a similar (well, opposite) role.. and can gather attention of software engineers too!
(for readers: here is the post TY is mentioning:
http://thinkinmodels.wordpress.com/2013/02/28/can-zhu-bajie-be-a-fashion-model/ )
The dichotomy model/role is actually a crucial point we could discuss about for ages in software and other disciplines too.
Hi!
Both points of views are interesting :), but I think that if we see the definition of a model (Person), the example of Marco fits perfect:
From Wikipedia: Is a person who is employed to display, advertise and promote commercial products (notably fashion clothing) or to serve as a subject of works of art.
From Oxford Dictionary: A person whose job is to wear and show new styles of clothes and be photographed wearing them.
I agree with Sabina that models are humans but I believe both the definitions above and Marco, are referring to the profession of being model, not the person. The personal life of models (relationships, believes, behaviors, etc.) can be a good or a bad example for the youngest and they can play important roles on the society, doing social works and other projects, but that depends on the person (for example not all models do charity work).
I guess the point is humans always create a model about something, or in this case, about somebody (Top Model). When I saw the photography without explanation I only saw a girl that seems to be sad. When Marco gave the explanation that the image is part of a kind of advertising to show and sell clothes, immediately I changed my model (What I believed about the girl) and I began to focus my attention on the clothes rather than the girl (Because I am a Woman). In contrast, my male friends would think that she is hot and they wouldn't care about clothes 😛
Each person has his/her own abstraction of the reality and focus his/her attention on what he/she thinks is important (clothing in my case, appearance of the woman in the case of my friends), doing different mental models.
Best regards,
Thanks for your comment Horshy!
You are actually reporting on a real-life a demonstration of the statement “you cannot avoid modeling” 🙂
Marco
Hi!
I agree with Craig. Sometimes the business area doesn't want to get into the modeling world. In my experience I have seen that business people believe that modeling is a job that corresponds only to the IT area. The business people aren't actively involved in the modeling process and that's why the model is not what was expected and/or doesn't reflect the reality of the enterprise. I believe that this problem can be treated as a problem of “change management”. It's important to generate actions to make possible that the people of business area understand the importance they have in the creation of the model, they begin to participate actively in modeling and they learn, as Marco said, the standard notations and communication rules that make possible the coherence of the model. Business and IT people should work closely, especially if it's required an executable model.