Generate UML diagrams from Java code stored in GitHub repositories
Generate UML diagrams from Java code stored in GitHub repositories. Diagrams automatically update when you push code using git. Browse through community UML diagrams, surf through “Java awesome” listed GitHub repositories and visualise the architectures and patterns in them. Simple, point and click interface to reverse engineer into UML – add PlantUML markup customisation and HTML annotations.
One key idea with GitUML is to address one of the problems with “documentation”: that diagrams are always out of date. With GitUML, diagrams automatically update when you push code using git.
The other key idea was to honour programmers wishing to focus on working soley with code, and simply offer UML class diagrams as an automatic reverse engineering of their work. Nobody has to change their work practices and try to use UML to design code, which is no longer a popular use case. This is a pure reverse engineering tool, with minimal input from developers needed – no fancy diagram editor – just click on checkboxes next to files you want visualised.
Its a potentially great tool for a company who desperately needs an experienced programmer who is leaving an organisation to rapidly document his or her big picture knowledge of a codebase. Conversely, for helping to onboard new programmers more rapidly – when there are a few key diagrams available when they start. Open source projects could potentially onboard more contributors when there are UML diagrams available showing the overview of a project’s architecture.
I know UML is a bit 90’s but let’s not throw out stuff that when used wisely, might help developers and teams. I’ve tried to make UML easier to access and more relevant to today’s developers. If you are not into UML, fair enough – but some people are. The popularity of PlantUML textual UML markup is high (e.g. 1.6 million downloads for the vscode PlantUML plugin alone). GitUML simply translates Java into PlantUML and then you can add your own extra PlantUML to customise, saving time.
Looking forward to feedback and hoping Java devs find this useful. Works for Python too.