Unfertiges UML Klassendiagramm erstellen

Domain- und TUI-Klassen erstellen, vorgehen.txt, Registrierungsprozess
implementieren und testen
Anmelden
3009594 2024-11-09 22:53:10 +01:00
parent 314be192cf
commit 9b1dd72e8b
21 changed files with 782 additions and 31 deletions

View File

@ -0,0 +1,401 @@
<mxfile host="app.diagrams.net" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36" version="24.8.3">
<diagram name="Seite-1" id="xkmZ0K6vz5A5_BixXH1Q">
<mxGraphModel dx="1406" dy="1132" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<object label="" TUI="" id="ydUtLetK26WXyeJ3qCt--1">
<mxCell style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;html=1;whiteSpace=wrap;points=[[0,0,0,-5,-13],[0,0,0,0,14],[0,0,0,0,78],[0,0,0,0,142],[0,0,0,0,206],[0,0,0,0,270],[0,0,0,20,0],[0,0,0,40,0],[0,0,0,160,14],[0,0,0,280,14],[0,0,0,280,78],[0,0,0,280,142],[0,0,0,280,206],[0,0,0,280,270],[0,0.5,0,0,0],[0.04,0.02,0,0,0],[0.06,0.04,0,0,0],[0.09,0.03,0,0,0],[0.13,0.04,0,0,0],[0.25,1,0,0,0],[0.5,1,0,0,0],[0.75,1,0,0,0]];" vertex="1" parent="1">
<mxGeometry x="90" y="280" width="300" height="650" as="geometry" />
</mxCell>
</object>
<mxCell id="ydUtLetK26WXyeJ3qCt--224" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fontFamily=Helvetica;fontSize=12;fontColor=default;fontStyle=1;" edge="1" parent="1" source="ydUtLetK26WXyeJ3qCt--3" target="ydUtLetK26WXyeJ3qCt--5">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="55" y="310" />
<mxPoint x="325" y="310" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--3" value="Actor" style="shape=umlActor;verticalLabelPosition=bottom;verticalAlign=top;html=1;outlineConnect=0;" vertex="1" parent="1">
<mxGeometry x="40" y="340" width="30" height="60" as="geometry" />
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--215" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.75;entryDx=0;entryDy=0;fontFamily=Helvetica;fontSize=12;fontColor=default;fontStyle=1;" edge="1" parent="1" source="ydUtLetK26WXyeJ3qCt--5" target="ydUtLetK26WXyeJ3qCt--207">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--216" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.75;entryDx=0;entryDy=0;fontFamily=Helvetica;fontSize=12;fontColor=default;fontStyle=1;" edge="1" parent="1" source="ydUtLetK26WXyeJ3qCt--5" target="ydUtLetK26WXyeJ3qCt--208">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--217" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;fontFamily=Helvetica;fontSize=12;fontColor=default;fontStyle=1;" edge="1" parent="1" source="ydUtLetK26WXyeJ3qCt--5" target="ydUtLetK26WXyeJ3qCt--209">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--218" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;fontFamily=Helvetica;fontSize=12;fontColor=default;fontStyle=1;" edge="1" parent="1" source="ydUtLetK26WXyeJ3qCt--5" target="ydUtLetK26WXyeJ3qCt--210">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="245" y="428" />
<mxPoint x="245" y="525" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--219" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.75;entryDx=0;entryDy=0;fontFamily=Helvetica;fontSize=12;fontColor=default;fontStyle=1;" edge="1" parent="1" source="ydUtLetK26WXyeJ3qCt--5" target="ydUtLetK26WXyeJ3qCt--211">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="245" y="428" />
<mxPoint x="245" y="590" />
<mxPoint x="220" y="590" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--220" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;fontFamily=Helvetica;fontSize=12;fontColor=default;fontStyle=1;" edge="1" parent="1" source="ydUtLetK26WXyeJ3qCt--5" target="ydUtLetK26WXyeJ3qCt--212">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--5" value="Bib Ui" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
<mxGeometry x="270" y="403" width="110" height="50" as="geometry" />
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--6" value="" style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;html=1;whiteSpace=wrap;" vertex="1" parent="1">
<mxGeometry x="760" y="270" width="1110" height="770" as="geometry" />
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--7" value="package" style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;html=1;whiteSpace=wrap;" vertex="1" parent="1">
<mxGeometry x="95" y="970" width="240" height="170" as="geometry" />
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--227" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.75;entryY=1;entryDx=0;entryDy=0;fontFamily=Helvetica;fontSize=12;fontColor=default;fontStyle=1;" edge="1" parent="1" source="ydUtLetK26WXyeJ3qCt--9" target="ydUtLetK26WXyeJ3qCt--5">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="350" y="1055" />
<mxPoint x="350" y="742" />
<mxPoint x="352" y="742" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--9" value="Main" style="html=1;whiteSpace=wrap;" vertex="1" parent="1">
<mxGeometry x="160" y="1030" width="110" height="50" as="geometry" />
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--10" value="" style="verticalLabelPosition=bottom;verticalAlign=top;html=1;shape=mxgraph.flowchart.on-page_reference;" vertex="1" parent="1">
<mxGeometry x="580" y="300" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--11" value="" style="verticalLabelPosition=bottom;verticalAlign=top;html=1;shape=mxgraph.flowchart.on-page_reference;" vertex="1" parent="1">
<mxGeometry x="580" y="370" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--12" value="" style="verticalLabelPosition=bottom;verticalAlign=top;html=1;shape=mxgraph.flowchart.on-page_reference;" vertex="1" parent="1">
<mxGeometry x="580" y="440" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--13" value="" style="verticalLabelPosition=bottom;verticalAlign=top;html=1;shape=mxgraph.flowchart.on-page_reference;" vertex="1" parent="1">
<mxGeometry x="580" y="520" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--14" value="" style="verticalLabelPosition=bottom;verticalAlign=top;html=1;shape=mxgraph.flowchart.on-page_reference;" vertex="1" parent="1">
<mxGeometry x="580" y="600" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--25" value="&lt;font style=&quot;font-size: 11px;&quot;&gt;TUI&amp;nbsp;&lt;/font&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
<mxGeometry x="90" y="280" width="70" height="20" as="geometry" />
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--26" value="&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
<mxGeometry x="50" y="280" width="70" height="20" as="geometry" />
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--27" value="&lt;font style=&quot;font-size: 11px;&quot;&gt;Main&lt;/font&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
<mxGeometry x="90" y="970" width="70" height="20" as="geometry" />
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--28" value="&lt;font style=&quot;font-size: 11px;&quot;&gt;domain&lt;/font&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
<mxGeometry x="757" y="270" width="70" height="20" as="geometry" />
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--29" value="registrieren" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
<mxGeometry x="450" y="300" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--30" value="Medium ausleihen" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
<mxGeometry x="440" y="370" width="100" height="30" as="geometry" />
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--32" value="Medium&amp;nbsp;leihfrist verlängern" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
<mxGeometry x="430" y="440" width="100" height="30" as="geometry" />
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--33" value="Medium zurückgeben" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
<mxGeometry x="450" y="512" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--34" value="Gebühren bezahlen" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
<mxGeometry x="450" y="590" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--36" value="Medium druchsuchen" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
<mxGeometry x="460" y="690" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--38" value="" style="verticalLabelPosition=bottom;verticalAlign=top;html=1;shape=mxgraph.flowchart.on-page_reference;" vertex="1" parent="1">
<mxGeometry x="580" y="690" width="60" height="60" as="geometry" />
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--41" value="&lt;i&gt;Medium&lt;/i&gt;" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=none;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="1100" y="720" width="180" height="130" as="geometry" />
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--42" value="- KennungNummer: int" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="ydUtLetK26WXyeJ3qCt--41">
<mxGeometry y="26" width="180" height="26" as="geometry" />
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--43" value="- title: String" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="ydUtLetK26WXyeJ3qCt--41">
<mxGeometry y="52" width="180" height="26" as="geometry" />
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--44" value="- erscheinungsjahr: date&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;- autor: String&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: rgba(0, 0, 0, 0); font-family: monospace; font-size: 0px; text-wrap-mode: nowrap;&quot;&gt;- %3CmxGraphModel%3E%3Croot%3E%3CmxCell%20id%3D%220%22%2F%3E%3CmxCell%20id%3D%221%22%20parent%3D%220%22%2F%3E%3CmxCell%20id%3D%222%22%20value%3D%22-%20title%3A%20String%22%20style%3D%22text%3BstrokeColor%3Dnone%3BfillColor%3Dnone%3Balign%3Dleft%3BverticalAlign%3Dtop%3BspacingLeft%3D4%3BspacingRight%3D4%3Boverflow%3Dhidden%3Brotatable%3D0%3Bpoints%3D%5B%5B0%2C0.5%5D%2C%5B1%2C0.5%5D%5D%3BportConstraint%3Deastwest%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%221100%22%20y%3D%22658%22%20width%3D%22180%22%20height%3D%2226%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3C%2Froot%3E%3C%2FmxGraphModel%3E&lt;/span&gt;&lt;/div&gt;" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="ydUtLetK26WXyeJ3qCt--41">
<mxGeometry y="78" width="180" height="52" as="geometry" />
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--46" value="Buch" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=none;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="890" y="954" width="140" height="52" as="geometry">
<mxRectangle x="890" y="954" width="70" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--50" value="Cd" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=none;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="1070" y="954" width="140" height="52" as="geometry" />
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--54" value="Dvd" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=none;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="1241" y="954" width="140" height="52" as="geometry" />
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--58" value="Brettspiel" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=none;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="1410" y="954" width="140" height="52" as="geometry" />
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--62" value="Videospiel" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=none;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="1570" y="954" width="140" height="52" as="geometry" />
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--79" value="" style="endArrow=none;html=1;rounded=0;" edge="1" parent="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="960" y="954" as="sourcePoint" />
<mxPoint x="960" y="904" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--80" value="" style="endArrow=none;html=1;rounded=0;" edge="1" parent="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="960" y="904" as="sourcePoint" />
<mxPoint x="1650" y="904" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--81" value="" style="endArrow=none;html=1;rounded=0;exitX=0.584;exitY=0.003;exitDx=0;exitDy=0;exitPerimeter=0;" edge="1" parent="1" source="ydUtLetK26WXyeJ3qCt--62">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="1650" y="944" as="sourcePoint" />
<mxPoint x="1650" y="904" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--82" value="Extends" style="endArrow=block;endSize=16;endFill=0;html=1;rounded=0;entryX=0.399;entryY=0.998;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" target="ydUtLetK26WXyeJ3qCt--44">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="1170" y="904" as="sourcePoint" />
<mxPoint x="1330" y="904" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--84" value="" style="endArrow=none;html=1;rounded=0;" edge="1" parent="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="1120" y="954" as="sourcePoint" />
<mxPoint x="1120" y="904" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--86" value="" style="endArrow=none;html=1;rounded=0;" edge="1" parent="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="1309.45" y="954" as="sourcePoint" />
<mxPoint x="1309.45" y="904" as="targetPoint" />
<Array as="points">
<mxPoint x="1309.45" y="924" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--87" value="" style="endArrow=none;html=1;rounded=0;" edge="1" parent="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="1470" y="954" as="sourcePoint" />
<mxPoint x="1470" y="904" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--88" value="" style="endArrow=none;html=1;rounded=0;" edge="1" parent="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="1650" y="954" as="sourcePoint" />
<mxPoint x="1650" y="904" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--194" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fontFamily=Helvetica;fontSize=12;fontColor=default;fontStyle=1;" edge="1" parent="1" source="ydUtLetK26WXyeJ3qCt--117" target="ydUtLetK26WXyeJ3qCt--159">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--117" value="&lt;font style=&quot;font-size: 12px;&quot;&gt;BibSystem&lt;/font&gt;" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=none;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="790" y="338" width="180" height="52" as="geometry" />
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--131" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="ydUtLetK26WXyeJ3qCt--117" target="ydUtLetK26WXyeJ3qCt--10">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--132" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.985;entryY=0.664;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="ydUtLetK26WXyeJ3qCt--117" target="ydUtLetK26WXyeJ3qCt--11">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--133" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="ydUtLetK26WXyeJ3qCt--117" target="ydUtLetK26WXyeJ3qCt--12">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--134" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="ydUtLetK26WXyeJ3qCt--117" target="ydUtLetK26WXyeJ3qCt--13">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--135" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="ydUtLetK26WXyeJ3qCt--117" target="ydUtLetK26WXyeJ3qCt--14">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--136" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="ydUtLetK26WXyeJ3qCt--117" target="ydUtLetK26WXyeJ3qCt--38">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--137" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="ydUtLetK26WXyeJ3qCt--5" target="ydUtLetK26WXyeJ3qCt--10">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="430" y="415" />
<mxPoint x="430" y="330" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--138" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=-0.027;entryY=0.593;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="ydUtLetK26WXyeJ3qCt--5" target="ydUtLetK26WXyeJ3qCt--11">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="430" y="415" />
<mxPoint x="430" y="406" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--139" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=-0.027;entryY=0.643;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="ydUtLetK26WXyeJ3qCt--5" target="ydUtLetK26WXyeJ3qCt--12">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="430" y="415" />
<mxPoint x="430" y="479" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--141" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="ydUtLetK26WXyeJ3qCt--5" target="ydUtLetK26WXyeJ3qCt--13">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="430" y="415" />
<mxPoint x="430" y="550" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--142" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="ydUtLetK26WXyeJ3qCt--5" target="ydUtLetK26WXyeJ3qCt--14">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="430" y="415" />
<mxPoint x="430" y="630" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--143" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=-0.01;entryY=0.593;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="ydUtLetK26WXyeJ3qCt--5" target="ydUtLetK26WXyeJ3qCt--38">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="430" y="415" />
<mxPoint x="430" y="726" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--158" value="Ausleihe" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="1000" y="403" width="160" height="114" as="geometry" />
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--159" value="- type: String&lt;div&gt;- availability: boolean&lt;/div&gt;" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="ydUtLetK26WXyeJ3qCt--158">
<mxGeometry y="26" width="160" height="54" as="geometry" />
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--160" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" vertex="1" parent="ydUtLetK26WXyeJ3qCt--158">
<mxGeometry y="80" width="160" height="8" as="geometry" />
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--161" value="+ method(type): type" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="ydUtLetK26WXyeJ3qCt--158">
<mxGeometry y="88" width="160" height="26" as="geometry" />
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--162" value="Ausweis" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="1010" y="556" width="160" height="114" as="geometry" />
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--163" value="- kartenNummer: int&lt;div&gt;&lt;br&gt;&lt;/div&gt;" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="ydUtLetK26WXyeJ3qCt--162">
<mxGeometry y="26" width="160" height="54" as="geometry" />
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--164" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" vertex="1" parent="ydUtLetK26WXyeJ3qCt--162">
<mxGeometry y="80" width="160" height="8" as="geometry" />
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--165" value="+ method(type): type" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;" vertex="1" parent="ydUtLetK26WXyeJ3qCt--162">
<mxGeometry y="88" width="160" height="26" as="geometry" />
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--190" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fontFamily=Helvetica;fontSize=12;fontColor=default;fontStyle=1;" edge="1" parent="1" source="ydUtLetK26WXyeJ3qCt--175" target="ydUtLetK26WXyeJ3qCt--163">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--175" value="&lt;i&gt;Benutzer&lt;/i&gt;" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=37;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;strokeColor=default;spacingTop=10;fontFamily=Helvetica;fontSize=12;fontColor=default;fillColor=default;" vertex="1" parent="1">
<mxGeometry x="1381" y="310" width="260" height="320" as="geometry" />
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--176" value="&lt;span style=&quot;font-weight: normal;&quot;&gt;- bibAusweis: Ausweis&lt;/span&gt;&lt;div style=&quot;line-height: 140%;&quot;&gt;&lt;span style=&quot;background-color: initial; font-weight: normal;&quot;&gt;- name: String&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;line-height: 140%;&quot;&gt;&lt;span style=&quot;background-color: initial; font-weight: normal;&quot;&gt;- alter: int&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;line-height: 140%;&quot;&gt;&lt;span style=&quot;background-color: initial; font-weight: normal;&quot;&gt;- istStudent: boolean&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;line-height: 160%;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;-&amp;nbsp;&lt;span style=&quot;background-color: initial;&quot;&gt;ausgeliehenenMedien[]: Medium&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fontFamily=Helvetica;fontSize=12;fontColor=default;fontStyle=1;" vertex="1" parent="ydUtLetK26WXyeJ3qCt--175">
<mxGeometry y="37" width="260" height="163" as="geometry" />
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--177" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;fontFamily=Helvetica;fontSize=12;fontColor=default;fontStyle=1;" vertex="1" parent="ydUtLetK26WXyeJ3qCt--175">
<mxGeometry y="200" width="260" height="8" as="geometry" />
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--178" value="&lt;span style=&quot;font-weight: normal;&quot;&gt;+ anmelden(int kartenNummer): boolean&lt;/span&gt;&lt;div&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;+ ausleihe()&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;+ anzeigen()&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;+ verlängren()&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;+ zurückgeben()&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;+ gebührenbezahlen(int betrag): boolean&lt;/span&gt;&lt;/div&gt;" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fontFamily=Helvetica;fontSize=12;fontColor=default;fontStyle=1;" vertex="1" parent="ydUtLetK26WXyeJ3qCt--175">
<mxGeometry y="208" width="260" height="112" as="geometry" />
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--179" value="Kunde" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=36;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;strokeColor=default;spacingTop=10;fontFamily=Helvetica;fontSize=12;fontColor=default;fillColor=default;" vertex="1" parent="1">
<mxGeometry x="1320" y="750" width="160" height="96" as="geometry" />
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--180" value="&lt;span style=&quot;font-weight: normal;&quot;&gt;+ field: type&lt;/span&gt;" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fontFamily=Helvetica;fontSize=12;fontColor=default;fontStyle=1;" vertex="1" parent="ydUtLetK26WXyeJ3qCt--179">
<mxGeometry y="36" width="160" height="26" as="geometry" />
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--181" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;fontFamily=Helvetica;fontSize=12;fontColor=default;fontStyle=1;" vertex="1" parent="ydUtLetK26WXyeJ3qCt--179">
<mxGeometry y="62" width="160" height="8" as="geometry" />
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--182" value="&lt;span style=&quot;font-weight: normal;&quot;&gt;+ method(type): type&lt;/span&gt;" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fontFamily=Helvetica;fontSize=12;fontColor=default;fontStyle=1;" vertex="1" parent="ydUtLetK26WXyeJ3qCt--179">
<mxGeometry y="70" width="160" height="26" as="geometry" />
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--183" value="Mitarbeiter" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=36;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;strokeColor=default;spacingTop=10;fontFamily=Helvetica;fontSize=12;fontColor=default;fillColor=default;" vertex="1" parent="1">
<mxGeometry x="1519" y="750" width="160" height="110" as="geometry" />
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--184" value="&lt;span style=&quot;font-weight: normal;&quot;&gt;+ field: typ&lt;/span&gt;e" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;whiteSpace=wrap;html=1;fontFamily=Helvetica;fontSize=12;fontColor=default;fontStyle=1;" vertex="1" parent="ydUtLetK26WXyeJ3qCt--183">
<mxGeometry y="36" width="160" height="26" as="geometry" />
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--185" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;fontFamily=Helvetica;fontSize=12;fontColor=default;fontStyle=1;" vertex="1" parent="ydUtLetK26WXyeJ3qCt--183">
<mxGeometry y="62" width="160" height="48" as="geometry" />
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--191" value="&lt;div&gt;&lt;br&gt;&lt;/div&gt;1..*" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Helvetica;fontSize=12;fontColor=default;fontStyle=1;" vertex="1" parent="1">
<mxGeometry x="1330" y="440" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--192" value="hat" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Helvetica;fontSize=12;fontColor=default;fontStyle=1;" vertex="1" parent="1">
<mxGeometry x="1250" y="440" width="60" height="40" as="geometry" />
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--193" value="1" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Helvetica;fontSize=12;fontColor=default;fontStyle=1;" vertex="1" parent="1">
<mxGeometry x="1160" y="580" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--197" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.371;entryY=0.008;entryDx=0;entryDy=0;entryPerimeter=0;fontFamily=Helvetica;fontSize=12;fontColor=default;fontStyle=1;" edge="1" parent="1" source="ydUtLetK26WXyeJ3qCt--117" target="ydUtLetK26WXyeJ3qCt--175">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="860" y="300" />
<mxPoint x="1477" y="300" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--203" value="" style="endArrow=none;html=1;rounded=0;fontFamily=Helvetica;fontSize=12;fontColor=default;fontStyle=1;" edge="1" parent="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="1399" y="750" as="sourcePoint" />
<mxPoint x="1399" y="700" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--204" value="" style="endArrow=none;html=1;rounded=0;fontFamily=Helvetica;fontSize=12;fontColor=default;fontStyle=1;" edge="1" parent="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="1599" y="750" as="sourcePoint" />
<mxPoint x="1599" y="700" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--205" value="" style="endArrow=none;html=1;rounded=0;fontFamily=Helvetica;fontSize=12;fontColor=default;fontStyle=1;" edge="1" parent="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="1399" y="700" as="sourcePoint" />
<mxPoint x="1599" y="700" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--206" value="Extends" style="endArrow=block;endSize=16;endFill=0;html=1;rounded=0;fontFamily=Helvetica;fontSize=12;fontColor=default;fontStyle=1;entryX=0.344;entryY=0.997;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" target="ydUtLetK26WXyeJ3qCt--178">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="1470" y="700" as="sourcePoint" />
<mxPoint x="1630" y="680" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--207" value="Registrieren" style="html=1;whiteSpace=wrap;strokeColor=default;align=center;verticalAlign=middle;spacingTop=10;fontFamily=Helvetica;fontSize=12;fontColor=default;fontStyle=1;fillColor=default;" vertex="1" parent="1">
<mxGeometry x="110" y="320" width="110" height="50" as="geometry" />
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--208" value="Anmelden" style="html=1;whiteSpace=wrap;strokeColor=default;align=center;verticalAlign=middle;spacingTop=10;fontFamily=Helvetica;fontSize=12;fontColor=default;fontStyle=1;fillColor=default;" vertex="1" parent="1">
<mxGeometry x="110" y="380" width="110" height="50" as="geometry" />
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--209" value="Medien Durchsuchen" style="html=1;whiteSpace=wrap;strokeColor=default;align=center;verticalAlign=middle;spacingTop=10;fontFamily=Helvetica;fontSize=12;fontColor=default;fontStyle=1;fillColor=default;" vertex="1" parent="1">
<mxGeometry x="110" y="440" width="110" height="50" as="geometry" />
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--210" value="Ausleihen eines Gegenstandes" style="html=1;whiteSpace=wrap;strokeColor=default;align=center;verticalAlign=middle;spacingTop=10;fontFamily=Helvetica;fontSize=12;fontColor=default;fontStyle=1;fillColor=default;" vertex="1" parent="1">
<mxGeometry x="110" y="500" width="110" height="50" as="geometry" />
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--211" value="Rückgabe eines Gegenstandes" style="html=1;whiteSpace=wrap;strokeColor=default;align=center;verticalAlign=middle;spacingTop=10;fontFamily=Helvetica;fontSize=12;fontColor=default;fontStyle=1;fillColor=default;" vertex="1" parent="1">
<mxGeometry x="110" y="560" width="110" height="50" as="geometry" />
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--212" value="&lt;strong&gt;Leihverwaltung&lt;/strong&gt;" style="html=1;whiteSpace=wrap;strokeColor=default;align=center;verticalAlign=middle;spacingTop=10;fontFamily=Helvetica;fontSize=12;fontColor=default;fontStyle=1;fillColor=default;" vertex="1" parent="1">
<mxGeometry x="110" y="620" width="110" height="50" as="geometry" />
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--213" value="Verbuchen von überfälligen Gebühren" style="html=1;whiteSpace=wrap;strokeColor=default;align=center;verticalAlign=middle;spacingTop=10;fontFamily=Helvetica;fontSize=12;fontColor=default;fontStyle=1;fillColor=default;" vertex="1" parent="1">
<mxGeometry x="110" y="680" width="160" height="50" as="geometry" />
</mxCell>
<mxCell id="ydUtLetK26WXyeJ3qCt--221" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.997;entryY=0.395;entryDx=0;entryDy=0;entryPerimeter=0;fontFamily=Helvetica;fontSize=12;fontColor=default;fontStyle=1;" edge="1" parent="1" source="ydUtLetK26WXyeJ3qCt--5" target="ydUtLetK26WXyeJ3qCt--213">
<mxGeometry relative="1" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>

View File

@ -0,0 +1,5 @@
package domain;
public class Ausleihe {
}

View File

@ -0,0 +1,15 @@
package domain;
public class Ausweis {
private int kartenNummer;
private static int generiereNummer = 1000;
public Ausweis() {
this.kartenNummer = generiereNummer++;
}
public int getKartenNummer() {
return kartenNummer;
}
}

View File

@ -0,0 +1,76 @@
package domain.Benutzer;
import java.util.ArrayList;
import domain.Ausweis;
import domain.Medium.Medium;
public abstract class Benutzer {
private Ausweis bibAusweis;
private String name;
private int alter;
private boolean istStudent;
private ArrayList<Medium> ausgeliehenenMedien;
public Benutzer(Ausweis bibAusweis, String name, int alter, boolean istStudent) {
super();
this.bibAusweis = bibAusweis;
this.name = name;
this.alter = alter;
this.istStudent = istStudent;
this.ausgeliehenenMedien = new ArrayList<>();
}
public Ausweis getBibAusweis() {
return bibAusweis;
}
public void setBibAusweis(Ausweis bibAusweis) {
this.bibAusweis = bibAusweis;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAlter() {
return alter;
}
public void setAlter(int alter) {
this.alter = alter;
}
public boolean isIstStudent() {
return istStudent;
}
public void setIstStudent(boolean istStudent) {
this.istStudent = istStudent;
}
public ArrayList<Medium> getAusgeliehenenMedien() {
return ausgeliehenenMedien;
}
public void addMedium(Medium medium) {
this.ausgeliehenenMedien.add(medium);
}
public void removeMedium(Medium medium) {
this.ausgeliehenenMedien.remove(medium);
}
@Override
public String toString() {
return "Benutzer [bibAusweisNummer= " + bibAusweis.getKartenNummer() + ", name=" + name + ", alter=" + alter + ", istStudent="
+ istStudent + ", ausgeliehenenMedien=" + ausgeliehenenMedien + "]";
}
}

View File

@ -0,0 +1,11 @@
package domain.Benutzer;
import domain.Ausweis;
public class Kunde extends Benutzer {
public Kunde(Ausweis bibAusweis, String name, int alter, boolean istStudent) {
super(bibAusweis, name, alter, istStudent);
}
}

View File

@ -0,0 +1,11 @@
package domain.Benutzer;
import domain.Ausweis;
public class Mitarbeiter extends Benutzer {
public Mitarbeiter(Ausweis bibAusweis, String name, int alter, boolean istStudent) {
super(bibAusweis, name, alter, istStudent);
}
}

View File

@ -0,0 +1,30 @@
package domain;
import java.util.ArrayList;
import domain.Benutzer.*;
import domain.ExceptionsKlassen.*;
public class BibSystem {
private ArrayList<Benutzer> benutzer;
public BibSystem() {
this.benutzer = new ArrayList<>();
}
public String addUser(String name, String type, int alter,String istAdmin) throws FalscheEingabeException {
if (name.isEmpty() && type.isEmpty() && alter == 0 && istAdmin.isEmpty() )
throw new FalscheEingabeException("Geben Sie alle Fielder ein");
Benutzer benutzer;
Ausweis ausweis = new Ausweis();
boolean istStudentOderSchüler = (type.equalsIgnoreCase("schüler") || type.equalsIgnoreCase("student"))? true : false;
if (istAdmin.equalsIgnoreCase("nein"))
benutzer = new Mitarbeiter(ausweis,name,alter,istStudentOderSchüler);
else
benutzer = new Kunde(ausweis,name,alter,istStudentOderSchüler);
return benutzer.toString();
}
}

View File

@ -0,0 +1,8 @@
package domain.ExceptionsKlassen;
public class FalscheEingabeException extends Exception {
public FalscheEingabeException(String error){
super(error);
}
}

View File

@ -1,5 +0,0 @@
package domain.ExceptionsKlassen;
public class Test {
}

View File

@ -0,0 +1,33 @@
package domain.JTests;
import static org.junit.jupiter.api.Assertions.*;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import domain.Ausweis;
import domain.BibSystem;
import domain.Benutzer.Benutzer;
import domain.Benutzer.Kunde;
import domain.ExceptionsKlassen.FalscheEingabeException;
class RegistrierenTest {
private BibSystem bib;
@BeforeEach
void erstelleObjekt() {
this.bib = new BibSystem();
}
@Test
void test() throws FalscheEingabeException {
String name = "obai";
String type = "schüler";
String istAdmin = "nein";
String test = bib.addUser(name, type, 15,istAdmin);
assertTrue(test.contains(name));
System.out.println(test);
}
}

View File

@ -1,18 +0,0 @@
package domain.JTests;
import static org.junit.jupiter.api.Assertions.*;
import org.junit.jupiter.api.BeforeEach;
class Test {
@BeforeEach
void setUp() throws Exception {
}
@org.junit.jupiter.api.Test
void test() {
fail("Not yet implemented");
}
}

View File

@ -0,0 +1,11 @@
package domain.Medium;
import java.util.Date;
public class Brettspiel extends Medium {
public Brettspiel(int kennungNummer, String title, Date erscheinungsjahr, String autor) {
super(kennungNummer, title, erscheinungsjahr, autor);
}
}

View File

@ -0,0 +1,11 @@
package domain.Medium;
import java.util.Date;
public class Buch extends Medium {
public Buch(int kennungNummer, String title, Date erscheinungsjahr, String autor) {
super(kennungNummer, title, erscheinungsjahr, autor);
}
}

View File

@ -0,0 +1,11 @@
package domain.Medium;
import java.util.Date;
public class Cd extends Medium {
public Cd(int kennungNummer, String title, Date erscheinungsjahr, String autor) {
super(kennungNummer, title, erscheinungsjahr, autor);
}
}

View File

@ -0,0 +1,11 @@
package domain.Medium;
import java.util.Date;
public class Dvd extends Medium {
public Dvd(int kennungNummer, String title, Date erscheinungsjahr, String autor) {
super(kennungNummer, title, erscheinungsjahr, autor);
}
}

View File

@ -0,0 +1,53 @@
package domain.Medium;
import java.util.Date;
public abstract class Medium {
private int KennungNummer;
private String title;
private Date erscheinungsjahr;
private String autor;
public Medium(int kennungNummer, String title, Date erscheinungsjahr, String autor) {
super();
KennungNummer = kennungNummer;
this.title = title;
this.erscheinungsjahr = erscheinungsjahr;
this.autor = autor;
}
public int getKennungNummer() {
return KennungNummer;
}
public void setKennungNummer(int kennungNummer) {
KennungNummer = kennungNummer;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public Date getErscheinungsjahr() {
return erscheinungsjahr;
}
public void setErscheinungsjahr(Date erscheinungsjahr) {
this.erscheinungsjahr = erscheinungsjahr;
}
public String getAutor() {
return autor;
}
public void setAutor(String autor) {
this.autor = autor;
}
}

View File

@ -0,0 +1,11 @@
package domain.Medium;
import java.util.Date;
public class Videospiel extends Medium {
public Videospiel(int kennungNummer, String title, Date erscheinungsjahr, String autor) {
super(kennungNummer, title, erscheinungsjahr, autor);
}
}

View File

@ -1,5 +0,0 @@
package domain;
public class Test {
}

View File

@ -1,10 +1,11 @@
package main; package main;
import tui.Tui;
public class Main { public class Main {
public static void main(String[] args) { public static void main(String[] args) {
// TODO Auto-generated method stub new Tui();
} }
} }

View File

@ -1,5 +1,74 @@
package tui; package tui;
public class Tui { import java.util.Scanner;
import domain.BibSystem;
import domain.ExceptionsKlassen.FalscheEingabeException;
public class Tui {
private BibSystem fassade;
private Scanner eingabe = new Scanner(System.in);
public Tui() {
this.fassade = new BibSystem();
startBibProgramm();
}
private void startBibProgramm() {
String aktion;
System.out.println("<< Willkommen in der Bibliothek >>");
boolean programmIstAktiv = true;
while(programmIstAktiv) {
System.out.println("1.Registrieren");
System.out.println("2.Anmelden");
System.out.println("3.Medien Durchsuchen");
System.out.println("4.Ausleihen eines Gegenstandes");
System.out.println("5.Rückgabe eines Gegenstandes");
System.out.println("6.Ausgeliehene Gegenstände, Fälligkeitsdaten und aufgelaufene Gebühren anzeigen");
System.out.println("7.Verlängern der Leihfrist");
System.out.println("8.Verbuchen von überfälligen Gebühren (Admin)");
System.out.println("Wählen Sie bitte eine Aktion aus: ");
System.out.print(">");
aktion = eingabe.nextLine();
switch(aktion) {
case "1":
registrierenProzess();
break;
}
}
}
private void registrierenProzess() {
boolean registrierenProzess = true;
String name;
int alter;
String type;
String istAdmin;
while (registrierenProzess) {
System.out.println("Name: ");
System.out.print(">");
name = eingabe.nextLine();
System.out.println("Alter: ");
System.out.print(">");
alter = eingabe.nextInt();
System.out.println("sind Sie Schüler oder Student: Ja/Nein");
System.out.print(">");
type = eingabe.nextLine();
System.out.println("Admin: Ja/Nein");
System.out.print(">");
istAdmin = eingabe.nextLine();
try {
fassade.addUser(name, type, alter, istAdmin);
startBibProgramm();
} catch (FalscheEingabeException e) {
System.out.println(e.getMessage());
continue;
}
}
}
} }

View File

@ -0,0 +1,11 @@
Anforderungsanalyse:
Für das Bibliotheksverwaltungssystem werde ich zunächst eine gründliche Analyse der Anforderungen durchführen.
Hierbei werde ich festlegen, welche Funktionen und Ziele die Software erfüllen soll. Ein wesentlicher Aspekt ist auch,
die unterschiedlichen Akteure zu identifizieren, die die Software verwenden werden, um ihre Bedürfnisse und Anforderungen zu berücksichtigen.
Design und Datenstrukturentscheidung:
In diesem Schritt plane und entwerfe ich die grundlegende Klassenstruktur.
Dazu werde ich ermitteln, wie viele Klassen benötigt werden und welche Attribute und Methoden jede Klasse enthalten soll.
ich werde auch die Beziehungen zwischen den Klassen definieren(z.b Vererbung, Assoziation, etc..)