academia/docs/architecture/diagrams/02-domain-model.svg

1 line
24 KiB
XML

<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentStyleType="text/css" data-diagram-type="CLASS" height="731px" preserveAspectRatio="none" style="width:1215px;height:731px;background:#FFFFFF;" version="1.1" viewBox="0 0 1215 731" width="1215px" zoomAndPan="magnify"><title>Sistema de Registro de Estudiantes - Modelo de Dominio</title><defs/><g><g class="title" data-source-line="7"><text fill="#000000" font-family="Verdana" font-size="22" font-weight="bold" lengthAdjust="spacing" textLength="705.9443" x="250.1586" y="35.4209">Sistema de Registro de Estudiantes - Modelo de Dominio</text></g><!--cluster Domain--><g class="cluster" data-entity="Domain" data-source-line="9" data-uid="ent0002" id="cluster_Domain"><path d="M13.5,57.6094 L74.54,57.6094 A3.75,3.75 0 0 1 77.04,60.1094 L84.04,79.9063 L786.5,79.9063 A2.5,2.5 0 0 1 789,82.4063 L789,722.2494 A2.5,2.5 0 0 1 786.5,724.7494 L13.5,724.7494 A2.5,2.5 0 0 1 11,722.2494 L11,60.1094 A2.5,2.5 0 0 1 13.5,57.6094" fill="#FFFFFF" style="stroke:#000000;stroke-width:1;"/><line style="stroke:#000000;stroke-width:1;" x1="11" x2="84.04" y1="79.9063" y2="79.9063"/><text fill="#000000" font-family="Verdana" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="60.04" x="15" y="72.6045">Domain</text></g><!--class Student--><g class="entity" data-entity="Student" data-source-line="11" data-uid="ent0003" id="entity_Student"><rect fill="#F8F9FA" height="186.6406" rx="2.5" ry="2.5" style="stroke:#495057;stroke-width:1;" width="272.0869" x="253.96" y="291.0594"/><ellipse cx="354.7945" cy="311.1922" fill="#FFFFFF" rx="9" ry="9" style="stroke:#000000;stroke-width:1;"/><path d="M357.7632,316.8328 Q357.1851,317.1297 356.5445,317.2703 Q355.9038,317.4266 355.2007,317.4266 Q352.7007,317.4266 351.3726,315.7859 Q350.0601,314.1297 350.0601,311.0047 Q350.0601,307.8797 351.3726,306.2234 Q352.7007,304.5672 355.2007,304.5672 Q355.9038,304.5672 356.5445,304.7234 Q357.2007,304.8797 357.7632,305.1766 L357.7632,307.8953 Q357.1382,307.3172 356.5445,307.0516 Q355.9507,306.7703 355.3257,306.7703 Q353.982,306.7703 353.2945,307.8484 Q352.607,308.9109 352.607,311.0047 Q352.607,313.0984 353.2945,314.1766 Q353.982,315.2391 355.3257,315.2391 Q355.9507,315.2391 356.5445,314.9734 Q357.1382,314.6922 357.7632,314.1141 L357.7632,316.8328 Z " fill="#000000"/><text fill="#000000" font-family="Verdana" font-size="12" font-style="italic" lengthAdjust="spacing" textLength="49.8457" x="378.8306" y="307.198">&#171;Entity&#187;</text><text fill="#000000" font-family="Verdana" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="62.918" x="372.2945" y="323.0232">Student</text><line style="stroke:#495057;stroke-width:1;" x1="254.96" x2="525.0469" y1="331.325" y2="331.325"/><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="45.2471" x="259.96" y="348.3201">-id: int</text><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="94.1104" x="259.96" y="364.617">-name: string</text><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="91.6699" x="259.96" y="380.9139">-email: Email</text><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="222.0791" x="259.96" y="397.2107">-enrollments: List&lt;Enrollment&gt;</text><line style="stroke:#495057;stroke-width:1;" x1="254.96" x2="525.0469" y1="404.5125" y2="404.5125"/><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="157.8418" x="259.96" y="421.5076">+getTotalCredits(): int</text><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="251.9453" x="259.96" y="437.8045">+canEnrollIn(subject: Subject): bool</text><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="260.0869" x="259.96" y="454.1014">+enroll(subject: Subject): Enrollment</text><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="235.416" x="259.96" y="470.3982">+unenroll(enrollmentId: int): void</text></g><!--class Subject--><g class="entity" data-entity="Subject" data-source-line="23" data-uid="ent0004" id="entity_Subject"><rect fill="#F8F9FA" height="137.75" rx="2.5" ry="2.5" style="stroke:#495057;stroke-width:1;" width="197.2402" x="561.38" y="315.5094"/><ellipse cx="626.5719" cy="335.6422" fill="#FFFFFF" rx="9" ry="9" style="stroke:#000000;stroke-width:1;"/><path d="M629.5406,341.2828 Q628.9625,341.5797 628.3219,341.7203 Q627.6813,341.8766 626.9781,341.8766 Q624.4781,341.8766 623.15,340.2359 Q621.8375,338.5797 621.8375,335.4547 Q621.8375,332.3297 623.15,330.6734 Q624.4781,329.0172 626.9781,329.0172 Q627.6813,329.0172 628.3219,329.1734 Q628.9781,329.3297 629.5406,329.6266 L629.5406,332.3453 Q628.9156,331.7672 628.3219,331.5016 Q627.7281,331.2203 627.1031,331.2203 Q625.7594,331.2203 625.0719,332.2984 Q624.3844,333.3609 624.3844,335.4547 Q624.3844,337.5484 625.0719,338.6266 Q625.7594,339.6891 627.1031,339.6891 Q627.7281,339.6891 628.3219,339.4234 Q628.9156,339.1422 629.5406,338.5641 L629.5406,341.2828 Z " fill="#000000"/><text fill="#000000" font-family="Verdana" font-size="12" font-style="italic" lengthAdjust="spacing" textLength="49.8457" x="648.8273" y="331.648">&#171;Entity&#187;</text><text fill="#000000" font-family="Verdana" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="59.3564" x="644.0719" y="347.4732">Subject</text><line style="stroke:#495057;stroke-width:1;" x1="562.38" x2="757.6202" y1="355.775" y2="355.775"/><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="45.2471" x="567.38" y="372.7701">-id: int</text><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="94.1104" x="567.38" y="389.067">-name: string</text><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="127.4492" x="567.38" y="405.3639">-credits: int {= 3}</text><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="111.1455" x="567.38" y="421.6607">-professorId: int</text><line style="stroke:#495057;stroke-width:1;" x1="562.38" x2="757.6202" y1="428.9625" y2="428.9625"/><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="185.2402" x="567.38" y="445.9576">+getProfessor(): Professor</text></g><!--class Professor--><g class="entity" data-entity="Professor" data-source-line="32" data-uid="ent0005" id="entity_Professor"><rect fill="#F8F9FA" height="121.4531" rx="2.5" ry="2.5" style="stroke:#495057;stroke-width:1;" width="226.71" x="546.65" y="92.6094"/><ellipse cx="618.4762" cy="112.7422" fill="#FFFFFF" rx="9" ry="9" style="stroke:#000000;stroke-width:1;"/><path d="M621.4449,118.3828 Q620.8668,118.6797 620.2262,118.8203 Q619.5855,118.9766 618.8824,118.9766 Q616.3824,118.9766 615.0543,117.3359 Q613.7418,115.6797 613.7418,112.5547 Q613.7418,109.4297 615.0543,107.7734 Q616.3824,106.1172 618.8824,106.1172 Q619.5855,106.1172 620.2262,106.2734 Q620.8824,106.4297 621.4449,106.7266 L621.4449,109.4453 Q620.8199,108.8672 620.2262,108.6016 Q619.6324,108.3203 619.0074,108.3203 Q617.6637,108.3203 616.9762,109.3984 Q616.2887,110.4609 616.2887,112.5547 Q616.2887,114.6484 616.9762,115.7266 Q617.6637,116.7891 619.0074,116.7891 Q619.6324,116.7891 620.2262,116.5234 Q620.8199,116.2422 621.4449,115.6641 L621.4449,118.3828 Z " fill="#000000"/><text fill="#000000" font-family="Verdana" font-size="12" font-style="italic" lengthAdjust="spacing" textLength="49.8457" x="648.8321" y="108.748">&#171;Entity&#187;</text><text fill="#000000" font-family="Verdana" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="75.5576" x="635.9762" y="124.5732">Professor</text><line style="stroke:#495057;stroke-width:1;" x1="547.65" x2="772.36" y1="132.875" y2="132.875"/><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="45.2471" x="552.65" y="149.8701">-id: int</text><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="94.1104" x="552.65" y="166.167">-name: string</text><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="172.5254" x="552.65" y="182.4639">-subjects: List&lt;Subject&gt;</text><line style="stroke:#495057;stroke-width:1;" x1="547.65" x2="772.36" y1="189.7656" y2="189.7656"/><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="214.71" x="552.65" y="206.7607">+getSubjects(): List&lt;Subject&gt;</text></g><!--class Enrollment--><g class="entity" data-entity="Enrollment" data-source-line="40" data-uid="ent0006" id="entity_Enrollment"><rect fill="#F8F9FA" height="154.0469" rx="2.5" ry="2.5" style="stroke:#495057;stroke-width:1;" width="177.0332" x="551.48" y="554.6994"/><ellipse cx="593.0503" cy="574.8322" fill="#FFFFFF" rx="9" ry="9" style="stroke:#000000;stroke-width:1;"/><path d="M596.0191,580.4728 Q595.4409,580.7697 594.8003,580.9103 Q594.1597,581.0666 593.4566,581.0666 Q590.9566,581.0666 589.6284,579.4259 Q588.3159,577.7697 588.3159,574.6447 Q588.3159,571.5197 589.6284,569.8634 Q590.9566,568.2072 593.4566,568.2072 Q594.1597,568.2072 594.8003,568.3634 Q595.4566,568.5197 596.0191,568.8166 L596.0191,571.5353 Q595.3941,570.9572 594.8003,570.6916 Q594.2066,570.4103 593.5816,570.4103 Q592.2378,570.4103 591.5503,571.4884 Q590.8628,572.5509 590.8628,574.6447 Q590.8628,576.7384 591.5503,577.8166 Q592.2378,578.8791 593.5816,578.8791 Q594.2066,578.8791 594.8003,578.6134 Q595.3941,578.3322 596.0191,577.7541 L596.0191,580.4728 Z " fill="#000000"/><text fill="#000000" font-family="Verdana" font-size="12" font-style="italic" lengthAdjust="spacing" textLength="49.8457" x="628.8238" y="570.838">&#171;Entity&#187;</text><text fill="#000000" font-family="Verdana" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="86.3926" x="610.5503" y="586.6632">Enrollment</text><line style="stroke:#495057;stroke-width:1;" x1="552.48" x2="727.5132" y1="594.965" y2="594.965"/><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="45.2471" x="557.48" y="611.9601">-id: int</text><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="99.0049" x="557.48" y="628.257">-studentId: int</text><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="96.2295" x="557.48" y="644.5539">-subjectId: int</text><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="154.5264" x="557.48" y="660.8507">-enrolledAt: DateTime</text><line style="stroke:#495057;stroke-width:1;" x1="552.48" x2="727.5132" y1="668.1525" y2="668.1525"/><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="165.0332" x="557.48" y="685.1476">+getStudent(): Student</text><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="159.4824" x="557.48" y="701.4445">+getSubject(): Subject</text></g><!--class Email--><g class="entity" data-entity="Email" data-source-line="50" data-uid="ent0007" id="entity_Email"><rect fill="#F8F9FA" height="105.1563" rx="2.5" ry="2.5" style="stroke:#495057;stroke-width:1;" width="215.0068" x="282.5" y="579.1494"/><ellipse cx="342.4565" cy="599.2822" fill="#FFFFFF" rx="9" ry="9" style="stroke:#000000;stroke-width:1;"/><path d="M345.4253,604.9228 Q344.8472,605.2197 344.2065,605.3603 Q343.5659,605.5166 342.8628,605.5166 Q340.3628,605.5166 339.0347,603.8759 Q337.7222,602.2197 337.7222,599.0947 Q337.7222,595.9697 339.0347,594.3134 Q340.3628,592.6572 342.8628,592.6572 Q343.5659,592.6572 344.2065,592.8134 Q344.8628,592.9697 345.4253,593.2666 L345.4253,595.9853 Q344.8003,595.4072 344.2065,595.1416 Q343.6128,594.8603 342.9878,594.8603 Q341.644,594.8603 340.9565,595.9384 Q340.269,597.0009 340.269,599.0947 Q340.269,601.1884 340.9565,602.2666 Q341.644,603.3291 342.9878,603.3291 Q343.6128,603.3291 344.2065,603.0634 Q344.8003,602.7822 345.4253,602.2041 L345.4253,604.9228 Z " fill="#000000"/><text fill="#000000" font-family="Verdana" font-size="12" font-style="italic" lengthAdjust="spacing" textLength="91.5938" x="357.9565" y="595.288">&#171;Value Object&#187;</text><text fill="#000000" font-family="Verdana" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="43.1963" x="382.1553" y="611.1132">Email</text><line style="stroke:#495057;stroke-width:1;" x1="283.5" x2="496.5068" y1="619.415" y2="619.415"/><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="92.6475" x="288.5" y="636.4101">-value: string</text><line style="stroke:#495057;stroke-width:1;" x1="283.5" x2="496.5068" y1="643.7119" y2="643.7119"/><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" text-decoration="underline" textLength="203.0068" x="288.5" y="660.707">+create(value: string): Email</text><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="198.5771" x="288.5" y="677.0039">-validate(value: string): void</text></g><!--class EnrollmentDomainService--><g class="entity" data-entity="EnrollmentDomainService" data-source-line="57" data-uid="ent0008" id="entity_EnrollmentDomainService"><rect fill="#F8F9FA" height="105.1563" rx="2.5" ry="2.5" style="stroke:#495057;stroke-width:1;" width="484.5" x="26.75" y="100.7594"/><ellipse cx="162.9331" cy="120.8922" fill="#FFFFFF" rx="9" ry="9" style="stroke:#000000;stroke-width:1;"/><path d="M165.9019,126.5328 Q165.3237,126.8297 164.6831,126.9703 Q164.0425,127.1266 163.3394,127.1266 Q160.8394,127.1266 159.5112,125.4859 Q158.1987,123.8297 158.1987,120.7047 Q158.1987,117.5797 159.5112,115.9234 Q160.8394,114.2672 163.3394,114.2672 Q164.0425,114.2672 164.6831,114.4234 Q165.3394,114.5797 165.9019,114.8766 L165.9019,117.5953 Q165.2769,117.0172 164.6831,116.7516 Q164.0894,116.4703 163.4644,116.4703 Q162.1206,116.4703 161.4331,117.5484 Q160.7456,118.6109 160.7456,120.7047 Q160.7456,122.7984 161.4331,123.8766 Q162.1206,124.9391 163.4644,124.9391 Q164.0894,124.9391 164.6831,124.6734 Q165.2769,124.3922 165.9019,123.8141 L165.9019,126.5328 Z " fill="#000000"/><text fill="#000000" font-family="Verdana" font-size="12" font-style="italic" lengthAdjust="spacing" textLength="109.541" x="227.9795" y="116.898">&#171;Domain Service&#187;</text><text fill="#000000" font-family="Verdana" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="204.6338" x="180.4331" y="132.7232">EnrollmentDomainService</text><line style="stroke:#495057;stroke-width:1;" x1="27.75" x2="510.25" y1="141.025" y2="141.025"/><line style="stroke:#495057;stroke-width:1;" x1="27.75" x2="510.25" y1="149.025" y2="149.025"/><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="433.0361" x="32.75" y="166.0201">+validateEnrollment(student: Student, subject: Subject): void</text><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="326.2246" x="32.75" y="182.317">-checkMaxEnrollments(student: Student): void</text><text fill="#000000" font-family="Verdana" font-size="14" lengthAdjust="spacing" textLength="472.5" x="32.75" y="198.6139">-checkProfessorConstraint(student: Student, subject: Subject): void</text></g><g class="entity" data-entity="GMN15" data-source-line="75" data-uid="ent0016" id="entity_GMN15"><path d="M804.92,596.4594 L804.92,666.9906 L987.087,666.9906 L987.087,606.4594 L977.087,596.4594 L804.92,596.4594" fill="#FFFFFF" style="stroke:#000000;stroke-width:1;"/><path d="M977.087,596.4594 L977.087,606.4594 L987.087,606.4594 L977.087,596.4594" fill="#FFFFFF" style="stroke:#000000;stroke-width:1;"/><text fill="#000000" font-family="Verdana" font-size="13" font-weight="bold" lengthAdjust="spacing" textLength="88.2007" x="810.92" y="613.5263">Invariantes:</text><text fill="#000000" font-family="Verdana" font-size="13" lengthAdjust="spacing" textLength="161.167" x="810.92" y="628.6591">- M&#225;ximo 3 inscripciones</text><text fill="#000000" font-family="Verdana" font-size="13" lengthAdjust="spacing" textLength="139.2612" x="810.92" y="643.7919">- Email v&#225;lido y &#250;nico</text><text fill="#000000" font-family="Verdana" font-size="13" lengthAdjust="spacing" textLength="132.6089" x="810.92" y="658.9247">- No repetir profesor</text></g><g class="entity" data-entity="GMN18" data-source-line="82" data-uid="ent0019" id="entity_GMN18"><path d="M1021.74,604.0294 L1021.74,659.4278 L1208.2615,659.4278 L1208.2615,614.0294 L1198.2615,604.0294 L1021.74,604.0294" fill="#FFFFFF" style="stroke:#000000;stroke-width:1;"/><path d="M1198.2615,604.0294 L1198.2615,614.0294 L1208.2615,614.0294 L1198.2615,604.0294" fill="#FFFFFF" style="stroke:#000000;stroke-width:1;"/><text fill="#000000" font-family="Verdana" font-size="13" font-weight="bold" lengthAdjust="spacing" textLength="88.2007" x="1027.74" y="621.0963">Invariantes:</text><text fill="#000000" font-family="Verdana" font-size="13" lengthAdjust="spacing" textLength="124.3887" x="1027.74" y="636.2291">- Cr&#233;ditos = 3 (fijo)</text><text fill="#000000" font-family="Verdana" font-size="13" lengthAdjust="spacing" textLength="165.5215" x="1027.74" y="651.3619">- Pertenece a un profesor</text></g><g class="entity" data-entity="GMN21" data-source-line="88" data-uid="ent0022" id="entity_GMN21"><path d="M808.03,125.6394 L808.03,149.3394 L773.61,153.3394 L808.03,157.3394 L808.03,181.0378 A0,0 0 0 0 808.03,181.0378 L969.9607,181.0378 A0,0 0 0 0 969.9607,181.0378 L969.9607,135.6394 L959.9607,125.6394 L808.03,125.6394 A0,0 0 0 0 808.03,125.6394" fill="#FFFFFF" style="stroke:#000000;stroke-width:1;"/><path d="M959.9607,125.6394 L959.9607,135.6394 L969.9607,135.6394 L959.9607,125.6394" fill="#FFFFFF" style="stroke:#000000;stroke-width:1;"/><text fill="#000000" font-family="Verdana" font-size="13" lengthAdjust="spacing" textLength="91.5903" x="814.03" y="142.7063">Cada profesor</text><text fill="#000000" font-family="Verdana" font-size="13" lengthAdjust="spacing" textLength="140.9307" x="814.03" y="157.8391">imparte exactamente</text><text fill="#000000" font-family="Verdana" font-size="13" lengthAdjust="spacing" textLength="69.8242" x="814.03" y="172.9719">2 materias</text></g><!--reverse link Student to Enrollment--><g class="link" data-entity-1="Student" data-entity-2="Enrollment" data-source-line="65" data-uid="lnk9" id="link_Student_Enrollment"><path codeLine="65" d="M493.0753,486.5439 C518.6553,511.6439 537.49,530.1294 562.05,554.2294" fill="none" id="Student-backto-Enrollment" style="stroke:#000000;stroke-width:1;"/><polygon fill="#000000" points="484.51,478.1394,485.9911,485.1967,493.0753,486.5439,491.5941,479.4866,484.51,478.1394" style="stroke:#000000;stroke-width:1;"/><text fill="#000000" font-family="Verdana" font-size="13" lengthAdjust="spacing" textLength="32.9443" x="530.97" y="520.7663">tiene</text><text fill="#000000" font-family="Verdana" font-size="13" lengthAdjust="spacing" textLength="8.271" x="483.1665" y="497.6474">1</text><text fill="#000000" font-family="Verdana" font-size="13" lengthAdjust="spacing" textLength="24.8066" x="530.0751" y="543.7325">0..3</text></g><!--reverse link Subject to Enrollment--><g class="link" data-entity-1="Subject" data-entity-2="Enrollment" data-source-line="66" data-uid="lnk10" id="link_Subject_Enrollment"><path codeLine="66" d="M653.453,465.6795 C650.893,497.0195 648.84,522.3194 646.21,554.5594" fill="none" id="Subject-backto-Enrollment" style="stroke:#000000;stroke-width:1;"/><polygon fill="#000000" points="654.43,453.7194,649.9548,459.3738,653.453,465.6795,657.9282,460.0251,654.43,453.7194" style="stroke:#000000;stroke-width:1;"/><text fill="#000000" font-family="Verdana" font-size="13" lengthAdjust="spacing" textLength="84.7031" x="651" y="520.7663">inscripciones</text><text fill="#000000" font-family="Verdana" font-size="13" lengthAdjust="spacing" textLength="8.271" x="645.5013" y="473.3563">1</text><text fill="#000000" font-family="Verdana" font-size="13" lengthAdjust="spacing" textLength="23.0356" x="622.7078" y="543.5631">0..*</text></g><!--reverse link Professor to Subject--><g class="link" data-entity-1="Professor" data-entity-2="Subject" data-source-line="67" data-uid="lnk11" id="link_Professor_Subject"><path codeLine="67" d="M660,226.5194 C660,257.3994 660,283.1394 660,315.1094" fill="none" id="Professor-backto-Subject" style="stroke:#000000;stroke-width:1;"/><polygon fill="#000000" points="660,214.5194,656,220.5194,660,226.5194,664,220.5194,660,214.5194" style="stroke:#000000;stroke-width:1;"/><text fill="#000000" font-family="Verdana" font-size="13" lengthAdjust="spacing" textLength="50.9336" x="661" y="257.1263">imparte</text><text fill="#000000" font-family="Verdana" font-size="13" lengthAdjust="spacing" textLength="8.271" x="651.5768" y="234.1058">1</text><text fill="#000000" font-family="Verdana" font-size="13" lengthAdjust="spacing" textLength="8.271" x="651.6015" y="304.2657">2</text></g><!--reverse link Student to Email--><g class="link" data-entity-1="Student" data-entity-2="Email" data-source-line="68" data-uid="lnk12" id="link_Student_Email"><path codeLine="68" d="M390,490.1394 C390,524.1994 390,549.5294 390,578.7494" fill="none" id="Student-backto-Email" style="stroke:#000000;stroke-width:1;"/><polygon fill="#000000" points="390,478.1394,386,484.1394,390,490.1394,394,484.1394,390,478.1394" style="stroke:#000000;stroke-width:1;"/><text fill="#000000" font-family="Verdana" font-size="13" lengthAdjust="spacing" textLength="35.8516" x="391" y="520.7663">email</text></g><!--link EnrollmentDomainService to Student--><g class="link" data-entity-1="EnrollmentDomainService" data-entity-2="Student" data-source-line="70" data-uid="lnk13" id="link_EnrollmentDomainService_Student"><path codeLine="70" d="M296.46,206.3094 C309.64,231.2594 323.0278,256.6039 338.2178,285.3639" fill="none" id="EnrollmentDomainService-to-Student" style="stroke:#000000;stroke-width:1;stroke-dasharray:7,7;"/><polygon fill="#000000" points="341.02,290.6694,340.3537,280.8431,338.6849,286.2482,333.2798,284.5793,341.02,290.6694" style="stroke:#000000;stroke-width:1;"/><text fill="#000000" font-family="Verdana" font-size="13" lengthAdjust="spacing" textLength="39.1016" x="323.26" y="257.1263">valida</text></g><!--link EnrollmentDomainService to Subject--><g class="link" data-entity-1="EnrollmentDomainService" data-entity-2="Subject" data-source-line="71" data-uid="lnk14" id="link_EnrollmentDomainService_Subject"><path codeLine="71" d="M387.03,206.2994 C436.79,229.8994 494.52,259.5694 544,291.0594 C555.51,298.3894 562.4114,303.0509 573.7614,311.5209" fill="none" id="EnrollmentDomainService-to-Subject" style="stroke:#000000;stroke-width:1;stroke-dasharray:7,7;"/><polygon fill="#000000" points="578.57,315.1094,573.7494,306.5209,574.5628,312.119,568.9647,312.9324,578.57,315.1094" style="stroke:#000000;stroke-width:1;"/><text fill="#000000" font-family="Verdana" font-size="13" lengthAdjust="spacing" textLength="39.1016" x="494.57" y="257.1263">valida</text></g><!--link Student to GMN15--><g class="link" data-entity-1="Student" data-entity-2="GMN15" data-source-line="75" data-uid="lnk17" id="link_Student_GMN15"><path d="M526.37,470.7294 C532.24,473.2594 538.13,475.5994 544,477.6994 C628.6,508.0594 661.73,471.4894 744,507.6994 C790.92,528.3594 835.37,567.4494 863.94,596.0394" fill="none" id="Student-GMN15" style="stroke:#000000;stroke-width:1;stroke-dasharray:7,7;"/></g><!--link Subject to GMN18--><g class="link" data-entity-1="Subject" data-entity-2="GMN18" data-source-line="82" data-uid="lnk20" id="link_Subject_GMN18"><path d="M758.81,427.2694 C829.41,458.7694 925.58,504.9094 1005,554.6994 C1029.68,570.1794 1056.6,588.7494 1077.63,603.6694" fill="none" id="Subject-GMN18" style="stroke:#000000;stroke-width:1;stroke-dasharray:7,7;"/></g><!--SRC=[fLNDRjim3BxxAJZliBHTigvTiTN80dHf0mHOjs8fTbTiDbLhYu6a1Fr17wR7lSAkUR7Hbd_Z1DlGN2AJ7ycFf4YzijUO8CnZ8PLdRgMQ2oqI26DXp8crMauN5iSXgObyGDXVXun8sOczZn6c54VhsYyYl9rfMgXeI35fU3twD3eUdRHWf2FKEUJ3yT7-qKVFizAoruaq5XC14S8FdF67flHyPkmYaa9PDD25SuempkIdb4WboVFc75dC47oMS6O-F7eUy2-B1nEsHcMXtpzJ7ET-C60zvByko2W0gMnDeaI20N1qgMOrCJEJSG1dwLzTh3J5SS8HJ01VcJI7AII32jSjZtimGtj9LiH3ZP6qfhFJPB07eL3EoLXrp69wWw4DOE8E39uInJMqOx09M36fmHSgDwYOZrqDs699CigmJuqIEeylBc7e4ixGyFWP3fzgohccApI6z7ZTtLhjBWfWMhZoeyswLBsOTrxQei5vERPtDmTadMrRD4XMBVftbiRTw75RuSAq5QxL69tmzJWL5YzbWjlPE_Sf-VouCRjCxuuRqagdX3FwAU85mdUNVJElPQfg5xjEvj5OOMNub5uSPjrfcEoqPv7rCje4t7ojgzgxnJ51lPGXCctt3RcWIRnEi0XOUUhapIbhznOs36R99v-BQmnlpyLTvSQq_6onAY_va1Idowp_bq9UaZUySsCHIb9eCa6nD_ttFknsk-3lztg7Vlt21c0bAdUHYXLHH- -keQKoePRpMengH4kx0x_qnHO9lnmM6tnIbBjUWTl9Zl-sPlPwWz8qo1lsTuEIGMx0HL9aquVFMag0hcgZqPyEncefj7kYWlwxQJhd_5AjdkzaGd3OIhn8OBbwPky4zx3whMH8cUeRWSOvMgdpbSYx3LK4QVmsYt80jx4OwjKlNhfaWFSjTAxa3UraYWlaoYhaZ0M_2LjZQJcxjcce-gOTYaXK5b3q2V1EX5QaDKrxTW09pmOpCfNJFm00]--></g></svg>