aboutsummaryrefslogtreecommitdiff
path: root/diagram.svg
diff options
context:
space:
mode:
authorIan Valentin Christensen <valentianchristensen@gmail.com>2025-05-01 02:26:13 +0200
committerIan Valentin Christensen <valentianchristensen@gmail.com>2025-05-01 02:26:13 +0200
commit6369a58979970112e0232315e588adb6feacbfc4 (patch)
tree1409d65212b9cfd4e3159e126b32b842c5182a89 /diagram.svg
parent94f7348c379f16036e67dce1ad94be274fc84ec8 (diff)
add diagram
Diffstat (limited to 'diagram.svg')
-rw-r--r--diagram.svg90
1 files changed, 90 insertions, 0 deletions
diff --git a/diagram.svg b/diagram.svg
new file mode 100644
index 0000000..e0e4b92
--- /dev/null
+++ b/diagram.svg
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="507px" preserveAspectRatio="none" style="width:987px;height:507px;" version="1.1" viewBox="0 0 987 507" width="987px" zoomAndPan="magnify"><defs><filter height="300%" id="f3bsmj5n8kuys" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><!--MD5=[175f95e045c1a44aed0b30df3abe0e5c]
+class Program--><rect fill="#FEFECE" filter="url(#f3bsmj5n8kuys)" height="92.9457" id="Program" style="stroke: #A80036; stroke-width: 1.5;" width="102" x="509" y="8"/><ellipse cx="533.45" cy="24" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M536.4188,29.6406 Q535.8406,29.9375 535.2,30.0781 Q534.5594,30.2344 533.8563,30.2344 Q531.3563,30.2344 530.0281,28.5938 Q528.7156,26.9375 528.7156,23.8125 Q528.7156,20.6875 530.0281,19.0313 Q531.3563,17.375 533.8563,17.375 Q534.5594,17.375 535.2,17.5313 Q535.8563,17.6875 536.4188,17.9844 L536.4188,20.7031 Q535.7938,20.125 535.2,19.8594 Q534.6063,19.5781 533.9813,19.5781 Q532.6375,19.5781 531.95,20.6563 Q531.2625,21.7188 531.2625,23.8125 Q531.2625,25.9063 531.95,26.9844 Q532.6375,28.0469 533.9813,28.0469 Q534.6063,28.0469 535.2,27.7813 Q535.7938,27.5 536.4188,26.9219 L536.4188,29.6406 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="49" x="549.55" y="28.656">Program</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="510" x2="610" y1="40" y2="40"/><ellipse cx="520" cy="51" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="67" x="529" y="55.7589">name: String</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="510" x2="610" y1="62.9819" y2="62.9819"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="86" x="515" y="78.7408">boolean isValid()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="90" x="515" y="93.7227">void addActivity()</text><!--MD5=[c881b25adf3665c6568c9693d41a70f3]
+class Activity--><rect fill="#FEFECE" filter="url(#f3bsmj5n8kuys)" height="103.6339" id="Activity" style="stroke: #A80036; stroke-width: 1.5;" width="93" x="513.5" y="161"/><ellipse cx="532.55" cy="182.3441" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M535.5188,187.9847 Q534.9406,188.2816 534.3,188.4222 Q533.6594,188.5785 532.9563,188.5785 Q530.4563,188.5785 529.1281,186.9379 Q527.8156,185.2816 527.8156,182.1566 Q527.8156,179.0316 529.1281,177.3754 Q530.4563,175.7191 532.9563,175.7191 Q533.6594,175.7191 534.3,175.8754 Q534.9563,176.0316 535.5188,176.3285 L535.5188,179.0472 Q534.8938,178.4691 534.3,178.2035 Q533.7063,177.9222 533.0813,177.9222 Q531.7375,177.9222 531.05,179.0004 Q530.3625,180.0629 530.3625,182.1566 Q530.3625,184.2504 531.05,185.3285 Q531.7375,186.391 533.0813,186.391 Q533.7063,186.391 534.3,186.1254 Q534.8938,185.8441 535.5188,185.266 L535.5188,187.9847 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" font-style="italic" lengthAdjust="spacingAndGlyphs" textLength="56" x="545.45" y="178.8281">«abstract»</text><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="40" x="553.45" y="195.1722">Activity</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="514.5" x2="605.5" y1="203.6882" y2="203.6882"/><ellipse cx="524.5" cy="214.6882" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="51" x="533.5" y="219.4471">ects: ECTS</text><ellipse cx="524.5" cy="229.6701" fill="none" rx="3" ry="3" style="stroke: #038048; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="67" x="533.5" y="234.429">name: String</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="514.5" x2="605.5" y1="241.652" y2="241.652"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="75" x="519.5" y="257.4109">void toString()</text><!--MD5=[095e23470ac7998770f5ee4b78ce011b]
+class BasicCourse--><rect fill="#FEFECE" filter="url(#f3bsmj5n8kuys)" height="48" id="BasicCourse" style="stroke: #A80036; stroke-width: 1.5;" width="102" x="6" y="448"/><ellipse cx="21" cy="464" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M23.9688,469.6406 Q23.3906,469.9375 22.75,470.0781 Q22.1094,470.2344 21.4063,470.2344 Q18.9063,470.2344 17.5781,468.5938 Q16.2656,466.9375 16.2656,463.8125 Q16.2656,460.6875 17.5781,459.0313 Q18.9063,457.375 21.4063,457.375 Q22.1094,457.375 22.75,457.5313 Q23.4063,457.6875 23.9688,457.9844 L23.9688,460.7031 Q23.3438,460.125 22.75,459.8594 Q22.1563,459.5781 21.5313,459.5781 Q20.1875,459.5781 19.5,460.6563 Q18.8125,461.7188 18.8125,463.8125 Q18.8125,465.9063 19.5,466.9844 Q20.1875,468.0469 21.5313,468.0469 Q22.1563,468.0469 22.75,467.7813 Q23.3438,467.5 23.9688,466.9219 L23.9688,469.6406 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="70" x="35" y="468.656">BasicCourse</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="107" y1="480" y2="480"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="107" y1="488" y2="488"/><!--MD5=[4066b0363c5a91ff3b6e03e0428953a9]
+class Course--><rect fill="#FEFECE" filter="url(#f3bsmj5n8kuys)" height="48" id="Course" style="stroke: #A80036; stroke-width: 1.5;" width="72" x="185" y="332.5"/><ellipse cx="200" cy="348.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M202.9688,354.1406 Q202.3906,354.4375 201.75,354.5781 Q201.1094,354.7344 200.4063,354.7344 Q197.9063,354.7344 196.5781,353.0938 Q195.2656,351.4375 195.2656,348.3125 Q195.2656,345.1875 196.5781,343.5313 Q197.9063,341.875 200.4063,341.875 Q201.1094,341.875 201.75,342.0313 Q202.4063,342.1875 202.9688,342.4844 L202.9688,345.2031 Q202.3438,344.625 201.75,344.3594 Q201.1563,344.0781 200.5313,344.0781 Q199.1875,344.0781 198.5,345.1563 Q197.8125,346.2188 197.8125,348.3125 Q197.8125,350.4063 198.5,351.4844 Q199.1875,352.5469 200.5313,352.5469 Q201.1563,352.5469 201.75,352.2813 Q202.3438,352 202.9688,351.4219 L202.9688,354.1406 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="40" x="214" y="353.156">Course</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="186" x2="256" y1="364.5" y2="364.5"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="186" x2="256" y1="372.5" y2="372.5"/><!--MD5=[04e2cda778d825cb4f510bf58cb32082]
+class SubjectModuleCourse--><rect fill="#FEFECE" filter="url(#f3bsmj5n8kuys)" height="48" id="SubjectModuleCourse" style="stroke: #A80036; stroke-width: 1.5;" width="155" x="143.5" y="448"/><ellipse cx="158.5" cy="464" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M161.4688,469.6406 Q160.8906,469.9375 160.25,470.0781 Q159.6094,470.2344 158.9063,470.2344 Q156.4063,470.2344 155.0781,468.5938 Q153.7656,466.9375 153.7656,463.8125 Q153.7656,460.6875 155.0781,459.0313 Q156.4063,457.375 158.9063,457.375 Q159.6094,457.375 160.25,457.5313 Q160.9063,457.6875 161.4688,457.9844 L161.4688,460.7031 Q160.8438,460.125 160.25,459.8594 Q159.6563,459.5781 159.0313,459.5781 Q157.6875,459.5781 157,460.6563 Q156.3125,461.7188 156.3125,463.8125 Q156.3125,465.9063 157,466.9844 Q157.6875,468.0469 159.0313,468.0469 Q159.6563,468.0469 160.25,467.7813 Q160.8438,467.5 161.4688,466.9219 L161.4688,469.6406 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="123" x="172.5" y="468.656">SubjectModuleCourse</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="144.5" x2="297.5" y1="480" y2="480"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="144.5" x2="297.5" y1="488" y2="488"/><!--MD5=[5e01e01004d31388111d394a4a2767db]
+class ElectiveCourse--><rect fill="#FEFECE" filter="url(#f3bsmj5n8kuys)" height="48" id="ElectiveCourse" style="stroke: #A80036; stroke-width: 1.5;" width="115" x="333.5" y="448"/><ellipse cx="348.5" cy="464" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M351.4688,469.6406 Q350.8906,469.9375 350.25,470.0781 Q349.6094,470.2344 348.9063,470.2344 Q346.4063,470.2344 345.0781,468.5938 Q343.7656,466.9375 343.7656,463.8125 Q343.7656,460.6875 345.0781,459.0313 Q346.4063,457.375 348.9063,457.375 Q349.6094,457.375 350.25,457.5313 Q350.9063,457.6875 351.4688,457.9844 L351.4688,460.7031 Q350.8438,460.125 350.25,459.8594 Q349.6563,459.5781 349.0313,459.5781 Q347.6875,459.5781 347,460.6563 Q346.3125,461.7188 346.3125,463.8125 Q346.3125,465.9063 347,466.9844 Q347.6875,468.0469 349.0313,468.0469 Q349.6563,468.0469 350.25,467.7813 Q350.8438,467.5 351.4688,466.9219 L351.4688,469.6406 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="83" x="362.5" y="468.656">ElectiveCourse</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="334.5" x2="447.5" y1="480" y2="480"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="334.5" x2="447.5" y1="488" y2="488"/><!--MD5=[af7da9dc00abb4890e32899292b3666c]
+class BasicProject--><rect fill="#FEFECE" filter="url(#f3bsmj5n8kuys)" height="48" id="BasicProject" style="stroke: #A80036; stroke-width: 1.5;" width="101" x="502.5" y="448"/><ellipse cx="517.5" cy="464" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M520.4688,469.6406 Q519.8906,469.9375 519.25,470.0781 Q518.6094,470.2344 517.9063,470.2344 Q515.4063,470.2344 514.0781,468.5938 Q512.7656,466.9375 512.7656,463.8125 Q512.7656,460.6875 514.0781,459.0313 Q515.4063,457.375 517.9063,457.375 Q518.6094,457.375 519.25,457.5313 Q519.9063,457.6875 520.4688,457.9844 L520.4688,460.7031 Q519.8438,460.125 519.25,459.8594 Q518.6563,459.5781 518.0313,459.5781 Q516.6875,459.5781 516,460.6563 Q515.3125,461.7188 515.3125,463.8125 Q515.3125,465.9063 516,466.9844 Q516.6875,468.0469 518.0313,468.0469 Q518.6563,468.0469 519.25,467.7813 Q519.8438,467.5 520.4688,466.9219 L520.4688,469.6406 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="69" x="531.5" y="468.656">BasicProject</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="503.5" x2="602.5" y1="480" y2="480"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="503.5" x2="602.5" y1="488" y2="488"/><!--MD5=[79d378210367c0c6ec62ef762ddfbd1b]
+class Project--><rect fill="#FEFECE" filter="url(#f3bsmj5n8kuys)" height="62.9819" id="Project" style="stroke: #A80036; stroke-width: 1.5;" width="87" x="590.5" y="325"/><ellipse cx="612.7" cy="341" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M615.6688,346.6406 Q615.0906,346.9375 614.45,347.0781 Q613.8094,347.2344 613.1063,347.2344 Q610.6063,347.2344 609.2781,345.5938 Q607.9656,343.9375 607.9656,340.8125 Q607.9656,337.6875 609.2781,336.0313 Q610.6063,334.375 613.1063,334.375 Q613.8094,334.375 614.45,334.5313 Q615.1063,334.6875 615.6688,334.9844 L615.6688,337.7031 Q615.0438,337.125 614.45,336.8594 Q613.8563,336.5781 613.2313,336.5781 Q611.8875,336.5781 611.2,337.6563 Q610.5125,338.7188 610.5125,340.8125 Q610.5125,342.9063 611.2,343.9844 Q611.8875,345.0469 613.2313,345.0469 Q613.8563,345.0469 614.45,344.7813 Q615.0438,344.5 615.6688,343.9219 L615.6688,346.6406 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="39" x="628.3" y="345.656">Project</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="591.5" x2="676.5" y1="357" y2="357"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="591.5" x2="676.5" y1="365" y2="365"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="75" x="596.5" y="380.7589">void toString()</text><!--MD5=[625e0a9dab9ea3b73d4c1625b862e8cc]
+class SubjectModuleProject--><rect fill="#FEFECE" filter="url(#f3bsmj5n8kuys)" height="48" id="SubjectModuleProject" style="stroke: #A80036; stroke-width: 1.5;" width="154" x="649" y="448"/><ellipse cx="664" cy="464" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M666.9688,469.6406 Q666.3906,469.9375 665.75,470.0781 Q665.1094,470.2344 664.4063,470.2344 Q661.9063,470.2344 660.5781,468.5938 Q659.2656,466.9375 659.2656,463.8125 Q659.2656,460.6875 660.5781,459.0313 Q661.9063,457.375 664.4063,457.375 Q665.1094,457.375 665.75,457.5313 Q666.4063,457.6875 666.9688,457.9844 L666.9688,460.7031 Q666.3438,460.125 665.75,459.8594 Q665.1563,459.5781 664.5313,459.5781 Q663.1875,459.5781 662.5,460.6563 Q661.8125,461.7188 661.8125,463.8125 Q661.8125,465.9063 662.5,466.9844 Q663.1875,468.0469 664.5313,468.0469 Q665.1563,468.0469 665.75,467.7813 Q666.3438,467.5 666.9688,466.9219 L666.9688,469.6406 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="122" x="678" y="468.656">SubjectModuleProject</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="650" x2="802" y1="480" y2="480"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="650" x2="802" y1="488" y2="488"/><!--MD5=[baf03b4fe9db9323d5afa6371778666a]
+class BachelorProject--><rect fill="#FEFECE" filter="url(#f3bsmj5n8kuys)" height="48" id="BachelorProject" style="stroke: #A80036; stroke-width: 1.5;" width="121" x="855.5" y="448"/><ellipse cx="870.5" cy="464" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M873.4688,469.6406 Q872.8906,469.9375 872.25,470.0781 Q871.6094,470.2344 870.9063,470.2344 Q868.4063,470.2344 867.0781,468.5938 Q865.7656,466.9375 865.7656,463.8125 Q865.7656,460.6875 867.0781,459.0313 Q868.4063,457.375 870.9063,457.375 Q871.6094,457.375 872.25,457.5313 Q872.9063,457.6875 873.4688,457.9844 L873.4688,460.7031 Q872.8438,460.125 872.25,459.8594 Q871.6563,459.5781 871.0313,459.5781 Q869.6875,459.5781 869,460.6563 Q868.3125,461.7188 868.3125,463.8125 Q868.3125,465.9063 869,466.9844 Q869.6875,468.0469 871.0313,468.0469 Q871.6563,468.0469 872.25,467.7813 Q872.8438,467.5 873.4688,466.9219 L873.4688,469.6406 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="89" x="884.5" y="468.656">BachelorProject</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="856.5" x2="975.5" y1="480" y2="480"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="856.5" x2="975.5" y1="488" y2="488"/><path d="M784,342.5 L784,352.5 L677.8,356.5 L784,360.5 L784,370.206 A0,0 0 0 0 784,370.206 L874,370.206 A0,0 0 0 0 874,370.206 L874,352.5 L864,342.5 L784,342.5 A0,0 0 0 0 784,342.5 " fill="#FBFB77" filter="url(#f3bsmj5n8kuys)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M864,342.5 L864,352.5 L874,352.5 L864,342.5 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="69" x="790" y="361.397">{ ECTS = 15}</text><path d="M292,342.5 L292,352.5 L257.08,356.5 L292,360.5 L292,370.206 A0,0 0 0 0 292,370.206 L412,370.206 A0,0 0 0 0 412,370.206 L412,352.5 L402,342.5 L292,342.5 A0,0 0 0 0 292,342.5 " fill="#FBFB77" filter="url(#f3bsmj5n8kuys)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M402,342.5 L402,352.5 L412,352.5 L402,342.5 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="99" x="298" y="361.397">{ ECTS ∈ {5, 10} }</text><!--MD5=[8e37917ca219c350481dbcef1de8e690]
+reverse link Course to BasicCourse--><path d="M170.71,392.31 C144.57,410.39 113.36,431.99 90.26,447.98 " fill="none" id="Course&lt;-BasicCourse" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="none" points="166.99,386.37,187.42,380.74,174.95,397.88,166.99,386.37" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[6b6a93ee4a30a065686ff7523003b396]
+reverse link Course to SubjectModuleCourse--><path d="M221,400.76 C221,416.75 221,434.25 221,447.79 " fill="none" id="Course&lt;-SubjectModuleCourse" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="none" points="214,400.74,221,380.74,228,400.74,214,400.74" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[03ef5da285b94aaa40f93dcbfdd07b34]
+reverse link Course to ElectiveCourse--><path d="M272.74,392.05 C299.91,410.19 332.46,431.92 356.53,447.98 " fill="none" id="Course&lt;-ElectiveCourse" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="none" points="268.56,397.67,255.81,380.74,276.33,386.03,268.56,397.67" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[33e8bfc815126df15c75445e9e623236]
+reverse link Project to BasicProject--><path d="M600.13,404.96 C589.56,419.77 578.36,435.46 569.54,447.83 " fill="none" id="Project&lt;-BasicProject" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="none" points="594.76,400.43,612.08,388.21,606.16,408.56,594.76,400.43" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[ce83ca4cb4127720a1237921ba03305f]
+reverse link Project to SubjectModuleProject--><path d="M671.69,403.99 C683.92,419.09 696.97,435.19 707.22,447.83 " fill="none" id="Project&lt;-SubjectModuleProject" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="none" points="666.05,408.16,658.9,388.21,676.93,399.34,666.05,408.16" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[d76298572b541b5df7e8f2671f0858d1]
+reverse link Project to BachelorProject--><path d="M696.33,382.59 C744.82,402.1 811.56,428.97 858.72,447.94 " fill="none" id="Project&lt;-BachelorProject" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="none" points="693.69,389.07,677.75,375.11,698.92,376.08,693.69,389.07" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[740b21c0d221006014e2d22f446d49c2]
+reverse link Activity to Course--><path d="M494.15,236.34 C435.4,257.02 347.55,289.82 274,325 C268.45,327.66 262.69,330.68 257.1,333.76 " fill="none" id="Activity&lt;-Course" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="none" points="492.08,229.65,513.27,229.67,496.69,242.87,492.08,229.65" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[9679c78f1ce64f070e15941cfdf094a3]
+reverse link Activity to Project--><path d="M596.22,283.27 C603.83,297.8 611.47,312.42 617.87,324.67 " fill="none" id="Activity&lt;-Project" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="none" points="589.78,286.05,586.72,265.08,602.19,279.56,589.78,286.05" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[5ee70030225ea0ea3fb2a518664e61e9]
+reverse link Program to Activity--><path d="M560,114.28 C560,129.56 560,145.9 560,160.76 " fill="none" id="Program&lt;-Activity" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="560,101.19,556,107.19,560,113.19,564,107.19,560,101.19" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="20" x="538.5938" y="122.9016">1..*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="20" x="538.5938" y="149.1908">0..*</text><!--MD5=[534244ff5abfc2295f3e083afff35634]
+reverse link Program to Project--><path d="M601.46,112.37 C610.48,127.48 618.86,144.27 624,161 C641.14,216.75 639.72,285.68 636.97,324.71 " fill="none" id="Program&lt;-Project" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="594.47,101.17,594.2546,108.3779,600.8252,111.3489,601.0406,104.1411,594.47,101.17" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="20" x="577.9111" y="122.8788">0..*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="7" x="629.8607" y="313.3719">6</text><!--MD5=[536b36ee42c3d0f400c5a9c18a02f478]
+reverse link Program to SubjectModuleCourse--><path d="M496.44,77.27 C404.23,112.71 236.77,192.56 167,325 C145.21,366.37 177.53,418.5 200.78,447.95 " fill="none" id="Program&lt;-SubjectModuleCourse" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="508.66,72.66,501.6344,71.035,497.4322,76.8952,504.4578,78.5202,508.66,72.66" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="7" x="493.9481" y="90.3595">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="20" x="172.6584" y="436.1941">4..8</text><!--MD5=[9036a72f5c75eeed415568d475b02037]
+reverse link Program to SubjectModuleProject--><path d="M620.31,110.44 C634.09,125.63 647.47,142.95 657,161 C708.72,259.01 721.76,394.22 724.98,447.79 " fill="none" id="Program&lt;-SubjectModuleProject" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="611.22,100.77,612.4137,107.8816,619.4374,109.515,618.2437,102.4034,611.22,100.77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="7" x="611.2289" y="122.7672">1</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="7" x="716.7653" y="435.9911">2</text><!--MD5=[28ecc8bd268bb4967babd12991133f6f]
+reverse link Program to BasicProject--><path d="M517.81,112.41 C508.85,127.47 500.69,144.23 496,161 C466.6,266.14 517.64,395.67 541.6,447.73 " fill="none" id="Program&lt;-BasicProject" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="524.77,101.26,518.2022,104.2372,518.4242,111.4449,524.9921,108.4677,524.77,101.26" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="20" x="498.4095" y="122.9814">0..*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="7" x="530.7819" y="436.3202">3</text><!--MD5=[fd1620766d6fada1c5fbc939bcfc46ad]
+reverse link Program to BachelorProject--><path d="M622.71,87.08 C700.11,129.68 829.2,213.28 892,325 C913.97,364.07 917.14,417.72 916.93,447.91 " fill="none" id="Program&lt;-BachelorProject" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="611.21,80.85,614.5765,87.227,621.7578,86.5722,618.3913,80.1952,611.21,80.85" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="20" x="619.0525" y="80.0828">0..*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="7" x="909.2393" y="436.1433">1</text><!--MD5=[73d30d91f72e9cdd14d0b266a8568c42]
+reverse link Program to BasicCourse--><path d="M495.65,58.57 C417.15,65.53 284.49,88.11 200,161 C108.45,239.98 72,389.94 60.97,447.6 " fill="none" id="Program&lt;-BasicCourse" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#FFFFFF" points="508.71,57.51,502.4046,54.0112,496.7497,58.4858,503.0551,61.9847,508.71,57.51" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="20" x="480.8572" y="53.7523">0..*</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="13" x="47.3217" y="436.1568">8..</text><!--MD5=[75557b6ed9508c37015572c6b3b5db77]
+@startuml
+class Program {
+ +name: String
+ boolean isValid()
+ void addActivity()
+}
+
+
+class Activity <<abstract>> {
+ +ects: ECTS
+ +name: String
+ void toString()
+}
+class BasicCourse extends Course{
+
+}
+class SubjectModuleCourse extends Course{
+
+}
+
+class ElectiveCourse extends Course{
+
+}
+
+class BasicProject extends Project{
+
+}
+
+class SubjectModuleProject extends Project{
+
+}
+
+
+class BachelorProject extends Project{}
+
+class Course extends Activity {
+}
+
+class Project extends Activity {
+ void toString()
+}
+note right of Project : { ECTS = 15}
+note right of Course : { ECTS ∈ {5, 10} }
+Program "1..*" o- - "0..*" Activity
+Program "0..*" o- - "6" Project
+Program "1" o- - "4..8" SubjectModuleCourse
+Program "1" o- - "2" SubjectModuleProject
+Program "0..*" o- - "3" BasicProject
+Program "0..*" o- - "1" BachelorProject
+Program "0..*" o- - "8.." BasicCourse
+
+
+@enduml
+
+PlantUML version 1.2020.02(Sun Mar 01 11:22:07 CET 2020)
+(GPL source distribution)
+Java Runtime: OpenJDK Runtime Environment
+JVM: OpenJDK 64-Bit Server VM
+Java Version: 25-ea+17-Debian-1
+Operating System: Linux
+Default Encoding: UTF-8
+Language: en
+Country: GB
+--></g></svg> \ No newline at end of file