<div class="page"> <div class="cover text-center"> <img class="mx-auto" src=/itb/images/logo_mislata.png alt="logo"> # Casos d'ús: Aplicació bancària <div class="text-end fit-content ms-auto my-3 mt-auto pt-3"> <p><strong>Autor:</strong> Joan Puigcerver Ibáñez</p> <p><strong>Correu electrònic:</strong> j.puigcerveribanez@edu.gva.es</p> <p><strong>Curs:</strong> 2024/2025</p> </div> <div> <p class="fw-bold mb-0">Llicència: BY-NC-SA</p> <p class="d-none d-md-block">(Reconeixement - No Comercial - Compartir Igual)</p> <a href="https://creativecommons.org/licenses/by-nc-sa/4.0/deed.ca" target="_blank"> <img class="mx-auto" src="/itb/images/license.png" alt="Licence"/> </a> </div><!--license--> </div><!--cover--> </div><!--page--> {:toc} ## Descripció de l'aplicació Aquesta aplicació bancària és dissenyada per als clients que volen gestionar les seves operacions bancàries des de la comoditat del seu telèfon mòbil. A través de l'aplicació, els clients poden realitzar operacions bancàries com ara comprovar el saldo del seu compte, transferir diners a altres comptes i fer pagaments. Per començar a utilitzar l'aplicació, els clients han de descarregar-la i connectar-se amb les seves credencials bancàries. El servidor del banc haurà de comprovar si les credencials introduides són correctes, i en cas d'error, mostrar un missatge. Un cop registrats, els clients poden accedir a totes les funcionalitats de l'aplicació i realitzar les seves operacions bancàries sense haver de visitar la sucursal bancària. Quan els clients realitzen una transferència, el banc haurà de comprovar si hi ha saldo suficient per efectuar-la. Després de realitzar-la, els usuaris tindran l'opció d'impriir un justificant del moviment. Els clients també poden realitzar pagaments en l'aplicació. El pagament es pot dur a terme mitjançant dos mètodes: Pagar amb transferència o pagar amb Bizum. El banc també haurà de comprovar si hi ha suficient per realitzar el pagament. ## Diagrama <div class="mxgraph" style="max-width:100%;border:1px solid transparent;" data-mxgraph="{&quot;highlight&quot;:&quot;#0000ff&quot;,&quot;nav&quot;:true,&quot;resize&quot;:true,&quot;toolbar&quot;:&quot;zoom layers tags lightbox&quot;,&quot;edit&quot;:&quot;_blank&quot;,&quot;xml&quot;:&quot;&lt;mxfile host=\&quot;app.diagrams.net\&quot; modified=\&quot;2024-04-22T09:18:27.491Z\&quot; agent=\&quot;Mozilla&#x2F;5.0 (X11; Linux x86_64) AppleWebKit&#x2F;537.36 (KHTML, like Gecko) Chrome&#x2F;123.0.0.0 Safari&#x2F;537.36\&quot; etag=\&quot;XePaXVIK48OhZ994X6lB\&quot; version=\&quot;24.2.7\&quot; type=\&quot;device\&quot;&gt;\n &lt;diagram id=\&quot;cEy1NtEsgTI_BelX2UjX\&quot; name=\&quot;Pàgina-1\&quot;&gt;\n &lt;mxGraphModel dx=\&quot;2074\&quot; dy=\&quot;1114\&quot; grid=\&quot;1\&quot; gridSize=\&quot;10\&quot; guides=\&quot;1\&quot; tooltips=\&quot;1\&quot; connect=\&quot;1\&quot; arrows=\&quot;1\&quot; fold=\&quot;1\&quot; page=\&quot;1\&quot; pageScale=\&quot;1\&quot; pageWidth=\&quot;827\&quot; pageHeight=\&quot;1169\&quot; math=\&quot;0\&quot; shadow=\&quot;0\&quot;&gt;\n &lt;root&gt;\n &lt;mxCell id=\&quot;0\&quot; &#x2F;&gt;\n &lt;mxCell id=\&quot;1\&quot; parent=\&quot;0\&quot; &#x2F;&gt;\n &lt;mxCell id=\&quot;Bulnb-fsSEnwmhny_e_g-10\&quot; value=\&quot;Client\&quot; style=\&quot;shape=umlActor;verticalLabelPosition=bottom;verticalAlign=top;html=1;outlineConnect=0;\&quot; parent=\&quot;1\&quot; vertex=\&quot;1\&quot;&gt;\n &lt;mxGeometry x=\&quot;100\&quot; y=\&quot;390\&quot; width=\&quot;40\&quot; height=\&quot;80\&quot; as=\&quot;geometry\&quot; &#x2F;&gt;\n &lt;&#x2F;mxCell&gt;\n &lt;mxCell id=\&quot;XFR0C_TBxOH167qgRVbT-1\&quot; value=\&quot;Banking App\&quot; style=\&quot;rounded=0;whiteSpace=wrap;html=1;verticalAlign=top;fontStyle=1\&quot; parent=\&quot;1\&quot; vertex=\&quot;1\&quot;&gt;\n &lt;mxGeometry x=\&quot;190\&quot; y=\&quot;80\&quot; width=\&quot;410\&quot; height=\&quot;500\&quot; as=\&quot;geometry\&quot; &#x2F;&gt;\n &lt;&#x2F;mxCell&gt;\n &lt;mxCell id=\&quot;XFR0C_TBxOH167qgRVbT-2\&quot; value=\&quot;Servidor Banc\&quot; style=\&quot;shape=umlActor;verticalLabelPosition=bottom;verticalAlign=top;html=1;outlineConnect=0;\&quot; parent=\&quot;1\&quot; vertex=\&quot;1\&quot;&gt;\n &lt;mxGeometry x=\&quot;640\&quot; y=\&quot;240\&quot; width=\&quot;40\&quot; height=\&quot;80\&quot; as=\&quot;geometry\&quot; &#x2F;&gt;\n &lt;&#x2F;mxCell&gt;\n &lt;mxCell id=\&quot;XFR0C_TBxOH167qgRVbT-13\&quot; value=\&quot;&amp;amp;lt;&amp;amp;lt;include&amp;amp;gt;&amp;amp;gt;\&quot; style=\&quot;edgeStyle=none;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.963;exitY=0.317;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;dashed=1;startArrow=none;startFill=0;endArrow=open;endFill=0;startSize=12;endSize=12;exitPerimeter=0;\&quot; parent=\&quot;1\&quot; source=\&quot;XFR0C_TBxOH167qgRVbT-3\&quot; target=\&quot;XFR0C_TBxOH167qgRVbT-4\&quot; edge=\&quot;1\&quot;&gt;\n &lt;mxGeometry relative=\&quot;1\&quot; as=\&quot;geometry\&quot; &#x2F;&gt;\n &lt;&#x2F;mxCell&gt;\n &lt;mxCell id=\&quot;XFR0C_TBxOH167qgRVbT-3\&quot; value=\&quot;Log In\&quot; style=\&quot;ellipse;whiteSpace=wrap;html=1;\&quot; parent=\&quot;1\&quot; vertex=\&quot;1\&quot;&gt;\n &lt;mxGeometry x=\&quot;240\&quot; y=\&quot;150\&quot; width=\&quot;80\&quot; height=\&quot;60\&quot; as=\&quot;geometry\&quot; &#x2F;&gt;\n &lt;&#x2F;mxCell&gt;\n &lt;mxCell id=\&quot;XFR0C_TBxOH167qgRVbT-4\&quot; value=\&quot;Comprovar credencials\&quot; style=\&quot;ellipse;whiteSpace=wrap;html=1;\&quot; parent=\&quot;1\&quot; vertex=\&quot;1\&quot;&gt;\n &lt;mxGeometry x=\&quot;430\&quot; y=\&quot;120\&quot; width=\&quot;80\&quot; height=\&quot;60\&quot; as=\&quot;geometry\&quot; &#x2F;&gt;\n &lt;&#x2F;mxCell&gt;\n &lt;mxCell id=\&quot;XFR0C_TBxOH167qgRVbT-5\&quot; value=\&quot;Veure saldo\&quot; style=\&quot;ellipse;whiteSpace=wrap;html=1;\&quot; parent=\&quot;1\&quot; vertex=\&quot;1\&quot;&gt;\n &lt;mxGeometry x=\&quot;240\&quot; y=\&quot;240\&quot; width=\&quot;80\&quot; height=\&quot;60\&quot; as=\&quot;geometry\&quot; &#x2F;&gt;\n &lt;&#x2F;mxCell&gt;\n &lt;mxCell id=\&quot;XFR0C_TBxOH167qgRVbT-14\&quot; value=\&quot;&amp;amp;lt;&amp;amp;lt;include&amp;amp;gt;&amp;amp;gt;\&quot; style=\&quot;edgeStyle=none;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.975;exitY=0.717;exitDx=0;exitDy=0;entryX=-0.009;entryY=0.367;entryDx=0;entryDy=0;dashed=1;startArrow=none;startFill=0;endArrow=open;endFill=0;startSize=12;endSize=12;entryPerimeter=0;exitPerimeter=0;\&quot; parent=\&quot;1\&quot; source=\&quot;XFR0C_TBxOH167qgRVbT-6\&quot; target=\&quot;XFR0C_TBxOH167qgRVbT-10\&quot; edge=\&quot;1\&quot;&gt;\n &lt;mxGeometry relative=\&quot;1\&quot; as=\&quot;geometry\&quot; &#x2F;&gt;\n &lt;&#x2F;mxCell&gt;\n &lt;mxCell id=\&quot;XFR0C_TBxOH167qgRVbT-6\&quot; value=\&quot;Realitzar transferència\&quot; style=\&quot;ellipse;whiteSpace=wrap;html=1;\&quot; parent=\&quot;1\&quot; vertex=\&quot;1\&quot;&gt;\n &lt;mxGeometry x=\&quot;240\&quot; y=\&quot;310\&quot; width=\&quot;80\&quot; height=\&quot;60\&quot; as=\&quot;geometry\&quot; &#x2F;&gt;\n &lt;&#x2F;mxCell&gt;\n &lt;mxCell id=\&quot;XFR0C_TBxOH167qgRVbT-15\&quot; value=\&quot;&amp;amp;lt;&amp;amp;lt;include&amp;amp;gt;&amp;amp;gt;\&quot; style=\&quot;edgeStyle=none;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.018;entryY=0.65;entryDx=0;entryDy=0;dashed=1;startArrow=none;startFill=0;endArrow=open;endFill=0;startSize=12;endSize=12;entryPerimeter=0;\&quot; parent=\&quot;1\&quot; source=\&quot;XFR0C_TBxOH167qgRVbT-7\&quot; target=\&quot;XFR0C_TBxOH167qgRVbT-10\&quot; edge=\&quot;1\&quot;&gt;\n &lt;mxGeometry relative=\&quot;1\&quot; as=\&quot;geometry\&quot; &#x2F;&gt;\n &lt;&#x2F;mxCell&gt;\n &lt;mxCell id=\&quot;XFR0C_TBxOH167qgRVbT-7\&quot; value=\&quot;Realitzar pagament\&quot; style=\&quot;ellipse;whiteSpace=wrap;html=1;\&quot; parent=\&quot;1\&quot; vertex=\&quot;1\&quot;&gt;\n &lt;mxGeometry x=\&quot;290\&quot; y=\&quot;380\&quot; width=\&quot;80\&quot; height=\&quot;60\&quot; as=\&quot;geometry\&quot; &#x2F;&gt;\n &lt;&#x2F;mxCell&gt;\n &lt;mxCell id=\&quot;XFR0C_TBxOH167qgRVbT-16\&quot; value=\&quot;&amp;amp;lt;&amp;amp;lt;extend&amp;amp;gt;&amp;amp;gt;\&quot; style=\&quot;edgeStyle=none;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=0.975;entryY=0.3;entryDx=0;entryDy=0;dashed=1;startArrow=none;startFill=0;endArrow=open;endFill=0;startSize=12;endSize=12;entryPerimeter=0;\&quot; parent=\&quot;1\&quot; source=\&quot;XFR0C_TBxOH167qgRVbT-8\&quot; target=\&quot;XFR0C_TBxOH167qgRVbT-6\&quot; edge=\&quot;1\&quot;&gt;\n &lt;mxGeometry relative=\&quot;1\&quot; as=\&quot;geometry\&quot; &#x2F;&gt;\n &lt;&#x2F;mxCell&gt;\n &lt;mxCell id=\&quot;XFR0C_TBxOH167qgRVbT-8\&quot; value=\&quot;Imprimir justificant\&quot; style=\&quot;ellipse;whiteSpace=wrap;html=1;\&quot; parent=\&quot;1\&quot; vertex=\&quot;1\&quot;&gt;\n &lt;mxGeometry x=\&quot;460\&quot; y=\&quot;280\&quot; width=\&quot;80\&quot; height=\&quot;60\&quot; as=\&quot;geometry\&quot; &#x2F;&gt;\n &lt;&#x2F;mxCell&gt;\n &lt;mxCell id=\&quot;XFR0C_TBxOH167qgRVbT-12\&quot; value=\&quot;&amp;amp;lt;&amp;amp;lt;extend&amp;amp;gt;&amp;amp;gt;\&quot; style=\&quot;edgeStyle=none;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=0.975;entryY=0.667;entryDx=0;entryDy=0;dashed=1;startArrow=none;startFill=0;endArrow=open;endFill=0;startSize=12;endSize=12;entryPerimeter=0;\&quot; parent=\&quot;1\&quot; source=\&quot;XFR0C_TBxOH167qgRVbT-9\&quot; target=\&quot;XFR0C_TBxOH167qgRVbT-3\&quot; edge=\&quot;1\&quot;&gt;\n &lt;mxGeometry relative=\&quot;1\&quot; as=\&quot;geometry\&quot; &#x2F;&gt;\n &lt;&#x2F;mxCell&gt;\n &lt;mxCell id=\&quot;XFR0C_TBxOH167qgRVbT-9\&quot; value=\&quot;Mostrar missatge d&amp;#39;error\&quot; style=\&quot;ellipse;whiteSpace=wrap;html=1;\&quot; parent=\&quot;1\&quot; vertex=\&quot;1\&quot;&gt;\n &lt;mxGeometry x=\&quot;440\&quot; y=\&quot;190\&quot; width=\&quot;80\&quot; height=\&quot;60\&quot; as=\&quot;geometry\&quot; &#x2F;&gt;\n &lt;&#x2F;mxCell&gt;\n &lt;mxCell id=\&quot;XFR0C_TBxOH167qgRVbT-10\&quot; value=\&quot;Comprovar si hi ha saldo suficient\&quot; style=\&quot;ellipse;whiteSpace=wrap;html=1;\&quot; parent=\&quot;1\&quot; vertex=\&quot;1\&quot;&gt;\n &lt;mxGeometry x=\&quot;450\&quot; y=\&quot;350\&quot; width=\&quot;130\&quot; height=\&quot;60\&quot; as=\&quot;geometry\&quot; &#x2F;&gt;\n &lt;&#x2F;mxCell&gt;\n &lt;mxCell id=\&quot;XFR0C_TBxOH167qgRVbT-17\&quot; value=\&quot;\&quot; style=\&quot;endArrow=none;html=1;rounded=0;startSize=12;endSize=12;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=1;exitY=0.3333333333333333;exitDx=0;exitDy=0;exitPerimeter=0;\&quot; parent=\&quot;1\&quot; source=\&quot;6OrTN1pEU6hki6MGTOYN-1\&quot; target=\&quot;XFR0C_TBxOH167qgRVbT-3\&quot; edge=\&quot;1\&quot;&gt;\n &lt;mxGeometry width=\&quot;50\&quot; height=\&quot;50\&quot; relative=\&quot;1\&quot; as=\&quot;geometry\&quot;&gt;\n &lt;mxPoint x=\&quot;160\&quot; y=\&quot;280\&quot; as=\&quot;sourcePoint\&quot; &#x2F;&gt;\n &lt;mxPoint x=\&quot;440\&quot; y=\&quot;230\&quot; as=\&quot;targetPoint\&quot; &#x2F;&gt;\n &lt;&#x2F;mxGeometry&gt;\n &lt;&#x2F;mxCell&gt;\n &lt;mxCell id=\&quot;XFR0C_TBxOH167qgRVbT-18\&quot; value=\&quot;\&quot; style=\&quot;endArrow=none;html=1;rounded=0;startSize=12;endSize=12;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=1;exitY=0.3333333333333333;exitDx=0;exitDy=0;exitPerimeter=0;\&quot; parent=\&quot;1\&quot; source=\&quot;Bulnb-fsSEnwmhny_e_g-10\&quot; target=\&quot;XFR0C_TBxOH167qgRVbT-5\&quot; edge=\&quot;1\&quot;&gt;\n &lt;mxGeometry width=\&quot;50\&quot; height=\&quot;50\&quot; relative=\&quot;1\&quot; as=\&quot;geometry\&quot;&gt;\n &lt;mxPoint x=\&quot;160\&quot; y=\&quot;280\&quot; as=\&quot;sourcePoint\&quot; &#x2F;&gt;\n &lt;mxPoint x=\&quot;250\&quot; y=\&quot;190\&quot; as=\&quot;targetPoint\&quot; &#x2F;&gt;\n &lt;&#x2F;mxGeometry&gt;\n &lt;&#x2F;mxCell&gt;\n &lt;mxCell id=\&quot;XFR0C_TBxOH167qgRVbT-19\&quot; value=\&quot;\&quot; style=\&quot;endArrow=none;html=1;rounded=0;startSize=12;endSize=12;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=1;exitY=0.3333333333333333;exitDx=0;exitDy=0;exitPerimeter=0;\&quot; parent=\&quot;1\&quot; source=\&quot;Bulnb-fsSEnwmhny_e_g-10\&quot; target=\&quot;XFR0C_TBxOH167qgRVbT-6\&quot; edge=\&quot;1\&quot;&gt;\n &lt;mxGeometry width=\&quot;50\&quot; height=\&quot;50\&quot; relative=\&quot;1\&quot; as=\&quot;geometry\&quot;&gt;\n &lt;mxPoint x=\&quot;160\&quot; y=\&quot;280\&quot; as=\&quot;sourcePoint\&quot; &#x2F;&gt;\n &lt;mxPoint x=\&quot;260\&quot; y=\&quot;200\&quot; as=\&quot;targetPoint\&quot; &#x2F;&gt;\n &lt;&#x2F;mxGeometry&gt;\n &lt;&#x2F;mxCell&gt;\n &lt;mxCell id=\&quot;XFR0C_TBxOH167qgRVbT-20\&quot; value=\&quot;\&quot; style=\&quot;endArrow=none;html=1;rounded=0;startSize=12;endSize=12;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=1;exitY=0.3333333333333333;exitDx=0;exitDy=0;exitPerimeter=0;\&quot; parent=\&quot;1\&quot; source=\&quot;Bulnb-fsSEnwmhny_e_g-10\&quot; target=\&quot;XFR0C_TBxOH167qgRVbT-7\&quot; edge=\&quot;1\&quot;&gt;\n &lt;mxGeometry width=\&quot;50\&quot; height=\&quot;50\&quot; relative=\&quot;1\&quot; as=\&quot;geometry\&quot;&gt;\n &lt;mxPoint x=\&quot;160\&quot; y=\&quot;280\&quot; as=\&quot;sourcePoint\&quot; &#x2F;&gt;\n &lt;mxPoint x=\&quot;270\&quot; y=\&quot;210\&quot; as=\&quot;targetPoint\&quot; &#x2F;&gt;\n &lt;&#x2F;mxGeometry&gt;\n &lt;&#x2F;mxCell&gt;\n &lt;mxCell id=\&quot;XFR0C_TBxOH167qgRVbT-21\&quot; value=\&quot;\&quot; style=\&quot;endArrow=none;html=1;rounded=0;startSize=12;endSize=12;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.3333333333333333;entryDx=0;entryDy=0;entryPerimeter=0;\&quot; parent=\&quot;1\&quot; source=\&quot;XFR0C_TBxOH167qgRVbT-5\&quot; edge=\&quot;1\&quot; target=\&quot;XFR0C_TBxOH167qgRVbT-2\&quot;&gt;\n &lt;mxGeometry width=\&quot;50\&quot; height=\&quot;50\&quot; relative=\&quot;1\&quot; as=\&quot;geometry\&quot;&gt;\n &lt;mxPoint x=\&quot;200\&quot; y=\&quot;320\&quot; as=\&quot;sourcePoint\&quot; &#x2F;&gt;\n &lt;mxPoint x=\&quot;640\&quot; y=\&quot;270\&quot; as=\&quot;targetPoint\&quot; &#x2F;&gt;\n &lt;&#x2F;mxGeometry&gt;\n &lt;&#x2F;mxCell&gt;\n &lt;mxCell id=\&quot;XFR0C_TBxOH167qgRVbT-22\&quot; value=\&quot;\&quot; style=\&quot;endArrow=none;html=1;rounded=0;startSize=12;endSize=12;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.3333333333333333;entryDx=0;entryDy=0;entryPerimeter=0;\&quot; parent=\&quot;1\&quot; source=\&quot;XFR0C_TBxOH167qgRVbT-4\&quot; edge=\&quot;1\&quot; target=\&quot;XFR0C_TBxOH167qgRVbT-2\&quot;&gt;\n &lt;mxGeometry width=\&quot;50\&quot; height=\&quot;50\&quot; relative=\&quot;1\&quot; as=\&quot;geometry\&quot;&gt;\n &lt;mxPoint x=\&quot;210\&quot; y=\&quot;330\&quot; as=\&quot;sourcePoint\&quot; &#x2F;&gt;\n &lt;mxPoint x=\&quot;620\&quot; y=\&quot;270\&quot; as=\&quot;targetPoint\&quot; &#x2F;&gt;\n &lt;&#x2F;mxGeometry&gt;\n &lt;&#x2F;mxCell&gt;\n &lt;mxCell id=\&quot;XFR0C_TBxOH167qgRVbT-23\&quot; value=\&quot;\&quot; style=\&quot;endArrow=none;html=1;rounded=0;startSize=12;endSize=12;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.3333333333333333;entryDx=0;entryDy=0;entryPerimeter=0;\&quot; parent=\&quot;1\&quot; source=\&quot;XFR0C_TBxOH167qgRVbT-10\&quot; edge=\&quot;1\&quot; target=\&quot;XFR0C_TBxOH167qgRVbT-2\&quot;&gt;\n &lt;mxGeometry width=\&quot;50\&quot; height=\&quot;50\&quot; relative=\&quot;1\&quot; as=\&quot;geometry\&quot;&gt;\n &lt;mxPoint x=\&quot;220\&quot; y=\&quot;340\&quot; as=\&quot;sourcePoint\&quot; &#x2F;&gt;\n &lt;mxPoint x=\&quot;620\&quot; y=\&quot;270\&quot; as=\&quot;targetPoint\&quot; &#x2F;&gt;\n &lt;&#x2F;mxGeometry&gt;\n &lt;&#x2F;mxCell&gt;\n &lt;mxCell id=\&quot;XFR0C_TBxOH167qgRVbT-26\&quot; style=\&quot;edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;startArrow=none;startFill=0;endArrow=block;endFill=0;startSize=12;endSize=12;\&quot; parent=\&quot;1\&quot; source=\&quot;XFR0C_TBxOH167qgRVbT-24\&quot; target=\&quot;XFR0C_TBxOH167qgRVbT-7\&quot; edge=\&quot;1\&quot;&gt;\n &lt;mxGeometry relative=\&quot;1\&quot; as=\&quot;geometry\&quot; &#x2F;&gt;\n &lt;&#x2F;mxCell&gt;\n &lt;mxCell id=\&quot;XFR0C_TBxOH167qgRVbT-24\&quot; value=\&quot;Pagar mitjançant transferència\&quot; style=\&quot;ellipse;whiteSpace=wrap;html=1;\&quot; parent=\&quot;1\&quot; vertex=\&quot;1\&quot;&gt;\n &lt;mxGeometry x=\&quot;210\&quot; y=\&quot;480\&quot; width=\&quot;110\&quot; height=\&quot;60\&quot; as=\&quot;geometry\&quot; &#x2F;&gt;\n &lt;&#x2F;mxCell&gt;\n &lt;mxCell id=\&quot;XFR0C_TBxOH167qgRVbT-27\&quot; style=\&quot;edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;startArrow=none;startFill=0;endArrow=block;endFill=0;startSize=12;endSize=12;\&quot; parent=\&quot;1\&quot; source=\&quot;XFR0C_TBxOH167qgRVbT-25\&quot; target=\&quot;XFR0C_TBxOH167qgRVbT-7\&quot; edge=\&quot;1\&quot;&gt;\n &lt;mxGeometry relative=\&quot;1\&quot; as=\&quot;geometry\&quot; &#x2F;&gt;\n &lt;&#x2F;mxCell&gt;\n &lt;mxCell id=\&quot;XFR0C_TBxOH167qgRVbT-25\&quot; value=\&quot;Pagar mitjançant Bizum\&quot; style=\&quot;ellipse;whiteSpace=wrap;html=1;\&quot; parent=\&quot;1\&quot; vertex=\&quot;1\&quot;&gt;\n &lt;mxGeometry x=\&quot;340\&quot; y=\&quot;480\&quot; width=\&quot;120\&quot; height=\&quot;55\&quot; as=\&quot;geometry\&quot; &#x2F;&gt;\n &lt;&#x2F;mxCell&gt;\n &lt;mxCell id=\&quot;6OrTN1pEU6hki6MGTOYN-1\&quot; value=\&quot;Usuari\&quot; style=\&quot;shape=umlActor;verticalLabelPosition=bottom;verticalAlign=top;html=1;outlineConnect=0;\&quot; parent=\&quot;1\&quot; vertex=\&quot;1\&quot;&gt;\n &lt;mxGeometry x=\&quot;100\&quot; y=\&quot;150\&quot; width=\&quot;40\&quot; height=\&quot;80\&quot; as=\&quot;geometry\&quot; &#x2F;&gt;\n &lt;&#x2F;mxCell&gt;\n &lt;mxCell id=\&quot;6OrTN1pEU6hki6MGTOYN-5\&quot; value=\&quot;\&quot; style=\&quot;endArrow=block;html=1;rounded=0;endFill=0;endSize=18;\&quot; parent=\&quot;1\&quot; edge=\&quot;1\&quot;&gt;\n &lt;mxGeometry width=\&quot;50\&quot; height=\&quot;50\&quot; relative=\&quot;1\&quot; as=\&quot;geometry\&quot;&gt;\n &lt;mxPoint x=\&quot;120\&quot; y=\&quot;380\&quot; as=\&quot;sourcePoint\&quot; &#x2F;&gt;\n &lt;mxPoint x=\&quot;120\&quot; y=\&quot;260\&quot; as=\&quot;targetPoint\&quot; &#x2F;&gt;\n &lt;&#x2F;mxGeometry&gt;\n &lt;&#x2F;mxCell&gt;\n &lt;&#x2F;root&gt;\n &lt;&#x2F;mxGraphModel&gt;\n &lt;&#x2F;diagram&gt;\n&lt;&#x2F;mxfile&gt;\n\n&quot;}"></div><script type="text/javascript" src="https://viewer.diagrams.net/js/viewer-static.min.js"></script> <figcaption>Figura 1: Diagrama de casos d'ús d'una aplicació bancària</figcaption> L'actor principal __Usuari__ representa qualsevol usuari que utilitza l'aplicació. Aquest usuari sols pot realitzar l'acció _Log in_, ja que per poder fer qualsevol altra acció és necessari estar registrat. L'actor principal __Client__ representa un usuari que ja ha iniciat sessió a l'aplicació. Aquest usuari pot realitzar les accions _Veure saldo_, _Realitzar transferència_ i _Realitzar pagament_ Les accions que poden fer cada un dels actors han segut connectades mitjançant relacions d'__associació__. L'actor secundari __Servidor Banc__ representa el servidor del banc que s'encarrega de realitzar les accions bancàries o comprovacions necessàries perque tot funcione correctament. El cas d'ús __Log In__, està relacionada amb _Comprovar credencials_ mitjançant __include__, ja que sempre que s'intente accedir a l'aplicació, s'hauran de comprovar que les credencials són correctes. Aquesta comprovació l'ha de realitzar l'actor __Servidor Banc__, que _reacciona_ a l'acció __Log In__ del __Client__. Sols en cas d'error es __Mostrarà el missatge d'error__, per això, està relacionada amb una reació __extend__. El cas d'ús __Veure saldo__ no implica cap altre cas d'ús. Està relacionada amb __Servidor Banc__, ja que aquest ha de proporcionar les dades del compte bancari. El cas d'ús __Realitzar transferència__ està relacionat amb _Comprovar si hi ha saldo suficient_, el qual s'encarrega el __Servidor Banc__. Està relacionada mitjançant __include__ perquè sempre hi ha que fer aquesta comprovació. També està relacionada amb _Imprimir justificant_ amb __extend__, ja que el usuari pot fer-ho, però no sempre ho farà. Per últim, el cas d'ús __Realitzar pagament__ també està relacionat amb _Comprovar si hi ha saldo suficient_ amb __include__, pel mateix motiu que el cas anterior. En aquest cas, el pagamanet pot dur-se a terme mitjançant __Transferència__ o __Bizum__, per tant, ens trobem amb una relació de __generalització__. ## Ampliació Amplia el diagrama anteror per incloure les següents funcionalitats: - Sol·licitar un préstec - Gestionar les targetes de crèdit. - Demanar una nova targeta de crèdit.