Guia PES

Models

Els diagrames que es demanen, amb un exemple complet

L'àgil no gira al voltant dels models, però alguns aporten molt i formen part de la documentació. Tots els exemples són d'una mateixa app inventada que complementa el Bicing amb dades d'Open Data BCN.

Obligatori · Fag-2 i sprints

Model conceptual (diagrama de classes UML)

Els conceptes principals del problema, independents de l'arquitectura i de la tecnologia. Es valora que hi hagi conceptes creatius i propis, no només els del conjunt de dades obertes.

UsuariemailnomdataAltaTrajecteidinicifikmEstacióidnomubicacióbicisLliuresInsígnianomdescripciópunts1*fa*1origen*0..1destí**aconsegueix**preferidesRI1. Claus: (Usuari, email), (Estació, id), (Trajecte, id)RI2. fi > iniciRI3. km >= 0RI4. El destí, si existeix, es diferent de l'origenVe de les dades obertesConcepte nou de l'equip
Fixeu-vos: només Estació ve de les dades obertes. Trajecte i Insígnia són conceptes nous de l'equip, i és aquí on hi ha el valor del producte.
Restriccions d'integritat sempre a sota del diagrama, numerades: claus i regles que el diagrama no pot expressar.
Opcional · recomanat

Diagrama de classes de la capa de domini

La lògica de la solució dins una arquitectura en tres capes, ja amb patrons de disseny aplicats i operacions. Expliqueu quins patrons feu servir i per què.

ServeiEstaciónsproperes(posició)refresca()«interface»FontEstaciónsobtenirEstacións()AdaptadorOpenDataBCNobtenirEstacións()AdaptadorCSVobtenirEstacións()1Patró Adapter: el domini no depèn del format de les dades obertes
Obligatori · Fag-2 i sprints

Diagrama físic (arquitectura)

Els nodes i subsistemes del sistema: app, servidor, base de dades, serveis externs i el servei que feu per a un altre equip. Un esbós a la incepció que aneu refinant a cada sprint.

App mòbilFlutter / AndroidWeb d'administracióReactInternetServidor (màquina virtual)API RESTNode.js + ExpressBase de dadesPostgreSQLOpen Data BCNAPIServei de l'equip BRESTServei per a l'equip CREST
Opcional

Diagrama de components (UML)

Una visió simplificada de tot el sistema i de les relacions entre components.

«subsystem» App«UI» Mapa«UI» Perfil:ClientREST«subsystem» API REST:Estacións:Trajectes:Autenticació«subsystem» Sistemes externs:Open Data BCN:Servei de l'equip B
Obligatori · sprints

Esquema de la base de dades

Un diagrama de classes que descriu l'esquema. En relacional, la clau primària subratllada i les foranes entre parèntesis (FK). En NoSQL, feu servir composició per als documents incrustats i associació per a les referències.

Usuariemail: VARCHARnom: VARCHARdataAlta: DATETrajecteid: INTemail: VARCHAR (FK)origen: INT (FK)destí: INT (FK)inici: TIMESTAMPfi: TIMESTAMPkm: REALEstacióid: INTnom: VARCHARlat: REALlon: REALUsuariInsígniaemail: VARCHAR (FK)nom: VARCHAR (FK)data: DATEInsígnianom: VARCHARdescripció: TEXTpunts: INT
L'esquema canviarà a cada sprint: gestioneu-ne l'evolució amb fitxers SQL de create i alter o amb un framework de migracions (Liquibase, migracions de Django o de Laravel, mysql-migrations per a Node). Més aspectes tècnics →

Errors típics als models