Skip to content

Commit

Permalink
Updated README
Browse files Browse the repository at this point in the history
  • Loading branch information
fynndemmler committed Nov 15, 2023
1 parent fd1be8e commit ad9ddaa
Showing 1 changed file with 26 additions and 28 deletions.
54 changes: 26 additions & 28 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,14 @@ CorC for information flow ([C-CorC](https://github.com/KIT-TVA/CorC/wiki/CorC-fo
CorC requires [Eclipse Modelling Tools (EMT)](https://www.eclipse.org/downloads/packages/release/2023-09/r/eclipse-modeling-tools) to be installed and extended with various plugins.
## Java Version
Install [**JDK 16**](https://www.oracle.com/java/technologies/javase/jdk16-archive-downloads.html). CorC may not work out of the box with newer versions.
## Eclipse Modelling Tools
Install [Eclipse Modelling Tools](https://www.eclipse.org/downloads/packages/release/2023-09/r/eclipse-modeling-tools) (Version 2023-09).

## Software
- Install [Eclipse Modelling Tools](https://www.eclipse.org/downloads/packages/release/2023-09/r/eclipse-modeling-tools) (Version 2023-09).
- Get the latest release of [Z3](https://github.com/Z3Prover/z3/releases) and add the `*/z3-[cur-version]-[x64/x32]-win/bin` folder to the environment variable [PATH](https://www.wikihow.com/Change-the-PATH-Environment-Variable-on-Windows)

## EMT Plugins
- **Graphiti** Install Graphiti using the update site https://download.eclipse.org/graphiti/updates/0.18.0/

- **KeY** Install KeY using the update site https://formal.iti.kit.edu/key/download/releases/2.6/eclipse/ (disable *Group items* to show available plugins, install all)
- **KeY** Install KeY using the update site https://formal.iti.kit.edu/key/download/releases/2.6/eclipse/ (disable `Group items` to show available plugins, install all)

- **Xtext** Available in [Eclipse Marketplace](https://marketplace.eclipse.org/content/eclipse-xtext)

Expand All @@ -26,38 +26,36 @@ Install [Eclipse Modelling Tools](https://www.eclipse.org/downloads/packages/rel

- **TestNG** Available in [Eclipse Marketplace](https://marketplace.eclipse.org/content/testng-eclipse)

- **Z3** Get the latest release of [Z3](https://github.com/Z3Prover/z3/releases) and add it to the environment variable [PATH](https://www.wikihow.com/Change-the-PATH-Environment-Variable-on-Windows).

## CorC Setup
1. Clone the repo:
```sh
git clone https://github.com/KIT-TVA/CorC.git
```
2. Install **JaMoPP** using the two plugins inside package *\*.tool.update* (disable *Group items* to show available plugins).
2. Install **JaMoPP** using the two plugins inside package `*.tool.update` (disable `Group items` to show available plugins).
3. Open the following packages in Eclipse Modelling Tools:
- de.tu-bs.cs.isf.cbc.model
- de.tu-bs.cs.isf.cbc.tool
- de.tu-bs.cs.isf.cbc.util
- de.tu-bs.cs.isf.cbcclass.tool
- de.tu-bs.cs.isf.wizards
- de.tu_bs.cs.isf.cbc.parser
- de.tu_bs.cs.isf.cbc.statistics
- de.tu_bs.cs.isf.cbc.statistics.ui
- de.tu_bs.cs.isf.commands.toolbar
- de.tu_bs.cs.isf.lattice

4. *Right click -> Generate Model/Edit/Editor Code* in **all** of the following files:
- *\*.cbc.model -> model -> cbcmodel.genmodel*
- *\*.cbc.statistics -> model -> cbcstatistics.genmodel*

5. Select any package and run project as *Eclipse Application*.
- `de.tu-bs.cs.isf.cbc.model`
- `de.tu-bs.cs.isf.cbc.tool`
- `de.tu-bs.cs.isf.cbc.util`
- `de.tu-bs.cs.isf.cbcclass.tool`
- `de.tu-bs.cs.isf.wizards`
- `de.tu_bs.cs.isf.cbc.parser`
- `de.tu_bs.cs.isf.cbc.statistics`
- `de.tu_bs.cs.isf.cbc.statistics.ui`
- `de.tu_bs.cs.isf.commands.toolbar`
- `de.tu_bs.cs.isf.lattice`

4. `Right click -> Generate Model/Edit/Editor Code` in **all** of the following files:
- `*.cbc.model -> model -> cbcmodel.genmodel`
- `*.cbc.statistics -> model -> cbcstatistics.genmodel`

5. Select any package and run project as `Eclipse Application`.

# Examples & Case Study Introduction
We provide different examples and case studies to explore CorC!
## Examples
Create CorC-examples via *File -> New -> Other... -> CorC -> CorC Examples ->* Select examples you want to create.
Create CorC-examples via `File -> New -> Other... -> CorC -> CorC Examples` Select examples you want to create.
## Case studies
The repository you checked out contains various software product line case studies. They can be loaded via *File -> Open project from file system*.
The repository you checked out contains various software product line case studies. They can be loaded via `File -> Open project from file system`.
### BankAccount
The BankAccount implements basic functions of a bank account such as withdrawals, limits, money transfers and checking the account balance.
- **BankAccount** Object-oriented implementation with class structure and CbC-Classes.
Expand All @@ -78,16 +76,16 @@ The IntegerList implements a list of integers with add and sort operations.

**Problem:** Multiple resolving errors after generating model files.

**Solution:** Uninstall JaMoPP Plugins via *Window -> Preferences -> Install/Update -> Uninstall or update*. Afterwards reinstall as described above.
**Solution:** Uninstall JaMoPP Plugins via `Window -> Preferences -> Install/Update -> Uninstall or update`. Afterwards reinstall as described above.

---

**Problem:** Cycling depedency issues.

**Solution:** Navigate to: *Project -> Properties -> Java Compiler -> Building -> Configure Workspace Settings -> Build path problems -> Circular dependencies* and set the listbox to *Warning*.
**Solution:** Navigate to: `Project -> Properties -> Java Compiler -> Building -> Configure Workspace Settings -> Build path problems -> Circular dependencies` and set the listbox to `Warning`.

---

**Problem:** Errors in certain files about undefined methods and classes.

**Solution:** Changing the compliance: *Project -> Java Compiler -> JDK Complicance -> Use compliance from execution environment 'JavaSE-16'*.
**Solution:** Changing the compliance: `Project -> Java Compiler -> JDK Complicance -> Use compliance from execution environment 'JavaSE-16'`.

0 comments on commit ad9ddaa

Please sign in to comment.