Skip to content

DAINTINESS-Group/ObjectOrientedArchitectureDiagrammer

Repository files navigation

Logo

Object Oriented Architecture Diagrammer

A tool for the reverse engineering of Java object-oriented source code into Unified Modeling Language (UML) diagrams

workflow Contributors Commits Forks Stargazers Issues MIT License

View Demo · User Documentation · Report Bug · Request Feature

Table of Contents

About

Motivation

The purpose of this project is to develop an independent software tool that produces UML diagrams by reverse engineering Java object-oriented source code.

Features

  • 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

Getting Started

Requirements

  1. Clone the repository
git clone https://github.com/DAINTINESS-Group/ObjectOrientedArchitectureDiagrammer.git
  1. Import project into:

Installation

  1. Run
./mvnw compile

to build the project.

  • In Eclipse: Project -> Build
  • In Intellij IDEA : Build -> Project

Usage

  1. Run
./mvnw package

to create the jar ObjectOrientedArchitectureDiagrammer-0.0.1-SNAPSHOT-jar-with-dependencies.jar

  1. 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

Tests

To run the tests simply run

./mvnw test

Contributing / Reporting issues

Code of Conduct

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!

  1. Fork the Project.
  2. Create your Feature Branch.
git checkout -b feature/NewFeature
  1. Commit your Changes.
git commit -m 'Add some NewFeature'
  1. Push to the Branch.
git push origin feature/NewFeature
  1. Open a Pull Request.

Issues

Create a new Issue to report any issues

Roadmap

  • 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

Authors

v0.2: Dimitris Anyfantakis added a new java parser; Bill Dodis added the PlanUML extension as part of his Diploma Thesis in Univ. Ioannina.
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.

License

See License for more information regarding the license

Acknowledgments

About

A tool for creating UML diagrams for Java programs

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •