From 1103229846cb11695975f9dbf0100a0aaf2f9fef Mon Sep 17 00:00:00 2001 From: Michael Rasmussen Date: Mon, 24 Feb 2014 00:15:27 +0100 Subject: [PATCH] Added class diagram of overall design --- class-diagram.dia | Bin 0 -> 3181 bytes class-diagram.png | Bin 0 -> 50073 bytes class-diagram.svg | 1152 +++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 1152 insertions(+) create mode 100644 class-diagram.dia create mode 100644 class-diagram.png create mode 100644 class-diagram.svg diff --git a/class-diagram.dia b/class-diagram.dia new file mode 100644 index 0000000000000000000000000000000000000000..f578361f21401e0e618b7e5c0ae33bed24087d5c GIT binary patch literal 3181 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 literal 0 HcmV?d00001 diff --git a/class-diagram.png b/class-diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..b33605d730df917943648f7660a4820f90f3ef83 GIT binary patch literal 50073 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 literal 0 HcmV?d00001 diff --git a/class-diagram.svg b/class-diagram.svg new file mode 100644 index 0000000..6a9e3b8 --- /dev/null +++ b/class-diagram.svg @@ -0,0 +1,1152 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -- 2.39.2