Professional Documents
Culture Documents
Uml
Uml
1. Introducci,
2. Vistadecasosd's,
3. Vistalgica,
4. Vistadecomponents,
5. Vistadedesplegament,
6. Dissenydebasesdedades
ambUML.
1
4.1
Introducci
Definici. Elprocsdaplicardiferentstcniquesiprincipis
ambelpropsitdedefinirundispositiu,unprocsoun
sistemaambsuficientsnivellsdedetallcomperpermetre
lasevarealitzacifsica.
EstsituatenelnuclitcnicdelprocsdE.S.Isaplica
independentmentdelparadigmadedesenvolupament
utilitzat.
Domini del Problema => Domini de la Soluci
Objectiu. Produirunmodelorepresentacidelsistema
quepuguiserutilitzat,enunafaseposterior,afi
dimplementarlo.
2
4.1
UML.Introducci
UML:UnifiedModelingLanguage.
Llenguatgevisualdemodelatorientataobjecte.
UnificacidelsmtodesdemodelatOOdeBooch,
JacobsoniRumbaughapartirde1995.
UML1.1aprovatperlasevaestandarditzaciperlOMG
(ObjectManagementGroup)lany1997.
3
4.1
EvolucidUML
UML 1.3
OMG Acceptance, Nov 1997
Final submission to OMG, Sep 97 UML 1.1
public First submission to OMG, Jan 97
feedback
UML partners UML 1.0
4
4.1
ObjectiuseneldissenydeUML
5
4.1
UML ielmodelat
UMLsunanotaci,nosunprocs
SestandefinintmoltsprocessosperUML.
RationalhaideatRUP,procsunificat.
6
4.1
UtilitatdeUML
Permetespecificartoteslesdecisionsdelanlisi,dissenyi
implementaci,construintmodelsprecisos,noambigusi
complerts.
UMLpotconnectarseallenguatgesdeprogramaci:
Enginyeriadirecteiinversa
Permetdocumentartotselselementsdeunprocsde
desenvolupament(requeriments,arquitectura,proves,
versions,)
7
4.1
ModelConceptualdeUML
Blocsbsicsdeconstrucci:vocabulari
Elements
Estructurals,Comportament,Agrupaci,Anotaci
Relacions
Diagrames
Reglespercombinarblocs:establirqusunmodelben
format(reglessintctiquesisemntiques:noms,
visibilitat,integritat,etc.).
Mecanismescomuns:notaciquepermetfixarunestil
dintreelmodel.sunanotacivlidaperalsdiferents
elementsdelsdiferentsdiagrames.
8
4.1
Blocsdeconstrucci:Elements
Elements
Parts esttiques: representen coses que sn conceptuals o Estructurals,
de Comportament,
materials Agrupaci.
Anotaci
Project <<Interface>>
Names : String IGestorFluxe
Desc : String
StartDate : Date ObrirConexio() IGestorFluxe
SetName(Name : String)
GetName() : String Interficie: Comportament visible, serveis classe o
SetDesc(Desc : String) component
GetDesc() : String
SetStartDate(StartDate : Date)
GetStartDate() : Date <<ActiveX>>
Cal endari
Clase Atendre Comanda
Component: part fsica i
reemplaable dun sistema Cas ds: conjunt de
seqncia daccions que
<<Actor>>
Sistema
un sistema executa
Pentium III
HP
Cl ient Plotter
Actor ...
Node: recurs 9
computacional
4.1
Blocsdeconstrucci:Elements
Elements
Parts dinmiques: representen comportament en el temps i Estructurals,
de Comportament,
lespai Agrupaci.
Anotaci
Avs
Interaccions: missatges
intercanviats entre objectes
per un propsit determinat
Esperant
(inicial)
Senyal
(final)
10
4.1
Blocsdeconstrucci:Elements
Elements
Estructurals,
de Comportament,
Agrupaci.
Parts dagrupaci: parts organitzatives dels models Anotaci
GU Is Paquet
(existeix
conceptualment)
11
4.1
Blocsdeconstrucci:Relacions
Relacions
de Dependncia,
Relaci semntica, si (nom de la dependncia) dAssociaci,
de Generalitzaci,
modifiquem lelement Realitzaci
elements.
composici
agregaci
Associaci
12
4.1
Blocsdeconstrucci:Relacions
Relacions
de Dependncia,
Relaci generalitzaci / dAssociaci,
especialitzaci
de Generalitzaci,
Realitzaci
Generalitzaci
13
4.1
Blocsdeconstrucci:Diagrames
Diagrames de Casos dUs: mostren un conjunt de casos dus, actors i les seves
relacions
Diagrames de Classes: mostren un conjunt de classes, interficies i
collaboracions, aix com les seves relacions
Diagrames dObjectes: mostren un conjunt de objectes i les seves relacions
Diagrames dInteracci
Diagrames Seqncia: mostra ordenaci temporal dels missatges
Diagrames Collaboraci: mostren la organitzaci estructural dels objectes
que envien i reben missatges
Diagrames dEstats: mostra una maquina destats
Diagrames dActivitats: tipus de diagrama de estats que mostra els fluxos de
control
Diagrames de Components: mostra lorganitzaci i la dependncia entre un
conjunt de components
Diagrames de Desplegament: mostra la configuraci dels nodes de
processament
No s una llista tancada 14
4.1
Mecanismescomuns
Mecanismes comuns
Especificacions,
Especificacions
Guarniments
Divisions comuns.
LanotacienUMLtunadoblecomponent: Mecanismens de
extensivitat
Unapartgrficaquepermetvisualitzarunsistemaounaprojecci
daquest.
Unapartsemnticaqueenspermetespecificarelsdetallsdecada
elementdelsistema
Aixpermetconstruirunmodeldeformaincrementaldibuixant
diagramesidesprsafegirdetalls
Guarniments
Lanotacigrficabsicadecadaelementpotincloure
guarnimentstextualsogrficsperposardemanifestalgunes
propietatsdelespecificaci.
Persona
nombre
direccion
telefono
15
4.1
Mecanismescomuns
Mecanismes comuns
DivisionsComuns:AlmodelarelssistemesOO, Especificacions,
Guarniments
aquestspodendividirseenunparelldeformes Divisions comuns.
Mecanismens de
Dicotomiaclasse/objecte(UMLrepresentatantclassescom extensivitat
objectes)
Elena
Persona
nombre Elena :
direccion Persona
telefono
: Persona
(persona annima)
Dicotomiainterfcie/implementaci
IOrtografia
assistent
Ortografico.dll
construcci.
Valorsetiquetats
Estenenlespropietatsdunblocdeconstrucci,afegintinformaci
Restriccions
Estenenlasemnticadunbloc,afegintreglesomodificantles
existents. valor etiquetat
estereotip
ColaEventos {version 3.2; autor: hal
<<Exception>> aadir()
quitar()
Overflow vaciar()
{ordenado}
17
restricci
4.1
Arquitectura
LUML permet modelar diferents vistes o visions dun problema i la seva soluci,
depenent del que ens interessi representar en cada ocasi. A cada vista li correspon un
o ms diagrames. State
State
Use Case Diagrams
Diagrames de
Use Case Diagrams State
Diagrams
Diagrames de Classes State
Use Case Diagrams Diagrams
Diagrames
Use Case Casos ds Diagrams
Diagrams
Diagrames de dObjectes
Diagrams
Seqncia
Scenario State
Scenario State
Diagrams
Diagrames de Diagrams
Diagrames de
Diagrams Diagrams
Col.laboraci Components
Model
Scenario Component
Scenario Component
Diagrams
Diagrames de
Diagrams
Diagrames Diagrams
Diagrams Desplegament
dEstats Diagrames
dActivitat
Per qu cal vistes ?
s impossible comprendre completament un sistema complex des dun nic punt
de vista, i dun sol cop.
Fer els diferents diagrames comporta fer-se les preguntes adequades i prendre
decisions sobre quina i com ser la soluci.
18
4.1
Vistessegonselsrolsdelprojecte
Visi d'usuari Comportament del sistema des del punt de vista de lusuari:
qu, no com. Usuaris, analistes, dissenyadors, provadors.
19
4.1
Hola,Mon!
20
4.1
Hola,Mon!
HolaMonApp
CDialog CWinApp
HolaMonDlg
OnPaint () CPaintDC
21
4.1
Hola,Mon!
CObject CObject
CCmdTarget CCmdTarget
CWnd CWinThread
CDialog CWinApp
HolaMonDlg HolaMonApp
22
4.1
Hola,Mon!
MFC
HolaMonDlg
Afxwin
Afx
23
4.1
Hola,Mon!
theApp: dlg:
CHelloApp CHolaMonDlg dc: CPaintDC
InitInstance
Onpaint
24
4.1
Hola,Mon!
HolaMon.cpp
HolaMon.exe
HolaMon.hlp
25
4.1
Models,VistesiDiagrames
MODEL REQS. (CU) MODEL ANLISI i DISSENY
Realitzaci
Cas Us CU
Part dinmica:
Especificaci CU
Diag. Seqncia
Diag. Activitats Diag. Collaboraci
Part esttica: Diag. Estats
Vista Casos ds
Diag Classes
26
4.1
ModelsiDiagrames
Model estructural.
Diagrama de classes.
Diagrama destats.
Diagrama dactivitats.
Model arquitectnic.
Diagrama de components.
Visi fsica
Diagrama de desplegament.
4.2
Modelatdecasosds.Perqucasosds?
Ofereixenunmitjsistemticiintutiupercapturarels
requerimentsfuncionals,centratseenelvalorafegitper
lusuari.
Dirigeixentotelprocsdedesenvolupamentatsquela
majoriadactivitats(planificaci,anlisi,disseny,validaci,
test,..)esrealitzenapartirdelscasosds.
Mecanismeimportantperasuportartraabilitatentre
models.
28
4.2
DiagramesdeCasosds
actor cas ds
Compres
Client
associaci
29
4.2
Casosds
Uncasds especificaelcomportamentdesitjatdelsistema.
Representenelsrequerimentsfuncionals delsistema.
Descriuenqufaelsistema,nocomhofa.
Definicions alternatives:
31
4.2
Propietatsdelscasosds
Sniniciatsperunactorambunobjectiu previsties
completenambxitquanelsistemaelsatisf.
Podenincloureseqncies alternativesquecondueixena
lxitifracs enlaconsecucidelobjectiu.
Elsistemaesconsideracomunacaixanegrailes
interaccionsespercebendesdefora.
Elconjuntcompletdecasosdsespecificatotesles
possiblesformesdusarelsistema,sadir,el
comportamentrequerit.
32
4.2
Obtencidecasosds
1)Identificarelsusuarisdelsistema.
2)Trobartotselsrolsquejuguenelsusuarisiquesn
rellevantsalsistema.
3)Percadarolidentificartoteslesformes(objectius)
dinteractuarambelsistema.
4)Crearuncasdspercadaobjectiu.
5)Estructurarelscasosds.
6)Revisarivalidaramblusuari.
33
4.2
Descripciduncasds
Descriureelfluxdevents
Textestructuratinformal
Textestructuratformal(preipostcondicions)
Pseudocodi
Notacionsgrfiques:Diagramesdactivitats
Hadeserllegibleicomprensibleperaunusuariinexpert.
Hadindicarse:iniciifinal,actors,objectesque
intervenen,fluxprincipaliexcepcionals.
34
4.2
Diagramadecasosds
associaci
actor <<include>>
Comprovar clau
Automatrcula
<<include>> generalitzaci
Validar usuari
Alumne
Entrar notes
Comprovar targeta
cas ds
Administrador Manteniment
35
4.2
Descripciduncasds:Exempledeplantilla
Cadacasdstunaespecificaciassociadaenlaqueesdescriuel
fluxdelsevents(diferentsalternativesdexecucioescenaris).
Potferseentextestructurat(plantilla),pseudocodi,diagrama
dactivitats,etc.
CAS DS: nom del requeriment funcional o cas ds
Versi Num. Versi Data 07/03/2016
Autors Autor del document
Descripci Descripci informal dels objectius del cas ds
Actors Actors que intervenen
Precondici Condicions que han de complir-se perqu es pugui realitzar el cas ds
Flux principal Flux principal devents del cas ds
Subfluxos Diferents alternatives dins del flux principal
Fluxos alternatius Variacions en els fluxos principals o casos dexcepci
Postcondici Postcondici del cas ds
Requeriments no funcionals Llista de restriccions relacionades amb aquest requeriment funcional
Prioritat {urgent, normal, no prioritari}
Comentaris Comentaris addicionals
36
4.2
Descripciduncasds:exemple
CAS DS: Validar Usuari
Versi 1.0 Data 07/03/2016
Autors ES1
Descripci Aquest cas ds descriu com els usuaris accedeixen al sistema de gesti
acadmica. Segons quin usuari sigui (alumne, professor o PAS), tindr
uns privilegis en el sistema i podr accedir a uns casos ds.
Actors Alumne, Professor, PAS.
Precondici
Flux principal 1. El sistema valida el codi dusuari i password introduts.
2. El sistema mostra el men principal segons el perfil dusuari.
Subfluxos
Fluxos alternatius Nom dusuari / password incorrectes
37
4.2
Descripciduncasds:exemple
Usuari
[ No ]
Dades correcte
[ Si ]
38
4.2
Actors
Rolsjugatsperpersones,dispositius,oaltressistemes.
Noformenpartdelsistema.
39
4.2
Associacions
Trestipusderelacions:
Generalitzaci: UnCUheretaelcomportamentisignificat
delaltre
Inclusi: UnCUbaseincorporaexplcitamentel
comportamentdunaltreenalgunpuntdelaseva
seqncia.
Extensi: UnCUbaseincorporaimplcitamentel
comportamentdunaltreCUenelllocespecificat
indirectamentperaquestaltreCU.UnCUcompletala
funcionalitatdunaltreCU.
40
4.2
Exemple
Relaci dextensi
include
Comprovar Clau
Relaci
dinclusi
Validar Usuari
Generalitzaci
include
Seguir Comanda Examinar Retina
41
4.2
Relacidinclusi
Permetfactoritzaruncomportamentenuncasdsapart
ievitarrepetirunmateixfluxendiferentscasosds.
ExemplecasdsSeguirComanda:
Obteniriverificarelnmerodecomanda.Include (Validar
usuari).Examinarlestatdecadapartdelacomandaiprepararun
informeperalusuari.
42
4.2
Relacidextensi
Elcasdsbaseinclouunasriedepuntsdextensi..
Serveixperamodelar
lapartopcionaldelsistema
Unsubfluxquenomssexecutasotacertescondicions
Diversosfluxosqueespodeninserirenunpunt.
ExemplecasdsFerComandaUrgent:
Extend (FerComanda).Recollirelsitemsdelacomanda.(establir
prioritat).Enviarcomandaperaserprocessada.
43
4.2
EscenarisiCasosds
Escenari: seqnciaespecficadaccionsquedescriuun
comportament,sadir,uncasdsenexecuci.
Unescenarisunainstncia duncasds(delamateixa
maneraqueunobjectesunainstnciadunaclasse).
EfectedexpansidelsCUalsescenaris: Fluxosprincipals
vs.fluxosalternatius.Uncasdsdescriuunconjuntde
seqncies,oncadaseqncia(escenari)representaun
fluxatravsdetoteslesvariants.
Especificaciambdiagramesdeseqncia.
Cas ds Escenaris
Contractar persona duna altra empresa.
ContractarEmpleat
Transferir dun departament a un altre.
Contractar un estranger.
44
4.2
CasosdsiCollaboracions
Ambuncasdsesdescriuelcomportamentesperatdel
sistema,pernosespecificacomsimplementa.
Uncasdssimplementaatravsdunacollaboraci:
Societatdeclassesialtreselementsquecollaboraranperrealitzar
elcomportamentexpressatenuncasds
Unacollaboracitunapartesttica(diagramesde
classes)iunapartdinmica(diagramesdeseqncia).
45
4.2
CasosdsiCollaboracions
cas ds
Collaboraci
Fer Comanda
Gesti Comandes
realitzaci
46
4.2
EscenaridelcasdsFerCompra
: : Interfaz Compra : CarroCompra : Producto
Cliente
iniciarCompra()
nuevoCarroCompra(cliente)
seleccProducto(cantidad)
obtenerDescripcionDe(prod)
cargarProd(cliente,prod,cantidad)
confirmarCompra()
confirmarCompraDe(cliente)
decremStock(cantidad)
47
4.2
Exempledediagramadecasosds
Client
Comer
Client Individual
Client Corporatiu Ajustar transaccions
Entitat financera
48
Gestionar comptes clients
4.2
Exempledediagramadecasosds
Professor
Soci
Extedre prstec 49
Consultar
Soci
4.2
Exempledediagramadecasosds
Cursar comanda
Ordenar Fabricacio
Comercial
50
4.2
Casosds(UML)ihistriesdusuari(SCRUM)
UnahistoriadusuarienSCRUMssinnimdecaracterstica delsoftwarea
construir,proudetalladaperqusajustiaunaiteraci(periodesdelSprint).
Uncasdsproporcionaunavisicontextualdelsoftwareaconstruir.
Enlaconstruccidesistemesdegranescala,elscasosdssnunaeinapera
explorarlesinteraccionsentreelsusuaris,elssistemesielssubsistemesdela
soluci.D'altrabanda,latcnicadecasosd'sajudaaidentificartotsels
escenarisalternatiusenlesrealitzacionsdelscasosds.
Elscasosd'sespodenutilitzarperentendreonsprobablequeestrobin
noveshistries.
Uncasdsspertantunaunitatfuncionaldelsoftware,ielsdiferents
escenaris (fluxosprincipalsialternatius)podengenerardiferentshistries
queesresolenenelsdiferentssprints.
Elsactors,comaperfilsdusuari,ajudenadefinirelsstakeholders que
eventualmentespodenconvidaralsSCRUMmeetings.
51
4.2
ExempledeCasosdsiHistries:ProjectBacklog
PROJECTBACKLOG
Com a Com a
Com a <PAS> Com a
<PROFESSOR> <PAS_ECONOMIA>
he de poder fer <PAS_PERSONAL>
he de poder fer he de poder fer
<entrar pla docent> he de poder fer Fer
<omplir pagina web <extracte comptab.
<alta treballador>
personal> analtica> matrcula
Com a <PAS>
he de poder fer
<reservar aula>
Com a
<PROFESSOR>
he de poder fer
<entrar guia
docent> 52
4.2
CasosdsiHistries:Exemple
<<extend>>
Entrar notes
<<include>>
<<include>>
UsuariEnregis trat
Banc
EntrarPlaDocent
Mantenir inf o prof essor
53
Generar guia estudiant Mantenir inf o alumne
4.2
Especificarelsfluxosdelsevents
CAS DS: Fer matricula
Versi 1.0 Data Octubre 2001
Autors ES1
Descripci Abans de comenar el curs, els alumnes podran matricular-se de les
assignatures a fer en el quatrimestre. A ms, durant el periode de
matriculaci, els alumnes podran modificar la seva matrcula afegint nous
cursos o donant-se de baixa daltres.
Actors Alumne
Precondici Abans del requeriment, lalumne ha dhaver-se identificat amb el seu codi
i password.
Flux principal El cas ds comena quan lalumne selecciona lopci opcions matrcula
del men principal. El sistema demana a lalumne que seleccioni
lactivitat desitjada: nova matrcula, modificar matrcula, esborrar
matrcula.
54
4.2
Especificarelsfluxosdelsevents:subfluxos
Novamatrcula
1. Lalumneseleccionalopcinovamatrcula.
2. Elsistemamostraunformularimatrculaenblanc.
3. Elsistemamostraelconjuntdassignaturesdelesqualslalumnees
potmatricularenelproperquatrimestre.
4. Lalumneseleccionalesassignaturesquedesitgifinsalnmero
mximdecrditsestablerts.Tambespermetseleccionardues
assignaturesalternativesensegonaopcipersiadarrerahoranoes
potefectuarlamatrculadelesprimeres.Unavegadafetalaselecci,
lalumnepremacceptarmatrcula.
5. Elsubfluxafegirassignaturaamatrculasactivapercada
assignaturatriada.
Elsistemaenregistralamatrcula.
55
4.2
Especificarelsfluxosdelsevents:subfluxos
ModificarMatrcula
1. Lalumneseleccionalopci"modificarmatrcula".
2. Elsistemabuscaimostralactualmatrculadelalumne.Sinonhiha,
esmostraunmissatgeisactivaelfluxfermatrcula.
3. Elsistemamostraelconjuntdassignaturesdelesqualslalumnees
potmatricularenelproperquatrimestre.
4. Lalumnepotmodificarlamatrculaeliminantoafegintassignatures.
Lesassignaturesaafegirespodenseleccionardelallistamostrada.
Lesassignaturesaeliminarseseleccionendelamatrculaactual.Una
vegadafetalaselecci,lalumnepremacceptarmatrcula.
5. Elsubfluxafegirassignaturaamatrculasactivapercada
assignaturatriada.
6. Elsistemaenregistralamatrcula.
56
4.2
Especificarelsfluxosdelsevents:subfluxos
EsborrarMatrcula
1. Lalumneseleccionalopciesborrarmatrcula.
2. Elsistemabuscaimostralactualmatrculadelalumne.
Sinonhiha,esmostraunmissatgeiesfinalitzaelcas
ds.
3. Lalumneseleccionaelbotesborrar.
4. Elsistemamostraundilegdemanantconfirmar
lesborrat.
5. Lalumneconfirmalesborrat.
6. Elsistemaeliminalamatrcula.
57
4.2
Especificarelsfluxosdelsevents:subfluxos
DesarMatrcula
En qualsevol moment lalumne pot gravar la matrcula amb
lopci desar sense que aquesta senvi. La matrcula actual
es grava, per lalumne no safegeix a cap assignatura com a
matriculat. Aquesta opci permet interrompre
temporalment lopci de matriculaci sense perdre les
dades.
Afegir assignatura a matrcula
El sistema verifica que lalumne t aprovats els prerequisits i
que lassignatura est oberta. Lalumne afegeix lalumne a la
llista dalumnes matriculats de lassignatura. Lassignatura es
marca com a acceptada en la matrcula.
58
4.2
Especificarelsfluxosdelsevents:fluxosalternatius
Prerequisitsnoaprovatsocursple
Si el subflux afegir assignatura a matrcula el sistema
considera que no es compleixen les restriccions (els prerequisits
no estan aprovats o lassignatura ja est plena) es mostra un
missatge derror. Lalumne pot seleccionar un altre grup de la
mateixa assignatura, una altra assignatura o cancellar
loperaci. El cas ds es reprn.
Matrculanotrobada
Si en els subfluxos modificar matrcula o esborrar matrcula
no es troba la matrcula, es mostra un missatge derror.
Lalumne accepta el missatge i el cas ds es reprn.
59
4.2
Especificarelsfluxosdelsevents:fluxosalternatius
Catlegdassignaturesinaccessible
Si desprs de diversos intents el sistema no aconsegueix
comunicarse amb el servidor que cont la informaci de les
assignatures disponibles, es mostra un missatge derror a
lalumne. Lalumne accepta el missatge i el cas ds acaba.
Perodedematrculatancat
Si quan lalumne selecciona opcions matrcula, ja sha tancat
el periode de matriculaci per al quatrimestre actual, es mostra
un missatge derror i el cas ds sacaba. Lalumne ja no es
podr matricular.
60
4.2 SubfluxosdeCasosdspodengenerarnoves
histriesenelsSprintsdeSCRUM
Com a <ALUMNE>
he de poder fer
SPRINTn
<automatrcula> Implementaci BACKLOG
front-end
Disseny Model
de Dades
(classes i BD)
Implementaci
BD
Com a <ALUMNE>
he de poder fer
<nova matrcula> SPRINTn+1
...
BACKLOG
Com a <ALUMNE> Tasca t
he de poder fer
<modificar
matrcula> Tasca t+1
Tasca
Com a <ALUMNE>
t+m
he de poder fer
<esborrar
matrcula> Tasca ...
Com a <ALUMNE>
he de poder fer
<afegir assignatura 61
a matrcula>
4.2
Diagramesdactivitats
Undiagramadactivitatssessencialmentundiagramade
fluxdaccionsquemostralactivitatqueesdevalllargdel
temps.
Undiagramadactivitatssuncasespecialdediagrama
destatsenquelsestatssnestatsdactivitatiles
transicionsesdisparenperlacabamentdelesactivitats
enlestatdorigen.
Unaactivitatprodueixalgunaacciqueprodueixalgun
canvienelsistemaoretornaunvalor.
Inclouen:
Estatsactivitat
Transicions
Puntsdedecisi
Barresdesincronitzaci 62
4.2
Estatsactivitat
Unestatactivitatnosatmic,escompondaltresestats
acciiactivitat.
Elsestatactivitatteduradaisexecutendinsdunestatde
lobjecte.
Lesactivitatsespodeninterrrompreentotmoment,
momentenquesdesencadenaloperacidesortidade
lestat.
Alentrarsexecutaactivitat,alacabarelfluxdecontrol
passaalasegentactivitat.
Processar Comanda
63
4.2
Diagramesdactivitats:notaci
estat inicial
transicions Activitat 1
Activitat 2
Activitat 3.2
estat final
64
4.2
Barresdesincronitzaci
Permeten representar activitats que sexecuten en parallel, aix com
punts duni en el flux de control, s a dir, activitats que shan de
completar abans que el procs continu.
Activitat 1 divisi
Activitat 3
Activitat 2
Activitat 4 Activitat 5
uni
65
Activitat 6
4.2
Carrers(swimlanes)
Sutilitzen per dividir un diagrama dactivitats. Permeten mostrar
quina persona o organitzaci s la responsable de les activitats
contingudes al carrer.
Objecte1 Objecte2
Carrer 1 Activitat 1
Carrer 2
Activitat 2
Activitat 3
[si]
Activitat 4 Activitat 5
66
4.2
Diagramesdactivitatsvs.diagramesdestats
Un diagrama dactivitats expressa fluxos de processament, mentre que un
diagrama destats indica els diferents estats en qu es troba un objecte. En
un diagrama dactivitats es pot expressar canvis destat en objectes que no
intervenen directament en el diagrama.
Soci Videoclub
p:Pellcula
flux Llogar pellcula [llogada]
dobjecte Diag. Estats Pellcula
estat Disponible
Llogada
objecte
67
4.2
Diagramadactivitats:exemple
Sollicitar Producte
Processar Comanda
Extreure Articles
Enviar Comanda
Pagar Factura 68
Tancar Comanda
4.2
Diagramadactivitats:exemple(ambcarrers)
Client Vendes Magatzem
Sollicitar Producte
Processar Comanda
Extreure Articles
Enviar Comanda
Pagar Factura 69
Tancar Comanda
4.2
Diagramadactivitats:exemple(ambobjectes)
Client Vendes Magatzem
Sollicitar Producte
Processar Comanda
Extreure Articles
o: Comanda
Enviar Comanda
[en progrs]
Demanar bitllet
Verificar
existncia vol
Informar alternatives
i preus
Seleccionar vol
Confirmar
Pagar bitllet plaa reservada
Emetre bitllet
71
4.2
Diagramesdactivitat:Exemple3
: Cliente : Comercial : JefeTecnico : JefeProduccion
:Catalogo
p:Pedido
Rellenar Pedido [propuesto]
:Plantilla de
Produccion
p:Pedido
Cursar pedido
[en_evaluacion]
Analizar viabilidad
p:Pedido
[evaluado]
:Producto
Especial
Notificar rechazo [ NO ] Viable ?
de pedido
[ SI ]
Fin KO
:Plantilla de
p:Pedido Produccion
[rechazado]
:Orden de
Trabajo
Notificar aceptacion Ordenar fabricacion
[pendiente]
de pedido
Planificar produccion
p:Pedido
[aceptado]
Fin OK
72
4.3
Diagramesd'Interacci
Modelenelsaspectesdinmicsdelsistema
Dostipus:DiagramesdeSeqnciaiCollaboraci
DiagramesdeSeqncia:
Destaquenlordenacitemporaldelsmissatges
DiagramesdeCollaboraci:
Destaquenlorganitzaciestructuraldelsobjectesparticipants.
Equivalnciasemntica
Modelenelfluxdecontrolquecaracteritzael
comportamentdunsistema:
casosds
collaboracions
operacions
73
4.3
DiagramesdeSeqncia
Representenescenaris.
Inclouen:
Objectes:representenpapersqueelsobjectespodenjugarenla
interacci(representatambrectangles)
Lniadevida:represental'existnciadunobjecteenunperode
detemps(representatamblniadiscontinua)
FocusdecontroloActivacions:representaeltempsdurantelqual
unobjecterealitzaunaoperaci(representatambrectangle
sobrelalniadevida)
Missatges:representenlacomunicacientreobjectes
(representatambunafletxahoritzontalietiquetada)
Informacidecontrol:condicionsimarquesditeraci
(representacitextual)
74
4.3
DiagramadeSeqncia:Notaci
Objecte
c1:Classe1 c3:Classe3
<<create>> :Classe2
Control (iteraci)
Missatge1() * Missatge2()
Control (condici)
[x>3] Missatge3
Temps
return
Destrucci
<<destroy>>
Lnia de vida
Focus de
control
75
4.3
Diagramadeseqncia:Exemple
s un diagrama dinteracci que destaca lordenaci temporal dels missatges.
s : Interlocutor : Centraleta c : Conversa r : Interlocutor
1: DespenjarAuricular
objecte
2: donarToTrucada
* 3: MarcarDigit missatge
lnia de vida
Els interlocutors r i s
poden intercanviar
informaci desprs
de connectar-se
76
4.3
DiagramesdeCollaboraci
tilsalafaseexploratoriaperidentificarobjectes
Mostreninteraccionsorganitzadesentreobjectesordenatsapartirdela
topologiaquemostralenviamentdelsseusmissatges.
Inclouen:
Objectes:representenpapersqueelsobjectespodenjugarenlainteracci
(representatambrectangles)
Enllaosentreobjectes:representenconnexionsestructuralsentreobjectes
(representatmitjanantlniacontinua).Espodenutilitzarestereotipsper
indicarsilobjectequerepelmissatgesunatribut,unparmetredun
missatgeanterior,sisunobjectelocaloglobal
Missatges:representenlacomunicacientreobjectes(representatambuna
fletxahoritzontalietiquetada)UMLpermetdiversosnivellsdesubindexosper
indicaraniuamentdoperacions
Informacidecontrol:condicionsimarquesditeraci(representacitextual)
Lestructuraestticavedonadapelsenllaosiladinmicapelsmissatges.
77
4.3
DiagramadeCollaboraci:Notaci
Objecte
: Clas s e1 Missatge
2. M is s atge4( )
G
0bj2 : Class e2
- at 1 : Cl ass e4 Control (iteraci)
3. *[i:= 1..] M iss atge5( )
obj4-1 : P
Cl ass e4
1.1. M is atge2()
: Class e5
1.2 . M is satg e3()
Estereotipus en enllaos
Instncia mltiple
P Parmetre F
obj4-2 :
Class e 4
F Atribut
L Objecte Local
G Objecte Global 78
4.3
DiagramadeCollaboraci:Exemple
s un diagrama dinteracci que destaca lorganitzaci estructural dels objectes que
envien i reben missatges.
r : EncarregatMatrcules
2: AfegirEstudiant
1: <<create>>
3: Matricular : Universitat
3.1: ObtenirPlaEstudis
3.4 : <<Esdev>>
s : Estudiant s : Estudiant
Matriculat=Fals Matriculat=Cert
3.3 : Afegir
c2 : Curs
3.2 : Afegir
c1 : Curs
79
4.3
DiagramesdeSeqnciavs.DiagramesdeCollaboraci
Equivalnciasemntica.
Sihihamoltcomportamentcondicional,utilitzardiferents
escenaris.
Diagramesdeseqnciamostrenmillorlordreenqu
sexecutenelsmissatges.
Diagramesdecollaboracimostrenclaramentels
objectesambelsquinteractuaundeterminatobjecte.
80
4.3
DiagramadInteracci:Descripcidescenaris
CAS DS: Realitzar Comanda
Versi 1.0 Data 02/11/2001
Autors ES1
Descripci Aquest cas ds descriu com un comercial prepara una comanda
Actors Comercial
Precondici
Flux principal 1. Usuari identifica el client que ha enviat una comanda
2. Lusuari entra lnies de comanda, amb el seu codi darticle, tipus de presentaci i quantitat
3. El sistema comprova cada lnia de comanda per validar situaci de larticle en catleg i el nmero ditems
en estoc.
4. El sistema assigna items a la comanda
Subfluxos
Fluxos alternatius Article no vigent en catleg
El sistema informa que larticle no est vigent i mostra articles alternatius activant el CU Seleccionar article
No hi ha suficients items en estoc / Items sota mnims
El sistema genera una compra daquest item activant el CU Generar Comanda
Postcondici
Requeriments no
funcionals
Prioritat Normal
Comentaris
81
4.3
DiagramesdeSeqncia:Descripcidescenaris
CAS DS: Realitzar Comanda
Versi 1.0 Data 02/11/2001
Autors ES1
Descripci Aquest cas ds descriu com un comercial prepara una comanda
Actors Comercial
Precondici
Flux principal 1. Usuari identifica el client que ha enviat una comanda
2. Lusuari entra lnies de comanda, amb el seu codi darticle, tipus de presentaci i quantitat
3. El sistema comprova cada lnia de comanda per validar situaci de larticle en catleg i el nmero ditems
en estoc.
4. El sistema assigna items a la comanda
Subfluxos
Fluxos alternatius Article no vigent en catleg
El sistema informa que larticle no est vigent i mostra articles alternatius activant el CU Seleccionar article
1: Identific arClient()
2: < <create> >
: Coman da
3: E ntrarLiniaCom anda()
4: * < <create> >
:
LiniaCom anda
82
4.3
DiagramesdeCollaboraci:Descripcidescenaris
1: IdentificarClient()
3: EntrarLiniaComanda() 2: <<create>>
: InterfEntradaComanda : Comanda
: Comercial
4: * <<create>>
7: SotaMinims = ComprovarMinim()
5: HiHaStock=ComprovarStock()
6: [HiHaStock] AssignarItem()
: : Item
LiniaComanda
9: return
83
4.3
CasosdsiEscenaris:Exemple
CAS DS: Buscar Comanda
Versi 1.0 Data 02/11/2001
Autors ES1
Descripci Aquest cas ds descriu com un usuari busca informaci sobre lestat duna comanda realitzada
Actors Usuari
Precondici
Flux principal 1. Se inicia al seleccionar la opci Buscar Comanda.
2. El sistema presenta la finestra Buscar Comanda.
3. Lusuari introdueix un ID duna comanda
4. Lusuari executa la recerca
5. El sistema realitza una recerca a la BD de comandes.
6. El sistema visualitza dades comanda.
Subfluxos
Fluxos alternatius ID no trobat
El sistema informa que lidentificador no ha estat trobat
Postcondici
Requeriments no
funcionals
Prioritat Normal
Comentaris
84
4.3
CasosdsiEscenaris:Exemple
opcioBuscarComanda()
visualitzar ()
setIDComanda (ID)
buscarComanda ()
p:=getComanda (ID)
visualitzarComanda (p)
85
4.3
DiagramadeSeqncia:Exemple
Agafar llibre
Sollicitar prstec
Situaci soci ok
Situaci llibre ok
Introduir prstec
Autoritzar prstec
86
4.3
DiagramadeCollaboraci:Exemple
1: Agafar llibre : Llibre
8: Autoritzar prstec
4: Situaci soci ok
: Encarregat
6: Situaci llibre ok
: Prstec
7: Introduir prstec
: Fitxa llibre
87
4.3
DiagramadeTransicidEstats
Modelaelcomportamentdinmicdunobjecte,tilsper
objectesambcomportamentsignificatiu.
Sutilitzenpermostrarelsestatsenqueenspodem
trobarunobjectedurantelseutempsdevida,elsevents
quecausenlatransicidunestataunaltreilesaccions
queresultenduncanvidestats.
Inclouen:
Estats
Transicions
Notaciestesa
88
4.3
DiagramadeTransicidEstats:Estat
Unestatidentificaunperodedetemps(noinstantani)enlavidade
lobjectedurantelqualestesperantalgunaoperaci,tuncert
comportamentcaractersticopotrebrecerttipusd'estmuls
Notaci:Rectanglearrodonit,quepottenirtrescompartiments:nom,
valorcaractersticdelsatributsiunperlesaccionsqueesrealitzenal
entrar,sortirialestarhi(entry,exitodo,respectivament).
Podencrearunajerarquia
Dosestatsespecials(Inici,Fi)
89
4.3
DiagramadeTransicidEstats:Transici
Unatransicirepresentauncanviestats,aquestcanvideestatpotanar
acompanyatdalgunaacci.Lasaccionss'associenalastransicionsies
consideraquesucceeixendeformarpidaisenseinterrupci.
Unatransicipottenirassociadaunaaccii/ounaguarda,ams,una
transicipotdispararunevent.
Laacciserelcomportamentques'obtquansucceeixlatransici.
Leventserelmissatgequeseenviaaunaltreobjectedelsistema.
Laguardasunaexpressiboolenasobreelsvalorsdelsatributsque
faquelatransicisolsesprodueixisilacondicis'avaluaatrue.
Existeixenduesmaneresderealitzarlestransicions.Unatransici
automticaquansacabal'activitatdelestatorigen(nohihaunevent
associatamblatransici).Unatransicinoautomticaquanexisteixun
eventquepotpertnyeraunaltreobjecteo,finsitot,estarforadel
sistema.
90
4.3
DiagramadeTransicidEstats:Notaci
Estat
on Transici
Llum On
Acci
on/ctr := ctr + 1
Event
off
Estat Inicial off
Llum Off
91
4.3
Estat dEntradaiSortida
Notaci:Rectanglearrodonit,quepottenirtres
compartiments:nom,valorcaractersticdelsatributsiun
perlesaccionsqueesrealitzenalentrar,sortirialestarhi
(entry,exitodo,respectivament).
Llum On
e2
entry/Llum.on();
exit/Llum.off();
e1
92
4.3
OrdredelesAccions:Cassimple
Accionsdesortidasnunprefixalesaccionsdetransici
Accionsdentradasnunpostfixalesaccionsdetransici
LlumOn LlumOff
off/printf(a off);
entry/Llum.on(); entry/Llum.off();
exit/printf(sortir); exit/printf(sortir);
AutoTransicisensepassarperentryiexit.
sunatransiciqueromanenelmateixestat.Eventque
nocausacanvidestat.Perexempleenunainterficie
F1/displayhelp
Transicio interna
causada per levent off
LlumOff
entry/Llum.off();
exit/printf(sortir);
off/null;
94
4.3
EstatFer(Do)Activitats
Bifurcaunthreadconcurrentquesexecutafinsque:
Laccisacabao
Essurtdelestatmitjanantunatransicidesortida
do activitat
Error
entry/printf(error!)
95
4.3
Transicions:Guarda
Laguardasunaexpressiboolenasobreelsvalorsdels
atributsquefaquelatransicisolsesprodueixisilacondici
s'avaluaatrue.
Descripcievent[Condiciguarda]/Missatgelaltreobjecte;
Accionsaddicionalsqueseexecuten
Oferta [valor < 100] /refusar
Descontent
96
4.3
JerarquitzacideDiagrames
Peratacardemaneragraduallacomplexitat,certsestats
espodendescompondreennousdiagrames
LlumOff
flash/ LlumFlashing
entry/Llum.off()
LlumOn
1sec/
1sec/
on/ on/
LlumOff
on/
LlumOn entry/ Llum.off()
entry/ Llum.on()
97
4.3
Diag.estatsperexpressarelcomportamentdunobjecte
Soci Biblioteca
Nmero : int
Nom : char[50]
Nmero prstecs : int = 0
Alta()
Baixa()
Prestar(CodiLlibre : int, Data : date)
Retornar(CodiLlibre : int, Data : date)
Prestar
Initialize
Object Retornar[ Nmero prstecs = 1 ]
Amb prstecs
Nmero prstecs > 1
Wait for
Event
Prestar
Retornar[ Nmero prstecs = 1 ]
Handle
Event
Sense prstecs
Nmero prstecs = 0
Alta Baixa
Terminate
Object
98
4.3
Diagramadestats
llegir( c )[ c/='<' ] / return FALS llegir( c )[ c/='>' ] / etiqueta.afegir(c); return FALS
event
llegir( c )[ c=='<' ]
Esperant ObtenintEtiqueta
condici
transici
estat
llegir( c )[ c=='>' ]
acci
Parser de seqncies:
Missatge : < cadena > cadena ;
99
4.3
Diagramadestats.Enginyeriadirecta
Codi en Java generat per un procs denginyeria directa:
Class Parser { Initialize
public Object
boolean llegir(char c) {
switch (estat) {
case Esperant: Wait for
if (c==<) { Event
estat = ObtenintEtiqueta;
etiqueta = new StringBuffer();
cos = new StringBuffer();
} Handle
break; Event
case ObtenintEtiqueta:
if (c==>) {
estat = ObtenintCos; StringBuffer obtenirEtiqueta() {
else return etiqueta;
etiqueta.afegir(c); }
break; Terminate
StringBuffer obtenirCos() {
case ObtenintCos: Object
return cos;
if (c==;) { }
estat = Esperant; private
else final static int Esperant = 0;
cos.afegir(c); final static int ObtenintEtiqueta = 1;
return CERT; final static int ObtenintCos = 2;
} int estat = Esperant;
return FALS; StringBuffer etiqueta, cos;
} }
} 100
4.3
Exemple
CAS DS: Realitzar Comanda
Versi 1.0 Data 04/11/2001
Autors ES1
Descripci Aquest cas ds descriu com un comercial prepara una comanda
Actors Comercial
Precondici
Flux principal 1. Usuari identifica el client que ha enviat una comanda
2. Lusuari entra lnies de comanda, amb el seu codi darticle, tipus de presentaci i quantitat
3. El sistema comprova cada lnia de comanda per validar situaci de larticle en catleg i el nmero ditems
en estoc.
4. El sistema assigna items a la comanda
Subfluxos
Fluxos alternatius Article no vigent en catleg
El sistema informa que larticle no est vigent i mostra articles alternatius activant el CU Seleccionar article
Comanda
Data
Num
Seleccionar()
Comprovar
Servir() 101
4.3
Exemple
Quan una transici no te associat cap event,
significa que la transici es realitza tan aviat com Encara que
[/seleccionar primer item lactivitat associada amb lestat acaba finalitzi
lactivitat, la
[No tots els item comprovats]/ [Tots els item comprovats && comanda es
seleccionar item segent Comprovar Servir
Tots els items disponibles] mantindr en
Do/Comprovacio Do/Inici aquest estat fins
item entrega que arribi
levent que
desencadena la
transici
[Tots els item comprovats &&
Comanda entregada
Alguns no els items disponibles]
Item rebut
[ots els items disponibles]
Esperant
Items
Item rebut
[Alguns no els items disponibles]
Esdescriuenelstipusdobjectesdunsistemailes
relacionsesttiques quehihaentreells.
Sexpresamitjanantelsdiagramesdeclasse.
Normalmentcontenen:
Classes
Interficies
Relacionsdedependncia,realitzaci,generalitzaciiassociaci
(agregaci,composici)
Tambpodeninclourepaquetsicollaboracions.
103
4.3
DiagramesdeClasses
Classe: descripcidungrupdobjectesambpropietats
comunes(atributs),comportamentcom(operacions),
relacionscomunesambaltresobjectesisemntica
comuna.
Elsdiagramesdeclassessutilitzenpermodelar:
Vocabularidelsistema: identificarclassesperabstraccions
relevantsdeldominidelproblema.
Collaboracions(partesttica): identificarclassesiinterfciesla
interaccidelsqualsprodueixelcomportamentdesitjat.Un
diagramadecollaboracirepresentaunainstnciadeldiagrama
declassesperaunescenariconcret.
Esquemalgicdebasesdedades.
104
4.3
Classes
Nom Classe multiplicitat
Figura 1..n
rotar() <<exception>>
tras lladar() ForaR ang
Classe
escalar() estereotipada
105
4.3
Visibilitatdelesclasses,atributsooperacions
public: elsmembresdunaclassesnaccessiblespertotsels
clients.
protegit: elsmembresdunaclassesnaccessiblesnoms
perlessubclasses,amiguesilamateixaclasse.
privat: elsmembresdunaclassesnaccessiblesnomsper
lesclassesamiguesilamateixaclasse.
implementaci: laclassesaccessibleperlaimplementaci
delpaquetquecontlaclasse. V is ibilitat
public
privat
protegit
public()
privat()
protegit()
im plem ent ac i()
106
4.3
Classesdanlisi
Lesclassesdelmodeldanlisisnclassesestereotipadesquerepresenten
unmodelconceptualinicialperalselementsdelsistemaquetenen
responsabilitatsicomportament.Hihatrestipusdeclassesdanlisi:
Comunicaci. Gestionenlainteraccientreelsistemaielseuentorn.
Sutilizenpermodelarlesinterfciesdelsistema.
Control. Coordinenelseventsnecessarisperrealitzarelcomportament
especificatenuncasds.
Entitat. Modeleninformaciielseucomportament.Representenentitats
delmnrealoentitatsinternesnecessariesperexecutarlestasquesdel
sistema.Snindependentsdecomlentornescomunicaambelsistemai
sovinttambindependentsdelaplicaci(transportablesaaltres
aplicacions).
{derived} {readOnly}
+ = pblica static
# = protegida
- = privada
C lient
N om : String
D ataAlta : D ate = 01-gen-2000
D arrerC odiAs s ignat : Integer
C odiC lient : Integer = D arrerC odiAs s ignat
108
4.3
Operacions
[visibilitat] nom [(llista_params)] [: tipus_retorn] [{propietats}]
+ = pblica
# = protegida {isQuery}, {sequential}, {concurrent}
- = privada
Co mpt eCorrent
Ti tul ar
S aldo
Codi
109
4.3
Classesparametritzades
Classe Parametritzada
T
Con junt
num Elem ents
Insereix(T)
E lim ina(T)
B us c a() : T
bind <Empleat>
Conjunt<E m pleat>
110
4.3
Diagramesdeclasses:relacions
Dependncia
Generalitzaci
Associaci
Agregaci
Composici
111
4.3
Dependncia
Un canvi en lespecificaci dun element afecta laltre
PlaDelCurs
Curs
Window
afegir(c : Curs)
position eliminar(c : Curs)
parent
children
size Clock
open()
close() Node Llista
move()
resize()
<<friend>>
112
4.3
Estereotipusperadependncies
bind: entreunaclassegenricaiunainstanciaci
friend: dependnciadeclasseamiga
refine: relaciderefinamiento
use: relacids
import: unpaquetimportaelselementsdunaltre.
extend: peracasosds
include: peracasosds
113
4.3
Generalitzaci
Representalarelaciseruntipusde.sunarelacientreclasseson
laclasseespecialitzadacomparteixlestructurai/oelcomportament
delaclassemsgeneral.
Defineixunajerarquiadabstraccionsonlasubclasse(classe
derivada)hereta lespropietatsdunaomssuperclasses.
Compte Window
114
4.3
Restriccionssemntiquesentrelessubclasses
Hernciasimple/hernciamltiple:
Hernciasimple: unanovaclassenomsderivadunaclasse.
Hernciamltiple: unasubclassepotderivardemsdunaclasse.
Hernciasolapada/hernciadisjunta:
Hernciasolapada: unanovaclassepotderivardemsduna
subclasse.
Hernciadisjunta: unanovaclassenopotsersubclassedems
dunasubclasse.
Hernciacompleta/hernciaparcial:
Hernciacompleta: esdefineixunaparticienqutotsels
objectespossiblesestanrepresentatsperalgunasubclasse.
Hernciaparcial: hihaobjectesnorepresentatsperlessubclasses.
Classificacidinmica:
unobjectepotcanviardeclassedinslajerarquiadesubclasses.
115
4.3
Hernciasimple/hernciamltiple
UsuariUniversitat
Herncia simple
116
4.3
Hernciasolapada/hernciadisjunta
V ehic le
Herncia solapada
Herncia disjunta
A rbre
Cam i V eler
Roure Pi Taronger
117
4.3
Hernciacompleta/hernciaparcial
P ersona
P ac ient
Herncia completa
Herncia parcial
118
4.3
Classificacidinmica
P ersona E m presa
119
4.3
Associaci
Associaci. Relaci estructural que especifica que els objectes dun element estan
connectats als objectes dun altre. Es pot navegar des dun objecte duna classe a un
de laltra.
Agregaci. s una associaci tot-part o de continent-contingut.
agregaci
nom
(composici)
agregaci
t assignatA (continncia)
Universitat Departament
1..1 1..* 1..*
1..* 1..*
multiplicitat
membre
rol
120
4.3
Associaci
Modelaunaconnexisemnticaentreclasses.sunarelaciestructural
queespecificaqueelsobjectesdunaclasseestanconnectatsals
objectesdunaltre.Espotnavegardesdunobjectedunaclasseaunde
laltra.
Nom associaci
Professor Universitat
Treballa per
Empleat Empresa
121
4.3
Agregaci
Unaformaespecialdassociaciquemodelaunarelacitot
partodecontinentcontingutentreunagregat(eltot)i
lessevesparts.
Llista Element
Tot Part
Agregaci
Continent Contingut
Grup Alumne
122
4.3
Composici
Unaformadagregaciambunpropietarifortitempsdevida
coincidents.Lespartsnopodensobreviurealtot(agregaci).
Lespartspodencrearsedesprsdelagregataqupertanyen,per
unavegadacreadesviuenimorenamblagregat.
Lapartsolamentpotformarpartdunagregat.
Lagregatgestionalacreaciidestruccidelesparts.
Lespartsespodeneliminarabansdeliminarlagregat.
Catleg Producte
Tot Part
Agregaci
123
4.3
AgregaciiComposici:Exemple
POLGON Composici
Agregaci
1 1
Punts[3..*]: coord
Color: Integer
Textura: Integer
124
4.3
Associaci:MultiplicitatiNavegaci
Multiplicitat. Lamultiplicitatdefineixquantsobjectes
participenenunarelaci.
ElnmerodinstnciesdunaclasserelacionadesambUNA
instnciadelaltraclasse.
Sespecifiquenambunrangencadafinaldelassociaci.
Navegaci. Lesassociacionsiagregacionssn
bidireccionalsperdefecte,perdevegadessdesitjable
restringirlanavegaciaunadirecci.
Silanavegacisrestringida,safegeixunalniaambfletxaper
indicarladireccidelanavegaci,aixvoldir,desdequin
objecteespotaccediralaltre.
125
4.3
Associaci:MultiplicitatiNavegaci.Exemple
Catleg Producte
1 1..*
126
4.3
Associacions:Implementaci
Client Com anda
1 0..*
1..*
LiniaCo classComanda{
m anda
Client _client;
Set[liniaComanda]_liniesComanda;
public:
getClient();
getLiniesComanda();
}
127
4.3
Visibilitatenlesassociacions(rols)
public: accessiblepertotselsclients.
protegit: accessiblenomsperclassesderivadesisiles
classesdelassociacisnamigues.
privat: accessiblenomsperlamateixaclasseisiles
classesdelassociacisnamigues.
Pblica: +propietari
Protegida: #propietari
Privada: -propietari
128
4.3
Associaciqualificada
Denotaunatributollistadatributsenelsqualselvalordelsatributs
seleccionenunnicobjecterelacionatounconjuntdobjectes
relacionatsdinsdetotelconjuntdobjectesrelacionatssegons
aquestarelaci.
Estractadunndexperrecrreraquestaassociaci(espodria
entendrecomsielselementsesguardessinenunataula).
129
4.3
Associacionsqualificades:Exemples
LniaComanda
Comanda 0..1
Producte
liniaComanda Unitats: Integer
PreuTotal: Integer
ClassComanda{
privateTable _liniesComanda;
publicLiniaComandagetLiniaComanda(Producte unProducte);
publicvoidaddLiniaComanda(Integerquantitat,Producte elProducte);
}
dept
1 professor Professor
Departament
Num. despatx
1..*
0..1
dirigeix director
1
130
4.3
ClassesAssociaci
Unaclasseassociaciafegeixunarestriccin:Nomspotexistiruna
instnciadelassociacientrequalsevolparelldobjectes
participants
Unaclasseassociacirepresentapropietatsquedepenendelsdos
objectesimplicatsenlassociaci.
contractant treballador
Empresa Empleat
* 1..*
Crrec
+superior
nom
sou
0..1
1..*
+subordinat
131
4.3
Associacionsnaries
Associacinentretresomsclasses:Cadainstnciade
lassociacisunantupladevalorsdecadascunadeles
respectivesclasses.
Any
temporada * Registre
* gols_a_favor
Equip
equip gols_en-contra
partits_guanyats
* porter
Jugador
132
4.3
Associacionsderivades
Estudiant rep Assignatura
/ensenya imparteix
Professor
Associaci derivada
+components /operacions
Compte Operacio
* *
CompteSet CompteCorrent
0..1 1..1
Persona.departament=
Persona.dirigent.departament
+dirigent +dirigit
134
4.3
DiagramesdeClasse:Realitzaci
Una classe que s realitzaci duna altra indica que la primera
garanteix la implementaci de lespecificaci de la segona.
<<Interface>>
IPila
Pila
push()
pop()
top()
Pila
IPila
Interface: representa la visi externa de les Realitzaci: representa la
funcionalitats de lobjecte que sexporten. implementaci dall
s una collecci doperacions que especifica la interfcie.
sutilitza per especificar un servei duna
classe o una component. 135
4.3
Mduls(paquets)
sunelementorganitzatiu
Podencontenirelementsdequalsevoltipus,incloentaltrespaquets.
Unelementsexclusiuaunpaquet.
Elspaquetshandemantenirlamximacohesi(unanicatasca)iel
mnimacoblament(pocainterdependnciaentremduls).
Totipoderconteniraltrespaquets,calevitarunexcsdenniuament.
136
4.3
Importaci/Exportacidepaquets
Igualmentquelesclasses,elspaquetspodenexportarunapart
pblicaquesimportadapelpaquetcontenidor.Aixperment
gestionardiferentsnivellsdabstracci.
Laimportacinostransitiva.
Elspaquetscontingutsenaltrespaquetsveuentotallqueelpaquet
contenidorimporta.
Servidor Client
+ BaseDeDades + FormulariComanda
+ ServeiDeRegistre + FormulariDeSeguiment
import - Comanda
import
GUI GestioComandes
+ Finestra
import + ReglesComandes
+ Formulari + GUI:Finestra
# GestorEvents
137
4.3
GeneralitzacidePaquets
GUI
+ Finestra
+ Formulari
# GestorEvents
WindowsGUI
+ GUI:Finestra MacGUI
+ Formulari
# GUI:GestorEvents
+ VBForm
138
4.3
Diagramadeclasses:Exemple
Comanda
info Client
pagamentAvanat? : Bool
nom
numero : String
adrea
preu : Currency * 1..1
tipus()
lliurar()
tancar()
1..1
Empresa Personal
Nom tarjetaCredit
if Comanda.client.tipus=pobre tipus
then Comanda.PagamenAvanat? creditLimit
= TRUE
+linia items facturar()
* avisar()
LiniaComanda * { tipus()="pobre"}
quantitat : Integer
preu : Currency
+repr vendes 0..1
Completada : Bool
Empleat
*
1..1 Producte
139
4.3
Diagramadeclasses:Exemple
b as ada en
P lantillaFabric ac io OrdreTreball
1. .* 0..*
1 0. .*
te genera
1 1
P roduc te Coma nda Client
1. .* 0..* 1..* 1
140
4.3
Diagramadobjectes
Representaunconjuntdobjectesirelacionsenunmomentconcret.
sunafotografiadelsistemaenunmomentdexecuci.Instncia
deldiagramadeclasses.
Representaunavisiestticadelsistema.Complementatamb
diagramesdecollaboraci. e:Empresa
d1 : Departament d2 : Departament
d3 : Departament valor de
objecte latribut
Nom = Vendes a BCN objecte
annim
p : Persona
: Informaci de contacte
Nom = J. Puig
ID = 4362 Adrea = c/ Mallorca, 120
crrec = Pres. vendes 141
4.4
Diagramadecomponents
Unacomponentsunapartfsicaireemplaabledun
sistemaquerealitzaunconjuntdinterfciesiproporciona
larealitzacidaquestes.
Modelaartefactescomara:executables,biblioteques,
taules,fitxers,documents,etc.
Representalempaquetamentfsicdelementslgicscom
araclasses,interfcies,etc.
Tipusdecomponents:
Desplegament.Componentsnecessriesperformarelsistema
executable(DLL,EXE,etc..).
Productedetreball.Productesquequedenalfinaldelprocsde
desenvolupament(codifont,fitxersdedades,etc..).
Execuci.Componentsqueescreencomaconseqnciadun
sistemaenexecuci(objecteCOMinstanciatdunadll).
142
4.4
Diagramadecomponents.Notaci
component
<<EXE>>
GestioComandes
CatalegsAPI interfcie
realitaci (exportaci).
GestiCatalegs.dll pot ser
<<DLL>> reemplaat per una altra
GestioCatalegs llibreria que proporcioni la
interficie CatalegsAPI.
dependncia
component
(Base de Dades)
BDProductes
143
4.4
Diagramadecomponents.Exemple
animator.hlp animator.exe dlog.dll
(versi = 5.0.1)
API
importaci
component interfcie
exportaci
raytrce.dll shapes.tbl
144
4.5
Diagramadedesplegament
Dimensilgicadunsistema:classes,interfcies,
collaboracions,interaccionsimquinesdestats.
Dimensifsicadunsistema:
Components:empaquetamentsfsicsdelselementslgics.
Nodes:
Elementsfsicsqueexisteixenentempsdexecuciirepresentenun
recurscomputacionalquepottenirmemriaicapacitatde
processament.
Hardwaresobreelqualesdesplegueniexecutenlescomponents.
Arcs:connexionsfsiquesentrenodes.
Elsdiagramesdedesplegamentmostrenlaconfiguraci
delsnodesqueparticipenenlexecuciideles
componentsqueresideixenalsnodes.
145
4.5
Diagramadedesplegament.Notaci
RS-232
consola
node
connexi
146
4.5
Diagramadedesplegament.Exemple
Modem
147
4.6
DissenydeBasesdeDadesambUML
En UML el disseny de les BD es fa utilitzant el diagrama de classes per
amb un estereotip (notaci) especfic per a BD.
EMPLEAT EMPLEAT
NUMEMPLEAT : Integer NUMEMPLEAT : SMALLINT
NOM : String NOM : CHAR(20)
TELEFON : S tring TELEFON : CHAR(10)
SOU : MONEDA SOU : MONEDA
BONUS : MONEDA BONUS : MONEDA
CATEGORIA : Integer CATE GORIA : SMALLINT
Diagrama destats.
Diagrama dactivitats.
Model arquitectnic.
Diagrama de components.
Visi fsica
Diagrama de desplegament.
4.6
Diagramadeclasses.Relacions
Dependncia. Un canvi en lespecificaci dun element pot afectar laltre. Un
objecte s una variable local o parmetre dun mtode de laltre.
Mdem
Port
+ inicialitza (p : Port)
Figura
Rectangle Cercle
Quadrat
4.6
Diagramadeclasses.Relacions
Associaci. Relaci estructural que especifica que els objectes dun element estan
connectats als objectes dun altre. Es pot navegar des dun objecte duna classe a un
de laltra.
Agregaci. s una associaci tot-part o de continent-contingut.
agregaci
nom
(composici)
agregaci
t assignatA (continncia)
Universitat Departament
1..1 1..* 1..*
1..* 1..*
multiplicitat
membre
rol
Elementsdiferentsalanotaciclssicadediagramadeclasses:
Taula: grupdelementsdinformacireferentsalamateixaentitat.
Columna: Unacomponentdunataulaquecontunatribut.
Clauprimria: claucandidataescollidaperidentificardemaneranica
lesfilesdelataula.
Clauexterna(forana): columnaoconjuntdecolumnesquereferencien
(mapegen)laclauprimriadunaaltrataula.
Relaciidentificable: relacientreduestaulesonlataulafillahade
coexistiramblataulamare.
Relacinoidentificable: relacientreduestaulesoncadataulapot
existirindependentmentdelaltra.
Vista: taulavirtualque,desdelpuntdevistadelusuari,sigualque
qualsevoltaulaperquenotexistnciaperellamateixa.
Procedimentdemmagatzematge(storing procedure): procediment
independentqueexecutaalgunaaccisobrelaBD.
Domini: conjuntdevalorsvlidsperunatributocolumna.
4.6
ResumNotaci
Taula
Vista
DEPARTAMENT
Domini ADREA : CHAR(100)
NOMDEP : CHAR(30)
PK NUMDEP : SMALLINT
Clau primria PK FK CODICAPDEP : SMALLINT
NUMEMPLEATS : SMALLINT
Clau externa FK
Clau primria/externa P
F K
0..* 1
Relaci noidentificable
4.6
Taulesiatributs
Unataula suncontenidordinformaciformatpercolumnesper
emmagatzemariorganitzarlesdadesdelsistema.
Esrepresentamitjanantunaclasseperestereotipadacoma
<<table>>
Unatribut(columna)potserclauono.Sisclau,potser:
Clauprimria:Columnaogrupdecolumnesqueidentificademanera
nicalasevataulaolafiladinsdelataula.
Clauexterna:Columnaquesclauprimriaenlataulamare
(referenciada)imigraalataulafilla(referenciant)identificantlarelaci.
Combinacideclauprimriaiexterna:Clauprimriaqueams
identificalarelaciparticipantcomaclauexterna.
Relacionsiclausexternes:
Unarelaciidentificable entretaulesfaquelaclauexternasiguipartde
laclauprimriaenlataulareferenciant.
Unarelacinoidentificable faquelaclauexternanosiguiclauprimria
enlataulareferenciant.
4.6
Taulesioperacions(restriccions)
Unarestricci sunareglaquelimitaelvalorolesaccionsdelcamp
especificat.Espodenassignaraunacolumnapergeneralmentestan
contingudesalaprpiataula.
Key constraint:Defineixlesclausprimriesiexternesipotestarformada
perunaodiversescolumnes.
Check constraint:Unareglasobreunacolumnaotaulaquepotconsistir
enclculs,conjuntsvlidsdevalors,orangsdevalors.
Unique constraint:Indicaquelesdadesdunacolumnaoconjuntde
columneshandeserniques.
Untrigger sunaacciquesexecutaquanesdevunevent (passa
algunacosasobrelataula).Dostipus:
Trigger detaula:Unaoperacidetaulaque,perexemple,diualaBD
accionsaferdesprsdexecutarunasentnciaSQLsobrelataula.
Trigger derelaci:Perassegurarintegritatreferencial.
Unndex sunmecanismedapuntadorsutilitzatperlocalitzarfiles
delataulademanerarpida.
4.6
Taules,atributsioperacions:exemple
CLIENT
DNI : CHAR(10)
NOM : CHAR(20)
ADREA : CHAR(100) EMPLEAT
TELEFON : CHAR(20) NUMEMPLE AT : SMALLINT
NUMEMPLEAT : SMALLINT +ven a NOM : CHAR(20)
+compra a
EMAIL : SMALLINT TELEFON : CHA R(10)
0..* <<Non-Identifying>> 1 SOU : MONEDA
<<PK>> PK_CIENT3() BONUS : MONEDA
<<FK>> FK_CLIENT14() CATEGORIA : SMALLINT
<<Check>> CODIPOSTAL()
<<Trigger>> COMPACTAR() <<PK>> PK_EMPLEAT7()
<<Check>> CODIPOSTAL()
<<Index>> NOMCLIENT() comprova CP
<<Unique>> EMAIL_UNIC() valid dins domini
d'adrea
compacta taula
desprs d'esborrar
(event) un registre
4.6
Relacions
Relacionsidentificables.
Relacientreduestaulesonlataulafillahadecoexistiramblataula
mare.
Esrepresentaamblestereotip<<Identifying>> olarelacide
composici.
Relacionsnoidentificables.
Relacientreduestaulesoncadataulapotexistirindependentmentde
laltra.
Esrepresentaamblestereotip<<Non-identifying>> olarelaci
dassociaci.
Unarelaciimplicaunaclauexterna alataulafillarespectelaclau
primriadelataulamare.
Silarelacisidentificable,laclauexternadelataulareferenciant
participatambdelaclauprimriadaquesta.
4.6
Relacions.Exemple
DEPARTAMENT
NUMDEP : SMALLINT
NUMDEP : SMALLINT
NOMDEP : CHAR(1)
ADREA : CHAR(1)
<<PK>> PK_DEPARTAMENT0()
1 1
<<Identifying>>
<<Identifying>>
1..* 0.. *
PROFESSOR PROJECTE
NIU : SMALLINT IDPROJECTE : SMALLINT
DNI : CHA R(10) TITOL : CHAR(50)
NOM : CHAR(50) DESCRIPCIO : CHAR(400)
ADRE A : CHAR(100) <<Non-Identifying>> PRESSUPOST : DECIMAL(9, 2)
TELPRIVAT : CHAR(10) DATAINICI : DATE
TELEFON : CHAR(10) +dirigeix +sDirigit
DATAFI : DATE
EMAIL : CHAR(20) ENTITATFINAN : CHAR(20)
0..1 0.. *
CATEGORIA : CHAR(10) NUMDEP : SMALLINT
DESP ATX : SMALLINT PROFESSOR_NUMDEP : SMALLINT
NUMDEP : SMALLINT NIU : SMALLINT
sunrangnumric definitsobrelarelaciqueindicael
nmerodocurrnciesdelarelaci.
Cardinalitatcostattaulamare:1(valorsnulsnopermesosaclau
externa),0..1(Nulpermsaclauexterna)
Cardinalitatcostattaulafilla:1,0..*,1..*,0..n,1..n,etc.
Relacionsdemoltsamolts eneldiagramadeclasses
shandedividir,enelDER,mitjananttaulesassociaci
(intersecci).Aquestestaulespodenemmagatzemar
informacilligadadirectamentalarelaci.
4.6
Cardinalitatdelesrelacions(II)
Diagrama de classes Diagrama dentitat - relaci
DEPARTAMENT
NUMDEP : SMALLINT
DEPARTAMENT NUMDEP : SMALLINT
NOMDEP : CHAR(1)
NUMDEP : Integer ADREA : CHAR(1)
NOMDEP : String
<<PK>> PK_DEPARTAMENT0()
ADREA : String
1 1
<<Identifying>>
<<Identifying>>
1 1
1..* 0..*
PROFESSOR PROJECTE
1..* NIU : SMALLINT
PROFESSOR 0..* DNI : CHAR(10)
IDPROJECTE : SMALLINT
TITOL : CHAR(50)
NIU : Integer PROJECTE NOM : CHAR(50)
ADREA : CHAR(100) <<Non-Identifying>>
DESCRIPCIO : CHAR(400)
PRESSUPOST : DECIMAL(9, 2)
DNI : String IDPROJECTE : Integer TELPRIVAT : CHAR(10)
DATAINICI : DATE
TELEFON : CHAR(10) +dirigeix +sDirigit
NOM : S tring TITOL : String DATAFI : DATE
EMAIL : CHAR(20)
0..* ENTITATFINAN : CHAR(20)
ADRE A : S tring DESCRIPCIO : String CATEGORIA : CHAR(10)
0..1
NUMDEP : SMALLINT
TELPRIVAT : S tring PRESSUPOST : Double DESPATX : SMALLINT
PROFESSOR_NUMDEP : SMALLINT
TELEFON : String 0..1 0.. * DATAINICI : Date
NUMDEP : SMALLINT
NIU : SMALLINT
0..*
+participa +membres 0..*
PARTIC-PROJECTE
<<PK>> PK_13()
<<FK>> FK_14()
<<FK>> FK_15()
<<Index>> TC_110()
<<Index>> TC_111()
Taula associaci
4.6
Vistes
Unavista otaulavirtual esdefineixcomunacomponentdelabasededades
quefuncionacomunataulaperquenotexistnciaperellamateixa.
Espotderivardunaomstaulesovistesmitjanantlestereotip<<Derived>>.
PROFESSOR PROJECTE
NIU : SMALLINT IDPROJECTE : S MAL LINT
DNI : CHAR(10 )
TITOL : CHAR(50)
NO M : CHAR(5 0)
DESCRI PCIO : CHAR(400)
ADREA : CHAR(100)
PRESSUPOST : DECIM AL(9 , 2)
TELP RI VAT : CHAR(10) DATAINICI : DAT E
TELE FON : CHAR(10) DATAFI : DATE
EM AI L : CHAR(20)
ENTITA TFINAN : CHAR(20)
CATEGORIA : CHA R(10 )
NUMDE P : SMALLINT
DESPATX : SMA LLINT
PROFESSOR_ NUMDEP : SMA LLINT
NUMDE P : SM ALLI NT
NIU : SMALLINT
<<PK >> P K_PROFES SOR1()
<<PK>> P K_PROJECTE2()
<<Unique>> TC_ PRO FESSOR1()
<<FK>> FK_ PRO JECTE 1()
<<Unique>> TC_ PRO FESSOR0()
<<FK>> FK_ PRO JECTE 3()
<<FK>> FK_ PRO FESSOR0()
PROFESSOR PROJECTE
INFO_PROJECTE
IDPROJECTE : PROJECTE.IDPROJECTE
TITOL : PROJECTE.TITOL
DESCRIPCIO : PROJECTE.DESCRIPCIO
PRESSUPOST : PROJECTE.PRESSUPOST
DATAINICI : PROJECTE.DATAINICI
DATAFI : PROJECTE.DATAFI
ENTITATFINAN : PROJECTE.ENTITATFINAN
NUMDEP : PROJECTE.NUMDEP
PROFESSOR_NUMDEP : PROJECTE.PROFESSOR_NUMDEP
NIU : PROJECTE.NIU
COL_22 : PROFESSOR.NIU
DNI : PROFESSOR.DNI
NOM : PROFESSOR.NOM
ADREA : PROFESSOR.ADREA
TELPRIVAT : PROFESSOR.TELPRIVAT
TELEFON : PROFESSOR.TELEFON
161
EMAIL : PROFESSOR.EMAIL
CATEGORIA : PROFESSOR.CATEGORIA
DESPATX : PROFESSOR.DESPATX
COL_23 : PROFESSOR.NUMDEP
4.6
CorrespondnciaentrediagramadeclassesiDER
Diagrama classes Diagr entitat - relaci Resultats
Associaci o agregaci Relaci no identificable Cada associaci o agregaci es transforma en una relaci no
identificable entre les taules apropiades.
Classe associaci Taula intersecci Cada classe associaci es transforma en una taula
intersecci amb columnes addicionals (no claus primries o
externes) que emmagatzemen els atributs de la relaci.
Component No transformat
Composici Relaci identificable Cada composici es transforma en una relaci identificable
entre les taules apropiades.
Generalitzaci (herncia) Taula separada Cada subclasse es transforma en una taula separada. La
classe base es transforma en una taula mare amb una relaci
identificable (1..*) a cada taula de subclasse.
Operaci No transformat
Paquet (mdul) Esquema
Associaci qualificada Taula intersecci Cada associaci qualificada es transforma en una taula
intersecci amb una clau primria addicional.
4.6
Diagramadeclasses.Exemple
PROVEIDOR
PRODUCTE
IDPROV : Integer 0. .* 0..* IDPROD : Integer
NOM : String
NOM : String
ADREA : String
PREU : MONEDA
TELEFON : String
0..*
SUBMINIST RAME NT
LINIA_COMANDA
QUANTITAT : Integer QU AN TITAT : Inte ger
0. .*
COMANDA
NUMCOMANDA : Integer
DATA : Date
0. .*
1
CLIENT EMPLEAT
DNI : String NUMEMPLEAT : Integer
NOM : String 0. .* 1 NOM : String
ADREA : String TELEFON : String
TELEFON : String SOU : MONEDA
EMAIL : Integer BONUS : MONEDA
CATEGORIA : Integer
CLIENT_FID
DATAALTA : Date
PUNTS : Integer
ANIVERSARI : Date 163
4.6
Diagramadentitatrelaci.Exemple
LINIA_COMANDA
PROVEIDOR PR ODUCTE <<Identifying>> IDPROD : SMALLINT
IDPROV : SMALLINT IDPROD : SMALLINT DNI : CHAR(10)
NOM : CHAR(20) NOM : CHAR(20) NUMCOMANDA : SMALLINT
ADREA : CHAR(100) PREU : MONEDA 1 0..* QUANTITAT : SMALLINT
TELEFON : CHAR(20)
<<PK>> PK_PRODUCTE0() <<PK>> PK_LINIA_COMANDA6()
<<PK>> PK_PROVEIDOR1() <<FK>> FK_LINIA_COMANDA10()
1 1
<<FK>> FK_LINIA_COMANDA12()
<<Identifying>> 0..*
<<Identifying>>
SUBMIN ISTRAMENT
COMA ND A
IDPROD : SMALLINT
IDPROV : SMALLINT NUMCOMANDA : SMALLINT
QUANTITAT : SMALLINT DATA : DATE
DNI : CHAR(10)
<<PK>> PK_SUBMINISTRAMENT2()
<<FK>> FK_SUBMINISTRAMENT1() <<PK>> PK_COMANDA5()
<<FK>> FK_SUBMINISTRAMENT2() <<FK>> FK_COMANDA11()
0..*
<<Identifying>>
1
MONEDA CLIENT
(from Dominis) DNI : CHAR(10)
MONEDA : DECIMAL(9, 2) NOM : CHAR(20)
ADREA : CHAR(100)
EMPLEAT
CLIENT_FID
TELEFON : CHAR(20) NUMEMPLEAT : SMALLINT
DATAALTA : DAT E
PU NTS : INTEGER
<<Identifying>> NUMEMPLEAT : SMALLINT
+compra a +v en a NOM : CHAR(20)
EMAIL : SMALLINT TELEFON : CHAR(10)
AN IVERSARI : D ATE
0..1 1 0..* <<Non-Identifying>>
1 SOU : MONEDA
DNI : CHAR (10)
<<PK>> PK_CIENT3() BONUS : MONEDA
<<FK>> FK_CLIENT14() CATEGORIA : SMALLINT
<<PK>> PK_CLIENT_FID16()
<<Check>> CODIPOSTAL()
<<FK>> FK_CLIENT_FID21() <<PK>> PK_EMPLEAT7()
<<Trigger>> COMPACTAR()
<<Check>> CODIPOSTAL() comprov a CP
<<Index>> NOMCLIENT() v alid dins domini
<<Unique>> EMAIL_UNIC() d'adrea
compacta taula
desprs d'esborrar 164
(ev ent) un registre
4.6
GeneracicodiSQL
CREATE TABLE PRODUCTE ( CREATE TABLE CLIENT_FID (
IDPROD SMALLINT NOT NULL, DATAALTA DATE NOT NULL,
NOM CHAR ( 20 ) NOT NULL, PUNTS INTEGER NOT NULL,
PREU DECIMAL ( 9, 2 ) NOT NULL, ANIVERSARI DATE NOT NULL,
CONSTRAINT PK_PRODUCTE0 PRIMARY KEY (IDPROD) DNI CHAR ( 10 ) NOT NULL,
); CONSTRAINT PK_CLIENT_FID16 PRIMARY KEY (DNI)
CREATE TABLE PROVEIDOR ( );
IDPROV SMALLINT NOT NULL, CREATE TABLE LINIA_COMANDA (
NOM CHAR ( 20 ) NOT NULL, IDPROD SMALLINT NOT NULL,
ADREA CHAR ( 100 ) NOT NULL, DNI CHAR ( 10 ) NOT NULL,
TELEFON CHAR ( 20 ) NOT NULL, NUMCOMANDA SMALLINT NOT NULL,
CONSTRAINT PK_PROVEIDOR1 PRIMARY KEY (IDPROV) QUANTITAT SMALLINT NOT NULL,
); CONSTRAINT PK_LINIA_COMANDA6 PRIMARY KEY (DNI, NUMCOMANDA,
CREATE TABLE CLIENT ( IDPROD)
DNI CHAR ( 10 ) NOT NULL, );
NOM CHAR ( 20 ) NOT NULL, CREATE TABLE COMANDA (
ADREA CHAR ( 100 ) NOT NULL, NUMCOMANDA SMALLINT NOT NULL,
TELEFON CHAR ( 20 ) NOT NULL, DATA DATE NOT NULL,
NUMEMPLEAT SMALLINT NOT NULL, DNI CHAR ( 10 ) NOT NULL,
EMAIL SMALLINT NOT NULL, CONSTRAINT PK_COMANDA5 PRIMARY KEY (DNI, NUMCOMANDA)
CONSTRAINT PK_CIENT3 PRIMARY KEY (DNI), );
CONSTRAINT EMAIL_UNIC UNIQUE (EMAIL), CREATE TABLE SUBMINISTRAMENT (
CONSTRAINT CODIPOSTAL CHECK () IDPROD SMALLINT NOT NULL,
); IDPROV SMALLINT NOT NULL,
CREATE TABLE EMPLEAT ( QUANTITAT SMALLINT NOT NULL,
NUMEMPLEAT SMALLINT NOT NULL, CONSTRAINT PK_SUBMINISTRAMENT2 PRIMARY KEY (IDPROV, IDPROD)
NOM CHAR ( 20 ) NOT NULL, );
TELEFON CHAR ( 10 ) NOT NULL,
SOU DECIMAL ( 9, 2 ) NOT NULL,
BONUS DECIMAL ( 9, 2 ) NOT NULL,
CATEGORIA SMALLINT NOT NULL,
CONSTRAINT PK_EMPLEAT7 PRIMARY KEY (NUMEMPLEAT)
); 165
4.6
GeneracicodiSQL
CREATE INDEX NOMCLIENT ON CLIENT (NOM);
ALTER TABLE CLIENT ADD CONSTRAINT FK_CLIENT14 FOREIGN KEY (NUMEMPLEAT) REFERENCES EMPLEAT (NUMEMPLEAT) ON
DELETE NO ACTION ON UPDATE NO ACTION;
ALTER TABLE CLIENT_FID ADD CONSTRAINT FK_CLIENT_FID21 FOREIGN KEY (DNI) REFERENCES CLIENT (DNI) ON DELETE NO
ACTION ON UPDATE NO ACTION;
ALTER TABLE LINIA_COMANDA ADD CONSTRAINT FK_LINIA_COMANDA10 FOREIGN KEY (IDPROD) REFERENCES PRODUCTE
(IDPROD) ON DELETE NO ACTION ON UPDATE NO ACTION;
ALTER TABLE LINIA_COMANDA ADD CONSTRAINT FK_LINIA_COMANDA12 FOREIGN KEY (DNI, NUMCOMANDA) REFERENCES
COMANDA (DNI, NUMCOMANDA) ON DELETE NO ACTION ON UPDATE NO ACTION;
ALTER TABLE COMANDA ADD CONSTRAINT FK_COMANDA11 FOREIGN KEY (DNI) REFERENCES CLIENT (DNI) ON DELETE NO
ACTION ON UPDATE NO ACTION;
ALTER TABLE SUBMINISTRAMENT ADD CONSTRAINT FK_SUBMINISTRAMENT1 FOREIGN KEY (IDPROD) REFERENCES PRODUCTE
(IDPROD) ON DELETE NO ACTION ON UPDATE NO ACTION;
ALTER TABLE SUBMINISTRAMENT ADD CONSTRAINT FK_SUBMINISTRAMENT2 FOREIGN KEY (IDPROV) REFERENCES
PROVEIDOR (IDPROV) ON DELETE NO ACTION ON UPDATE NO ACTION;
166
4.6
Aspectesdetraduccialmodelrelacional
Taulesintersecci(classesassociaci)
Jerarquiadespecialitzacientreclasses
167
4.6
Taulesintersecci(classesassociaci)
Unataulaintersecciapareixquan:
Esvolemmagatzemaratributsquesemnticamentestanassociatsalarelaci.
Duestaulesestanrelacionadesambunarelacidemoltsamolts.
Traduccialmodelrelacional.Lataulainterseccit:
laclauprimriadecadaentitatparticipant
elsatributsdescriptiusdelarelaci.
PROFESSOR
NIU : SMALLINT
DNI : CHAR(10) DEPARTAMENT
NOM : CHAR(50) TREBALLA EN
NUMDEP : SMALLINT
ADREA : CHAR(100) NIU : SMALLINT
<<Identifying>> <<Identifying>> NUMDEP : SMALLINT
TELPRIVAT : CHAR(10) 1 1 NUMDEP : SMALLINT 0.. * 1
NOMDEP : CHAR(1)
TELEFON : CHAR(10) DESDE : DATE
ADREA : CHAR(1)
EMAIL : CHAR(20)
CATEGORIA : CHAR(10)
DESPATX : SMALLINT
EMPLEAT
EMPLEAT DNI : CHAR(2 0)
NOM : CHAR(20)
DNI : String PARK ING : S MALLINT
NOM : S tring
<<PK>> PK_EMPLE AT9()
PARKING : Integer 1
1
<<Identifying>>
<<Identifying>>
0..1
0..1
169
4.6
Jerarquiadespecialitzacientreclasses
Traduccidunajerarquiadespecialitzacientreclassesamodeldedades:
2aopci:Crearunarelaciperaperacadaespecialitzaci.Lainformacidela
generalitzacisafegeixatotes.
EMPLEAT
DNI : String
NOM : S tring
PARKING : Integer EMPHORES
EMPFIX
DNI : CHAR(20)
DNI : CHAR(20)
NOM : CHAR(20)
NOM : CHAR(20)
PARKING : SMALLINT
PARKING : SMALLINT
Hores treballades : INTEGER
IdContracte : INTEGER
Cost hora : INTEGER
EMPHORES EMPFIX
Hores treballades : Integer IdContracte : Integer
Cost hora : Integer
170
4.6
Jerarquiadespecialitzacientreclasses
CREATE TABLE Empleat ( DNI: CHAR(11),
Nom: CHAR(20), Opci 1
Parking: INTEGER,
PRIMARY KEY (DNI));
CREATE TABLE EmpHores ( hores_treballades: REAL,
cost_hora: REAL,
DNI: CHAR(11),
PRIMARY KEY (DNI),
FOREIGN KEY (DNI) REFERENCES Empleat
ON DELETE CASCADE);
CREATE TABLE EmpFixe ( IdContracte:CHAR(10),
DNI: CHAR(11),
PRIMARY KEY (DNI),
FOREIGN KEY (DNI) REFERENCES Empleat
ON DELETE CASCADE);