<?xml version="1.0" encoding="UTF-8"?>
<ProjectName xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="D:\Achraf\To achraf\Fujaba Tool Suite 4.3.1\plugins\ArchitecturalProfil\StructuralProfil.xsd">
    <ProjectName ProjectName="PMS"/>
   <StructuralProfil>
          <StructuralName StructuralName="Architectural_Style_PMS"/>
       <StructuralFeature>
			<Component>
				<NameComponent NameComponent="EventService"/>
				<Port>
					<NamePort NamePort="EventService.p1"/>
				<Interface Type="Required">
						<NameInterface NameInterface="EventService.p1.p1"/>
				</Interface>
				</Port>
				<Port>
					<NamePort NamePort="EventService.p2"/>
				<Interface Type="Provided">
						<NameInterface NameInterface="EventService.p2.p2"/>
					</Interface>
				</Port>
				<Port>
					<NamePort NamePort="EventService.n1"/>
				<Interface Type="Required">
						<NameInterface NameInterface="EventService.n1.n1"/>
				</Interface>
				</Port>
				<Port>
					<NamePort NamePort="EventService.n2"/>
				<Interface Type="Provided">
						<NameInterface NameInterface="EventService.n2.n2"/>
					</Interface>
				</Port>
			</Component>
			<Component>
				<NameComponent NameComponent="Nurse"/>
				<Port>
					<NamePort NamePort="Nurse.e1"/>
				<Interface Type="Required">
						<NameInterface NameInterface="Nurse.e1.e1"/>
				</Interface>
				</Port>
				<Port>
					<NamePort NamePort="Nurse.e2"/>
				<Interface Type="Provided">
						<NameInterface NameInterface="Nurse.e2.e2"/>
					</Interface>
				</Port>
				<Port>
					<NamePort NamePort="Nurse.p1"/>
				<Interface Type="Required">
						<NameInterface NameInterface="Nurse.p1.p1"/>
				</Interface>
				</Port>
				<Port>
					<NamePort NamePort="Nurse.p2"/>
				<Interface Type="Provided">
						<NameInterface NameInterface="Nurse.p2.p2"/>
					</Interface>
				</Port>
			</Component>
			<Component>
				<NameComponent NameComponent="Patient"/>
				<Port>
					<NamePort NamePort="Patient.n2"/>
				<Interface Type="Provided">
						<NameInterface NameInterface="Patient.n2.n2"/>
					</Interface>
				</Port>
				<Port>
					<NamePort NamePort="Patient.e1"/>
				<Interface Type="Required">
						<NameInterface NameInterface="Patient.e1.e1"/>
				</Interface>
				</Port>
				<Port>
					<NamePort NamePort="Patient.e2"/>
				<Interface Type="Provided">
						<NameInterface NameInterface="Patient.e2.e2"/>
					</Interface>
				</Port>
				<Port>
					<NamePort NamePort="Patient.n1"/>
				<Interface Type="Required">
						<NameInterface NameInterface="Patient.n1.n1"/>
				</Interface>
				</Port>
			</Component>
       </StructuralFeature>
		<Guards>
                   <Constraint>context EventService                    </Constraint>
                   <Constraint>inv NbEventService:                    </Constraint>
                   <Constraint>EventService.allInstances --&gt; size &lt;= 3 and EventService.allInstances --&gt; size &gt;0                     </Constraint>
                   <Constraint>context EventService                    </Constraint>
                   <Constraint>inv NbEventServiceNurse:                    </Constraint>
                   <Constraint>context EventService inv NbEventServiceNurse: EventService.allInstances --&gt; forAll(es:EventService | ((es.nurse --&gt; size &lt;=5) and (es.patient --&gt; size &lt;=15)))                     </Constraint>
                   <Constraint>context Patient inv NbPatientEventService: Patient.allInstances --&gt; forAll(p:Patient | ((p.eventService --&gt; size =1) and (p.nurse --&gt; size =1)))                    </Constraint>
                   <Constraint>context Nurse inv NbNurseEventService: Nurse allInstances --&gt; forAll(n: Nurse | ((n eventService --&gt; size =1) and (n patient --&gt; size &lt;=3))Nurse.n.n.3)))                    </Constraint>
                   <Constraint>context EventService inv ExNurseEventService: EventService.allInstances --&gt; forAll(es | es.patient --&gt; notEmpty implies es.nurse --&gt; notEmpty)                    </Constraint>
		</Guards>
  </StructuralProfil>
</ProjectName>
