MERODE

Last updated

MERODE [1] is an Object Oriented Enterprise Modeling method developed at KU Leuven (Belgium). Its name is the abbreviation of Model driven, Existence dependency Relation, Object oriented DEvelopment. MERODE is a method for creating domain models (also called conceptual models) as basis for building information systems making use of two prominent UML diagramming techniques - class diagram and state diagrams. Starting from a high-level PIM (close to a Computational Independent Model (CIM)) allows removing or hiding details irrelevant for a conceptual modelling view which makes the approach easier to understand. The method is grounded in process algebra, which enables mathematical reasoning on models. Thanks to this, models can be checked for internal consistency and mutual completeness, i.e. inter/intra model consistency and syntactical quality. The automated reasoning ("consistency by construction") [2] also caters for autocomplete functionality, which allows creating correct models faster.

A typical MERODE analysis or conceptualisation consists of three views or diagrams: a so-called existence dependency graph (EDG) similar to a UML class diagram, a proprietary concept namely an object event table (OET) and a group of finite state machines.

MERODE fosters a model-driven engineering approach to software development. It targets platform independent domain models that are sufficiently complete for execution, i.e. transformation to platform-specific models and to code. In order to achieve automated transformation of models, MERODE limits the use of UML to a number of well-defined constructs with clear semantics and complements this with the notion of "existence dependency" [3] and a proprietary approach to object interaction modelling.

MERODE-models can be created with the opensource case tool JMermaid. [4] The tool also allows checking the models for consistency and readiness for transformation.

A companion code generator [5] [6] [7] allows to generate a fully working prototype. One-click prototype production lowers the required skill-set for its useful application. By embedding the models into the application, the behaviour of the prototype can be traced back to the models, i.e. making it possible to validate the semantic quality of models. MERODE prototypes are augmented with feedback (textual and graphical) [8] that links the test results to their causes in the model.

Related Research Articles

Unified Modeling Language Software system design modeling tool

The Unified Modeling Language (UML) is a general-purpose, developmental, modeling language in the field of software engineering that is intended to provide a standard way to visualize the design of a system.

A modeling language is any artificial language that can be used to express information or knowledge or systems in a structure that is defined by a consistent set of rules. The rules are used for interpretation of the meaning of components in the structure.

Model Driven Architecture® (MDA®) is a software design approach for the development of software systems. It provides a set of guidelines for the structuring of specifications, which are expressed as models. Model Driven Architecture is a kind of domain engineering, and supports model-driven engineering of software systems. It was launched by the Object Management Group (OMG) in 2001.

Round-trip engineering (RTE) is a functionality of software development tools that synchronizes two or more related software artifacts, such as, source code, models, configuration files, and even documentation. The need for round-trip engineering arises when the same information is present in multiple artifacts and therefore an inconsistency may occur if not all artifacts are consistently updated to reflect a given change. For example, some piece of information was added to/changed in only one artifact and, as a result, it became missing in/inconsistent with the other artifacts.

Entity–relationship model Model or diagram describing interrelated things

An entity–relationship model describes interrelated things of interest in a specific domain of knowledge. A basic ER model is composed of entity types and specifies relationships that can exist between entities.

Object-role modeling Programming technique

Object-role modeling (ORM) is used to model the semantics of a universe of discourse. ORM is often used for data modeling and software engineering.

Objecteering

Objecteering is a UML and MDA CASE tool edited by Objecteering Software, a subsidiary of Softeam.

Information model

An information model in software engineering is a representation of concepts and the relationships, constraints, rules, and operations to specify data semantics for a chosen domain of discourse. Typically it specifies relations between kinds of things, but may also include relations with individual things. It can provide sharable, stable, and organized structure of information requirements or knowledge for the domain context.

A UML tool is a software application that supports some or all of the notation and semantics associated with the Unified Modeling Language (UML), which is the industry standard general-purpose modeling language for software engineering.

A conceptual model is a representation of a system. It consists of concepts used to help people know, understand, or simulate a subject the model represents. It is also a set of concepts. In contrast, physical models are physical objects, such as a toy model that may be assembled and made to work like the object it represents.

Class diagram

In software engineering, a class diagram in the Unified Modeling Language (UML) is a type of static structure diagram that describes the structure of a system by showing the system's classes, their attributes, operations, and the relationships among objects.

Object-oriented analysis and design (OOAD) is a technical approach for analyzing and designing an application, system, or business by applying object-oriented programming, as well as using visual modeling throughout the software development process to guide stakeholder communication and product quality.

A modeling perspective in information systems is a particular way to represent pre-selected aspects of a system. Any perspective has a different focus, conceptualization, dedication and visualization of what the model is representing.

Glossary of Unified Modeling Language (UML) terms provides a compilation of terminology used in all versions of UML, along with their definitions. Any notable distinctions that may exist between versions are noted with the individual entry it applies to.

Model-driven engineering (MDE) is a software development methodology that focuses on creating and exploiting domain models, which are conceptual models of all the topics related to a specific problem. Hence, it highlights and aims at abstract representations of the knowledge and activities that govern a particular application domain, rather than the computing concepts.

Executable UML is both a software development method and a highly abstract software language. It was described for the first time in 2002 in the book "Executable UML: A Foundation for Model-Driven Architecture". The language "combines a subset of the UML graphical notation with executable semantics and timing rules." The Executable UML method is the successor to the Shlaer–Mellor method.

Object-oriented design is the process of planning a system of interacting objects for the purpose of solving a software problem. It is one approach to software design.

The Triune Continuum Paradigm is a paradigm for general system modeling published in 2002. The paradigm allows for building of rigorous conceptual frameworks employed for systems modeling in various application contexts.

Model Driven Interoperability (MDI) is a methodological framework, which provides a conceptual and technical support to make interoperable enterprises using ontologies and semantic annotations, following model driven development (MDD) principles.

Interaction Flow Modeling Language

The Interaction Flow Modeling Language (IFML) is a standardized modeling language in the field of software engineering. IFML includes a set of graphic notations to create visual models of user interactions and front-end behavior in software systems.

References

  1. Snoeck, M. (2014). Enterprise Information Systems Engineering: The MERODE approach: Springer.
  2. Snoeck, M., Michiels, C., & Dedene, G. (2003). Consistency by construction: The case of MERODE. In M. A. Jeusfeld, Pastor, Oscar (Ed.), Conceptual modeling for novel application domains, LNCS (Vol. 2814, pp. 105-117).
  3. Snoeck M, Dedene G (1998) Existence Dependency: the key to semantic integrity between structural and behavioral aspects of object types. IEEE Trans Softw Eng 24(24):233–251
  4. https://merode.econ.kuleuven.be/JMermaid.html
  5. https://merode.econ.kuleuven.be/CodeGeneration.html
  6. Sedrakyan, G., Snoeck, M. Lightweight semantic prototyper for conceptual modeling, In Advances in Conceptual Modeling, LNCS (Vol. 8823, pp. 298-302), Proceedings of International Conference on Conceptual Modeling, ER'14. Atlanta, GA (US), Springer Switzerland
  7. Sedrakyan, G., & Snoeck, M. (2013). A PIM-to-Code requirements engineering framework. In Proceedings of Modelsward 2013-1st International Conference on Model-driven Engineering and Software Development-Proceedings, 163-169.
  8. Sedrakyan, G., Snoeck, M., & Poelmans, S. (2014). Assessing the effectiveness of feedback enabled simulation in teaching conceptual modeling. Computers & Education, 367-382, 367 - 382.