Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 52 additions & 0 deletions .github/workflows/prepare_pages.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# (c) https://github.com/MontiCore/monticore

# .github/workflows/prepare_pages.yml
name: Prepare and deploy pages

# Preprocess the docs, build a site directory and push its contents to the gh-pages branch

concurrency: # run this test workflow only once per branch
group: ${{ github.repository }}-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

on:
push:
branches:
- master
paths:
- docs/**
- mkdocs.yml
workflow_dispatch:

jobs:
build:
runs-on: ubuntu-latest
env:
GITLAB_TOKEN: ${{ secrets.GITLAB_TOKEN }}
name: Build and Push
steps:
- name: Checkout repo
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Setup python
uses: actions/setup-python@v4
with:
python-version: '3.9'

- name: Install python packages
run: |
python -m pip install --upgrade pip
pip install mkdocs mkdocs-material mike
git clone https://monticore:$GITLAB_TOKEN@git.rwth-aachen.de/se/infrastructure/monticore-pygments-highlighting.git
pip install -r ./monticore-pygments-highlighting/requirements.txt
pip install ./monticore-pygments-highlighting

- name: Configure Git user
run: |
git config --local user.email "github-actions[bot]@users.noreply.github.com"
git config --local user.name "github-actions[bot]"

- name: Build and deploy pages
run: mkdocs gh-deploy --force
21 changes: 21 additions & 0 deletions docs/GettingStarted/Editor.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
---
hide:
- toc
---
<!-- (c) https://github.com/MontiCore/monticore -->
# Tools & Editors

You have multiple options to choose from for working with MontiArc.
You can build MontiArc models with any text editor or integrated development environment (IDE) in combination with the [CLI](./Setup.md#run-the-cli).

Though there are some editors that provide a better experience for SysML.


## Visual Studio Code

1. To install VS Code, follow their [instructions](https://code.visualstudio.com/docs/setup/setup-overview).
2. Install the MontiArc extension.
1. [Download](https://github-registry-files.githubusercontent.com/758456656/1b847700-819d-11f0-8dad-cb32a1bfe312?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAVCODYLSA53PQK4ZA%2F20250916%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250916T120634Z&X-Amz-Expires=300&X-Amz-Signature=8856e041f06680f48963357fe24467e82f549ab877f3902d9bbe5dc381c649c8&X-Amz-SignedHeaders=host&response-content-disposition=filename%3Dlanguage-server-7.6.1-10-vscode.vsix&response-content-type=application%2Foctet-stream) the `.vsix` extension.
2. Start VS Code.
3. Go to the extension tab → Click `...` → Install from VSIX → Select the previously downloaded extension.

3 changes: 3 additions & 0 deletions docs/GettingStarted/HelloWorld.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
<!-- (c) https://github.com/MontiCore/monticore -->
# Hello, World!
You're now ready to start with your first system.
27 changes: 27 additions & 0 deletions docs/GettingStarted/Setup.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
<!-- (c) https://github.com/MontiCore/monticore -->
# Setup SysML v2

SysML v2 runs on any platform. In the following tutorials, we will use the CLI.


#### Run the CLI

To run the CLI manually, you need to have [Java 21](https://www.oracle.com/de/java/technologies/downloads/#java21) installed.
Next, download the [SysML v2 Tool jar](https://www.monticore.de/download/MCSysMLv2.jar).

You can then run the tool with:

```bash
java -jar MCSysMLv2.jar
```

exemplary usage:

```
java -jar MCSysMLv2.jar -h
java -jar MCSysMLv2.jar -i Car.sysml -pp
```

---

You can find detailed descriptions and available parameters in the [usage](../Usage/index.md) section.
17 changes: 17 additions & 0 deletions docs/GettingStarted/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
---
icon: material/rocket-launch
hide:
- toc
---
<!-- (c) https://github.com/MontiCore/monticore -->
# Getting Started

Let's start your SysML journey! In this chapter, we will show you how to start your first Project and introduce you to the basic concepts of SysML.


!!! info "Tip"
Simply click on *next (Setup)* on the bottom right to go to the next step of installing our SysML tooling.

!!! question "Found a problem with the documentation?"
If you find an error or something is not understandable, please file an [issue](../index.md#found-an-issue) for it.
This will help others reading the documentation in the future.
12 changes: 12 additions & 0 deletions docs/Usage/error.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
**Note**: These codes are preliminary for now.

| Code | Reason |
|---------|----------------------------------------------------|
| 0x00xxx | CLI Tool |
| 0x10xxx | CoCos |
| 0xD0xxx | ST serialization |
| 0x80xxx | Type Check (CoCo) |
| 0x81xxx | Type Derivation (might happen while ST completion) |
| 0x90xxx | Refinement related |
| 0xFFxxx | Verification-specific |
| 0xA0xxx | Internal error |
20 changes: 20 additions & 0 deletions docs/Usage/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
hide:
- toc
---
<!-- (c) https://github.com/MontiCore/monticore -->

# Usage

`java -jar MCSysMLv2.jar [-h] -i <fileName> [-path <p>] [-pp [<file>]] [-s [<file>]]`

| Option | Explanation |
|--------------------------|--------------------------------------------------------------------------------------------|
| -ex,--extended | Runs additional checks assuring models are fit for semantic analysis using [MontiBelle][https://www.se-rwth.de/projects/#MontiBelle] |
| -h,--help | Prints this help dialog |
| -i,--input <file> | Reads the source file (mandatory) and parses the contents |
| -path <arg> | Sets the artifact path for imported symbols, space separated. |
| -pp,--prettyprint <file> | Prints the AST to stdout or the specified file (optional) |
| -r,--report <dir> | Prints reports of the artifact to the specified directory. |
| -s,--symboltable <file> | Serialized the Symbol table of the given artifact. |
| -v,--version | Prints version information |
Binary file added docs/assets/images/icon-mono.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/images/icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
55 changes: 55 additions & 0 deletions docs/assets/images/waves.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
146 changes: 146 additions & 0 deletions docs/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,146 @@
---
template: landingpage.html
title: Modeling Systems
hide:
- navigation
- toc
---
<!-- (c) https://github.com/MontiCore/monticore -->

<h1 id="more" align="center">
<picture>
<img width="150" src="assets/images/icon.png" alt="SysMLv2">
</picture>
</h1>

# The Systems Modeling Language v2

One of the interesting new capabilities is the exchange of models
between tools using a really human readable textual form of the SysML
language in the spirit of a modern programming language (even though it
has a number of special constructs that resemble modelling concepts).

```sysmlv2
standard library package 'Vehicles' {
import ISQ::TorqueValue;
import ScalarValues::*;
part def Automobile;
alias Car for Automobile;
alias Torque for ISQ::TorqueValue;
}
```

This textual form will play a major role in the exchange of models
between tools thus allowing to build toolchains, as well as in the
versioning of models, e.g., in Github, and also in the efficient
definition of models by people who prepare textual notations.

It is therefore highly relevant to have consistent parsing mechanisms
available. The [SysML v2
Pilot-Implementation](https://github.com/Systems-Modeling/SysML-v2-Pilot-Implementation)
contains a parser for this textual notation.

We know from the definition of programming languages, that it is,
however, helpful to provide a second source parser, such that parsing
results can be compared and therefore compilers, linters, checkers of
context conditions and other advanced tooling, receive the level of
quality desired for industrial use.

<div class="grid cards" markdown>

- :material-rocket-launch: &nbsp;
__Getting Started__

---

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

---

[:octicons-arrow-right-24: Take the Tour](./GettingStarted/index.md)<br/>
[:octicons-arrow-right-24: Installation & Setup](./GettingStarted/Setup.md)

- :material-tools: &nbsp;
__Usage__

---

Learn how to use the tooling.<br/><br/>

---

[:octicons-arrow-right-24: Read more](./Usage/index.md)

- :material-license: &nbsp;
__License__

---

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

---

[:octicons-arrow-right-24: Read more](https://monticore.github.io/monticore/00.org/Licenses/LICENSE-MONTICORE-3-LEVEL/)

</div>

<div class="full-width bg-primary" markdown>
<center markdown>
<h2 style="margin: 0;">Get Started with SysML Today!</h2>
Discover Component-Based Modeling

<a href="./GettingStarted/" class="btn btn-primary">
Take the Tour
<svg class="btn-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor">
<path d="M5 12h14M12 5l7 7-7 7" />
</svg>
</a>
</center>
</div>

## Found an issue?

This SysML v2 tooling is actively maintained by the [Chair of Software Engineering](https://www.se-rwth.de/).
There are multiple ways in which you can improve it to help you and others who might encounter the same issues in the future.

<div class="grid cards" markdown>

- :material-lightbulb-on-20: &nbsp;
__Want to submit an idea?__

---

Propose a change, feature request, or suggest an improvement

---

[:octicons-arrow-right-24: Request a change](https://github.com/MontiCore/sysmlv2/issues/new)

- :material-source-pull: &nbsp;
__Want to create a pull request?__

---

Open an issue first and then create a comprehensive and useful pull request

---

[:octicons-arrow-right-24: Set up your development environment](https://github.com/MontiCore/sysmlv2/blob/dev/README.md)<br/>
[:octicons-arrow-right-24: Create a pull request](https://github.com/MontiCore/sysmlv2/pulls)
</div>

!!! info "Hint"
Before submitting an issue, make sure to:

- Check that no similar issue already exists [here](https://github.com/MontiCore/sysmlv2/issues)
- 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:

* [Setup](./GettingStarted/Setup.md)
* [Publications](https://www.se-rwth.de/publications/)
* [SysML v2](https://www.omg.org/sysml/sysmlv2/)
* [MontiArc](https://github.com/MontiCore/montiarc)
* [License](https://github.com/MontiCore/monticore/blob/HEAD/00.org/Licenses/LICENSE-MONTICORE-3-LEVEL.md)
Loading
Loading