From c992db275494b05627248cd741adac5d7c199603 Mon Sep 17 00:00:00 2001 From: Yuuta Liang Date: Tue, 28 Nov 2023 21:00:25 -0800 Subject: Add UML generator Signed-off-by: Yuuta Liang --- README.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'README.md') diff --git a/README.md b/README.md index 2be62b6..36cc6e4 100644 --- a/README.md +++ b/README.md @@ -101,6 +101,30 @@ Tue Nov 28 11:53:01 PST 2023 - yuuta: Certificate 1 is revoked with reason KEY_C Tue Nov 28 11:53:06 PST 2023 - yuuta: Signed CRL with 1 revoked certs. ``` +## Phase 4: Task 3 + +[View complete UML diagram (may be too complex to read)](img/uml.all.pdf) | +[View type hierarchy only](img/uml.type.pdf) | +[View associations only](img/uml.assoc.pdf) + +## A note on UML + +The above UML diagrams are generated using a simple tool called UMLGen, and its source is located in the `umlgen/` +directory. I am the author of the tool. The tool uses JavaParser to parse Java syntax into AST, and it generates Graphviz +dot files using Apache Freemarker. The dot files are then rendered into the above PDFs using Graphviz. The whole process +is driven by Gradle. + +To generate the files again, run the following command: (`dot(1)` and `gradle(1)` must present in PATH) + +```shell +gradle uml +``` + +Please note that both codes in `umlgen/` and Gradle build scripts `*.gradle` are NOT part of the project submission. +They do not subject to project requirements as they are not part of the project at all, either tests or UI. They are only +local build tools. The project (both tests and UI) runs perfectly without any of these files. To run the project, clone it +in IntelliJ Idea and press the green triangle in `Main`. + ## Author Yuuta Liang -- cgit v1.2.3