Skip to content

Modeling Cyber-Physical Systems with MontiArc

A textual architecture description language for modeling Component & Connector architectures with enhanced connection facilities, hierarchical decomposition, a strong type system, and product line variability support.

Model validation
Simulation Framework
Language Extensibility
Door.arc
package elevator;

component Door {
  port in boolean shouldOpen;

  automaton {
    initial state Closed;
    state Open;

    Closed -> Open [shouldOpen == true] shouldOpen / {
      System.out.println("Door has opened");
    }
    Open -> Closed [shouldOpen == false] shouldOpen / {
      System.out.println("Door has closed");
    }
  }
}
500+
Models Created
20+
Research Papers
14+
Years Active

MontiArc

The MontiArc Architecture Description Language

MontiArc is a textual architecture description language (ADL) for the specification and modeling of cyber-physical systems. The architecture of a cyber-physical system is described as a component and connector (C&C) system, in which autonomously acting components perform computations. Components have clearly defined interfaces that consist of stable, typed, directed ports.

Each component defines a cyber-physical function, which maps streams of input messages to stream of output messages. This function is the behavior of the corresponding cyber-physical systems. Behavior can be specified through atomic behavior descriptions, such as statecharts, or through the composition of subcomponents to form larger systems.

The MontiArc infrastructure provides essential functionality for verifying the validity of component and connector models. Due to the strong semantic foundations, components can be translated into Java simulations to simulate, analyze, and validate their behavior, for example, through automated tests. In addition to the basic modeling elements - components, ports, and connectors - MontiArc supports advanced modeling concepts such as component parameterization, variability, dynamic reconfiguration, and generics.

  •   Getting Started


    Is this your first time using MontiArc? Set up a project and start modeling.


    Take the Tour
    Installation & Setup

  •   Usage


    Learn how to use the tooling.


    Read more

  •   Reference


    A detailed description of how MontiArc models are defined and work.


    Read more

  •   Libraries


    Learn about library components and start publishing your own.


    Read more

  •   FAQ


    Get answers to frequently asked questions.


    Read more

  •   License


    Learn about the license and how you can use the generated code.


    Read more

Get Started with MontiArc Today!

Discover Component-Based Modeling

Take the Tour

Found an issue?

MontiArc is actively maintained by the Chair of Software Engineering. There are multiple ways in which you can improve MontiArc to help you and others who might encounter the same issues in the future.

Hint

Before submitting an issue, make sure to:

  • Check that no similar issue already exists here
  • You provided all the information needed to understand the issue

Further Information

Find more information about MontiArc and other projects and publications by the Chair of Software Engineering under the following links: