
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 clear defined interfaces that consists 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. 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.
-
Usage
Learn how to use the tooling.
-
Reference
A detailed description of how MontiArc models are defined and work.
-
Library
A collection of standard components and functions included in every model.
-
FAQ
Get answers to frequently asked questions.
-
License
Learn about the license and how you can use the generated code.
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.
-
Something is not working?
Report a bug by creating an issue with information on how to reproduce it
-
Missing information in our docs?
Report missing information or potential inconsistencies in our documentation
-
Want to submit an idea?
Propose a change, feature request, or suggest an improvement
-
Want to create a pull request?
Open an issue first and then create a comprehensive and useful pull request
Hint
Before submitting an issue, make sure to:
- Check that no similar issue already exists here
- You provided all information needed to understand the issue