scieee AI-readable full text Open interactive document viewer

Generació de valors d’identificació

Merenciano Saladrigas, Josep Maria

Abstract

En aquest material hi trobaràs: Mecanismes per a la generació dels valors d’identificació (Generació per comprovació; Generació única) / Variants (Individualitzció induïda; Autoindividualització;Individualització tardana; Individualització en l’emmagatzemador) / Principi de la individualització efectiva (Usem sempre la individualització gen l’emmagatzemador: el responsable d’emmagatzemar l’objecte també ho és de generar el seu identificador)

Full text

Ampliació a l’enginyeria del programari 20172 Josep M. Merenciano [email protected] Generació de valors d’identificació Què hi ha en aquest material AMEP Josep M. Merenciano 2 Mecanismes per a la generació dels valors d’identificació Generació per comprovació Generació única Variants Individualitzció induïda Autoindividualització Individualització tardana Individualització en l’emmagatzemador Principi de la individualització efectiva Usem sempre la individualització gen l’emmagatzemador: el responsable d’emmagatzemar l’objecte també ho és de generar el seu identificador AMEP Josep M. Merenciano 3 Mecanismes de generació d’identificadors Tipus d’identificador AMEP Josep M. Merenciano 4 Identificació externa L’usuari és qui decideix el valor d’identificació de cada realització L’usuari extern al sistema crea els identificadors Ell és el responsable de la unicitat dels valors S’aplica el principi de la Identificació robusta Identificació interna És el sistema qui decideix el valor d’identificació de cada realització El sistema crea els valors dels identificadors Només ens hem de preocupar dels casos d’identificació interna Identificadors essencials AMEP Josep M. Merenciano 5 Estem analitzant identificadors essencials Aquells que són consubstancials a l’objecte Per tant la creació del valor d’identificació ha de ser en el CU de creació de l’objecte El principi de Creador Orb (o Canònic) assegura que en aquest CU també s’emmagatzema l’objecte Per tant podem assumir l’existència d’un emmagatzematge A→B* de l’objecte creat Tipus de generació AMEP Josep M. Merenciano 6 Generació única (GU) Ex. Valor correlatiu Ex. Hora (en milisegons) de la petició Generació per comprovació (GPC) Usem un emmagatzematge de contrast per comprovar si el valor generat és únic 1. Generem un valor 2. El validem amb l’emmagatzematge de contrast Si l’emmagatzematge de contrast conté totes les realitzacions d’un mateix component, direm que el contrast és total; altrament direm que el contrast és parcial AMEP Josep M. Merenciano 7 GPC: Emmagatzematge de contrast Emmagatzematge de contrast AMEP Josep M. Merenciano 8 Suposem que a:A→B* és l’emmagatzematge de contrast Això significa que: abast(a:A→B*)és un espai d’identificació El valor d’identificació donat a un b:B∈abast(a:A→B*): Té sentit a a:A→B* En pot tenir en un c:C→B* tal que abast(c:C→B*)⊆abast(a:A→B*) En qualsevol altre cas o bé pot no servir per recuperar cap objecte, o bé l’objecte recuperat pot ser que no sigui el b:B Identificació essencial AMEP Josep M. Merenciano 9 La identificació ha de ser local o global L’emmagatzematge de contrast és el context de de localitat Si el contrast és total, l’àmbit és global El contrast permet donar un valor d’identificació diferent a cadascuna de les realitzacions d’un mateix component Consistència de la GPC AMEP Josep M. Merenciano 16 Demostració Suposem que creem a:A amb identificador id, i que no el posem en el contrast Quan intentem crear un nou objecte, com que a:A no està en el contrast, quan preguntem si podem crear un nou objecte a’:A amb identificador id, el mecanisme de comprovació ens dirà que endavant ¡! Tota objecte com a mínim ha d’estar en l’emmagatzematge de contrast Es tracta d’una assumpció un xic simplificadora, que no altera en res les conclusions Informació d’expertesa en la GPC AMEP Josep M. Merenciano 17 La informació necessària i suficient per a generar un valor d’identificació vàlid és l’emmagatzematge de contrast Qui crea l’identificador? AMEP Josep M. Merenciano 18 Individualització induïda (II) Generador d’identificadors Autoindividualització (AI) El propi objecte, durant la seva creació Individualització tardana (IT) L’add genera el valor d’identificació Individualització en l’emmagatzemador (IE) L’emmagatzemador, en el moment de fer l’add en l’emmagatzematge Com a cas particular, el creador de l’objecte Qui és el responsable de crear el valor d’identificació d’un objecte? Expert: Emmagatzematge de contrast @@@@Full de ruta AMEP Josep M. Merenciano 19 En el que segueix analitzarem, per cadascun dels mètodes acabats d’enunciar, qui ha de crear el valor d’identificació d’un objecte segon En cada cas analitzarem per separat els casos d’identificació i d’identificació no essencial Abans però plantegem uns qüestions comunes a tots els mètodes considerats Caraterístiques de la identificació essencial AMEP Josep M. Merenciano 20 Estem en el CU de creació de l’objecte El valor d’identificació que estem creant, un cop creat ja no es pot modificar Pot ser que no sigui l’únic identificador essencial de l’objecte Exemple: inscripció es manté simultàniament en un repositori centralitzat i en un repositori fragmentat per caminada En cas d’identificació contextual aquesta ha de ser local Tot objecte realització del mateix component té un context des d’on accedir-hi Caraterístiques de la identificació NO essencial AMEP Josep M. Merenciano 21 Podem estar en qualsevol CU Necessàriament l’objecte ja té un identificador essencial (local o global) La identificació contextual no té perquè se local La visibilitat d’identificació que estem considerant no té la seva inversa obligada AMEP Josep M. Merenciano 22 Situació Creo un objecte AX→B* amb x El poso a a CY→B* amb y Tinc dos id diferents Exemple RestaurantnumR→Critica*, GolafrenumG→Crítica No són un sunbpnjunt de l’altre AMEP Josep M. Merenciano 23 GPC: Individualitzció induïda GPC-II: Descripció del mecanisme AMEP Josep M. Merenciano 24 El creador de l’objecte objectiu rep l’identificador com a argument de la petició de creació Creador de l’objectiu És expert en la creació de l’objectiu L’expertesa però pot ser delegada En aquesta delegació hi pot haver el valor de l’identificador Cal un individualitzador que creï el valor de l’identificador Individualitzador Ha de tenir visibilitat sobre l’emmagatzematge de contrast No modifica l’emmagatzematge de contrast L’individualitzador no crea l’objecte objectiu L’emmagatzematge de contrast conté tots els objectes que individualitzem amb l’identificador Individualització induïda i inconsistències AMEP Josep M. Merenciano 25 L’individualitzador genera un identificador però no crea l’objecte identificat amb aquest valor Si abans d’usar el valor generat per a crear un objectiu algú demana un altre valor a l’individualitzador aquest pot retornar un valor repetit!!!! Tenim el perill de crear dos objectes amb el mateix valor de l’identificador La generació per comprovació (GPC) amb el mecanisme de la individualització induïda (II) no és una bona solució per a la creació del valor d’identificació IT per GPC: Descripció del mecanisme AMEP Josep M. Merenciano 32 El multiobjecte d’emmagatzematge és l’encarregat de crear el valor de l'identificador En concret se n’encarrega l’add La idea és que l’objecte no té valor d’identificació fins que no s’emmagatzema en un multiobjecte És coherent amb la idea que la identificació és per individualitzar dins d’un conjunt En aquest sentit s’assembla a la Individualització tardana(IT). La diferència és que en IE l’add() rep el valor d’identificació a emprar; i en IT és el procés d’afegir l’objecte al multiobjecte qui crea aquest valor Modificació de l’especificació dels multiobjectes AMEP Josep M. Merenciano 33 L’add() ha de: Crear el valor d’identificació Modificar el valor de l’atribut identificador, en el cas d’identificació global Retornar el valor d’identificació generat Perquè? Baixa la cohesió de l’add() Acoblament indesitjat Acobla l’emmagatzematge al mecanisme de creació del valor d’identificació Tot seguit ho analitzem Acoblament semàntic indesitjat AMEP Josep M. Merenciano 34 Que l’add generi el valor d’dentificació sembla tenir la seva lògica El multiobjecte sap qui conté: és expert en el contrast En afegir un nou objecte pot generar un nou valor d’identificació i assignar-li Però el mecanisme de generació queda ocult dins del propi multiobjecte L’usuari no hi pot incidir per crear el seu propi mecanisme Per exemple, no podem decidir si l'identificador és numèric o textual; és el multiobjecte qui ho decideix La manca de flexibilitat és resultat de l’acoblament indesitjat Dos mecanismes molt similars AMEP Josep M. Merenciano 35 GPC-IE i GPC-IT en són mecanismes molt similars Ambdós creen el valor d’identificació en les “proximitats” de l’add De fet, l’anàlisi és idèntica Tot seguit expressem les diferències fonamentals entre ambdós mecanismes, i passem a analitzar GPC-IE Les conclusions són les mateixes en ambdós casos A excepció de l’acoblament entre emmagatzematge i creació del valor d’identificació que tenim a IT Cal anar en compte en l’asincronia de la IE, que pot degenerar i ocasionar els mateixos problemes que la individualització induïda (II) Comparativa OT vs IE AMEP Josep M. Merenciano 36 IT IE L’emmagatzemador fa l’add, i rep d’aquest el valor d’identificació L’add retorna el valor d’identififcació L’emmagatzemador crea el valor d’identificació i l’envia a l’add L’add rep el valor d’identificació Dependència de l’emmagatzematge No es pot generar valor d’identificació sense fer l’emmagatzematge Independència de l’emmagatzematge Es pot generar valor d’identificació sense fer l’emmagatzematge Sincronia La creació del valor d’identificació i l’emmagatzematge són en el mateix moment Asincronía La creació del valor d’identificació i l’emmagatzematge no són en el mateix moment Dos mecanismes molt similars AMEP Josep M. Merenciano 37 GPC-IE i GPC-IT en són mecanismes molt similars IE L’emmagatzemador crea el valor d’identificació i l’envia a l’add L’add rep el valor d’identificació Es pot generar valor d’identificació sense fer l’emmagatzematge La creació del valor d’identificació i l’emmagatzematge són en el mateix moment IT L’emmagatzemador fa l’add, i rep el valor d’identificació L’add retorna el valor d’identififcació No es pot generar valor d’identificació sense fer l’emmagatzematge La creació del valor d’identificació i l’emmagatzematge no són en el mateix moment AMEP Josep M. Merenciano 38 Individualització en l’emmagatzemador (IE) IE per GPC: Descripció del mecanisme AMEP Josep M. Merenciano 39 Creem l’objecte, i en el moment d’introduir-lo en un multiobjecte, l’origen d’aquest li dóna el valor d’identificació A l’add() indiquem el valor d’identificació La idea és que l’objecte no té valor d’identificació fins que no s’emmagatzema en un multiobjecte És coherent amb la idea que la identificació és per individualitzar dins d’un conjunt En aquest sentit s’assembla a la Individualització tardana(IT). La diferència és que en IE l’add() rep el valor d’identificació a emprar; i en IT és el procés d’afegir l’objecte al multiobjecte qui crea aquest valor (i per tant l’add() l’ha de retornar) GPC IE Identificació global AMEP Josep M. Merenciano 40 Fins a cert punt, viola creació primerenca Fins que no es fa l’add() no tenim valor a l’atribut identificador Arguments que diuen que no hi ha violació Com veurem, la GPC-IE exigeix que si hi ha identificació global, l’emmagatzematge de creació ha de ser un repositori centralitzat I en aquest cas el contrast i l’emmagatzematge de creació conicideixen: Quan es crea l’objecte tot seguit s’emmagatzema El temps entre la creació i l’emmagatzematge és petit i no és visible des de l’exterior Arguments que diuen que sí que hi ha violació Com veurem, la Incorporació Tardana demana posposar l'emmagatzematge Augmenta el temps en què l’objecte no té emmagatzemador Però continua essent un estat no visible des de l’exterior GPC IE Global Argument anàleg per a GPC-IT Identificació contextual (1) AMEP Josep M. Merenciano 41 Demostració El context d’identificació local és un multiobjecte L’origen d’aquest multiobjecte és el creador i emmagatzemador de l’objecte Segons GPC-IE, en fer-hi l’emmagatzematge de l’objecte es dóna el valor d’identificació. Com que la identificació és local, no hi ha problema: el propi emmagatzematge fa de contrast Per Creació Primerenca també cal donar valor a l’atribut identificador. Però això exigeix, per GPC-IE, coneixement d’un repositori centralitzat. I aquest coneixement no el tenim Només coneixem un fragment del repositori Si la identificació local és la de creació, no és possible la identificació global GPC IE Argument anàleg per a GPC-IT AMEP Josep M. Merenciano 48 GPC: Conclusions Conclusions de la GPC AMEP Josep M. Merenciano 49 Per tal que el mecanisme de Generació per comprovació (GPC) funcioni correctament cal: Identificació global El responsable de crear el valor d’identificació és el creador de l’objecte (Indivividualització en l’emmagatzemador) El contrast és un repositori centralitzat Identificació local El responsable de crear el valor d’identificació és l’emmagatzemador de l’objecte (Indivividualització en l’emmagatzemador) Només en el cas que no hi hagi identificació global, una identificació local correspon a l’emmagatzematge de creació, i llavors el responsable també és el creador de l’objecte Conclusions, reformulades AMEP Josep M. Merenciano 50 En cas de tenir atribut identificador, el creador de l’objecte li ha de donar valor En qualsevol altre cas és l’emmagatzemador qui decideix el valor d’identificació AMEP Josep M. Merenciano 51 Generació única Generació única (GU) AMEP Josep M. Merenciano 52 Tot mecanisme de generació única ha de mantenir un estat intern Ex. Recordem el darrer valor generat, en una seqüència infinita Experts en la generació única Els coneixedors de l’estat intern de la GU Mecanismes per la generació dels identificadors Generació per comprovació (GPC) Generació única (GU) Individualització induïda (GU) AMEP Josep M. Merenciano 53 La possibilitat d’inconsistències desapareix Sempre donem un nou valor, independentment de si aquest s’ha usat per a crear un nou objecte, o no Possible violació del principi de la Cistella L’individualitzador genera un valor que ha de viatjar fins al creador de l’objectiu Autoindividualització (GU) AMEP Josep M. Merenciano 54 El principi del Desconeixement del grup no és aplicable La generació de l’identificador no depèn del grup o de l’emmagatzematge, sinó de l’estat de la generació Cal passar l’estat al create create(estatGU) Acoblament i cohesió La cohesió del create baixa Creem l’objectiu i el seu identificador Acoblem l’objecte objectiu a l’estat de la generació Acoblem la creació i la individualització Individualització tardana (GU) AMEP Josep M. Merenciano 55 El multiobjecte necessita conèixer l’estat de la generació La manera més simple és que en crear l’objecte que simula el multiobjecte (modisme MOMO) passem com a argument el mecanisme de generació El multiobjecte manté internament el mecanisme L’add l’usa per crear un nou valor i actualitza l’estat intern Acoblem la creació i la individualització Individualització en l’emmagatzemafor (GU) AMEP Josep M. Merenciano 56 La GU única és independent de l’emmagatzematge L’emmagatzemaor no necessàriament és Expert en la generació de l’identificador Sempre li podem delegar l’expertesa de l’estat de la GU El creador crea l’identificador (GPC+GU) AMEP Josep M. Merenciano 57 La Individualització en l’emmagatzemador i el principi del Creador orb asseguren el correcte funcionament tant del mecanisme de la Generació per comprovació (GPC) dels valors d’identificació, com del mecanisme de la Generació única (GU)