Browse Source

Добавлен раздел проектирование ИС

Вадим Королёв 2 months ago
parent
commit
3ed565f50e

+ 1 - 0
Диаграммы/.gitignore

@@ -0,0 +1 @@
+*.bkp

+ 122 - 0
Диаграммы/ERD.drawio

@@ -0,0 +1,122 @@
+<mxfile host="Electron" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/26.2.2 Chrome/134.0.6998.178 Electron/35.1.2 Safari/537.36" version="26.2.2">
+  <diagram name="Страница — 1" id="fOMC7xHu2SzvGz_D-_M9">
+    <mxGraphModel dx="1105" dy="663" 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" />
+        <mxCell id="o60YcwZubwZQB6P53rrb-1" value="Photo" style="shape=table;startSize=30;container=1;collapsible=1;childLayout=tableLayout;fixedRows=1;rowLines=0;fontStyle=1;align=center;resizeLast=1;html=1;" parent="1" vertex="1">
+          <mxGeometry x="210" y="220" width="180" height="90" as="geometry" />
+        </mxCell>
+        <mxCell id="o60YcwZubwZQB6P53rrb-2" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=1;" parent="o60YcwZubwZQB6P53rrb-1" vertex="1">
+          <mxGeometry y="30" width="180" height="30" as="geometry" />
+        </mxCell>
+        <mxCell id="o60YcwZubwZQB6P53rrb-3" value="PK" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;fontStyle=1;overflow=hidden;whiteSpace=wrap;html=1;" parent="o60YcwZubwZQB6P53rrb-2" vertex="1">
+          <mxGeometry width="30" height="30" as="geometry">
+            <mxRectangle width="30" height="30" as="alternateBounds" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="o60YcwZubwZQB6P53rrb-4" value="id" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;fontStyle=5;overflow=hidden;whiteSpace=wrap;html=1;" parent="o60YcwZubwZQB6P53rrb-2" vertex="1">
+          <mxGeometry x="30" width="150" height="30" as="geometry">
+            <mxRectangle width="150" height="30" as="alternateBounds" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="o60YcwZubwZQB6P53rrb-5" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;" parent="o60YcwZubwZQB6P53rrb-1" vertex="1">
+          <mxGeometry y="60" width="180" height="30" as="geometry" />
+        </mxCell>
+        <mxCell id="o60YcwZubwZQB6P53rrb-6" value="" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;whiteSpace=wrap;html=1;" parent="o60YcwZubwZQB6P53rrb-5" vertex="1">
+          <mxGeometry width="30" height="30" as="geometry">
+            <mxRectangle width="30" height="30" as="alternateBounds" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="o60YcwZubwZQB6P53rrb-7" value="path" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;whiteSpace=wrap;html=1;" parent="o60YcwZubwZQB6P53rrb-5" vertex="1">
+          <mxGeometry x="30" width="150" height="30" as="geometry">
+            <mxRectangle width="150" height="30" as="alternateBounds" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="o60YcwZubwZQB6P53rrb-14" value="Face" style="shape=table;startSize=30;container=1;collapsible=1;childLayout=tableLayout;fixedRows=1;rowLines=0;fontStyle=1;align=center;resizeLast=1;html=1;" parent="1" vertex="1">
+          <mxGeometry x="450" y="240" width="180" height="150" as="geometry" />
+        </mxCell>
+        <mxCell id="o60YcwZubwZQB6P53rrb-15" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=1;" parent="o60YcwZubwZQB6P53rrb-14" vertex="1">
+          <mxGeometry y="30" width="180" height="30" as="geometry" />
+        </mxCell>
+        <mxCell id="o60YcwZubwZQB6P53rrb-16" value="PK" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;fontStyle=1;overflow=hidden;whiteSpace=wrap;html=1;" parent="o60YcwZubwZQB6P53rrb-15" vertex="1">
+          <mxGeometry width="30" height="30" as="geometry">
+            <mxRectangle width="30" height="30" as="alternateBounds" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="o60YcwZubwZQB6P53rrb-17" value="id" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;fontStyle=5;overflow=hidden;whiteSpace=wrap;html=1;" parent="o60YcwZubwZQB6P53rrb-15" vertex="1">
+          <mxGeometry x="30" width="150" height="30" as="geometry">
+            <mxRectangle width="150" height="30" as="alternateBounds" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="o60YcwZubwZQB6P53rrb-18" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;" parent="o60YcwZubwZQB6P53rrb-14" vertex="1">
+          <mxGeometry y="60" width="180" height="30" as="geometry" />
+        </mxCell>
+        <mxCell id="o60YcwZubwZQB6P53rrb-19" value="" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;whiteSpace=wrap;html=1;" parent="o60YcwZubwZQB6P53rrb-18" vertex="1">
+          <mxGeometry width="30" height="30" as="geometry">
+            <mxRectangle width="30" height="30" as="alternateBounds" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="o60YcwZubwZQB6P53rrb-20" value="encoding" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;whiteSpace=wrap;html=1;" parent="o60YcwZubwZQB6P53rrb-18" vertex="1">
+          <mxGeometry x="30" width="150" height="30" as="geometry">
+            <mxRectangle width="150" height="30" as="alternateBounds" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="o60YcwZubwZQB6P53rrb-21" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;" parent="o60YcwZubwZQB6P53rrb-14" vertex="1">
+          <mxGeometry y="90" width="180" height="30" as="geometry" />
+        </mxCell>
+        <mxCell id="o60YcwZubwZQB6P53rrb-22" value="FK" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;whiteSpace=wrap;html=1;" parent="o60YcwZubwZQB6P53rrb-21" vertex="1">
+          <mxGeometry width="30" height="30" as="geometry">
+            <mxRectangle width="30" height="30" as="alternateBounds" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="o60YcwZubwZQB6P53rrb-23" value="photo_id" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;whiteSpace=wrap;html=1;" parent="o60YcwZubwZQB6P53rrb-21" vertex="1">
+          <mxGeometry x="30" width="150" height="30" as="geometry">
+            <mxRectangle width="150" height="30" as="alternateBounds" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="wxrKLNa1xrqPYXWx0TwO-1" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;" parent="o60YcwZubwZQB6P53rrb-14" vertex="1">
+          <mxGeometry y="120" width="180" height="30" as="geometry" />
+        </mxCell>
+        <mxCell id="wxrKLNa1xrqPYXWx0TwO-2" value="FK" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;whiteSpace=wrap;html=1;" parent="wxrKLNa1xrqPYXWx0TwO-1" vertex="1">
+          <mxGeometry width="30" height="30" as="geometry">
+            <mxRectangle width="30" height="30" as="alternateBounds" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="wxrKLNa1xrqPYXWx0TwO-3" value="student_id" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;whiteSpace=wrap;html=1;" parent="wxrKLNa1xrqPYXWx0TwO-1" vertex="1">
+          <mxGeometry x="30" width="150" height="30" as="geometry">
+            <mxRectangle width="150" height="30" as="alternateBounds" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="o60YcwZubwZQB6P53rrb-27" value="" style="edgeStyle=entityRelationEdgeStyle;fontSize=12;html=1;endArrow=ERoneToMany;rounded=0;" parent="1" source="o60YcwZubwZQB6P53rrb-1" target="o60YcwZubwZQB6P53rrb-21" edge="1">
+          <mxGeometry width="100" height="100" relative="1" as="geometry">
+            <mxPoint x="310" y="480" as="sourcePoint" />
+            <mxPoint x="410" y="380" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="o60YcwZubwZQB6P53rrb-28" value="Student" style="shape=table;startSize=30;container=1;collapsible=1;childLayout=tableLayout;fixedRows=1;rowLines=0;fontStyle=1;align=center;resizeLast=1;html=1;" parent="1" vertex="1">
+          <mxGeometry x="690" y="235" width="180" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="o60YcwZubwZQB6P53rrb-29" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=1;" parent="o60YcwZubwZQB6P53rrb-28" vertex="1">
+          <mxGeometry y="30" width="180" height="30" as="geometry" />
+        </mxCell>
+        <mxCell id="o60YcwZubwZQB6P53rrb-30" value="PK" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;fontStyle=1;overflow=hidden;whiteSpace=wrap;html=1;" parent="o60YcwZubwZQB6P53rrb-29" vertex="1">
+          <mxGeometry width="30" height="30" as="geometry">
+            <mxRectangle width="30" height="30" as="alternateBounds" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="o60YcwZubwZQB6P53rrb-31" value="id" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;fontStyle=5;overflow=hidden;whiteSpace=wrap;html=1;" parent="o60YcwZubwZQB6P53rrb-29" vertex="1">
+          <mxGeometry x="30" width="150" height="30" as="geometry">
+            <mxRectangle width="150" height="30" as="alternateBounds" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="o60YcwZubwZQB6P53rrb-55" value="" style="edgeStyle=entityRelationEdgeStyle;fontSize=12;html=1;endArrow=ERoneToMany;rounded=0;" parent="1" source="o60YcwZubwZQB6P53rrb-28" target="wxrKLNa1xrqPYXWx0TwO-1" edge="1">
+          <mxGeometry width="100" height="100" relative="1" as="geometry">
+            <mxPoint x="700" y="440" as="sourcePoint" />
+            <mxPoint x="760" y="390" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+      </root>
+    </mxGraphModel>
+  </diagram>
+</mxfile>

BIN
Диаграммы/ERD.drawio.png


+ 361 - 0
Диаграммы/IDEF0.drawio

@@ -0,0 +1,361 @@
+<mxfile host="Electron" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/26.2.2 Chrome/134.0.6998.178 Electron/35.1.2 Safari/537.36" version="26.2.2">
+  <diagram name="Страница — 1" id="WZqDJcLDZxlQ1BzzjgQn">
+    <mxGraphModel dx="1932" dy="1832" 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" />
+        <mxCell id="zHGtp-32Zf1lr2AL1ZkO-48" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=none;" parent="1" vertex="1">
+          <mxGeometry x="-40" y="510" width="960" height="460" as="geometry" />
+        </mxCell>
+        <mxCell id="zHGtp-32Zf1lr2AL1ZkO-38" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=none;" parent="1" vertex="1">
+          <mxGeometry x="-40" width="960" height="460" as="geometry" />
+        </mxCell>
+        <mxCell id="zHGtp-32Zf1lr2AL1ZkO-1" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=none;" parent="1" vertex="1">
+          <mxGeometry x="-40" y="-500" width="960" height="460" as="geometry" />
+        </mxCell>
+        <mxCell id="3zEvrLFFCcEO24gx-tQ1-1" value="Подключение внешнего накопителя" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
+          <mxGeometry x="155" y="150" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="3zEvrLFFCcEO24gx-tQ1-5" value="" style="endArrow=classic;html=1;rounded=0;entryX=0;entryY=0;entryDx=0;entryDy=0;" parent="1" edge="1">
+          <mxGeometry width="50" height="50" relative="1" as="geometry">
+            <mxPoint x="5" y="190" as="sourcePoint" />
+            <mxPoint x="155" y="190" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="3zEvrLFFCcEO24gx-tQ1-6" value="Внешний накопитель" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
+          <mxGeometry x="30" y="155" width="90" height="30" as="geometry" />
+        </mxCell>
+        <mxCell id="3zEvrLFFCcEO24gx-tQ1-10" value="Сбор лиц студента" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
+          <mxGeometry x="350" y="-290" width="120" height="80" as="geometry" />
+        </mxCell>
+        <mxCell id="3zEvrLFFCcEO24gx-tQ1-11" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.229;exitY=0.522;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" edge="1">
+          <mxGeometry width="50" height="50" relative="1" as="geometry">
+            <mxPoint x="179.83999999999992" y="-260.0699999999999" as="sourcePoint" />
+            <mxPoint x="350" y="-259.99" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="3zEvrLFFCcEO24gx-tQ1-12" value="Фотографии из медиатеки" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
+          <mxGeometry x="180" y="-280.07" width="160" height="20" as="geometry" />
+        </mxCell>
+        <mxCell id="3zEvrLFFCcEO24gx-tQ1-20" value="0" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
+          <mxGeometry x="450" y="-220" width="20" height="10" as="geometry" />
+        </mxCell>
+        <mxCell id="3zEvrLFFCcEO24gx-tQ1-21" value="Требования к фото лица студента" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
+          <mxGeometry x="360" y="-400" width="110" height="40" as="geometry" />
+        </mxCell>
+        <mxCell id="3zEvrLFFCcEO24gx-tQ1-22" value="" style="endArrow=classic;html=1;rounded=0;" parent="1" edge="1">
+          <mxGeometry width="50" height="50" relative="1" as="geometry">
+            <mxPoint x="414" y="-360" as="sourcePoint" />
+            <mxPoint x="414" y="-290" as="targetPoint" />
+            <Array as="points">
+              <mxPoint x="414" y="-310" />
+            </Array>
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="3zEvrLFFCcEO24gx-tQ1-24" value="Файл-архив, сохранённый на внешнем накопителе" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
+          <mxGeometry x="482" y="-270" width="150" height="20" as="geometry" />
+        </mxCell>
+        <mxCell id="3zEvrLFFCcEO24gx-tQ1-25" value="" style="endArrow=classic;html=1;rounded=0;entryX=0.708;entryY=0.565;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" edge="1" target="zHGtp-32Zf1lr2AL1ZkO-1">
+          <mxGeometry width="50" height="50" relative="1" as="geometry">
+            <mxPoint x="470" y="-240.28999999999988" as="sourcePoint" />
+            <mxPoint x="620" y="-240.29" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="3zEvrLFFCcEO24gx-tQ1-33" value="Данные лица студента" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
+          <mxGeometry x="505" y="230" width="130" height="30" as="geometry" />
+        </mxCell>
+        <mxCell id="3zEvrLFFCcEO24gx-tQ1-34" value="Снятие фотографии лица студента" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
+          <mxGeometry x="382" y="220" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="3zEvrLFFCcEO24gx-tQ1-36" value="" style="edgeStyle=elbowEdgeStyle;elbow=horizontal;endArrow=classic;html=1;curved=0;rounded=0;endSize=8;startSize=8;" parent="1" source="3zEvrLFFCcEO24gx-tQ1-1" target="3zEvrLFFCcEO24gx-tQ1-34" edge="1">
+          <mxGeometry width="50" height="50" relative="1" as="geometry">
+            <mxPoint x="295" y="300" as="sourcePoint" />
+            <mxPoint x="345" y="250" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="3zEvrLFFCcEO24gx-tQ1-37" value="Подтверждение подключения" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
+          <mxGeometry x="282" y="155" width="120" height="20" as="geometry" />
+        </mxCell>
+        <mxCell id="3zEvrLFFCcEO24gx-tQ1-40" value="Студенты" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
+          <mxGeometry x="402" y="390" width="80" height="30" as="geometry" />
+        </mxCell>
+        <mxCell id="3zEvrLFFCcEO24gx-tQ1-41" value="" style="endArrow=classic;html=1;rounded=0;" parent="1" edge="1">
+          <mxGeometry width="50" height="50" relative="1" as="geometry">
+            <mxPoint x="442" y="390" as="sourcePoint" />
+            <mxPoint x="441.5800000000001" y="280" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="3zEvrLFFCcEO24gx-tQ1-42" value="Требования к фото лица студента" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
+          <mxGeometry x="387" y="10" width="110" height="40" as="geometry" />
+        </mxCell>
+        <mxCell id="3zEvrLFFCcEO24gx-tQ1-43" value="" style="endArrow=classic;html=1;rounded=0;" parent="1" edge="1">
+          <mxGeometry width="50" height="50" relative="1" as="geometry">
+            <mxPoint x="442" y="60" as="sourcePoint" />
+            <mxPoint x="441.58000000000004" y="220" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="3zEvrLFFCcEO24gx-tQ1-45" value="Сборка результата" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
+          <mxGeometry x="635" y="280" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="3zEvrLFFCcEO24gx-tQ1-46" value="" style="edgeStyle=elbowEdgeStyle;elbow=horizontal;endArrow=classic;html=1;curved=0;rounded=0;endSize=8;startSize=8;exitX=1;exitY=0.75;exitDx=0;exitDy=0;" parent="1" source="3zEvrLFFCcEO24gx-tQ1-34" target="3zEvrLFFCcEO24gx-tQ1-45" edge="1">
+          <mxGeometry width="50" height="50" relative="1" as="geometry">
+            <mxPoint x="525" y="390" as="sourcePoint" />
+            <mxPoint x="632" y="460" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="3zEvrLFFCcEO24gx-tQ1-48" value="" style="endArrow=classic;html=1;rounded=0;entryX=1;entryY=1;entryDx=0;entryDy=0;" parent="1" edge="1" target="3zEvrLFFCcEO24gx-tQ1-49">
+          <mxGeometry width="50" height="50" relative="1" as="geometry">
+            <mxPoint x="755" y="309.65999999999997" as="sourcePoint" />
+            <mxPoint x="885" y="310" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="3zEvrLFFCcEO24gx-tQ1-49" value="Файл-архив, сохранённый на внешнем накопителе" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
+          <mxGeometry x="755" y="280" width="155" height="30" as="geometry" />
+        </mxCell>
+        <mxCell id="3zEvrLFFCcEO24gx-tQ1-52" value="1" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
+          <mxGeometry x="255" y="200" width="20" height="10" as="geometry" />
+        </mxCell>
+        <mxCell id="3zEvrLFFCcEO24gx-tQ1-53" value="2" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
+          <mxGeometry x="482" y="270" width="20" height="10" as="geometry" />
+        </mxCell>
+        <mxCell id="3zEvrLFFCcEO24gx-tQ1-54" value="3" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
+          <mxGeometry x="735" y="330" width="20" height="10" as="geometry" />
+        </mxCell>
+        <mxCell id="3zEvrLFFCcEO24gx-tQ1-55" value="Загрузка данных о лицах" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
+          <mxGeometry x="92" y="615" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="3zEvrLFFCcEO24gx-tQ1-56" value="Данные лица студента" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
+          <mxGeometry x="10" y="690" width="100" height="35" as="geometry" />
+        </mxCell>
+        <mxCell id="3zEvrLFFCcEO24gx-tQ1-57" value="" style="endArrow=classic;html=1;rounded=0;" parent="1" edge="1">
+          <mxGeometry width="50" height="50" relative="1" as="geometry">
+            <mxPoint x="12" y="723.32" as="sourcePoint" />
+            <mxPoint x="282" y="723.69" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="3zEvrLFFCcEO24gx-tQ1-58" value="1" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
+          <mxGeometry x="192" y="665" width="20" height="10" as="geometry" />
+        </mxCell>
+        <mxCell id="3zEvrLFFCcEO24gx-tQ1-59" value="Сопоставление лица студента с базой лиц" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
+          <mxGeometry x="282" y="675" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="3zEvrLFFCcEO24gx-tQ1-60" value="" style="edgeStyle=elbowEdgeStyle;elbow=horizontal;endArrow=classic;html=1;curved=0;rounded=0;endSize=8;startSize=8;" parent="1" source="3zEvrLFFCcEO24gx-tQ1-55" target="3zEvrLFFCcEO24gx-tQ1-59" edge="1">
+          <mxGeometry width="50" height="50" relative="1" as="geometry">
+            <mxPoint x="212" y="645" as="sourcePoint" />
+            <mxPoint x="319" y="715" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="3zEvrLFFCcEO24gx-tQ1-61" value="Структура хранения лиц" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
+          <mxGeometry x="222" y="620" width="88" height="20" as="geometry" />
+        </mxCell>
+        <mxCell id="3zEvrLFFCcEO24gx-tQ1-62" value="2" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
+          <mxGeometry x="382" y="725" width="20" height="10" as="geometry" />
+        </mxCell>
+        <mxCell id="3zEvrLFFCcEO24gx-tQ1-63" value="Сообщение результата поиска пользователю" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
+          <mxGeometry x="482" y="712.5" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="3zEvrLFFCcEO24gx-tQ1-64" value="" style="edgeStyle=elbowEdgeStyle;elbow=horizontal;endArrow=classic;html=1;curved=0;rounded=0;endSize=8;startSize=8;" parent="1" target="3zEvrLFFCcEO24gx-tQ1-63" edge="1" source="3zEvrLFFCcEO24gx-tQ1-59">
+          <mxGeometry width="50" height="50" relative="1" as="geometry">
+            <mxPoint x="402" y="680" as="sourcePoint" />
+            <mxPoint x="509" y="750" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="3zEvrLFFCcEO24gx-tQ1-65" value="Результат поиска" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
+          <mxGeometry x="412" y="680" width="50" height="20" as="geometry" />
+        </mxCell>
+        <mxCell id="3zEvrLFFCcEO24gx-tQ1-66" value="3" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
+          <mxGeometry x="582" y="762.5" width="20" height="10" as="geometry" />
+        </mxCell>
+        <mxCell id="3zEvrLFFCcEO24gx-tQ1-67" value="Сохранение найденных фотографий в .zip архив" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
+          <mxGeometry x="685" y="772.5" width="120" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="3zEvrLFFCcEO24gx-tQ1-68" value="" style="edgeStyle=elbowEdgeStyle;elbow=horizontal;endArrow=classic;html=1;curved=0;rounded=0;endSize=8;startSize=8;" parent="1" target="3zEvrLFFCcEO24gx-tQ1-67" edge="1" source="3zEvrLFFCcEO24gx-tQ1-63">
+          <mxGeometry width="50" height="50" relative="1" as="geometry">
+            <mxPoint x="592" y="717.5" as="sourcePoint" />
+            <mxPoint x="699" y="787.5" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="3zEvrLFFCcEO24gx-tQ1-69" value="Решение о сохранении результата" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
+          <mxGeometry x="605" y="690" width="80" height="55" as="geometry" />
+        </mxCell>
+        <mxCell id="3zEvrLFFCcEO24gx-tQ1-70" value="4" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
+          <mxGeometry x="785" y="822.5" width="20" height="10" as="geometry" />
+        </mxCell>
+        <mxCell id="3zEvrLFFCcEO24gx-tQ1-77" value="Файл-архив, сохранённый на внешнем накопителе" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
+          <mxGeometry x="805" y="740" width="105" height="55" as="geometry" />
+        </mxCell>
+        <mxCell id="3zEvrLFFCcEO24gx-tQ1-78" value="" style="endArrow=classic;html=1;rounded=0;" parent="1" edge="1">
+          <mxGeometry width="50" height="50" relative="1" as="geometry">
+            <mxPoint x="805" y="802.1399999999999" as="sourcePoint" />
+            <mxPoint x="900" y="802" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="x0nS_Ah5lLLfC2eRbUPo-1" value="Студенты" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
+          <mxGeometry x="350" y="-130" width="120" height="30" as="geometry" />
+        </mxCell>
+        <mxCell id="x0nS_Ah5lLLfC2eRbUPo-2" value="" style="endArrow=classic;html=1;rounded=0;" parent="1" edge="1">
+          <mxGeometry width="50" height="50" relative="1" as="geometry">
+            <mxPoint x="414" y="-130" as="sourcePoint" />
+            <mxPoint x="414" y="-210" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="zHGtp-32Zf1lr2AL1ZkO-2" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1">
+          <mxGeometry width="50" height="50" relative="1" as="geometry">
+            <mxPoint x="-40" y="-78" as="sourcePoint" />
+            <mxPoint x="920" y="-79" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="zHGtp-32Zf1lr2AL1ZkO-3" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1">
+          <mxGeometry width="50" height="50" relative="1" as="geometry">
+            <mxPoint x="80" y="-78" as="sourcePoint" />
+            <mxPoint x="80" y="-40" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="zHGtp-32Zf1lr2AL1ZkO-4" value="&lt;font style=&quot;font-size: 13px;&quot;&gt;Узел:&lt;/font&gt;" style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
+          <mxGeometry x="-40" y="-80" width="40" height="20" as="geometry" />
+        </mxCell>
+        <mxCell id="zHGtp-32Zf1lr2AL1ZkO-5" value="&lt;span style=&quot;font-size: 13px;&quot;&gt;А-0&lt;/span&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
+          <mxGeometry y="-80" width="80" height="40" as="geometry" />
+        </mxCell>
+        <mxCell id="zHGtp-32Zf1lr2AL1ZkO-6" value="&lt;font style=&quot;font-size: 13px;&quot;&gt;Название:&lt;/font&gt;" style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
+          <mxGeometry x="80" y="-80" width="70" height="20" as="geometry" />
+        </mxCell>
+        <mxCell id="zHGtp-32Zf1lr2AL1ZkO-7" value="Сбор лиц студента" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
+          <mxGeometry x="150" y="-80" width="570" height="40" as="geometry" />
+        </mxCell>
+        <mxCell id="zHGtp-32Zf1lr2AL1ZkO-8" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1">
+          <mxGeometry width="50" height="50" relative="1" as="geometry">
+            <mxPoint x="720" y="-78" as="sourcePoint" />
+            <mxPoint x="720" y="-40" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="zHGtp-32Zf1lr2AL1ZkO-9" value="&lt;font style=&quot;font-size: 13px;&quot;&gt;Номер:&lt;/font&gt;" style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
+          <mxGeometry x="720" y="-80" width="50" height="20" as="geometry" />
+        </mxCell>
+        <mxCell id="zHGtp-32Zf1lr2AL1ZkO-11" value="&lt;span style=&quot;font-size: 13px;&quot;&gt;1&lt;/span&gt;" style="text;html=1;align=right;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
+          <mxGeometry x="770" y="-80" width="150" height="40" as="geometry" />
+        </mxCell>
+        <mxCell id="zHGtp-32Zf1lr2AL1ZkO-39" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1">
+          <mxGeometry width="50" height="50" relative="1" as="geometry">
+            <mxPoint x="-40" y="422" as="sourcePoint" />
+            <mxPoint x="920" y="421" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="zHGtp-32Zf1lr2AL1ZkO-40" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1">
+          <mxGeometry width="50" height="50" relative="1" as="geometry">
+            <mxPoint x="80" y="422" as="sourcePoint" />
+            <mxPoint x="80" y="460" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="zHGtp-32Zf1lr2AL1ZkO-41" value="&lt;font style=&quot;font-size: 13px;&quot;&gt;Узел:&lt;/font&gt;" style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
+          <mxGeometry x="-40" y="420" width="40" height="20" as="geometry" />
+        </mxCell>
+        <mxCell id="zHGtp-32Zf1lr2AL1ZkO-42" value="&lt;span style=&quot;font-size: 13px;&quot;&gt;А-0&lt;/span&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
+          <mxGeometry y="420" width="80" height="40" as="geometry" />
+        </mxCell>
+        <mxCell id="zHGtp-32Zf1lr2AL1ZkO-43" value="&lt;font style=&quot;font-size: 13px;&quot;&gt;Название:&lt;/font&gt;" style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
+          <mxGeometry x="80" y="420" width="70" height="20" as="geometry" />
+        </mxCell>
+        <mxCell id="zHGtp-32Zf1lr2AL1ZkO-44" value="Сбор лиц студента" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
+          <mxGeometry x="150" y="420" width="570" height="40" as="geometry" />
+        </mxCell>
+        <mxCell id="zHGtp-32Zf1lr2AL1ZkO-45" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1">
+          <mxGeometry width="50" height="50" relative="1" as="geometry">
+            <mxPoint x="720" y="422" as="sourcePoint" />
+            <mxPoint x="720" y="460" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="zHGtp-32Zf1lr2AL1ZkO-46" value="&lt;font style=&quot;font-size: 13px;&quot;&gt;Номер:&lt;/font&gt;" style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
+          <mxGeometry x="720" y="420" width="50" height="20" as="geometry" />
+        </mxCell>
+        <mxCell id="zHGtp-32Zf1lr2AL1ZkO-47" value="&lt;span style=&quot;font-size: 13px;&quot;&gt;2&lt;/span&gt;" style="text;html=1;align=right;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
+          <mxGeometry x="770" y="420" width="150" height="40" as="geometry" />
+        </mxCell>
+        <mxCell id="zHGtp-32Zf1lr2AL1ZkO-49" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1">
+          <mxGeometry width="50" height="50" relative="1" as="geometry">
+            <mxPoint x="-40" y="932" as="sourcePoint" />
+            <mxPoint x="920" y="931" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="zHGtp-32Zf1lr2AL1ZkO-50" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1">
+          <mxGeometry width="50" height="50" relative="1" as="geometry">
+            <mxPoint x="80" y="932" as="sourcePoint" />
+            <mxPoint x="80" y="970" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="zHGtp-32Zf1lr2AL1ZkO-51" value="&lt;font style=&quot;font-size: 13px;&quot;&gt;Узел:&lt;/font&gt;" style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
+          <mxGeometry x="-40" y="930" width="40" height="20" as="geometry" />
+        </mxCell>
+        <mxCell id="zHGtp-32Zf1lr2AL1ZkO-52" value="&lt;span style=&quot;font-size: 13px;&quot;&gt;А3&lt;/span&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
+          <mxGeometry y="930" width="80" height="40" as="geometry" />
+        </mxCell>
+        <mxCell id="zHGtp-32Zf1lr2AL1ZkO-53" value="&lt;font style=&quot;font-size: 13px;&quot;&gt;Название:&lt;/font&gt;" style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
+          <mxGeometry x="80" y="930" width="70" height="20" as="geometry" />
+        </mxCell>
+        <mxCell id="zHGtp-32Zf1lr2AL1ZkO-54" value="Сборка результата" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
+          <mxGeometry x="150" y="930" width="570" height="40" as="geometry" />
+        </mxCell>
+        <mxCell id="zHGtp-32Zf1lr2AL1ZkO-55" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1">
+          <mxGeometry width="50" height="50" relative="1" as="geometry">
+            <mxPoint x="720" y="932" as="sourcePoint" />
+            <mxPoint x="720" y="970" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="zHGtp-32Zf1lr2AL1ZkO-56" value="&lt;font style=&quot;font-size: 13px;&quot;&gt;Номер:&lt;/font&gt;" style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
+          <mxGeometry x="720" y="930" width="50" height="20" as="geometry" />
+        </mxCell>
+        <mxCell id="zHGtp-32Zf1lr2AL1ZkO-57" value="3" style="text;html=1;align=right;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
+          <mxGeometry x="770" y="930" width="150" height="40" as="geometry" />
+        </mxCell>
+        <mxCell id="E-yEFYHW7V-pbakO4Ow1-3" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.229;exitY=0.609;exitDx=0;exitDy=0;exitPerimeter=0;" edge="1" parent="1">
+          <mxGeometry width="50" height="50" relative="1" as="geometry">
+            <mxPoint x="179.83999999999992" y="-229.99999999999986" as="sourcePoint" />
+            <mxPoint x="350" y="-229.93999999999997" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="E-yEFYHW7V-pbakO4Ow1-4" value="Внешний накопитель" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
+          <mxGeometry x="180" y="-249.99999999999997" width="160" height="20" as="geometry" />
+        </mxCell>
+        <mxCell id="E-yEFYHW7V-pbakO4Ow1-5" value="" style="edgeStyle=elbowEdgeStyle;elbow=vertical;endArrow=classic;html=1;curved=0;rounded=0;endSize=8;startSize=8;exitX=0.25;exitY=0;exitDx=0;exitDy=0;" edge="1" parent="1" source="3zEvrLFFCcEO24gx-tQ1-40" target="3zEvrLFFCcEO24gx-tQ1-1">
+          <mxGeometry width="50" height="50" relative="1" as="geometry">
+            <mxPoint x="260" y="330" as="sourcePoint" />
+            <mxPoint x="310" y="280" as="targetPoint" />
+            <Array as="points">
+              <mxPoint x="320" y="360" />
+            </Array>
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="E-yEFYHW7V-pbakO4Ow1-6" value="Фотографии из медиатеки" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
+          <mxGeometry x="30" y="300.00000000000006" width="160" height="20" as="geometry" />
+        </mxCell>
+        <mxCell id="E-yEFYHW7V-pbakO4Ow1-7" value="" style="endArrow=classic;html=1;rounded=0;" edge="1" parent="1">
+          <mxGeometry width="50" height="50" relative="1" as="geometry">
+            <mxPoint x="25" y="330" as="sourcePoint" />
+            <mxPoint x="635" y="330" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="E-yEFYHW7V-pbakO4Ow1-8" value="" style="edgeStyle=elbowEdgeStyle;elbow=vertical;endArrow=classic;html=1;curved=0;rounded=0;endSize=8;startSize=8;exitX=0.75;exitY=0;exitDx=0;exitDy=0;" edge="1" parent="1" source="3zEvrLFFCcEO24gx-tQ1-40" target="3zEvrLFFCcEO24gx-tQ1-45">
+          <mxGeometry width="50" height="50" relative="1" as="geometry">
+            <mxPoint x="432" y="400" as="sourcePoint" />
+            <mxPoint x="225" y="220" as="targetPoint" />
+            <Array as="points">
+              <mxPoint x="680" y="360" />
+            </Array>
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="E-yEFYHW7V-pbakO4Ow1-9" value="Студенты" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
+          <mxGeometry x="397" y="890" width="80" height="30" as="geometry" />
+        </mxCell>
+        <mxCell id="E-yEFYHW7V-pbakO4Ow1-10" value="" style="edgeStyle=elbowEdgeStyle;elbow=vertical;endArrow=classic;html=1;curved=0;rounded=0;endSize=8;startSize=8;" edge="1" parent="1" source="E-yEFYHW7V-pbakO4Ow1-9" target="3zEvrLFFCcEO24gx-tQ1-63">
+          <mxGeometry width="50" height="50" relative="1" as="geometry">
+            <mxPoint x="450" y="882.5" as="sourcePoint" />
+            <mxPoint x="668" y="832.5" as="targetPoint" />
+            <Array as="points">
+              <mxPoint x="550" y="830" />
+            </Array>
+          </mxGeometry>
+        </mxCell>
+      </root>
+    </mxGraphModel>
+  </diagram>
+</mxfile>

BIN
Диаграммы/IDEF0.drawio.png


+ 58 - 0
Диаграммы/Use Case.drawio

@@ -0,0 +1,58 @@
+<mxfile host="Electron" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/26.2.2 Chrome/134.0.6998.178 Electron/35.1.2 Safari/537.36" version="26.2.2">
+  <diagram name="Страница — 1" id="B47ApbsvhnPTkOGL0PRC">
+    <mxGraphModel dx="1105" dy="663" 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" />
+        <mxCell id="lXo8_pfFtSM277Rp3TVc-1" value="Студент" style="shape=umlActor;verticalLabelPosition=bottom;verticalAlign=top;html=1;outlineConnect=0;" vertex="1" parent="1">
+          <mxGeometry x="119" y="255" width="30" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="lXo8_pfFtSM277Rp3TVc-2" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=none;" vertex="1" parent="1">
+          <mxGeometry x="179" y="160" width="460" height="250" as="geometry" />
+        </mxCell>
+        <mxCell id="lXo8_pfFtSM277Rp3TVc-4" value="Сфотографироваться" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="239" y="170" width="150" height="70" as="geometry" />
+        </mxCell>
+        <mxCell id="lXo8_pfFtSM277Rp3TVc-5" value="Получить результат" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="239" y="250" width="150" height="70" as="geometry" />
+        </mxCell>
+        <mxCell id="lXo8_pfFtSM277Rp3TVc-6" value="Сохранить результат на внешний накопитель" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="239" y="330" width="150" height="70" as="geometry" />
+        </mxCell>
+        <mxCell id="lXo8_pfFtSM277Rp3TVc-7" value="Указать путь к медиатеке" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+          <mxGeometry x="430" y="250" width="150" height="70" as="geometry" />
+        </mxCell>
+        <mxCell id="lXo8_pfFtSM277Rp3TVc-9" value="Администратор" style="shape=umlActor;verticalLabelPosition=bottom;verticalAlign=top;html=1;outlineConnect=0;" vertex="1" parent="1">
+          <mxGeometry x="679" y="255" width="30" height="60" as="geometry" />
+        </mxCell>
+        <mxCell id="lXo8_pfFtSM277Rp3TVc-10" value="" style="endArrow=none;html=1;rounded=0;" edge="1" parent="1" source="lXo8_pfFtSM277Rp3TVc-1" target="lXo8_pfFtSM277Rp3TVc-4">
+          <mxGeometry width="50" height="50" relative="1" as="geometry">
+            <mxPoint x="239" y="510" as="sourcePoint" />
+            <mxPoint x="289" y="460" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="lXo8_pfFtSM277Rp3TVc-11" value="" style="endArrow=none;html=1;rounded=0;" edge="1" parent="1" source="lXo8_pfFtSM277Rp3TVc-1" target="lXo8_pfFtSM277Rp3TVc-5">
+          <mxGeometry width="50" height="50" relative="1" as="geometry">
+            <mxPoint x="189" y="459" as="sourcePoint" />
+            <mxPoint x="299" y="410" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="lXo8_pfFtSM277Rp3TVc-12" value="" style="endArrow=none;html=1;rounded=0;" edge="1" parent="1" source="lXo8_pfFtSM277Rp3TVc-1" target="lXo8_pfFtSM277Rp3TVc-6">
+          <mxGeometry width="50" height="50" relative="1" as="geometry">
+            <mxPoint x="199" y="500" as="sourcePoint" />
+            <mxPoint x="289" y="500" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="lXo8_pfFtSM277Rp3TVc-13" value="" style="endArrow=none;html=1;rounded=0;" edge="1" parent="1" source="lXo8_pfFtSM277Rp3TVc-9" target="lXo8_pfFtSM277Rp3TVc-7">
+          <mxGeometry width="50" height="50" relative="1" as="geometry">
+            <mxPoint x="659" y="410" as="sourcePoint" />
+            <mxPoint x="770" y="459" as="targetPoint" />
+          </mxGeometry>
+        </mxCell>
+        <mxCell id="lXo8_pfFtSM277Rp3TVc-14" value="Система &quot;Лицо успеха&quot;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
+          <mxGeometry x="179" y="130" width="131" height="30" as="geometry" />
+        </mxCell>
+      </root>
+    </mxGraphModel>
+  </diagram>
+</mxfile>

BIN
Диаграммы/Use Case.drawio.png


+ 179 - 7
Пояснительная записка.odt

@@ -89,10 +89,15 @@
 1.5.4 Разработать механизм, позволяющий пользователям сохранять
 результат работы системы.
 
-С системой взаимодействует только один тип пользователей —
-студенты, которые хотят получить результат работы.
+С системой взаимодействует два типа пользователей — студенты,
+которые хотят получить результат работы и администратор,
+который может взаимодействовать с механизмом сканирования
+фотографий системы.
 
-1.6 Похожие проекты и их сравнение:
+1.6 Похожие проекты и их сравнение
+
+В ходе изучения предметной области были проанализрованы похожие
+решения, выявлены достоинства и недостатки (таблица 1).
 
 Таблица 1 — Описание похожих проектов
 
@@ -104,18 +109,68 @@
 
 Сбор изображений студентов и сотрудников МИЭМ [1]
 
-Интеграция с корпоративным мессенджером
+Интеграция с корпоративным мессенджером.
 
-Не самостоятельное приложение, а адаптер mongodb
+Не самостоятельное приложение, а адаптер mongodb.
 
 Google Photos [2],
 
 Яндекс Диск [3]
 
-Точное распознавание лиц, облачная платформа
+Точное распознавание лиц, облачная платформа.
 
 Ограничение по размеру для некоммерческой версии, нет
-автоматической компоновки результата
+автоматической компоновки результата.
+
+2 Проектирование информационной системы
+
+При проектировании системы были выделены два типа
+пользователей: студенты и администраторы, а так же
+определены функции, которые каждый из типов может использовать.
+Описание функций приведено в use-case диаграмме (рис. 1).
+
+[-- Image: Image1 --]Рисунок 1 — use-case диаграмма системы
+
+При проектировании также была разработана диаграмма,
+отображающая основной бизнес процесс проекта.
+Диаграмма выполнена в нотации IDEF0 и приведена в
+приложении А.
+
+Для эффективной обработки лиц потребовалось разработать базу
+данных, хранящую в себе уже распознанные лица студентов и
+пути к изображениям. Это решение позволяет не обрабатывать
+заново тысячи фотографий медиатеки, а вместо этого сравнить
+полученное лицо с гораздо меньшим количеством данных.
+Разработана диаграмма связей сущностей, приведена в
+приложении Б.
+
+Для пояснения структуры данных был разработан словарь данных
+(приложение В).
+
+Проанализировав альтернативные решения, были выявлены следующие
+общие характеристики:
+
+- Использование искусственного интеллекта для распознавания лиц;
+
+- Исполнение в браузере.
+
+Таблица 2 — Параметры среды разработки
+
+Параметр
+
+Значение
+
+Распознавание лиц
+
+Язык программирования python, библиотека face_recognition [4],
+так как python имеет обширные средства работы с искусственным
+интеллектом и обработкой изображений.
+
+Пользовательский интерфейс
+
+Язык программирования javascript, фреймворк vue.js [5], так как
+платформа браузера, на которой исполняется код, предоставляет
+много возможностей в плане разработки интерфейса.
 
 Список использованных источников
 ================================
@@ -133,3 +188,120 @@ https://photos.google.com/. 
 https://360.yandex.ru/disk/. — Заглавие с экрана. — (Дата
 обращения: 02.05.2025).
 
+4 ageitgey/face_recognition: The world's simplest facial
+recognition api for Python and the command line [Электронный
+ресурс] — Режим доступа:
+https://github.com/ageitgey/face_recognition. — Заглавие с
+экрана. — (Дата обращения: 02.05.2025).
+
+5 Vue.js - The Progressive JavaScript Framework | Vue.js
+[Электронный ресурс] — Режим доступа:
+https://vuejs.org/. — Заглавие с экрана. — (Дата обращения:
+02.05.2025).
+
+приложение а
+============
+
+(обязательное)
+
+[-- Image: Image2 --]Рисунок А.1 — Диаграмма основного
+бизнес-процесса
+
+приложение Б
+============
+
+(обязательное)
+
+[-- Image: Image3 --]Рисунок Б.1 — Диаграмма связей сущностей
+
+приложение в
+============
+
+(обязательное)
+
+Таблица В.1 — Словарь данных сущности Photo
+
+Название поля
+
+Тип данных
+
+Пояснение
+
+Ограничения
+
+id
+
+int
+
+Уникальный идентификатор фотографии.
+
+PRIMARY KEY, NOT NULL
+
+path
+
+text
+
+Путь к фотографии в медиатеке.
+
+-
+
+Таблица В.2 — Словарь данных сущности Student
+
+Название поля
+
+Тип данных
+
+Пояснение
+
+Ограничения
+
+id
+
+int
+
+Уникальный анонимный идентификатор студента.
+
+PRIMARY KEY, NOT NULL
+
+Таблица В.3 — Словарь данных сущности Face
+
+Название поля
+
+Тип данных
+
+Пояснение
+
+Ограничения
+
+id
+
+int
+
+Уникальный идентификатор лица.
+
+PRIMARY KEY, NOT NULL
+
+encoding
+
+blob
+
+Сериализованные данные лица. Исходные данные генерируются
+функцией face_encodings.
+
+photo_id
+
+int
+
+Ссылается на фотографию, на которой запечатлено это лицо.
+
+FOREIGN KEY
+
+student_id
+
+Int
+
+Ссылается на студента, которому, как считает система,
+принадлежит данное лицо.
+
+FOREIGN KEY
+