A simplified and accessible alternative to Enterprise Architect for generating UML diagrams from student code.
This project provides an intuitive tool designed to support both instructional review and student learning at MSOE. It streamlines the workflow for faculty and students by making UML diagram generation from Java code straightforward and efficient.
This project has automated releases. A release is triggered on a successful commit to the main branch. You may find the latest releases here.
Each automated release provides downloads to the following artifacts:
NOTE: If you are using a non-Windows system, ensure that Graphviz is installed because it is a required dependency for all release artifacts.
Verify that Java 21 is installed on your system and that the JAVA_HOME environment variable points to it, or that its directory is included in your system PATH
Run the following command to build the Core module:
./gradlew modules:core:build
This will build a Fat JAR, located in modules/core/build/libs/.
Run the JAR using:
java -jar modules/core/build/libs/reveng-cli.jar
Run the following command to build the Desktop App module:
./gradlew modules:desktop-app:build
This will build a Fat JAR, located in modules/desktop-app/build/libs/.
Run the JAR using:
java -jar modules/desktop-app/build/libs/reveng-desktop.jar
Run the following command to build the IntelliJ Plugin module:
./gradlew modules:intellij-plugin:buildPlugin
This will create a zip distributable, located in modules/intellij-plugin/build/distributions/.
Install the plugin in IntelliJ:
We added comprehensive JUnit tests for:
.java files, malformed input handling, and extension checks.To run the unit tests, execute the following command:
./gradlew :modules:core:test
All sample Java files used for testing are located in the src/test/resources directory.
All parser-related tests passed successfully, confirming that:
Testing documentation coming soon.
You can run the plugin in a sandbox IntelliJ IDE using any of these methods:
Method 1: From Gradle Tool Window
reveng → Tasks → intellij platform → runIderunIdeMethod 2: From Terminal
./gradlew runIde
For comprehensive plugin documentation, see docs/RUNNING_THE_PLUGIN.md.
reveng <input.java> <output1> [output2...] [outputLocation] [--print]
| Parameter | Required | Description |
|---|---|---|
<input.java> |
✓ | Path to the Java source file to parse (must contain exactly one public class) |
<output1> [output2...] |
✓ | One or more output files (.puml or .png) |
[outputLocation] |
✗ | Optional folder to save output files (defaults to current directory) |
[--print] |
✗ | Optional flag to print methods and fields to the console |
reveng TestClass.java TestDiagram.puml
reveng TestClass.java TestDiagram.png
reveng TestClass.java TestDiagram.puml TestDiagram.png ./output --print
This command generates both PlantUML and PNG files in the ./output folder and prints class details to the console.
Jonathon Flynn, Ph.D.
Professor at MSOE
flynn@moe.edu
| Name | Role | |
|---|---|---|
| Jude Gill | DevOps | gillj@msoe.edu |
| Emanuel Gonzalez | Product Owner Proxy | gonzalezem@msoe.edu |
| Stephen Miller | Scrum Master | millers@msoe.edu |
| Kaiden Pollesch | Note Taker | polleschk@msoe.edu |
--print flag, only file creation confirmations are displayedLicense information coming soon.