Introducció a l’Enginyeria del Programari
Transformació de models
Model conceptual
Què hi ha en aquest material
2
Models quasi-equivalents
Models que són equivalents si els hi afegim determinades restriccions semàntiques
En el modelat sovint hem d’escollir entre alternatives quasi- equivalents
Transformació de models
Motiu del seu estudi
Ens permet entendre el lligam entre uns models quasi-equivalents força recurrents
Supressió de les associacions M-N
Supressió dels conceptes associatius
Recomanacions per a la modelització
Cal considerar models alternatius i analitzar-ne la seva equivalència
3
Models quasi-equivalents
Transformació de models
4
●
Sovint es parla de mecanismes de transformació de models
– Són transformacions gràfiques
– Generen un nou model amb algun valor afegit respecte l'original:
simetria, simplicitat, claredat,...
– Per tal que el model original i el transformat siguin semàntica- ment equivalents cal afegir restriccions als models
Models equivalents
5
Dos models són semànticament equivalents si
Contenen la mateixa informació
Formalment molt difícil d'expressar
Permeten exactament els mateixos enllaços, i cap més
Models quasi-equivalents
6
●
Ex. Models obtinguts per transformació
Models que poden esdevenir equivalents sota
certes restriccions
La importància de les transformacions
7
En el modelat sovint apareixen alternatives que es corresponen a models quasi-equivalents
El coneixement de les subtils diferències entre models quasi- equivalents ens pot ajudar en les decisions de modelat
L'estudi de les transformacions de models és pertinent
8
Supressió de les associacions
M-N
Supressió de les associacions M-N
9
A m assoc n B
TrForaMN
id
A 1 assoc1 n Assoc
1 B m assoc2
L’associació suprimida es converteix en
un concepte
El nou concepte fa de pont entre els conceptes que estaven associats.
Per tant calen dues noves associacions 1
2
Observem la inversió en les multiplicitats
3
Una transformació no vàlida
●
L'associació estada de M1 i el concepte Estada de M2 són coses totalment diferents.
– Tenen en comú que volen modelar la mateixa informació
●
M2 viola el principi de l'existència de l'identificador
– Cada :Estada queda identificada amb el parell <:Castell, :Hoste>
– M2 és una transformació vàlida en el diagrama de components (disseny), o en el diagrama de classes (implementació); però no és vàlida en el model conceptual (especificació)
10
Castell Hoste Castell * Estada * Hoste
M1 M2
* estada * 1 1
Una altra cosa és que assumim l’existència d’un
idEstada
on qui
La transformació correcta
●
M3 és un model conceptual vàlid
●
M3 conté un atribut (el codi identificador) no present a M1
–
Pregunta del milió:
● Aquest atribut (present a M3 però no a M1) conté informació que a M1 és inexistent??
●
Ni a M1 ni a M3 hi ha restriccions sobre els enllaços
11
M1 M3
Castell * estada * Hoste
Castell * Estada * Hoste
Id codi
1 1
qui on
Recordem que la l’equivalènciaexigeix mantenir la mateixa informació
Obligatorietat de l’estada
Què passaria si només tenim informació dels hostes que han fet alguna estada???
N’hi ha prou en exigir l’obligatorietat escaient en ambdós models
A M1 obligar l’estada és obligar un dels extrems de l’associació estada
A M3 obligar l’estada és fer que aquesta sigui obligada en l’associació que participa juntament amb l’hoste
12
M1 M3
Castell * estada * Hoste
Castell * Estada * Hoste
Id codi
1 1
qui on
Optativitat de l’hoste
Què passaria si a M3 fem que el rol d'hoste sigui optatiu???
El model M3 permet enllaços no permesos a M1
Com indiquem a M1 que un :Castell té una estada sense cap :Hoste?
13
M1 M3
Castell * Estada * Hoste
Id codi
1 1
qui
Castell * estada * Hoste on
Optativitat del castell
Què passa si a M3 admetem que en una estada el rol on del castell sigui optatiu?
Analitzeu si M1 i M3 permeten els mateixos enllaços
14
Anàlisi de la transformació TrForaMN
15
Sigui Mb el model resultant de suprimir una
associació M-N de Mb (segons la transformació TrForaMN)
Mb conté un atribut inexistent a Ma
És l’identificador del concepte introduït per a modelitzar l’associació suprimida
Segons les restriccions d’optativitat/obligatorietat explicitades, Mb pot contenir enllaços no permesos a Ma
id
A 1 assoc1 * Assoc 1 B
* assoc2 A m assoc n B
Pregunta del milió.
Aquest nou atribut conté informació que a
Ma és inexistent??
Ma Mb
Quasi equivalència en la TrForaMN (1)
16
Per tal que Ma i el seu transformat Mb siguin equivalents cal exigir (com a mínim):
L’atribut identificador del nou concepte de Mb no sigui semànticament significatiu
L’id apareix per necessitat del model, però no té cap significat per a l’usuari
L’obligatorietat de l’extrem monoavaluat de les dues noves associacions de Mb
A 1 assoc1 * Assoc 1 B
* assoc2 A m assoc n B
Ma Mb
Quasi equivalència en la TrForaMN (2)
17
Per tal que Ma i el seu transformat Mb siguin equivalents també cal assegurar la unicitat
A M1, donat un :A i un :B hi ha un únic enllaç assoc
En el transformat M2 hi poden haver :Assoc distints pel mateix parell <:A,:B>
Cal afegir al transformat Mb una restricció semàntica
Ma i TrForaMN(Ma) són quasi-equivalents
id
A 1 assoc1 * Assoc 1 B
* assoc2 A m assoc n B
Ma Mb
Amb una RS, i assumint que l’id d’Assoc no és significatiu, els models són equivalents
Quasi equivalència en la TrForaMN (3)
18
Donat un model Ma i el seu transformat Mb segons TrNoMN cal tenir present que:
Els models no són equivalents, per mor de l'aparició d'un nou atribut identificador
Si la diferència ocasionada per aquest identificador la consideréssim irrellevant, els dos models són quasi- equivalents
Cal afegir restriccions per assegurar la possible existència dels mateixos enllaços
Cal afegir restriccions per assegurar la unicitat d’assoc
A 1 assoc1 * Assoc
1 B
* assoc2 A m assoc n B
19
Supressió dels conceptes
associatius
Supressió dels conceptes associatius
20
TrForaCA
id
A 1 assoc1 n C
1 B m assoc2
El concepte suprimit romà, però transformat en un concepte no
associatiu
El nou concepte fa de pont entre els conceptes que estaven associats.
Per tant calen dues noves associacions 1
2
A m n B
C
3
Dues transformacions o una?
21
Les transformacions TrNForaMN i TrForaCA proporcionen exactament el mateix model
Això és normal si considerem que un concepte associatiu és l’espai d’atributs d’una associació
En reconvertir l’associació en un concepte, ja tenim un lloc on guardar-ne els atributs
Supressió d’un concepte associatiu
22
cap de setmana
nom
#habitacions nom
adreça telèfon
Hoste m n Castell
Estada *
Serveis
ús *
nom adreça telèfon
Hoste
nom
#habitacions
Castell
cap de setmana
Estada m
1 n 1
Serveis
*
ús *
qui on
M4
M5
El preu de les begudes
●
El preu d’una beguda del servei
d’habitacions depèn del seu format:
ampolla, got petit, got gran, etc.
23
Preu
Codi id Moneda pvp
Beguda té * * Format
format
Beguda Format
Preu Moneda pvp
* *
M6 M7
Models no equivalents
1
Models no equivalents
1
Diferents enllaços possibles (1)
●
A M6 cada :Preu s'enllaça amb un sol parell
<:Beguda,:Format>
–
No és possible que un mateix parell
<:Beguda,:Format> tingui dos :Preus diferents
●
A M7 res no impedeix que un mateix parell
<:Beguda,:Format> tingui dos :Preus diferents
24
Preu Codi id Moneda pvp
Beguda té * * Format
format
Beguda Format
Preu Moneda pvp
* *
M6 M7
1
Diferents enllaços possibles (2)
25
Begudes Preus Formats
Preu Codi id Moneda pvp
Beguda té * * Format
format
Una <:Beguda, :Format>
amb dos :Preus
1:N M:1
1
Una <:Beguda> amb dos :Preus, corresponents a dos :Formats diferents
Un <:Format> amb dos :Preus corresponents a dues :Begudes diferents
Anàlisi de la transformació TrForaCA
26
●
Sigui Mb el model resultant de suprimir una associació M-N de Ma (segons la transformació TrForaCA)
– Mb conté un atribut inexistent a Ma
● És l’identificador del concepte introduït per a modelitzar el concepte associatiu suprimit
● A Ma el concepte associatiu no té cap atribut identificador. A Mb el nou concepte sí té un atribut identificador
– Segons les restriccions d’optativitat/obligatorietat explicitades, Mb pot contenir enllaços no permesos a Ma
Els enllaços
d'associacions M:N s'identifiquen amb la identificació de les realitzacions dels seus extrems
A 1 assoc1 n C
1 B m assoc2
A m n B
TrForaCA
Pregunta del milió. Aquest nou atribut conté informació
que a Ma és inexistent??
Quasi equivalència en la TrForaCA (1)
27
Per tal que Ma i el seu transformat Mb siguin equivalents cal exigir:
L’atribut identificador del nou concepte de Mb no sigui semànticament significatiu
L’id apareix per necessitat del model, però no té cap significat per a l’usuari
L’obligatorietat de l’extrem multiavaluat de les dues noves associacions de Mb
La unicitat de C per cada parell <:A,:B>
Ma i TrForaCA(Ma) són quasi-equivalents
id A 1 assoc1 n C
1 B m assoc2
A m n B
Ma
CMb
Amb una RS, i assumint que l’id d’Assoc no és significatiu, els models són equivalents
Quasi equivalència en la TrForaCA (2)
28
Donat un model Ma i el seu transformat Mb segons TrForaCA cal tenir present que:
Els models no són equivalents. per mor de l'aparició d'un nou atribut identificador
Si la diferència ocasionada per aquest identificador la consideréssim irrellevant, els dos models són quasi-equivalents
Cal afegir restriccions per assegurar la possible existència dels mateixos enllaços
Cal afegir restriccions per assegurar la unicitat d’assoc
A 1 assoc1 n C
1 B m assoc2
A m n B
29
Models alternatius
Entitat vs enllaç
30
● En el modelat pot aparèixer una idea (estada, per exemple) que no tenim clar si modelar-la com a concepte o com associació entre conceptes
● Si ens decidim per modelar amb un concepte, cal tenir present:
– No podem usar com a atributs les claus foranes dels conceptes interrelacionats
● Les claus foranes formen part d'una decissió de disseny o d'implementació
– Cal afegir un atribut identificador
● Les dues alternatives de modelat són models no equivalents, però possiblement igualment vàlids
– Apareixen com a alternativa de modelat, no pas com a transformació de models
Castell * Estada * Hoste
Castell * estada * Hoste
Associatiu vs no associatiu
31
●
Davant l'alternativa d'un concepte com a associatiu o no, cal tenir present que:
–
En la supressió de les associacions M:N els models no són equivalents, per mor de l'aparició d'un nou atribut
identificador
–
Si la diferència ocasionada per aquest identificador la consideréssim irrellevant, els dos models són quasi- equivalents
● Cal afegir restriccions per assegurar la possible existència dels mateixos enllaços
Preu *
Codi id Moneda pvp
Beguda té * * Format
format
Beguda Format
Preu Moneda
* *
M6 M7
Recomanacions
32