A tool for the reverse engineering of Java object-oriented source code into Unified Modeling Language (UML) diagrams
View Demo · User Documentation · Report Bug · Request Feature
- About >
The purpose of this project is to develop an independent software tool that produces UML diagrams by reverse engineering Java object-oriented source code.
- Visualize class && package UML diagrams
- Choose the classes/packages that will be included in the diagram
- Create different diagrams from the same project
- Export a diagram to:
- GraphML in order to visualize it using yEd
- Image
- text file that can you can later load
- Clone the repository
git clone https://github.com/DAINTINESS-Group/ObjectOrientedArchitectureDiagrammer.git
- Import project into:
- Run
./mvnw compile
to build the project.
- In Eclipse: Project -> Build
- In Intellij IDEA : Build -> Project
- Run
./mvnw package
to create the jar ObjectOrientedArchitectureDiagrammer-0.0.1-SNAPSHOT-jar-with-dependencies.jar
- Run
java -jar ObjectOrientedArchitectureDiagrammer\target\ObjectOrientedArchitectureDiagrammer-0.0.1-SNAPSHOT-jar-with-dependencies.jar
to execute the jar
Check the User Documentation regarding more about the usage of the tool
To run the tests simply run
./mvnw test
Any contributions you make are greatly appreciated.
If you want to contribute to the development of our tool, please fork the repo and create a pull request.
❗ Please adhere to the current code style.
⭐ Don't forget to give the project a star!
- Fork the Project.
- Create your Feature Branch.
git checkout -b feature/NewFeature
- Commit your Changes.
git commit -m 'Add some NewFeature'
- Push to the Branch.
git push origin feature/NewFeature
- Open a Pull Request.
Create a new Issue to report any issues
- Fix crashes with underscores, files/folders starting with '.', etc
- Build a visualization library that supports:
- A layout algorithm that uses bend minimization
- Drag & drop canvas to add UML entities
- Editable canvas in order to move & delete UML components and entities
- Editable edges that can split when clicked to help the user avoid edge/box overlapping
- Support PlantUML
- Use PlantUML’s language to define the diagram
- Export the image of the diagram
- Visualize the diagram within the tool's canvas
- Deprecate jdt parser after heavy usage of javaparser, or, extend the jdt parser to support:
- Creation of new() objects via local variables (and the resulting dependencies)
- Enums
v0.2: Dimitris Anyfantakis added a new java parser; Bill Dodis added the PlanUML extension as part of his Diploma Thesis in Univ. Ioannina. Vassilis Zafeiris solved bugs at the package diagrams
v0.1: Dimitris Anyfantakis has developed the first version of the tool as part of his Diploma Thesis in Univ. Ioannina; Panos Vassiliadis acted solely as code reviewer and co-designer.
See License for more information regarding the license