Reference model
A Reference model in systems and software engineering is a model of something that embodies the basic goal or idea of something and can then be looked at as a reference for various purposes.
Overview
There are a number of concepts rolled up into that of a 'reference model.' Each of these concepts is important:
- Abstract: a reference model is abstract. The things described by a reference model are not actual things, but an abstract representation of things. Therefore, when describing the architecture of a house, an actual exterior wall may have dimensions and materials, but the concept of a wall is part of the reference model. One must understand the concept of a wall in order to build a house that has walls.
- Entities and Relationships: A reference model contains both entities (things that exist) and relationships (how they interact with one another). A list of entities, by itself, is not sufficient to describe a reference model.
- Within an environment: A reference model does not attempt to describe "all things." A reference model is used to clarify "things within an environment" or a problem space. To be useful, a reference model should include a clear description of the problem that it solves, and the concerns of the stakeholders who need to see the problem get solved.
- Technology Agnostic: A reference model is not useful if it makes assumptions about the technology or platforms in place in a particular computing environment. A reference model is a mechanism for understanding the problems faced, not the solutions involved, and as such, must be independent of the selected solutions in order to provide value to the practitioner. Note: That does not preclude the development of a reference model that describes a set of software applications, because the problem space may be "how to manage a set of software applications."
The Uses of a Reference Model
There are many uses for a reference model. One use is to create standards for both the objects that inhabit the model and their relationships to one another. By creating standards, the work of engineers and developers who need to create objects that behave according to the standard is made easier. Software can be written that meets a standard, and developers can copy that software to use it again, or build a software factory that generates that code. When done well, a standard can make use of design patterns that support key qualities of software, such as the ability to extend the software in an inexpensive way.
Another use of a reference model is to educate. Using a reference model, leaders in software development can help break down a large problem space into smaller problems that can be understood, tackled, and refined. Developers who are new to a particular set of problems can quickly learn what the different problems are, and can focus on the problems that they are being asked to solve, while trusting that other areas are well understood and rigorously constructed. The level of trust is important to allow software developers to efficiently focus on their work.
A third use of a reference model is to improve communication between people. A reference model breaks up a problem into entities, or "things that exist all by themselves." This is often an explicit recognition of concepts that many people already share, but when created in an explicit manner, a reference model is useful by defining how these concepts differ from, and relate to, one another. This improves communication between individuals involved in using these concepts.
A fourth use of a reference model is to create clear roles and responsibilities. By creating a model of entities and their relationships, an organization can dedicate specific individuals or teams, making them responsible for solving a problem that concerns a specific set of entities. For example, if a reference model describes a set of business measurements needed to create a balanced scorecard, then each measurement can be assigned to a specific business leader. That allows a senior manager to hold each of their team members responsible for producing high quality results.
A fifth use of a reference model is to allow the comparison of different things. By breaking up a problem space into basic concepts, a reference model can be used to examine two different solutions to that problem. In doing so, the component parts of a solution can be discussed in relation to one another. For example, if a reference model describes computer systems that help track contacts between a business and their customers, then a reference model can be used by a business to decide which of five different software products to purchase, based on their needs. A reference model, in this example, could be used to compare how well each of the candidate solutions can be configured to meet the needs of a particular business process.
Examples
Instances of reference models include, among others:
- Agent Systems Reference Model,
- Core Architecture Data Model reference model of DoDAF
- Federal Enterprise Architecture Framework reference model of the FEA
- NIST Enterprise Architecture Model reference models from several Federal Enterprise Architectures
- Open Geospatial Consortium reference models,
- Open Systems Interconnection Basic Reference Model,
- Real-time Control System for real-time control problem domains
- Reference Model of Open Distributed Processing,
- TAFIM was the 1990 reference model of the earlier version of the DoDAF, and
- Von Neumann architecture as a reference model for sequential computing,
- HP Information Security Reference Model (ISSM)
See also
References
Stanoevska-Slabeva, K.; Schmid, B.: Requirements Analysis for Community Supporting Platforms based on the Media Reference Model. In: Electronic Markets, 10, 4, 2000, pp. 250-257.