Introducció a l’Enginyeria del Programari
Manual del bon ús
Model de comportament Model conceptual
Què hi ha en aquest material
2
Atributs
Quin és el paper dels atributs
Atributs multiavaluats
Quins atributs cal explicitar, i amb quin tipus
Concepte associatiu
Usos: espai d’atributs, aglutinador, marca d’unicitat
Identitat entre associació i concepte associatiu
Identificador
Identificador dels conceptes associatius
Identifiquem l’enllaç a partir de les entitats enllaçades
Principi de l’existència de l’identificador
L’identificador és un atribut propi (cas dels conceptes) o un conjunt d’atributs externs (cas dels conceptes associatius)
Arguments dels ES
Per simplificar suposem que són entitats, no pas identificadors
3
Atributs i interrelacions
Recordatori:
Atributs
4
● Atribut
– Propietat rellevant que tenen totes les realitzacions concretes d'un mateix concepte abstracte
● Ex. Color color
● Valor
– Cadascuna de les realitzacions concretes d'un mateix atribut
● Ex. Blau
● L'atribut modela una propietat; en donar valor a l’atribut definim una característica de l‘entitat
● Aquesta Cadira és de Color Blau Color color = Blau
De fet l’atribut és un conjunt de valors (el tipus: Color) i el nom que usem per referenciar l’atribut (color)
El concepte Cadira té una propietat Color, que en aquesta realització concreta o entitat té el valor Blau
Consideracions sobre els atributs
5
● Han d'aparèixer els requerits per l'anàlisi
● Res d'atributs de les classes d'implementació
● Res de claus foranes
● Aquestes apareixen com a mecanisme d'implementació de les interrelacions
● Tipus
– Només a nivell semàntic
● Ex. Comptador, Persona, Adreça, Data, Color
– Res de tipus de màquina
● Ex: int, char, string Color c_potes;
Color c_seient;
!!
Recordatori:
Propietat multiavaluada
7
Per representar una propietat multiavaluada usem una associació entre el concepte que té la propietat i un concepte que representa els valors possibles
L’associació expressa diferents enllaços amb una mateixa entitat e
Cada enllaç és un valor diferent per a la propietat determinada sobre e
Si en la multiavaluació és possible repetir valors, cal introduir un concepte que tingui el valor com a
atribut
Ex. Un estudiant treu dos sisos en controls diferents de la mateixa assignatura
És a dir, cal analitzar la compartició d’entitats i/o valors
Recordatori:
Valors múltiples
8
Sigui un concepte C amb un atribut a multiavaluat
Llavors
Cal introduir un concepte A que encapsuli els valors individuals de l’atribut
L’atribut de C s’ha d‘expressar amb una interrelació entre C i el nou concepte A
a*
C C
...
A
? a *
Multiplicitat
Depèn de la
compartició TrMono
Recordatori:
Valors amb estructura
9
Sigui un concepte C amb un atribut a tal que els seus valors tenen estructura interna
Llavors
Cal introduir un concepte A que encapsuli l’estructura
L’atribut de C s’ha d‘expressar amb una interrelació entre C i el nou concepte A
a
C C
...
A
? a 1
Estructura
Depèn de la
compartició TrAtom
Recordatori:
Usos dels conceptes associatius
10
En UML un concepte associatiu l’usem com un:
Espai d’atributs
És el mecanisme que ofereix l’UML per introduir atributs en una interrelació
Aglutinador
Per tal de poder expressar una propietat
multiavaluada d’una interrelació caldria una interrelació entre la primera interrelació i els
valors de la propietat
Com que això no és possible introduïm un concepte associatiu que és sobre qui definim la interrelació que expressa la propietat
multiavaluada
Marca d’unicitat
Cada entitat d’un concepte associatiu és per a un únic enllaç
Per cada enllaç hi ha una única entitat associativa
En el model ER les interrelacions tenen espai
pels atributs
En el model ER els conceptes associatius
s’introdueixen amb aquesta finalitat
Consideracions sobre els conceptes i associacions
11
Han d’aparèixer tots els conceptes i associacions rellevants pel nostre problema
En el cas que les necessitats diagramàtiques ens facin aparèixer nous conceptes o associacions:
Cal analitzar la bondat d’aquestes aparicions
Cal decidir si cal forçar el diagrama fins a aquest extrem o és preferible adjuntar una restricció semàntica
12
Identificadors i conceptes
associatius
Recordatori:
Identificador
13
●
Per tal de poder diferenciar totes les
realitzacions d'un mateix concepte, assumim que tot concepte té un atribut, que anomenem identificador, tal que:
– És obligatori
● En tot concepte (l'atribut)
● En tota entitat (el valor)
– El seu valor és únic
● No hi ha dues realitzacions del mateix concepte que el realitzin (l'identificador) amb el mateix valor
Identificador d’una associació
14
És innecessari
Com a conseqüència de la premissa de simplicitat sobre els models, el considerem prohibit
A nivell dels enllaços, si coneixem les entitats enllaçades coneixem l’enllaç
Sabem que és únic
Per identificar un enllaç n’hi ha prou en expressar l’associació, i identificar les entitats enllaçades
Com expressar un enllaç
15
Associació m-n
Cada entitat d’un extrem de l’associació es pot enllaçar amb múltiples enllaços de l’altre extrem
Per conèixer un enllaç n’hi ha prou en conèixer els seus extrems
Associació 1-n
Cada entitat de l’extrem n de l’associació es pot enllaçar amb una única entitat de l’altre extrem
Per conèixer un enllaç n’hi ha prou en conèixer l’entitat de l’extrem multiavaluat de l’associació
Associació 1-1
Cada entitat d’un extrem de l’associació només es pot enllaçar amb un enllaç de l’altre extrem
Per conèixer un enllaç n’hi ha prou en conèixer-ne un qualssevol dels extrems
Identificador dels conceptes associatius
16
Per identificar una realització d'un concepte
associatiu n'hi ha prou en identificar l'enllaç de l'associació al que s'enllaça aquesta realització
És a dir, cal donar els identificadors de les realitzacions dels extrems de l'associació associada al concepte associatiu (no pas tots, només els imprescindibles)
Per identificar una realització de C n'hi ha prou en indicar l'enllaç corresponent de l'associació nom.
:nom = <:A, :B>
Els conceptes associatius no tenen atribut identificador
La identificació s'infereix del diagrama, sense necessitat de cap atribut propi A
C nom B
* *
Atributs i identificadors
17
En el primer cas podem explicitar o no l’atribut identificador
En el segon cas l’identificador no és pas cap atribut propi
Els identificadors estan formats per un sol atribut (cas dels conceptes) o bé per la concatenació
d’atributs externs (cas dels conceptes associatius)
Existència de l’identificador
18
• Tot concepte té un atribut identificador
• Els conceptes associatius no tenen cap atribut identificador
Principi
Recordatori:
Identitat i igualtat
19
La identitat implica igualtat
Dues entitats que són la mateixa, no poden tenir valors diferents en els atributs
Considerem que estem observant les entitats en el mateix moment
La igualtat no implica identitat
Dues entitats distintes (que no són la mateixa; que es poden distingir una de l’altra) poden ser iguals (poden tenir els mateixos valors en els seus atributs)
Identitat
Dues entitats són idèntiques si són la mateixa
Igualtat
Dues entitats són iguals si tenen els mateixos valors dels seus atributs
Per tant han de ser realitzacions del mateix concepte
Identitat entre enllaç i entitat associativa
20
Hi ha una identificació entre el concepte associatiu i l'associació que el defineix
Donat un concepte associatiu tenim l’associació
Donada l’associació, en cas d’existir, tenim el concepte associatiu
Hi ha una identificació entre una entitat
associativa i l‘enllaç sobre la que es defineix
Donat un enllaç tenim la realització del concepte associatiu
Donada una realització del concepte associatiu tenim un enllaç
Entitat
associativa:
Realització d’un concepte associatiu
L’entitat associativa és l’enllaç
Hi ha redundància de noms
L’associació i el concepte associatiu són el mateix; són idèntics
21
Pacient assignació CAP Metge de
Capçalera
1 *
Metge de capçalera
Pacient CAP
Assignació
* 1
M1 M2
Aquest model l’hem analitzat a
“Expressivitat dels conceptes associatius”
Identificadors i concepte associatiu
Té sentit que Metge de capçalera tingui com a identificador el nom del metge??
Penseu en:
De què ens informa l’identificador d’una entitat associativa?
Què necessitem per identificar una entitat associativa?
22
Pacient assignació CAP Metge de
Capçalera
1 *
M1
Identificadors i concepte associatiu (2)
Té sentit que Assignació tingui com a identificador el nom del metge??
L’atribut és el metge de capçalera o el seu nom??
24
Sol
Metge de capçalera
Pacient CAP
Assignació
* 1
M2
27
Arguments dels ES
Naturalesa dels arguments dels ES
28
En els contractes els arguments poden ser
Valors literals primitius
3, dilluns, 5-8-08, 10:23, ...
Entitats
c:Caminada
Identificadors
c:IdCaminada
De moment no ens plantegem si les entitats les passem com a tals o bé si només passem el seu identificador
Per simplificar, considerem els arguments com a entitats
Comunicació d’un enllaç
29
En el cas d’haver de comunicar una entitat
associativa, el que comunicarem seran les entitats sobre les que es defineix aquesta
Comunicació d’un enllaç
Si volem passar una proposta per paràmetre
haurem de passar un parell <agència, viatge>
Si volem passar una assignació per paràmetre haurem de passar un pacient
La multiplicitat (segurament errònia) ens evita haver de passar un
parell <pacient, cap>
30
Agència m n Viatge
Proposta m itinerari n Vol
Metge de capçalera
Pacient CAP
Assignació
* 1