conceptual model is a representation of a system that uses concepts and ideas to form said representation.
Conceptual modeling is used across many fields, ranging from the sciences to socioeconomics to software development.
When using a
conceptual model to represent abstract ideas, it's important to distinguish between a model of a concept versus a model that is conceptual. That is to say, a model is intrinsically a thing unto itself, but that model also contains a concept of what that model represents -- what a model is, as opposed to what a model represents.
Without diving too deep into the philosophical, recognizing these differences between the model itself and what it represents is critical to understanding the proper use of
conceptual models in the first place. It should come as no surprise, then, that
conceptual models are often used as an abstract representation of real world objects.
Throughout this article we'll explore what
conceptual models are, how they are most commonly implemented, as well as a few advantages and disadvantages of using
conceptual models in the realm of software development, so let's get to it!
As touched on above,
conceptual modeling is used as a way to describe physical or social aspects of the world in an abstract way. For example, in the realm of software development, a
conceptual model may be used to represent the relationships of entities within a database. Whether written down via text or diagrammed visually, such a
conceptual model can easily represent abstract concepts of the relationships between objects in the system, such as
Users and their relationship to
conceptual models within a typical software development life cycle are often referred to as
domain models. A
domain model is a type of
conceptual model that incorporates representations of both behavior and data at the same time. As illustrated above, this often represents database entities, using simple diagramming techniques to illustrate
many-to-many relationships within the system.
conceptual model should fulfill four fundamental objectives:
Applying these objectives to our example data model above, we can ascertain that a
conceptual data model should capture the key business entities (a person, place, concept, event, or thing about which the organization wants to collect data), as well as the relationships between these entities.
Due to the broad spectrum of concepts and inherent abstractness that it can represent,
conceptual modeling is used in a wide range of projects, across dozens of fields. Within the realm of software development, as we illustrated above,
conceptual modeling is most commonly used as a form of
data modeling; representing abstract business entities and the relationships therein.
The rise of
rapid application development represents another very common implementation of
conceptual modeling, which uses abstract models to represent development processes that are rapidly changing and being iterated upon. Furthermore, within each phase of
rapid application development,
conceptual models are typically used to communicate sub-concepts as well.
Even fundamental modeling practices are, by their very nature, forms of
conceptual models. One such example is the
Unified Modeling Language, which was created in the mid-90s, and is a general purpose modeling language that attempts to provide a standard method to visualize system design.
Throughout all the various implementations of
conceptual models, a few best practices have emerged. A
conceptual model should:
In spite of the name,
conceptual models are not merely conceptual, they are frequently put to use in real-world scenarios. The
Federal Emergency Management Agency (
conceptual modeling to develop
Emergency Response Management systems, as have other vital institutions including the
U.S. Missile Defense Agency and the
National Institute of Standards and Technology.
conceptual models are merely representations of abstract concepts and their respective relationships, the potential advantages of implementing a
conceptual model are many, but largely depend on your own ability to devise a strong model in the first place. Generally speaking, the primary advantages of a
conceptual model include:
conceptual modelcan help ensure that there are fewer surprises down the road, where entities or relationships might otherwise have been neglected or forgotten.
conceptual modelcan be used as a way to define project scope, which assists with time management and scheduling.
Conceptual modelsserve as a great jumping-off point from which more concrete models can be created, such as
logical data modelsand the like.
Conceptual modelsserve as a great tool by providing a high-level understanding of a system throughout the software development life cycle. This can be particularly beneficial for managers and executives, who may not be dealing directly with coding or implementation, but require a solid understanding of the system and the relationships therein.
conceptual model is so abstract, and thus, is only as useful as you make it, there can be a few disadvantages or caveats to watch out for when implementing your own
conceptual modelscan (and should) be adaptive, proper creation and maintenance of a
conceptual modelrequires a fundamental and robust understanding of the project, along with all associated entities and relationships.
conceptual modelmay lead to massive time waste and potential sunk costs, where development and planning have largely gone astray of what was actually necessary in the first place.
conceptual modelingis used to represent such abstract entities and their relationships, it's possible to create clashes between various components. In this case, a clash simply indicates that one component may conflict with another component, somewhere down the line. This may be seen when
deployment, as the initial assumptions of scaling during
codingwere proven wrong when actual
conceptual modelsare not inherently ill-suited for large applications, it can be challenging to develop and maintain a proper
conceptual modelfor particularly complex projects, as the number of potential issues, or
clashes, will grow exponentially as the system size increases.