Friday, November 17, 2006

Conceptual Models

One of the most useful tools for explicating the terminology of customers is a conceptual model. Conceptual models depict the concepts in the problem domain and their relationships.

At Cauvin, Inc., we compose conceptual models in the form of static structure diagrams. Conceptual models resemble glossaries (in that they define the words in the domain), but they are richer and more concise.

Here is an example of a conceptual model:

Conceptual models in this format contain the following elements:
  • Concepts. Each rectangular box depicts a concept.
  • Links. A line between two concepts shows that an association exists between them.
  • Association. The name of an association is shown on or next to a link between two concepts.
  • Multiplicities. Multiplicities show how many instances of the concepts participate in the association. An asterisk (*) means that an indefinite (potentially infinite) number of instances participates in the relationship.
  • Specialization. A specialization is a kind of association with a hollow triangle connecting the link to a concept. The concept on the triangle link is the general concept. The concept on the other end of the link is its specialization, which means it is a kind of the general concept.
The example diagram thus directly implies the following statements:
  • A product is sold in zero or more markets.
  • A market is divided into zero or more market segments.
  • A segmentation method is a method of segmenting a market.
  • Regional segmentation is a kind of segmentation method.
  • Regional segmentation segments a market by zero or more regions.
Building a conceptual model helps a product manager understand the language of the customer. The process often exposes inconsistencies or inefficiencies in the terminology that a product manager can eliminate by explicating the concepts as she composes and refines the diagram.


Anonymous said...

While I appreciate how the diagram outlines the relationships, a UML diagram may be a challenge to communicate conceptual models depending on your audience.

The most effective conceptual models that I have seen/used were simplistic in communicating the business model (compelling/viability) at the highest level. If I am trying to communicate with a development team, it might be more intuitive.

While I would probably not use this format, I think it does a great job outlining the relationships between the entities.

Putcha V. Narasimham said...

Conceptual model has many similarities with "Concept Maps" and "Class Diagrams" which should be more appropriately called "Inter-Class Diagrams".

To startwith simplified graphic models (diagrams) are helpful but they should be extencible to express higher complexity with precision and rigor. Otherwise, the initial documentation looses correlation with design / implementation details. Currently UML 2.0 Diagrams are OK but extensibility is yet to evolve to reduce the gap between the diagrams and the software that gets developed. I understand that "Executable UML" aims to achieve this.

Putcha V. Narasimham

Roger L. Cauvin said...

Putcha, I am not optimistic about the prospect of reducing the gap between conceptual models and software design. The purposes are quite different. The purpose of a conceptual model is to fully understand the concepts in the domain. While understanding concepts is an important prerequisite to designing software, concepts do not generally map one-to-one to classes.

Dave said...

Ontologies form the basis of the Semantic Web. They also represent the xml means of encoding a conceptualization.

Once you get the conceptual model encoded, you do terminology managment. In terminology management, you are creating a vocabulary for your conceptualization.

Once you have your terminology done, you are ready to move the conceptual model to UML.

Concepts may look like UML, but there is a leap between them.

That UML is now executable means that it is much closer to be the carrier than the carried. UML is the automating, rather than the automated.

Programmers diverge from requirements. They deal with language constraints, APIs, design patterns, and things that move them away from the use of resulting software.

UML diverges as well. It has to diverge to deal with programmer considerations.

Once the UI is finished. The users take it out for a drive. As they drive they notice the response. They build a user conceptual model of their experiences. Hopefully, the conceptual model emerging from requirements elicitation matches the conceptual model emerging from the user experience.

Putcha V. Narasimham said...

Roger: I am coming back to it nearly 7 years after because of your recent prompt.

I did not see your comment earlier.

How long it takes to reduce the gaps is one aspect but I see the very purpose of UML or any such language is to reduce the gap between the concepts and their representations. Text is considered too elaborate but not precise enough. So we find that a lot of math, drawings, diagrams, simulations, come in different combinations. The key is to reduce the gap formally so that it becomes executable.



Putcha V. Narasimham said...

I do not have a site of my own but I have uploaded a few PPTs and PDFs to slideshare.

Those who may be interested may take a look at

This is on the basics of relation...

Best wishes,