OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE...

387
UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions Web TESIS DOCTORAL Presentada per: Joan Fons i Cors Dirigida per: Dr. Vicent Pelechano Ferragud Dr. Òscar Pastor López València, 2007

Transcript of OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE...

Page 1: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

UNIVERSITAT POLITÈCNICA DE VALÈNCIA

OOWS: Un Mètode Dirigitper Models per alDesenvolupamentd’Aplicacions Web

TESIS DOCTORAL

Presentada per:

Joan Fons i Cors

Dirigida per:

Dr. Vicent Pelechano FerragudDr. Òscar Pastor López

València, 2007

Page 2: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions
Page 3: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

ÍNDEX

1 Introducció 11.1 Problemàtica i Motivació . . . . . . . . . . . . . . . . . . 51.2 Contexte de la Tesis Doctoral . . . . . . . . . . . . . . . 81.3 Objectius . . . . . . . . . . . . . . . . . . . . . . . . . . . 101.4 Solució Proposada . . . . . . . . . . . . . . . . . . . . . . 131.5 Estructura de la Tesis Doctoral . . . . . . . . . . . . . . 15

2 Sistemes Software per al Web 192.1 Introducció . . . . . . . . . . . . . . . . . . . . . . . . . . 192.2 La Web: Present i Futur . . . . . . . . . . . . . . . . . . 212.3 Característiques inherents als Sistemes Web . . . . . . 232.4 L’Enginyeria Web . . . . . . . . . . . . . . . . . . . . . . 252.5 Aproximacions Metodològiques . . . . . . . . . . . . . . 28

2.5.1 HDM . . . . . . . . . . . . . . . . . . . . . . . . . 282.5.2 OOHDM . . . . . . . . . . . . . . . . . . . . . . . 292.5.3 WebML . . . . . . . . . . . . . . . . . . . . . . . . 322.5.4 WSDM . . . . . . . . . . . . . . . . . . . . . . . . 372.5.5 UWE . . . . . . . . . . . . . . . . . . . . . . . . . 422.5.6 Hera . . . . . . . . . . . . . . . . . . . . . . . . . . 462.5.7 OOH . . . . . . . . . . . . . . . . . . . . . . . . . 502.5.8 Anàlisi de les Aproximacions . . . . . . . . . . . 51

i

Page 4: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

ii ÍNDEX

2.6 Eines de Suport al Desenvolupament Web . . . . . . . . 552.6.1 HyperDE . . . . . . . . . . . . . . . . . . . . . . . 562.6.2 WebRatio . . . . . . . . . . . . . . . . . . . . . . . 582.6.3 Hera Suite . . . . . . . . . . . . . . . . . . . . . . 592.6.4 AndroMDA . . . . . . . . . . . . . . . . . . . . . . 622.6.5 OptimalJ . . . . . . . . . . . . . . . . . . . . . . . 642.6.6 ArcStyler . . . . . . . . . . . . . . . . . . . . . . . 65

3 OOWS: Un Mètode per Desenvolupar Aplicacions Web 693.1 Desenvolupament de Programari amb OO-Method . . . 70

3.1.1 Etapa d’Especificació del Sistema . . . . . . . . . 713.1.2 Etapa de Desenvolupament de la Solució . . . . 72

3.2 Extensió Web . . . . . . . . . . . . . . . . . . . . . . . . . 743.2.1 Etapa d’Especificació del Sistema . . . . . . . . . 743.2.2 Etapa de Desenvolupament de la Solució . . . . 75

4 Model Navegacional 774.1 Introducció . . . . . . . . . . . . . . . . . . . . . . . . . . 774.2 El Concepte de Navegació . . . . . . . . . . . . . . . . . 784.3 Modelatge Navegacional . . . . . . . . . . . . . . . . . . 794.4 Mapa Navegacional . . . . . . . . . . . . . . . . . . . . . 794.5 Nodes Navegacionals . . . . . . . . . . . . . . . . . . . . 814.6 Enllaços Navegacionals . . . . . . . . . . . . . . . . . . . 824.7 Contextes Navegacionals . . . . . . . . . . . . . . . . . . 844.8 Unitats d’Abstracció d’Informació, UAI . . . . . . . . . . 884.9 Classes Navegacionals . . . . . . . . . . . . . . . . . . . 894.10 Relacions Navegacionals . . . . . . . . . . . . . . . . . . 92

4.10.1 Relacions de Dependència de Contexte . . . . . . 934.10.2 Relacions de Contexte . . . . . . . . . . . . . . . 94

4.11 Enllaços de Servei . . . . . . . . . . . . . . . . . . . . . . 1024.12 Subsistemes Navegacionals . . . . . . . . . . . . . . . . 103

Page 5: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

ÍNDEX iii

4.13 Usuari Conectat . . . . . . . . . . . . . . . . . . . . . . . 1054.14 Sessió . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1054.15 Condició de Navegació . . . . . . . . . . . . . . . . . . . 1054.16 Navegació entre Mapes Navegacionals . . . . . . . . . . 106

5 Model d’Usuaris 1095.1 Introducció . . . . . . . . . . . . . . . . . . . . . . . . . . 1095.2 El Diagrama d’Usuaris . . . . . . . . . . . . . . . . . . . 110

5.2.1 Usuaris Anònims . . . . . . . . . . . . . . . . . . 1115.2.2 Usuaris Registrats . . . . . . . . . . . . . . . . . 1125.2.3 Usuari “Sense Permís” . . . . . . . . . . . . . . . 1135.2.4 Exemple . . . . . . . . . . . . . . . . . . . . . . . 1135.2.5 L’Especialització entre Usuaris . . . . . . . . . . 114

6 Conceptes Avançats 1196.1 Introducció . . . . . . . . . . . . . . . . . . . . . . . . . . 1196.2 Mecanismes d’Accés a la Informació . . . . . . . . . . . 120

6.2.1 Estudi inicial. Motivació. Objectius . . . . . . . . 1206.2.2 Tipus de Mecanismes d’Accés . . . . . . . . . . . 1266.2.3 Comportament . . . . . . . . . . . . . . . . . . . . 129

6.3 Gestió Avançada de Continguts . . . . . . . . . . . . . . 1316.3.1 Estudi inicial. Motivació . . . . . . . . . . . . . . 1326.3.2 Treballs Relacionats . . . . . . . . . . . . . . . . 1336.3.3 Unitats d’Abstracció de Informació, UAIs . . . . 1346.3.4 Tipus d’UAIs . . . . . . . . . . . . . . . . . . . . . 1366.3.5 Reutilització d’UAIs . . . . . . . . . . . . . . . . . 137

6.4 Personalització d’Aplicacions Web . . . . . . . . . . . . . 1396.4.1 Introducció . . . . . . . . . . . . . . . . . . . . . . 1396.4.2 Disseny d’Aplicacions Web Personalitzades . . . 1416.4.3 Personalització Estàtica en OOWS . . . . . . . . 1426.4.4 Personalització Dinàmica en OOWS . . . . . . . 143

Page 6: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

iv ÍNDEX

6.5 Herència de Propietats Navegacionals . . . . . . . . . . 1446.5.1 Problemàtica . . . . . . . . . . . . . . . . . . . . . 1456.5.2 Herència en Models Navegacionals . . . . . . . . 1476.5.3 Especialització Navegacional en OOWS . . . . . 1506.5.4 Operacions d’Especialització de Contextes . . . . 1526.5.5 Operacions d’Especialització de Subsistemes . . 153

7 Model de Presentació 1557.1 Introducció . . . . . . . . . . . . . . . . . . . . . . . . . . 1557.2 Patrons del Model de Presentació . . . . . . . . . . . . . 156

7.2.1 Patró de Disposició d’Informació . . . . . . . . . 1587.2.2 Patró d’Ordenació de Dades . . . . . . . . . . . . 1647.2.3 Patró de Paginació . . . . . . . . . . . . . . . . . 1677.2.4 Patró d’Ordre d’Aparició . . . . . . . . . . . . . . 169

8 Implementació de la Interfície Web 1718.1 Introducció . . . . . . . . . . . . . . . . . . . . . . . . . . 1718.2 Estructura Conceptual de les Pàgines Web . . . . . . . 174

8.2.1 Taxonomia . . . . . . . . . . . . . . . . . . . . . . 1758.2.2 Tipus de Continguts . . . . . . . . . . . . . . . . 1848.2.3 Estructura Conceptual . . . . . . . . . . . . . . . 193

8.3 Estratègia d’Implementació d’una Pàgina Web . . . . . 1968.3.1 Estructura d’Implementació . . . . . . . . . . . . 196

8.4 Introducció d’Aspectes de Disseny Gràfic . . . . . . . . . 2048.4.1 Situació actual. Problemàtica i Objectius . . . . 2058.4.2 Estratègia de Marcat . . . . . . . . . . . . . . . . 2128.4.3 Regles de Visualització . . . . . . . . . . . . . . . 2158.4.4 El Paper del Framework . . . . . . . . . . . . . . 218

8.5 El Procés de Generació de codi . . . . . . . . . . . . . . . 2208.5.1 Framework d’Interfícies Web . . . . . . . . . . . 2238.5.2 Regles de Transformació. Aspectes Tecnològics . 225

Page 7: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

ÍNDEX v

8.5.3 Integració funcional amb la lògica de negoci . . . 227

9 OOWS Suite: Eina de Suport 2359.1 Definició d’un Entorn de Desenvolupament MDA . . . . 2369.2 Entorns de Producció Dirigits per Models . . . . . . . . 241

9.2.1 El Projecte Eclipse . . . . . . . . . . . . . . . . . 2429.3 Editor de Models d’OOWS . . . . . . . . . . . . . . . . . 244

9.3.1 Persistència del Metamodel en EMF . . . . . . . 2459.3.2 Editor Gràfic en GMF . . . . . . . . . . . . . . . . 245

9.4 Compilador de Models OOWS . . . . . . . . . . . . . . . 2489.4.1 Transformacions amb OpenArchitectureWare . 252

10 Conclusions 25910.1 Principals Contribucions . . . . . . . . . . . . . . . . . . 26010.2 Investigació Actual i Treballs en Curs . . . . . . . . . . 264

10.2.1 Modelatge de Requeriments Web . . . . . . . . . 26410.2.2 Modelatge de Sistemes Adaptatius . . . . . . . . 26510.2.3 Modelatge de Processos de Negoci . . . . . . . . 26710.2.4 Aplicacions de la Web Semàntica . . . . . . . . . 26810.2.5 Arquitectures Orientades a Serveis . . . . . . . . 269

10.3 Publicacions Relacionades . . . . . . . . . . . . . . . . . 27010.3.1 Resum de Publicacions . . . . . . . . . . . . . . . 280

A Framework d’Interfícies Web, WIF 281A.1 Relació d’OOWS amb el Framework . . . . . . . . . . . 284A.2 WIF, Un Framework per a construir Interfícies Web . . 285

A.2.1 Creació de l’Aplicació . . . . . . . . . . . . . . . . 285A.2.2 Autenticació d’Usuaris . . . . . . . . . . . . . . . 287A.2.3 Definició de les Pàgines Web . . . . . . . . . . . . 289A.2.4 Recuperació de la Informació . . . . . . . . . . . 292A.2.5 Presentació de la Informació . . . . . . . . . . . . 296

Page 8: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

vi ÍNDEX

A.2.6 Mecanismes d’accés a la informació . . . . . . . . 299A.2.7 Especificació de la Navegació . . . . . . . . . . . 304A.2.8 Serveis. Execució de la funcionalitat . . . . . . . 307A.2.9 Definició d’altres zones de contingut . . . . . . . 313

B Cas d’Estudi: IMDb Lite 317B.1 Model Conceptual amb OO-Method . . . . . . . . . . . . 318

B.1.1 Diagrama de Classes . . . . . . . . . . . . . . . . 319B.1.2 El Model Dinàmic . . . . . . . . . . . . . . . . . . 321B.1.3 El Model Funcional . . . . . . . . . . . . . . . . . 322

B.2 Extensions Web amb OOWS . . . . . . . . . . . . . . . . 322B.2.1 Diagrama d’Usuaris . . . . . . . . . . . . . . . . 323B.2.2 Model Navegacional . . . . . . . . . . . . . . . . 324B.2.3 Model de Presentació . . . . . . . . . . . . . . . . 330

B.3 Implementació de l’aplicació Web . . . . . . . . . . . . . 332

C Un Compilador de Models d’OOWS 339C.1 Configuració Inicial Aplicació. Plantilla Root . . . . . . 340C.2 Transformació de Contextes i Subsistemes . . . . . . . 341C.3 Transformació de les Relacions Navegacionals . . . . . 343C.4 Transformació dels Mecanismes d’Accés . . . . . . . . . 344C.5 Transformació de l’accés a la Funcionalitat . . . . . . . 346C.6 Extensions Auxiliars amb Extend . . . . . . . . . . . . . 347

Referències 349

Page 9: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

ÍNDEX DE FIGURES

1.1 Aproximació Metodològica OO-Method/OOWS . . . . . 14

2.1 OOHDM: Exemple Esquema Navegacional . . . . . . . 312.2 WebML: Procés de Desenvolupament . . . . . . . . . . . 332.3 WebML: Exemple Estructura Navegacional . . . . . . . 352.4 WSDM: Procés Desenvolupament . . . . . . . . . . . . . 382.5 UWE: Exemple Estructura Navegacional . . . . . . . . 442.6 Hera: Procés de Desenvolupament . . . . . . . . . . . . 472.7 HyperDE: Estructura de l’eina . . . . . . . . . . . . . . 572.8 WebRatio: Arquitectura . . . . . . . . . . . . . . . . . . 582.9 Hera Suite . . . . . . . . . . . . . . . . . . . . . . . . . . 612.10 AndroMDA: Arquitectura . . . . . . . . . . . . . . . . . 63

3.1 El procés de desenvolupament basat en MDA de OO-Method extés amb OOWS . . . . . . . . . . . . . . . . . 70

4.1 Exemple de Mapa Navegacional . . . . . . . . . . . . . . 804.2 Nodes d’Exploració i de Seqüència . . . . . . . . . . . . 834.3 Enllaços d’exploració i seqüència . . . . . . . . . . . . . 854.4 Mapa Navegacional: Contextes de Seqüència . . . . . . 864.5 Mapa Navegacional: Contextes d’Exploració . . . . . . 884.6 Unitats d’Abstracció d’Informació d’un contexte . . . . 90

vii

Page 10: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

viii ÍNDEX DE FIGURES

4.7 Classe Navegacional . . . . . . . . . . . . . . . . . . . . 904.8 Relacions Navegacionals . . . . . . . . . . . . . . . . . . 934.9 Relació de Dependència de Contexte . . . . . . . . . . . 944.10 Possible implementació d’una Relació de Dependència

de Contexte . . . . . . . . . . . . . . . . . . . . . . . . . 954.11 Relació de Contexte . . . . . . . . . . . . . . . . . . . . . 964.12 Possible implementació d’una Relació de Contexte . . . 974.13 Relació de Contexte d’Objecte . . . . . . . . . . . . . . . 994.14 Implementació d’una Relació de Contexte d’Objecte . . 1004.15 Relació de Contexte de Relació . . . . . . . . . . . . . . 1024.16 Implementació d’una Relació de Contexte de Relacio . 1034.17 Enllaç de Servei . . . . . . . . . . . . . . . . . . . . . . . 1044.18 Exemple de Navegació amb Canvi d’Usuari . . . . . . . 107

5.1 Representació gràfica d’un Usuari . . . . . . . . . . . . 1105.2 Diagrama d’Usuaris de la Biblioteca on-line: Detecció

dels Usuaris . . . . . . . . . . . . . . . . . . . . . . . . . 1115.3 Usuari Anònim . . . . . . . . . . . . . . . . . . . . . . . 1125.4 Usuari Registat . . . . . . . . . . . . . . . . . . . . . . . 1135.5 Usuari “Sense Permís” . . . . . . . . . . . . . . . . . . . 1145.6 Diagrama d’Usuaris de la Biblioteca on-line: Mode Accés1145.7 Especialització entre Usuaris . . . . . . . . . . . . . . . 1165.8 Diagrama d’Usuaris Biblioteca on-line: Relacions en-

tre Usuaris . . . . . . . . . . . . . . . . . . . . . . . . . . 117

6.1 Diagrama de Classes d’Amazon.com . . . . . . . . . . 1216.2 Mapa Navegacional del usuari Anònim . . . . . . . . . 1236.3 Selecció de l’enllaç d’exploració que permet accedir al

catàleg de llibres en Amazon.com . . . . . . . . . . . . 1306.4 Pàgina de Búsqueda de Llibres emprant MAIs . . . . . 131

7.1 Contexte de Presentació . . . . . . . . . . . . . . . . . . 156

Page 11: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

Índex de figures ix

7.2 Mapa Navegacional i Contexte Llibres de la Biblioteca 1577.3 Patró de Disposició Tabular . . . . . . . . . . . . . . . . 1597.4 Patró de Disposició Tabular: alternatives . . . . . . . . 1597.5 Patró de Disposició Tabular aplicat a Classe Directora 1607.6 Patró de Disposició Tabular aplicat a Relació Navega-

cional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1607.7 Patró de Disposició Tabular aplicat a la Vista de Re-

sultats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1617.8 Patró de Disposició Registre . . . . . . . . . . . . . . . . 1627.9 Patró de Disposició Registre aplicat a la Classe Directora1627.10 Patró de Disposició Registre aplicat a la Relació Nave-

gacional . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1637.11 Patró de Disposició en Arbre . . . . . . . . . . . . . . . 1637.12 Patró de Disposició Text . . . . . . . . . . . . . . . . . . 1647.13 Patró de Disposició Mestre-Detall . . . . . . . . . . . . 1657.14 Criteri d’Ordenació . . . . . . . . . . . . . . . . . . . . . 1667.15 Patró de Paginació: paginació Seqüencial . . . . . . . . 1697.16 Patró de Paginació: paginació Aleatòria . . . . . . . . . 1697.17 Patró d’Ordre d’Aparició . . . . . . . . . . . . . . . . . . 170

8.1 Exemple de Pàgines “Home” . . . . . . . . . . . . . . . . 1768.2 Exemples de Pàgines Web amb Contingut d’Informació 1788.3 Exemples de Pàgines Web d’Execució de Funcionalitat 1798.4 Exemple de Subsistema de Navegació . . . . . . . . . . 1808.5 Exemple Pàgina Web amb Estructura d’Indexació . . . 1818.6 Pàgina Web de tipus Informació . . . . . . . . . . . . . . 1818.7 Pàgina Web de tipus Estructura de Navegació . . . . . 1828.8 Pàgina Web per a l’Entrada de Dades . . . . . . . . . . 1838.9 Pàgina Web DSIC: Delimitació de Zones Principals . . . 1858.10 Pàgina Web Amazon.com: Delimitació de Zones

Principals . . . . . . . . . . . . . . . . . . . . . . . . . . . 186

Page 12: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

x ÍNDEX DE FIGURES

8.11 Exemple de Zones d’Informació . . . . . . . . . . . . . . 1878.12 Exemple de Zones de Navegació . . . . . . . . . . . . . . 1888.13 Exemple de Zones d’Ubicació . . . . . . . . . . . . . . . 1898.14 Exemple de Zones Institucional . . . . . . . . . . . . . . 1908.15 Exemple de Zones d’Entrada de Dades . . . . . . . . . . 1918.16 Exemple de Zones d’Enllaços Aplicació . . . . . . . . . . 1928.17 Exemple de Zones de Personalització . . . . . . . . . . 1938.18 Exemple de Zones d’Estructures Accés . . . . . . . . . . 1948.19 Exemple de navegació per seqüència en Amazon.com 1988.20 Exemple de codi HTML produït pel Framework . . . . 2148.21 Pàgina Web amb Marcat . . . . . . . . . . . . . . . . . . 2168.22 Exemple de Marcat Independent de Domini . . . . . . . 2188.23 Exemple de Marcat Dependent de Domini . . . . . . . . 2188.24 Pàgina Web amb dos estils visuals diferents . . . . . . . 2218.25 Exemple de Codi Web emprant el framework WIF . . . 2268.26 Transformacions Model-a-Codi . . . . . . . . . . . . . . 228

9.1 Procés MDA . . . . . . . . . . . . . . . . . . . . . . . . . 2389.2 Procés de Desenvolupament MDA de OOWS Suite . . . 2409.3 Visió de MDA segons IBM . . . . . . . . . . . . . . . . . 2439.4 Definició d’un editor gràfic amb GMF . . . . . . . . . . . 2449.5 Editor EMF del Metamodel d’OOWS . . . . . . . . . . . 2469.6 Importació entre OlivaNOVA i OOWS Suite . . . . . . . 2489.7 Editor GMF de Mapes Navegacionals . . . . . . . . . . 2499.8 Editor GMF de Contextes Navegacionals . . . . . . . . 2499.9 oAW Xpand: Exemple de Regla de Transformació . . . 255

A.1 Model de l’aplicació, autenticació i definició de pàgines 292A.2 Model per a l’Especificacio de la Informació . . . . . . . 300A.3 Model per a la Definició de Mecanismes d’Accés . . . . 304A.4 Model de la Navegació . . . . . . . . . . . . . . . . . . . 308

Page 13: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

Índex de figures xi

A.5 Model per a la Definició de Serveis . . . . . . . . . . . . 314

B.1 IMDb Lite: Model Estructural amb OlivaNOVA . . . . 320B.2 IMDb Lite: Atributs de la Classe “Movie” . . . . . . . . 321B.3 DTE per a la classe “Movie” . . . . . . . . . . . . . . . . 322B.4 Model Funcional de la classe “Movie” . . . . . . . . . . . 323B.5 IMDb Lite: Diagrama d’Usuaris . . . . . . . . . . . . . . 324B.6 IMDb Lite: Mapa Navegacional per al “RegisteredUser” 325B.7 IMDb Lite: Contexte “Home” . . . . . . . . . . . . . . . . 326B.8 IMDb Lite: Subsistema “Movie” . . . . . . . . . . . . . . 328B.9 IMDb Lite: Subsistema “(Movie) Promotional” . . . . . 329B.10 IMDb Lite: Subsistema “(Movie) Overview” . . . . . . . 330B.11 IMDb Lite: Contexte Navegacional “(Movie.Overview)

MainDetails” . . . . . . . . . . . . . . . . . . . . . . . . . 331B.12 IMDb Lite: Contexte de Presentació “(Movie.Overview)

MainDetails” . . . . . . . . . . . . . . . . . . . . . . . . . 332B.13 IMDb Lite: Fitxer de configuració d’aplicació generat . 334B.14 IMDb Lite: Implementació de la Pàgina “Home” . . . . 335B.15 IMDb Lite: Codi de Pàgina Web “(Movie.Overview)

MainDetails” . . . . . . . . . . . . . . . . . . . . . . . . . 336B.16 IMDb Lite: Pàgina Web “(Movie.Overview) MainDe-

tails (estil IMDb)” . . . . . . . . . . . . . . . . . . . . . . 337B.17 IMDb Lite: Pàgina Web “(Movie.Overview) MainDe-

tails (estil UPV)” . . . . . . . . . . . . . . . . . . . . . . . 338

Page 14: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions
Page 15: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

ÍNDEX DE TAULES

8.1 Estructura Conceptual d’una Pàgina Web . . . . . . . . 1958.2 Principals Etiquetes de Marcat proposades per OOWS 214

10.1 Resum de Publicacions . . . . . . . . . . . . . . . . . . . 280

xiii

Page 16: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions
Page 17: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

ÍNDEX DE CODIS FONT

8.1 Esquelet Mínim d’una Pàgina Web . . . . . . . . . . . . 1978.2 Esquelet de Pàgina amb Arguments d’Entrada . . . . . 2008.3 Esquelet de Pàgina incloent canvi d’estat navegacional 2018.4 Esquelet de Pàgina amb cos . . . . . . . . . . . . . . . . 203C.1 Plantilla de Transformació Root OOWSGenerator.xpt . 340C.2 Plantilla de Transformació ContextTemplate.xpt . . . . 341C.3 Plantilla de Transformació NavigationalRelations-

hip.xpt . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343C.4 Plantilla de Transformació AccessMechanisms.xpt . . . 344C.5 Plantilla de Transformació Service.xpt . . . . . . . . . . 346C.6 Extensions auxiliars amb Extend . . . . . . . . . . . . . 347

xv

Page 18: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions
Page 19: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

CAPÍTOL 1INTRODUCCIÓ

El creixement d’Internet, les Intranet, les Extranet i el World WideWeb (la Web), ha causat un impacte significatiu en tots els sectorsde la vida social així com en la nostra vida personal i en els nostresestils de treball. La Web obri possibilitats que mai abans en larecent història de la informàtica s’havien tingut i davant aquestesalternatives ens trobem que molts dels sistemes d’informació exis-tents, així com les bases de dades legades, s’estan migrant cap a laWeb i d’Internet.

Internet s’ha convertit per mèrits propis en el mitjà de comu-nicació per excel·lència. La rapidesa en la que es pot intercanviarl’informació unida a l’eliminació de les barreres geogràfiques, hanconvertit a Internet en la plataforma preferida per les empreses perextendre els seus negocis. A causa d’açò estan proliferant el númerod’aplicacions en la Web per a la resolució de les necessitats de lesorganitzacions.

A diferència de les aplicacions tradicionals basats en llenguatges

1

Page 20: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

2 CAPÍTOL 1. INTRODUCCIÓ

compilats i interfícies gràfiques, les aplicacions web estan basadesen estàndars amplament acceptats (HTTP i HTML), que poden seremprants pràcticament en qualsevol tipus de dispositiu. Cada ve-gada més, els desenvolupaments Web i les tecnologies associadesa aquestes, s’estan emprant com una plataforma d’implementacióper a diferents àmbits (institucions, educació, aplicacions guber-namentals, financeres, etc...). En tots aquestos casos, a més dela complexitat de la funcionalitat que han d’oferir, s’uneix la com-plexitat del desenvolupament en entorns distribuits. Ací, Internetaltra vegada, proposa una solució distribuida que facilita aquestosdesenvolupaments.

Es podria suposar que els nous reptes i paradigmes que impli-ca la Web estan també implicant nous mètodes per suportar elsprocessos de creació i migració de sistemes de dades a la mateixa.Tanmateix, això no és així. El ben cert és que l’enfoc de desenvolu-pament actual de les aplicacions i sistemes basats en la Web segueixsent “ad-hoc” i “creatives”, sense processos disciplinats, sistemà-tics i rigurosos que permeten garantitzar l’obtenció de productesde programari de qualitat. Al revés, els productes adoleixen dela necesitat d’una gran quantitat de correccions (també “ad-hoc”)que donen orige a sistemes que, encara que avuí en dia continuenoperant, no existeix la garantia d’açò mateix en el futur, pel fet de noestar dissenyats correctament amb termes com ara mantenibilitat oportabilitat propis de la qualitat de programari.

La naturalesa de la Web ha evolucionat des d’aquella el propòsitde la qual era únicament distribuir informació, fins l’actual, queexigeix gran quantitat de funcionalidad ofertada pels sistemes tra-dicionals i que ara s’han dut a la Web. Açò ha conduït al sorjimentde l’Enginyeria Web com l’estratègia encaminada a abordar les ca-racterístiques de desenvolupament que aquestos sistemes ofereixen,

Page 21: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

3

d’una forma metodològica, repetible i correcta. La tendència actualdels sistemes basats en la Web es cap a la complexitat i sofisticació,de tal manera que existeix una legítima preocupació al voltant de lamanera en la qual estan siguent desenvolupats, així com en la seuaqualitat i integritat. Davant l’ausència de processos disciplinats dedesenvolupament plenament assentats, en un futur no molt llunyàens haurem d’enfrontar amb els problemes de desenvolupament,intalació, operació i manteniment d’aquestos sistemes “ad-hoc”.

En resum: els sistemes basats en la Web que en gran nombres’estan desenvolupant en l’actualitat, davant un escalament (perexemple), tenen una alta probabilitat de fallida. I el que és encaramés preocupant, és que dia a dia, la nostra vida està depenent cadavegada més d’aquest tipus de sistemes, de tal manera que fallidesque puguen presentar-se en els mateixos tindran greus repercusionsque lamentar. Aquest problema fou batejat temps enrere com “Lacrisi de la Web” [76]

Com fer front a aquest crisi de la Web? [77] ens indicà que ésindispensable un enfoc disciplinat així com nous mètodes i eines peral desenvolupament, intalació i avaluació dels sistemes basats en laWeb. Aquestos enfocs deuen considerar els següents aspectes delssistemes basats en la Web: 1) les seues característiques úniques;2) el seu ambient operacional; 3) L’aparició de múltiples escenaris,i 4) la diversitat de perfils d’usuari que involucra la construcció desistemes basats en la Web. Tot açò anterior implica nous reptes enel desenvolupament d’aplicacions basades en la Web.

Motivats per totes aquestes premises, molts experts han unit elsseus esforços en la creació i establiment d’una nova disciplina, ano-menada Enginyeria Web. Aquesta s’enfoca exclusivament en l’estudii la solució dels problemes que sorgeixen a partir dels sistemes ba-sats en la Web. [77] la defineix com: L’establiment i ús de principis

Page 22: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

4 CAPÍTOL 1. INTRODUCCIÓ

d’enginyeria i gestió, així com d’enfocs sistemàtics i disciplinats peral seu desenvolupament, intalació i manteniment exitós de sistemesi aplicacions d’alta qualitat basats en la Web. [94], ho resumeixaixí: En un lloc Web existeix més que un disseny visual i interfícied’usuari. Els locs Web estan consolidant-se més com programes imenys com documents estàtics. Queda clar que la idea de la qualsorgí la Web canvià d’èsser mèrament un mecanisme divulgadord’informació cap a convertir-se en vertaders sistemes d’aplicacióamb funcionalitat, abans no concebida per a la Web. En resum,l’Enginyeria Web és la branca de l’Enginyeria del Programari queestudia els processos, mètodes, tècniques i recursos esencials per aldesenvolupament d’aplicacions Web de qualitat.

Tot model de processos d’Ingenieria Web deuria poseir un con-junt de primitives conceptuals que li permeten representar els dife-rents aspectes que les seues aplicacions requereixen. No existeix enl’actualitat un acord definitiu al respecte de l’ontologia que deuriaconceptualitzar qualsevol especificació d’una aplicació Web.

S’observa que en els models de processos d’Enginyeria Web pera l’elaboració de sistemes per a aquestos entorns web, existeiexendiferents aproximacions o corrents principals: aquelles que partei-xen d’un disseny de base de dades i extenen les seues funcionalitatsamb característiques hipermedials i de comportament, aquelles queinicien un anàlisi hipermedial (navegacional) del sistema i el com-pleten amb informació d’estructura d’informació i comportament ifinalment aquelles que agafen com a punt de partida un anàlisiOrientat a Objectes (OO) i extenen aquest amb característiqueshipermedials.

Page 23: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

1.1. Problemàtica i Motivació 5

1.1 Problemàtica i Motivació

L’utilització d’aplicacions Web per a resoldre el problema de les or-ganitzacions és ventajós en nombrosos sentits. De cara a l’usuari,sols li cal un navegador web i els coneixements bàsics per emprar-lo. No cal que assimile els coneixements d’instalació i/o configuraciód’artefactes de programari específic, i el seu ús serà similar al quepodria proporcionar una aplicació via Web. A causa de l’adopciód’estàndars acceptats, se soluciona el problema tecnològic imposatper les plataformes destí (sistema operatiu, entorn, etc.), podent seremprada la mateixa aplicació web en diferents entorns, sense haverd’adaptar-se. Inclús, amb l’arribada de dispositius mòbils amb méscapacitats (com ara els telèfons mòbils d’última generació, les PDAso ordinadors ultra-compactes), que inclouen també navegadors web,aquestes aplicacions arriben també fàcilment a aquest tipus de dis-positius. D’altra banda, el manteniment d’una aplicació es simpli-fica, fet que només canviant la versió del servidor (controlada perl’entitat proveedora de continguts), tots els clients, sense realitzarcap canvi, tenen accés immediat al nou sistema.

Actualment s’està investigant com poder emprar noves metodo-logies de desenvolupament per generar aplicacions Web de manerasistemàtica. Però, la gran majoria d’aplicacions web desenvolupadeshan sigut desenvolupades mitjançant mètodes tradicionals o tecno-logies propietàries. Aquestes aplicacions sofreixen greus problemesde manteniment, qualitat i reusabilitat. A causa que una aplicacióWeb no és més que un producte de programari, és indispensableemprar les pràctiques de l’Enginyeria del Programari per solucionaraquesta problemàtica. Per desgràcia, les metodologies tradicionalsno estan adaptades als requeriments específics de les aplicacionsWeb.

Page 24: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

6 CAPÍTOL 1. INTRODUCCIÓ

L’Enginyeria Web sorgeix amb l’objectiu d’aplicar els fonamentsde l’Enginyeria de Programari sobre els sistemes Web, i ha sigutben acceptada en la comunitat científica, on han aparegut nombro-sos treballs, foros de discussió especialitzats, conferències sobre alrespecte i xarxes temàtiques.

Es pot considerar que hi ha un acord en l’estratègia bàsica de tre-ball. Així, si repassem a grans els processos de producció, les etapesinvolucrades, els models conceptuals per a la web, les estratègiesd’implementació, etc., no hi trobem grans diferències.

Malgrat, cada aproximació ha aportat la seua perspectiva dinsd’aquest entorn. A l’entrar a major nivell de detall és quan començaa notar-se la diferència: algunes aproximacions donen major impor-tància a certes fases o etapes del procés, els models conceptualsde base emprats per extendre cap a models conceptuals web, ladefinició o no d’unes transformacions dels models cap al codi, lasistematització o no d’aquestes transformacions, són alguns delsexemples que hi aparèixen.

Especial menció s’ha de fer al tema de la navegació. Pareix clar, itotes aquestes aproximacions ho accepten, que una etapa primordialdins la conceptualització dels sistemes web és la de la definiciód’un model d’hipermèdia. Aquest model, més conegut com modelnavegacional, és l’encarregat de definir l’accessibilitat al sistemaper als usuaris, especificant els “camins de navegació” vàlids en elsistema. Malgrat açò, encara no hi ha consens en la definició delconcepte de navegació ni en la ontologia emprada per representar-la.

Altre aspecte molt rellevant és el grau de sistematització enl’obtenció de la solució final (codi). Es pretén aconseguir una ge-neració automàtica de codi a partir dels models concpetualsweb descrits, seguint les aproximacions de prototipació automàtica.És per això que serà necessari emprar models formals de referència

Page 25: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

1.1. Problemàtica i Motivació 7

i definir una sèrie de regles de transformacions entre els elementsde modelatge conceptuals en l’espai del problema a components deprogramari en l’espai de la solució.

El Desenvolupament de Programari Dirigit per Models (DSDM)comença a proporcionar resultats prometedors. Existeixen diferentsindicadors que ens fan ser optimistes en quan a l’evolució e im-plantanció industrial d’aquesta filosofia de desenvolupament. Co-mençant per la gran empempta que constitueix la proposta MDA(“Model Driven Architecture”) [82] de la OMG, i la recent aparició deles Fàbriques de Software [57]. Potser un dels aspectes més espe-rançadors és el desenvolupament continu de tecnologies i eines perla construcció d’eines CASE que donen soport a processos DSDM,como són el projecte “Eclipse Modeling Project” [36], les “Domain-Specific Language” (DSL) Tools [74] i altres eines que també emprenaquest paradigma per al desenvolupament d’aplicacions, com ara elArcStyler [48], Together [14] o AndroMDA [7].

El món de l’Enginyeria Web també s’apunta a aquesta tendènciai diverses aproximacions ha anat apareguent amb la finalitat deproporcionar un soport per al desenvolupament d’aplicacions Webdirigit per models. Aquestes aproximacions introdueixen modelsconceptuals per capturar de forma abstracta els diferents aspectesque defineixen una aplicació Web. A partir d’aquestos models, pro-posen l’ús de transformacions model-a-model i/o model-a-text amb lafinalitat d’obtenir el codi equivalent a la representació abstracta del’aplicació Web que constitueix el model. En aquest sentit, cal des-tacar aproximacions com OOHDM [112], WebML [25], WSDM [32],UWE [51], OOH [70], Hera [52] o OOWS [39], l’aproximació que espresenta en aquest treball de tesis docotoral, que són amplamentacceptades en l’àmbit científic de l’Enginyeria Web i que han sigutprovades i validades en diferents casos d’estudi. A més a més, la

Page 26: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

8 CAPÍTOL 1. INTRODUCCIÓ

majoria d’aquestes aproximacions ja proporcionen eines de suportal mètode que proposen, com és el cas de WebRatio (WebML), Ar-goUWE (UWE) o HyperDe (OOHDM). Aquestes eines permete ladefinició de models que capturen els aspectes estructurals, nave-gacionals, de presentació i d’adaptativitat de les aplicacions web.Algunes inclús, faciliten el desenvolupament del codi de l’aplica-ció. Tanmateix, encara que estan en constant desenvolupament,els aspectes de comportament són actualment soportats de maneraparcial, des d’un punt de vista de modelatge conceptual.

Aleshores, en aquesta tesi s’aborda el problema de definir unentorn de desenvolupament de programari que done una solucióconcreta per a la construcció d’aplicacions Web seguint el paradigmaque proposa l’Enginyeria Web, aplicant els principis del Desenvolu-pament Dirigit per Models i les Factories de Programari, implemen-tant una eina de suport que facilite aquesta tasca.

1.2 Contexte de la Tesis Doctoral

Aquest treball tesi ha sigut desenvolupat dins el grup d’investigació“OO-Mehtod: Mètodes de Producció de Programari OO”, que per-tany al Departament de Sistemes Informàtics i Computació de laUniversitat Politècnica de València. Una de les principals tasquesen aquestos últims anys ha sigut la d’extendre el propi mètode OO-Method per donar-li capacitats per a diferents aplicacions i entornstecnològics.

El treball presentat en aquesta tesis forma part d’uns dels tre-balls realitzats a OO-Method en el que l’autor ha participat activa-ment en la seua concepció i desenvolupament científic. A causa del’èxit dels resultats obtesos per aquesta tesis, han sorgit nombrosesextensions a aquest treball per tractar de donar-li un alcanç encara

Page 27: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

1.2. Contexte de la Tesis Doctoral 9

major. A nivell de resultats comercials, aquest treball ha servitcom un dels pilars per la definició de OlivaNOVA, un producte dedesenvolupament industrial d’aplicacions de programari, creat perCARE Technologies S.A. i que dona una implementació concreta almètode OO-Method.

Els treballs que han possibilitat el desenvolupament d’aquestatesis s’enmarquen en els següents projectes d’investigació i desen-volupament:

• “Ingeniería de Requerimientos y Generación Automática deSoftware”. DGEUI (Direcció General d’Ensenyaments Uni-versitaris i Investigació, Conselleria de Cultura, Educació iCiència) amb referència: GV97-TI-05-34 (desde 1998 fins 2000)

• “Generación Automática de Sistemas Software en AmbientesOrientados a Objetos”. Projecte CICYT del programa FEDER,amb referència: TIC 1FD97-1102 (desde Octubre de 1999 finsDesembre 2001)

• “WEST: Web Oriented Software Technology”. Projecte CYTEDVII-18 (Programa Iberoamericà de Ciència i Tecnologia per alDesenvolupament (desde Agost del 2000 fins Agost 2003)

• “WEE-NET: Web Engineering Network of Excellence”. Euro-pean Comission (Alph European Union Project) (desde 2004fins 2007)

• “TAISSI: Tecnologia Software Avanzada para la Ingenieriadel Software de la Sociedad de la Información”, “SubproyectoIngeniería de Ambientes Web”, Projecte MCYT amb referència:TIC 2001-3530-C02-01

• “DESTINO: Desarrollo de e-Servicios para la nueva SociedadDigital”, Projecte MCYT amb referència: TIN 2004-03534

Page 28: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

10 CAPÍTOL 1. INTRODUCCIÓ

1.3 Objectius

El principal objectiu d’aquesta tesi doctoral és definir un procés dedesenvolupament d’aplicacions web complet i sistemàtic, seguint elsprincipis marcats per l’Enginyeria Web.

Aquest procés de desenvolupament ha d’estar basat en la defi-nició de models conceptuals adequats i adaptats a sistemes web, demanera que siguen aquestos models els que guien i dirigisquen laproducció de les aplicacions web.

Dit d’una altra manera, convertir aquestos models conceptualsweb en la peça clau i principal de tot el desenvolupament, extenentels models conceptuals çlàssics"de manera adient. Els models, se-gons les estratègies del Desenvolupament Dirigit per Models passena ser els elements principals del software.

Degut a la naturalesa de constant evolució i adaptació a re-queriments canviants dels sistemes web i la necessitat de ciclesde desenvolupament àgils, sistemàtics i rigorosos, s’ha optat perdesenvolupar el treball dins l’àmbit dels paradigmes de prototipacióautomàtica.

A més a més, es pretèn construir una extensió d’una aproximacióOrientada a Objectes que capture d’una manera natural aspectesd’estructura estàtica i de comportament. Aquest model Orientat aObjectes s’ha consolidat com una aproximació més adequada per arepresentar una realitat amb dinàmica que no pas el model EntitatRelació.

Allò que es pretén aconseguir amb la tesis doctoral és extendre elun mètode de producció d’aplicacions de programari per capacitar-loi adaptar-lo a la producció d’aplicacions de programari per al web,emprant com a marc de treball les pautes de l’Enginyeria Web.Per a fer-ho, s’emprarà l’aproximació OO-Method com a base, ja

Page 29: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

1.3. Objectius 11

que aquesta aproximació aporta tots els requeriments necessaris:(1) empra models conceptuals on és té en compte d’una maneraadequada tant l’estructura estàtica com dinàmica del sistema; (2)proporciona un entorn de generació de codi que aplica els principisdel Desenvolupament Dirigit per Models; i (3) poseeix una einaindustrial, OlivaNOVA, que implementa de manera completa elmètode OO-Method.

Per tant, els objectius a aconseguir són:

• Afinar el procés de producció de programari “clàssic” adequant-lo i adaptant-lo per produir aplicacions web

• Aconseguir, amb ajuda d’OO-Method, una solució completa deproducció d’aplicacions web dins un paradigma de prototipacióautomàtica

• Introduir un model de navegació i un model de presentació percaptar les propietats web i relacionar-los amb els ja existentsen OO-Method (Diagrama de Classes, Model Dinàmic i ModelFuncional)

• Definir el conjunt de primitives d’aquests nous models teninten compte aspectes com senzillesa, nivell d’abstracció i intuiti-vitat

• Estudiar a fons les relacions entre models per intentar aprofi-tar al màxim el coneixement que es pot deduir inter-models ique puguen guiar en l’especificació de les propietats “web”

• Introduir una etapa per a fer una gestió explícita dels diferentstipus d’usuaris del sistema

• Introducció de mecanismes de reutilització a nivell d’especifi-cacions conceptuals navegacionals

Page 30: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

12 CAPÍTOL 1. INTRODUCCIÓ

• Definir el conjunt de patrons de traducció que haurand’aplicar-se per transformar automàticament els models con-ceptuals web en prototipus d’aplicacions web

• Construir un prototipus d’una eina CASE que facilite i guieel procés de desenvolupament d’aquests sistemes web i queimplemente els patrons de traducció a entorns d’implemetació

• Aconseguir una integració funcional OlivaNova, l’eina que im-plementa els principis proposats per OO-Method

• Aplicar, des de l’inici, els principis promoguts per l’EnginyeriaWeb, el Desenvolupament Dirigit per Models i les Factories deProgramari

Finalment, s’ha tingut en compte, durant el pas del temps, l’apa-rició de noves disciplines o línies d’actuació que han pogut influenci-ar l’evolució de l’estratègia, com ara:

• L’aparició de MDA com estàndar de documentació de transfor-macions de codi en aproximacions basades en el MDD

• La renaixença de la necessitat de construir models dominisontològics específics, molt relacionats amb temes de comerçelctrònic, soportat en gran mesura per la Web Semàntica

• La necessitat actual de donar suport a models de processoscomplexos i oberts, i l’evolució de la tecnologia cap a entornsde serveis web i arquitectures orientades a serveis

• El fort impacte que la comunitat d’hipermedia adaptativa estàtenint en l’àmbit de l’adaptativitat de sistemes basats en elweb

Page 31: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

1.4. Solució Proposada 13

1.4 Solució Proposada

La proposta que es presenta s’ha anomenat OOWS, un mètode deproducció d’aplicacions i Solucions Web basat en una aproximacióde modelatge OO. OOWS proposa una extensió d’OO-Method queintrodueix un refinament al procés de producció per adeqüar-lo a lesnecessitats de modelatge conceptual i desenvolupament d’aplicaci-ons web.

La Figura 1.1 presenta la proposta d’extensió del procés dedesenvolupament d’OO-Method (remarcat amb un 1) per extendre’l(remarcat amb un 2) adequadament.

Les extensions que es proposen són:

1. La incorporació d’un Model Navegacional que permet definirl’estructura de navegació per als usuaris del sistema. En l’àm-bit d’aquest model navegacional es proposen dues etapes: unaprimera en la que es detecten i es representen adequadamentels diferents tipus d’usuaris que poden emprar el sistema (mit-jançant un diagrama d’usuaris) i una segona en la que es des-criga l’accés al sistema per a cadascun d’aquest tipus d’usuari.Aquest model navegacional ha de ser construït agafant com aentrada el model estructural d’OO-Method per tal de crear lesdiferents vistes enllaçades del sistema que se li proporcionaràals diferents usuaris.

2. La incorporació també d’un Model de Presentació, que cap-ture a alt nivell d’abstracció els requeriments de presentaciód’informació orientat a aplicacions web. Es proposa que aquestmodel siga construït agafant com a base el model navegacionaldescrit anteriorment, amb l’objectiu de “decorar” les primitivesnavegacionals amb informació sobre cóm presentar-les.

Page 32: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

14 CAPÍTOL 1. INTRODUCCIÓ

Figura 1.1 – Aproximació Metodològica OO-Method/OOWS

3. Extendre el procés de generació de codi d’OO-Method iincorporar nous patrons de traducció per a aquestes extensionsconceptuals per al web. A nivell d’arquitectura, canviar la capad’Interfície Gràfica d’Usuari que s’obté amb OO-Method peruna altra dedicada i construïda seguint els requeriments delweb.

4. Definir un entorn de generació de codi per aplicacionsWeb, basat en un Framework d’implementació. Aquest fra-mework ha sigut el resultat d’aplicar els principis del Desen-

Page 33: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

1.5. Estructura de la Tesis Doctoral 15

volupament Dirigit per Models i les Factories de Programari.Aquest framework està pensat per que puga integrar-se ambles solucions que s’obtenen amb OlivaNOVA, la implementaciócomercial d’OO-Method.

5. Desenvolupar un prototipus d’eina que done suport completal desenvolupament d’aplicacions Web amb el mètode OOWS,integrant-se amb l’eina OlivaNOVAexistent.

L’objectiu final serà, com s’ha comentat abans, aconseguir un mè-tode de producció d’aplicacions web a partir de models conceptualsweb que fan ús de l’orientació a objectes en entorns de produccióautomàtica de software.

1.5 Estructura de la Tesis Doctoral

Aquesta tesi doctoral està dividida en els següents capítols:

• El Capítol 1 - Introducció presenta el context de la tesi doc-toral, introduint la problemàtica en el desenvolupament d’a-plicacions web en l’àmbit de l’Enginyeria Web i els objectiusessencials a resoldre.

• El Capítol 2 - Sistemes Software per al Web defineix els arte-factes de programari per a la web i presenta l’estat de l’art deles aproximacions metodològiques més recents que tracten dedonar solució al desenvolupament d’aquest tipus de sistemes.

• El Capítol 3 - OOWS: Un Mètode per Desenvolupar AplicacionsWeb presenta el procés de desenvolupament complet d’unaaplicació web, fusionant l’aproximació metodològica definidaper OO-Method amb les extensions conceptuals proposades perOOWS. Una primera fase on es descriu el sistema en termes

Page 34: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

16 CAPÍTOL 1. INTRODUCCIÓ

del Domini del Problema (Anàlisi Conceptual) i una segona ones descriu el procés d’obtenir una implementació del sistemade manera automàtica en termes del Domini de la Solució(Desenvolupament de la Solució).

• El Capítol 4 - Model Navegacional descriu amb detall el mo-del introduït per OOWS per capturar la semàntica navega-cional de les aplicacions web. Es repasa l’etapa d’autoria agruix nivell (“authoring-in-the-large”) i la d’autoria al detall(“authoring-in-the-small”) junt amb les primitives de modelat-ge que permeten aquesta representació.

• El Capítol 5 - Model d’Usuaris descriu els diagrames d’usuarisque permet la introducció i gestió explícita del tipus d’usuarisal sistema web. Es defineix la taxonomia d’usuaris, el seumode d’accés i les relacions entre usuaris.

• El Capítol 6 - Conceptes Avançats presenta uns refinamentsdel Model de Navegació proposat per tal de donar suport a di-ferents aspectes avançats, com ara l’ús de mecanismes d’accés,la gestió avançada de continguts, la introducció d’aspectes depersonalització en aplicacions web o la definició de mecanismesper a la reutilització d’especificacions.

• El Capítol 7 - Model de Presentació presenta una sèrie de pa-trons orientats a enriquir la descripció dels contextos navega-cionals per expressar requeriments de presentació.

• El Capítol 8 - Implementació de la Interfície Web defineix elprocés d’obtenció de la interfície web a partir de les extensionsintroduïdes per OOWS: Model d’Usuaris, Model Navegacionali Model de Presentació. Ací es presenten els patrons de traduc-ció i un framework d’implementació que s’ha desenvolupat per

Page 35: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

1.5. Estructura de la Tesis Doctoral 17

facilitar el desenvolupament de les aplicacions.

• El Capítol 9 - OOWS Suite: Eina de Suport descriu el prototi-pus d’eina de suport que s’ha desenvolupat i que dona suportal procés de desenvolupament descrit en la tesi. Bàsicamentpresenta: (1) els editors gràfics construïts per representar elsmodels conceptuals proposats i (2) els compiladors de modelsque implementen els patrons de traducció definits.

• El Capítol 10 - Conclusions presenta les conclusions d’aquesttreball de tesi, analitza el grau amb que s’han aconseguitels objectius marcats i avalua el grau d’èxit amb respectea publicacions, participacions en foros i xarxes temàtiques.Finalment, es presenten els treballs en curs i futurs.

• El Annexe A - Framework d’Interfícies Web, WIF descriu unframework d’implementació d’interfícies web que s’ha desen-volupat per facilitar la implementació de les aplicacions Web.Aquest framework permet simplificar el procés de compilacióde models, ja que proporciona primitives d’implementació demajor nivell d’abstracció. A més, és l’encarregat d’integrar-seamb la implementacions OlivaNOVA. Aquest apèndix detallala interfície d’ús d’aquest framework.

• El Annexe B - Cas d’Estudi: IMDb Lite mostra el cas d’estudid’IMDb, desenvolupat de manera completa amb OOWS. IMDbés una aplicació web per a la gestió filmogràfica, proporcionantinformació sobre pel·lícules, actors, directors, etc. del món delcine.

• El Annexe C - Metamodel mostra el codi d’un compilador queagafa models conceptuals OOWS i els transforma en codi del

Page 36: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

18 CAPÍTOL 1. INTRODUCCIÓ

framework d’interfícies Web. Aquest compilador està imple-mentat emprant oAW, una tecnologia de construcció de com-piladors de models que permet realitzar transformacions demodel a codi.

Page 37: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

CAPÍTOL 2SISTEMES SOFTWARE PER AL WEB

2.1 Introducció

Uns anys després de l’aparició de la disciplina l’Enginyeria Web [77],el desenvolupament d’aplicacions web complexes és encara un topicde recerca relevant. Durant molts anys, les aproximacions engi-nyerils web han realitzat un excelent treball adaptant mètodes dedesenvolupament de programari [95] que inicialment foren conce-buts per donar suport al desenvolupament de programari “tradi-cional” (no web) per tal de proporcionar una solució concreta aldesenvolupament d’aplicacions web.

Tots aquestos mètodes d’Enginyeria Web estan basats en unprincipi similar: les aplicacions web deuen construir-se a partir dedescripcions precises, robustes i no ambigües del Sistema d’Infor-mació en forma d’Esquemes Concpetuals. Després, aquestos Es-quemes Conceptuals deuen transformar-se adientment en la seuarepresentació en forma de producte de programari definint lligams

19

Page 38: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

20 CAPÍTOL 2. SISTEMES SOFTWARE PER AL WEB

entre les primitives conceptuals i les seues representacions en tecno-logies concretes. Per tal d’aconseguir aquest objectiu, els EsquemesConceptuals clàssics, que bàsicament es centren en capturar elsaspectes estàtics i de comportament del sistemes, han de ser extesosamb nous models i mecanismes d’abstracció per tal de capturar elsnous aspectes introduïts per les aplicacions web. Aquestos aspectes“nous” poden resumir-se bàsicament en dos: navegació i presenta-ció. Alguns esforços representatius per introduir-los en tècniquesde modelatge conceptual tradicionals han sigut OOHDM [100, 113],WebML [26], UWE[61, 60] and WSDM [33, 31].

En aquest contexte, algunes aproximacions recents d’EnginyeriaWeb han fet avanços significatius en seguir estratègies Dirigides perModels [72, 9, 116]. Aquest fet es fa més evident si considerem quealguns mètodes d’Enginyeria Web han adoptat de manera exitosala proposta Model-Driven Architecture (MDA) proposada per laOMG [82]. D’acord a aquesta proposta MDA, els Esquemes Con-ceptuals són comparats amb Models Independents de Plataforma(PIM). Després, aquestos PIMs són transformats en Models Especí-fics de Plataforma (PSM) per l’aplicació de transformacions model-a-model.

La proposta que es proposa en aquesta tesi doctoral proporci-ona una contribució concreta en aquest contexte. S’ha adaptat elmètode OOWS que segueix la disciplina de l’Enginyeria Web perque satisfaga els principis de MDA [130]. OOWS proposa un PIMque ens permet descriure els diferents aspectes de les aplicacionsweb. Aquest PIM exten l’Esquema Conceptual del mètode Orientata Objectes de producció de programari OO-Method [90, 89, 91] nousmodels per capturar la “semàntica web”.

El PIM proposat pel mètode proporciona tota la informació ne-cessària per dur a terme les transformacions automàtiques. Aques-

Page 39: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

2.2. La Web: Present i Futur 21

tes transformacions es realitzen mitjançant una eina que transfor-ma el PIM en codi executable. Açò pot ser realitzat a causa que elPIM és computacionalment complet . Per realitzar aquestes trans-formacions, s’ha extés el procés de generació de codi definit per OO-Method [86] incloent aquelles referents a les extensions introduïdes.

2.2 La Web: Present i Futur

La Web és atractiva. No sols per a experts en computació, sinótambé per als usuaris no experts. Açò és demostra en la gran quan-titat creixent d’usuaris que empren els serveis de la Web. Al mateixtemps, s’observa una millora en la relació usuari-computadores grà-cies a la Web: els camps de les ciències de la computació, els siste-mes d’informació i l’enginyeria de programari, que abans quedavenubicades en l’àmbit dels experts, amb la Web han alcançat l’usuaricomú. I no perquè resulte trivial abordar-los, sinó més bé per la dis-ponibilitat d’eines que peremten la construcció “relativament fàcil”dels llocs Web. Açò ha conduït cada vegada més a l’usuari cap aldesenvolupament artesanal de llocs Web [34].

Però, quines implicacions té aquest acés tan fàcil a eines dedesenvolupament del Web? La resposta és sencilla: podem trobarcada vegada més i més usuaris amb perfils, formacions i orientaci-ons diferents a la branca de la computació, que estan contribuint aenriquir-la, com ara experts en disseny gràfic, en gestió documentali d’hipertext, en màrketing, en aspectes legals, etc. Tot açò fa, coms’expresa en [94]: Els sistemes basats en la Web estan involucrantuna barreja entre edició publicitària i desenvolupament de progra-mari, entre màrketing i computació, entre comunicacions internes irelacions externes, entre art i tecnologia.

Altre fenòmen interessant que s’ha presentat és aquell que té

Page 40: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

22 CAPÍTOL 2. SISTEMES SOFTWARE PER AL WEB

a veure amb la perspectiva de l’usuari que té el desenvolupador.Tal i com ho es pretén amb aproximacions cap al DesenvolupamentDirigit per l’Usuari (“End-User Development”[66]), un dels aspectesque deu considerar tot dissenyador de l’interfície de qualsevol sis-tema ha de ser: Conèixer a l’usuari. Tanmateix, l’“usuari” en laWeb és un concepto potser massa ampli: podem ubicar-lo dins unaorganització, en la Intranet; podem ubicar-lo fora de l’organització,en la Extranet; o enlloc, en Internet. Tots amb perfils, interessos icaracterístiques diferents que es afigen un problema addicional depersonalització de llocs Web que augmenta la seua complexitat [34].

En definitva, la complexitat és tal que es requereixen diferentshabilitats que no es solen trobar en un mateix expert: Enginyeriadel Programari, d’Hipertext, d’Informació, de Requeriments, d’Anà-lisi i Disseny de Sistemes, de Modelatge i Simulació, d’Administracióde Projectes, de Proves, d’Interacció Home-Màquina, de Multime-dia, entre d’altres. És per açò que es requereixen d’aproximacionsmetodològiques que aporten una solució enginyeril (sistemàtica ireproduible) per tal de facilitar aquest tipus de desenvolupamentsa la vegada que es millora la qualitat del producte produït.

A mesura que augmenta la nostra habilitat en la construcció desistemes Web, augmenta també la seua complexitat. El número deprofessionals que treballaran directament en assumptes Web delfutur serà cada vegada major i en conseqüència, la complixitat dela seua coordinació també ho serà. Conforme els desenvolupadorsvajen adoptant els principis que promou l’Enginyeria Web, es redui-ran també els riscos causats per aquesta complexitat i es milloraràla tasa d’èxit en els desenvolupaments.

Com la mateixa Web, l’Enginyeria Web enfronta i enfrontarà lacomplexitat del canvi constant. L’Enginyeria Web deurà ser capaçd’adaptar-se a aquesta dinàmica també. És natural: si la Web

Page 41: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

2.3. Característiques inherents als Sistemes Web 23

canvia de manera accelerada, l’Enginyeria Web també ho haruà defer. Sols així podrà fer front de manera real i exitosa als reptes iproblemes, avuí desconeguts, que oferirà aquesta nova àrea tecnolò-gica.

2.3 Característiques inherents als SistemesWeb

Els sistemes Web actuals1 són híbrids entre hipermedia i sistemesd’informació.

Com un sistema hipermedial, la informació és accedida d’unamanera exploratòria, enlloc d’emprar interfícies que dirigeixen labúsqueda, i la manera en què la informació és navegada i presen-tada és de gran importància. Pel que fa a la seua perspectiva desistema d’informació, el tamany i la volatilitat de les dades i ladistribució de les aplicacions requereix de solucions d’arquitecturesconsilidades basades en tecnologies com sistemes de gestió de basesde dades i computació client-servidor [42].

A causa d’aquesta naturalesa híbrida, el desenvolupament d’unaaplicació Web deu tenir en compte un conjunt de requerimentsd’aplicació, com ara:

• La necessitat de gestionar tant dades estructurades (per exem-ple, registres de les bases de dades) com informació no estruc-turada (per exemple, objectes multimedia).

• Donar suport a un accés exploratori de les dades a travésd’interfícies navegacionals.

1alguns autors solen anomenar-los tambe “Web Information Systems, WIS” osímplement aplicació Web

Page 42: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

24 CAPÍTOL 2. SISTEMES SOFTWARE PER AL WEB

• La personalització de l’estructura de continguts, primitivesnavegacionals i estils de presentació.

• El suport a un comportament proactic, per exemple, per ferrecomanacions i filtrats de dades.

Pel que fa al seu desenvolupament, encara que els Sistemes Webi els Sistemes d’Informació “tradicionals” involucren ambdós concep-tes de programació i desenvolupament de programari, la construccióde sistemes basats en el Web és diferent al desenvolupament desoftware tradicional amb relació als següents aspectes:

1. La majoria dels sistemes Web actuals són orientats al docu-ment, incloent documents (pàgines Web) estàtics i dinàmics.

2. Existeix un èmfasi molt marcat en la creativitat dels aspectesvisuals de la presentació i la interfície.

3. Molts sistemes basats en el Web segueixen sent dirigits pelcontingut.

4. Molts sistemes basats en el Web deuen gestionar la diversitatde perfils d’usuari que poden emprar-los. Si en alguna cosacaracteritza un sistema Web és la universalitat d’usuaris po-tencials que poden emprar-lo.

5. Encara no s’ha explotat al màxim, malgrat tot, la capacitatdel Web com el medi natural d’obtenir aplicacions funcionalsdistribuides, més que com un medi de distribuir continguts.En la actualitat s’està fent un esforç en proporcionar serveisofertats via web accessibles de manera estàndar.

6. Existeix una combinació d’art i ciència en la Web de maneraque mai abans s’havia considerat en els sistemes tradicionalsde programari.

Page 43: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

2.4. L’Enginyeria Web 25

7. La dinàmica del Web és tan elevada que és necessari que elstemps de canvis i posada en funcionament han de ser cadavegada més reduïts.

8. El Web opera en una diversitat de plataformes, que no és comúamb el software tradicional de plataforma única.

9. Els individus que participen en la construcció de sistemes ba-sats en la Web requereixen d’habilitats diverses i variades queinflueixen de manera decisiva en la forma en que es concebeixel Web, així com en els seus aspectes de qualitat.

Com ja ha esdevingut en el passat amb altres tecnologies emer-gents com ara les bases de dates i els llenguatges de programacióorientats a objectes, les metodologies i les eines software podenproporcionar una ajuda molt significant en la gestió adequada dela complexitat d’aquest tipus d’aplicacions, donant un suport a l’en-teniment i ús d’aquest paradigma de desenvolupament i proporcio-nant avantatges en la productivitat i reducció de riscos inherents enel desenvolupament de programari i migració de sistemes [42].

2.4 L’Enginyeria Web

Motivats per aquest context, molts experts estan unint els seusesforços en la creació i establiment d’una nova disciplina, anome-nada Enginyeria Web, que s’enfoca exclusivament a l’estudi i lasolució dels problemes que sorgeixen a partir dels sistemes basatsen el Web. [77] la defineix com: L’establiment i ús de principisd’enginyeria i gestió, així com d’enfocs sistemàtics i disciplinats peral desenvolupament, instalació i manteniment exitós de sistemes iaplicacions d’alta qualitat basats en el Web.

Page 44: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

26 CAPÍTOL 2. SISTEMES SOFTWARE PER AL WEB

El primer pas per a sistematitzar el desenvolupament d’aplica-cions web complexes, amb aquestes necessitats d’evolució, extensi-bilitat i manteniment, és definir un procés de cicle de vida adequat.Algunes característiques desitjables d’aquest procés és que siga al-tament iteratiu i incremental, amb l’objectiu de disminuir el tempsde desenvolupament i millorar la qualitat del producte final.

De les estratègies que han anat sorgint per donar aquest suportmetodològic, s’observa que en els processos de construcció de siste-mes Web existeixen dues corrents clarament diferenciades:

1. Una corrent en la que un sistema per al web és bàsicamentun conjunt de documents d’hipertext enllaçats que conformenl’espai d’hipermedia. Però, sense incloure aspectes de “dinàmi-ca” funcional. De fet, tendeixen a pensar que els sistemes websón tan complexos que no es pot realitzar un model conceptu-al complet que capturen les seues propietats. Habitualment,aquestes aproximacions venen del món de la comunitat de laInteracció-Home-Màquina i i l’Hipermedia Adaptativa estancentrades, d’una manera molt arrelada, en que els sistemesWeb estan basats en models de navegació molt sofisticats in-cloent d’una manera molt forta als usuaris i l’adaptativitatdinàmica dels sistemes a aquests usuaris.

2. Una altra corrent en la que es considera als sistemes Web comuna evolució de les aplicacions de programari tradicionals onhan agafat major importància cert tipus de característiques(disseny de documents-hipertext, navegació, gestió d’usuaris,introducció d’aspectes de presentació, etc.).

Pel que fa a la primera corrent, des del punt de vista del treballa realitzar en aquesta tesis queda descartada com estratègia basede treball a causa que no es tracta de manera adequada totes les

Page 45: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

2.4. L’Enginyeria Web 27

dimensions necessàries per a construir un model conceptual web (enconcret la funcional i poc la estàtica) i d’altra banda està descompen-sat l’esforç que es fa en l’àmbit de definició de les propietats nave-gacionals. Malgrat tot, alguns aspectes d’aquestes aproximacionss’han emprat en la construcció de la solució metodològica aportadaen l’àmbit de definició de propietats navegacionals i gestió d’usuaris.

Però, és la segona corrent la que ha desembocat en el naixementde l’Enginyeria Web [77] com l’estratègia per abordar els reptes queaquests sistemes ofereixen, d’una manera metodològica, estructura-da, sistemàtica i rigorosa. Es basa en el fet de pensar que sí que éspossible construir un model conceptual que represente les carac-terístiques rellevants de les aplicacions web. I, com a conseqüència,que aquestos models conceptuals deuen constituir la base per guiarel desenvolupament de les aplicacions web.

Les aproximacions més importants que han aparegut al llarg d’a-quests últims anys dins de l’Enginyeria Web (revisades al següentcapítol) hi estan d’acord pel que fa a les característiques essencials:

1. Definició de processos rigorosos de conceptualització d’aplica-cions web, semblants en les seues etapes.

2. Ús/Definició de models conceptuals extesos dels “tradicionals”per incorporar també els requeriments d’aquest tipus d’aplica-cions.

3. Definició de guies metodològiques a l’hora d’implementar lessolucions de programari a partir d’aquestos models conceptu-als.

Page 46: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

28 CAPÍTOL 2. SISTEMES SOFTWARE PER AL WEB

2.5 Aproximacions Metodològiques

A continuació es revisen les aproximacions que es consideren en l’ac-tualitat més rellevants en l’àmbit de l’Enginyeria Web. A pesar queen són molts i hi ha que venen d’altres branques de treballs, noméss’analitzen aquells que apliquen els principis de l’Enginyeria Web iel Desenvolupament Dirigit per Models, ja que aquestes premissessón essencials en l’àmbit que aquesta tesi ocupa.

D’aquestes aproximacions s’analitza el procés de desenvolupa-ment que proposen, així com els models que introdueixen per captu-rar les especificacions de les aplicacions Web. Observant les primi-tives i ordre en que es capturen, podrem veure quins conceptes sónels que tracten de donar prioritat.

2.5.1 HDM

El Model de Disseny d’Hipertext de [46] i [45] és el primer modelper al disseny estructurat de sistemes web. Ofereix una extensió delmodel entitat-relació afegint-hi un model de disseny hipermedial,però sense contemplar aspectes funcionals. S’ha decidit ficar-loperquè fou el que inicià el “camí a seguir”.

En realitat, aquesta aproximació no defineix el procés de desen-volupament d’una aplicació web, però, comenten els autors en [45]que pot ser integrat amb algún procés existent.

Un avantatge que ofereix és la seua possibilitat de descomposarles aplicacions d’hipertext en artefactes de gra més fi reutilitzablesmentre s’asseguren les relacions estructurals amb el model entitat-relació. El principal inconvenient són les limitacions conceptualsque imposa el mètode.

És més un model de disseny que no pas un model conceptual. Amés, l’analista està subjecte a una forta càrrega cognitiva acusada

Page 47: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

2.5. Aproximacions Metodològiques 29

per l’ausència d’un model de procés insatisfactori i incomplet queno soporta el reús d’artefactes i el fet de treballar amb un para-digma més clàssic com és l’entitat relació. Tampoc és trivial fer el“mapping” del disseny construït de les aplicacions d’hipertext a unaaplicació web, a causa d’una manca de soport adequat.

La seua principal bondad és el fet de ser un dels primers mètodesen aparèixer i de servir d’inspiració per a la seua versió objectualOOHDM.

2.5.2 OOHDM

Emprant com a base HDM, naix el Mètode de disseny hipermedialOrientat a Objectes OOHDM [102, 111]. OOHDM ofereix un procedi-ment per al desenvolupament d’aplicacions hipermedials consistenten cinc etapes: El·licitació de Requeriments, Disseny Conceptual,Disseny Navegacional, Disseny Abstracte d’Interfície i Implementa-ció, els quals han de construir-se seguint un enfoc iteratiu incremen-tal, basat en prototipus.

En la fase d’El·licitació de Requeriments, en primer lloc s’i-dentifiquen els actors (“stakeholders”) i les tasques que aquestos hande dur a terme. A continuació es defineixen un conjunt d’escenarisper a cada tasca i tipus d’actor en forma de Casos d’Ús. Aquestoscasos d’ús són descrits emprant una notació gràfica introduida pelmètode anomenada Diagrames d’Interacció d’Usuaris (UID) [133].Aquestos diagrames especifiquen el fluix d’informació que ha deseguir i conduir a l’usuari. Aquestos UIDs són validats amb elsactors i a partir d’aquest s’haurà de constuir el model conceptualbàsic.

En la fase de Disseny Conceptual s’ha de construir un modelconceptual del domini de l’aplicació. OOHDM no força a l’ús de capmetodologia en particular, però es suggereix recolçar-se amb alguna

Page 48: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

30 CAPÍTOL 2. SISTEMES SOFTWARE PER AL WEB

orientada a objectes i coneguda, com pot ser OMT o UML [114].En la fase de Disseny Navegacional, es suggereix emprar una

metodologia basada en escenaris per guiar el procés, emprant unanotació específica i incloent una seqüència d’etapes prou detallada,que passa per: 1) determinar el perfils o tipus d’usuaris i identificarles seues tasques; 2) recolectar els escenaris d’ús; 3) analitzar iproduir una representació diagramàtica simple de les rutes de nave-gació definides com a conseqüència dels escenaris d’ús. 4) síntetitzarun diagrama de contexte parcial, especificant la navegació dins elscontextes que soporten la tasca descrita en l’escenari. I finalment,5) sintetitzar el diagrama de contexte final, a través d’un procésd’unió i homogenització dels esquemes parcials produïts en l’anàlisisd’escenaris del pas anterior. L’artefacte en el que s’expresa tot açò ésel Model Navegacional. Aquest constitueix un descriptor de vistesnavegacionals sobre el Model Conceptual.

En la fase de Disseny Abstracte de l’Interfície d’usuari no esproposa una guia metodològica concreta, però es donen una sèrie dedecisions que l’analista pot anar tenint en consideració. OOHDMdistingeix dos nivells d’interfície: 1) abstracta, que defineix la in-terfície per a complir una tasca sense tenir en compte aspectestecnològics, i 2) concreta, en el que es defineix el “look and feel” del’aplicació (colors, fonts, etc.) i els elements gràfics que soportenl’interacció. La interfície abstracta es basa en un conjunt d’ele-ments abstractes que permeten especificar una reacció a un eventextern (“SimpleActivator”), mostrar contingut (“ElementExhibitor”),introduir una variable (“VariableCapturer”) o composar-se entre sí(“CompositeInterfaceElement”). Cadascun d’aquestos elements deuser associat a un element del model navegacional que proporcionarào rebrà el contingut, i a un component concret d’interfície, que do-narà una solució concreta en la plataforma tecnològica destí triada.

Page 49: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

2.5. Aproximacions Metodològiques 31

Figura 2.1 – OOHDM: Exemple Esquema Navega-cional

Aquesta associació es realitza mitjançant una especificació definidaen OWL [117].

Actualment, la versió d’OOHDM ha sigut modificada cap a unaaltra versió, SHDM [115], en la que aquesta aproximació s’introdu-eix fortament en l’ús d’aspectes semàntics. Així, el Model d’Objectsara es deriva a partir d’una especificació d’un model de dades enRDF [18], que ha sigut proposat per descriure dades i meta-dadesen l’àmbit de la Web Semàntica.

Finalment, la fase d’Implementació ofereix línies guia que per-meten fer el “mapping” dels models anteriors a un ambient d’execu-ció particular i que és independent d’una plataforma específica. En

Page 50: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

32 CAPÍTOL 2. SISTEMES SOFTWARE PER AL WEB

l’actualitat aquest mètode disposa d’una eina de suport al mètode,HyperDE, que s’analitza a la Secció 2.6.1.

Com a virtuts d’aquest mètode està el fet d’incorporar guies me-todològiques que orienten l’analista en construir les especificacions,incloent en les últimes revisions activitats que permeten introduircerts aspectes d’enginyeria requeriments per al web. A més, elsuport a la descripció de propietats navegacionals és molt exhaustiui disposa de diferents primitives conceptuals per al tractament decasos especials com ara l’incorporació d’instàncies d’objectes a nivellde modelatge o el tractament de “perspectives” d’atributs.

Com a punts més febles destaca el fet que, si bé es defineixun procés guiat (mitjançant “mappings” entre elements de mode-latge i implementacions) de producció de programari, no existeixuna sistematiztació d’obtenció de codi. Açò ha sigut millorat ambel desenvolupament de l’eina HyperDE, que permet realitzar lestransformacions de manera automàtica.

A més, encara que s’empra un paradigma Orientat a Objectes,no està clar amb quines tècniques es descriuen els processos fun-cionals i de vegades aquests pareixen confondre’s amb aspectes denavegacionals.

2.5.3 WebML

[25, 27] proposen el Llenguatge per al Modelatge Web WebML [137]com “l’opció que permet als dissenyadors web expressar a les ca-racterístiques centrals d’un lloc Web sense preocupar-se pels seusdetalls arquitectònics”. Els conceptes inclosos en WebML s’associena una representació gràfica intuitiva, factible de ser suportada pereines CASE i que poden ser emprats en fases de desenvolupamentde codi.

L’especificació en WebML d’un lloc Web consisteix en quatre pers-

Page 51: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

2.5. Aproximacions Metodològiques 33

Figura 2.2 – WebML: Procés de Desenvolupament

pectives ortogonals: en primer lloc el Model Estructural o de Dades,que expresa el contingut de dades del sistema en termes de les en-titats rellevants i les seues relacions (mitjançant un model entitat-relació extés). En segon lloc, el Model d’Hipertext, que descriu lesvistes d’hipertext que poden publicar-se del lloc web. Aquestes vistesconenten submodels que permeten (1) composar les pàgines, (2) des-criure la navegació entre pàgines i (3) donar pautes independents detecnologia de la presentació de les pàgines. El Model de Presentaciódefineix l’apaprença gràfica i l’ubicació dels elements en l’interfície.Finalment, el Model de Personalització que especifica els aspectesrelatius als usuaris i els seus grups.

El Model de Estructural o de Dades expresa el contingut del’aplicació Web en termes d’entitats i relacions. Les entitats actuencom contenidors dels elements d’informació mentre que les relacionsestableixen conexions semàntiques entre les entitats. Cada entitatté atributs que representen les seues propietats amb el seu corres-ponent tipus de dada i poden organitzar-se (les entitats) de manera

Page 52: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

34 CAPÍTOL 2. SISTEMES SOFTWARE PER AL WEB

jeràrquica emprant l’operació de generalització2. D’altra banda,les relacions es defineixen mitjançant restriccions de cardinalitat inoms de rol entre les dues entitats.

La definició de la interfície del sistema s’especifica mitjançantel Model d’Hipertext, que es converteix en el model principal.Aquest model defineix l’estructura d’una aplicació web de maneramodular, mitjançant vistes del sistema (“site views”), àrees, pàgines(“pages”) i unitats de contingut. Una vista representa la interfícieweb (hipertext) que cobreix un subconjunt específic dels requeri-ments de l’aplicació. Una vista es composa d’àrees que formen lesseccions principals de l’aplicació Web. Un àrea, de la seua banda,pot contenir pàgines o altres àrees (de manera recursiva), per tal defacilitar l’organització navegacional del sistema.

Es poden definir diferents vistes sobre el mateix model de dades,per tal de cobrir les necessitats d’un conjunt particular d’usuaris oper organitzar el contingut atenent a criteris diferents, com ara tec-nològics. Un exemple clar és la de poder definir una vista específicapensant en un dispositiu concret, com podria ser una PDA, i crearun model que descriga aquesta aplicació

Les pàgines són contenidors d’informació que es presenta a l’usu-ari. Aquestes s’organitzen mitjançant unitats de contingut (“contentunits”), que són peces elementals d’informació. Una unitat de con-tingut representa vàries instàncies d’entitat expresades en el Modelde Dades. Aquestes unitats s’expresen mitjançant consultes o bésobre atributs o relacions de les entitats. WebML proposa l’ús dediferents tipus d’entitats en funció de la seua utilitat: 1) Unitats deDades, que mostren informació d’una única instància; 2) Unitats deDades Múltiples, que mostren informació de múltiples instàncies; 3)Unitats d’Índex, que presenten una llista d’enllaços seleccionables;

2El Model Entitat-Relacio subjacent que s’empra permet la definició d’estructu-res jeràrquiques de generalització entre les entitats.

Page 53: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

2.5. Aproximacions Metodològiques 35

Figura 2.3 – WebML: Exemple Estructura Nave-gacional

4) Unitats d’“Scroll”, que permeten navegar de manera ordenadasobre un conjunt d’instàncies; i 5) Unitats d’Entrada, que mostrenun formulari per que l’usuari introduisca dades al sistema (general-ment per executar una operació).

En WebML, tant les unitats de contingut com les pàgines podeninterconectar-se mitjançant enllaços (“links”). Els enllaços entreunitats s’anomenen enllaços contextuals, ja que envien informaciócontextual (paràmetres de l’enllaç) de l’orige al destí. Els enllaçosentre pàgines s’anomenen enllaços no contextuals, ja que no dueninformació contextual.

La inclusió de serveis i operacions es realitza mitjançant ope-racions per defecte (crear, modificar i eliminar instàncies, afegiro eliminar relacions) associats a les entitats. També proporcionaoperacions essencials, com ara login o logout. És possible establirenllaços associats a l’execució d’una operació, de manera que espuga navegar a un lloc o un altre en funció de si l’operació ha anatcorrectament (ok) o no (ko).

El Model de Presentació expresa l’aparença gràfica i la distri-

Page 54: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

36 CAPÍTOL 2. SISTEMES SOFTWARE PER AL WEB

bució dels elements de contingut dins les pàgines Web. Es podendistingir dos possibles tipus d’especificacions de presentació: a) es-pecífiques de pàgina, que inclouen referències explícit al contingut,o b) genèriques, que es basen en elements de contingut genèrics entotes les pàgines.

El Model de Personalització modela de manera explícita elconcepte d’usuari i grups d’usuaris mitjançant entitats definidesdins el Model Estructural. Els atributs d’aquestes entitats sónemprats per definir expresions en OQL (Object Query Language)per establir polítiques de personalització, que després podrà serreutilitzat en altres models.

A banda, WebML defineix un model de processos que involucraactors de diverses habilitats, com ara l’expert de dades, encarregatdel model estructural, l’arquitecte de l’aplicació, que dissenya lespàgines i les rutes de navegació, l’arquitecte d’estils, que dissenyal’estil de la presentació i l’administrador que s’encarrega de la gestiódels usuaris i opcions de personalització.

Existeix una implementació d’una eina CASE, WebRatio [138]que suporta WebML. Aquesta eina agafa especificacions WebML iobté com a eixida la implementació tecnològica del lloc Web.

Al llarg dels anys, s’ha anat introduint expressivitat per abar-car altres àrees relacionades, com ara: el consum i publicació deserveis Web [16, 68], la definició de workflows per a l’execució deprocessos [15, 17] i la creació d’aplicacions Web sensibles al contextei adaptatives [24].

Malgrat tot, aquesta aproximació té dues característiques essen-cials que han de ser millorats. La primera és el baix nivell d’abstrac-ció al que es treballa. Moltes de les primitives que empra estan mésorientades al disseny que no pas a l’especificació. Açò provoca quel’analista dels sistemes estiga continuament pensant en les “pàgines

Page 55: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

2.5. Aproximacions Metodològiques 37

i enllaços” i que les descripcions cresquen en complexitat.Un altre inconvenient és la manca d’un model dinàmic (de com-

portament) clar. En WebML es poden descriure operacions com ins-truccions de consulta i modificació de la base de dades, que s’especi-fiquen mitjançant sentències SQL en les descripcions navegacionals.

2.5.4 WSDM

WSDM (“Web Semantics Design Method”) [33, 32] és un mètode dedisseny Web semàntic, bassat en la filosofia del disseny dirigit perl’audiència. Açò significa que els requeriments dels usuaris objectiu(audiència) són el punt de partida del procés de modelatge, i no elsrequeriments d’estructura d’informació o de comportament dinàmic,com sol ser més habitual.

El procés de desenvolupament (Figura 2.4 a la pàgina següent)consta de cinc fases: especificació de la Missió de l’Aplicació, Mode-latge de l’Audiència, Disseny Conceptual, Disseny de la Implementa-ció i Implementació.

En la fase de Missió de l’Aplicació es construeix una especifi-cació de la “missió” o objectiu (“Mission Statement”) del sistema Web.En aquesta descripció, en llenguatge natural, deuen ser formulatsde manera precisa: 1) El propòsit general que persegueix el sisteWeb, 2) els distints tòpics que deuen ser coberts pel sistema, i 3)identificar els diferents tipus d’usuaris. Aquesta fase serà empradacom referència per a la resta de fases.

Una vegada establerta la missió del sistema, el següent pasconsisteix en Modelar l’Audiència (“Audience Modelling”), on pera cada usuari del sistema es refina la missió del sistema adequant-la a aquest usuari. En primer lloc, tots els membres que tenen encomú requeriments d’informació i funcionalitat, són classificats enuna classe d’audiència. Per tal d’identificar les classes d’audiència,

Page 56: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

38 CAPÍTOL 2. SISTEMES SOFTWARE PER AL WEB

Figura 2.4 – WSDM: Procés Desenvolupament

es defineixen dos mètodes: un que es basa en les activitats del’organització (es determinen els rols dels membres de l’organització)i l’altre que identifica els requeriments de funcionalitat d’informaciói es crea una matriu d’usuaris-funcionalitat.

Després, cal caracteritzar l’audiència determinada. Per això, esdefineixen les característiques rellevants per a cada classe d’audièn-cia, com ara el rang d’edad, idioma, nivell d’experiència, etc. Aques-tes característiques seran traduïdes en fases posteriors en requeri-ments d’usabilitat, i en la fase d’implementació com a requerimentsde presentació que defineixen el “look and feel” de l’aplicació.

Els requeriments informals definits en el modelatge de l’audi-

Page 57: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

2.5. Aproximacions Metodològiques 39

ència són transformats en descripcions formals que s’empren pergenerar el sistema Web. Aquesta tasca es duu a termen en la fase deModelatge Conceptual, que es divideix en dos pasos: 1) modelatgede tasques i informació, i 2) modelatge navegacional.

Enlloc de començar el procés de modelatge mitjançant un modelde dades o del domini, en WSDM s’analitzen els requeriments decada una de les classes de l’audiència detectades. L’objectiu delmodel de tasques és el de detallar les diferents tasques que cadamembre d’una classe d’audiència deu ser capaç de dur a terme, amés de descriure formalment la informació i funcionalitat requeridaper a cada tasca.

D’aquesta manera, cada requeriment definit en una classe d’au-diència és traslladat a una tasca que satisfà aquest requeirment.Cada tasca és modelada emprant una notació CTT (“ConcurrentTask Tree”) [92], modificada lleugerament per adequar-la a les par-ticularitats de les aplicacions Web.

Quan el model de tasques ha sigut completat, un “object chunk”és creat per cada tasca elemental del model. La funció d’aques-tos objectes és de definir formalment la informació i funcionalitatassociada a una tasca. WSDM empra OWL com llenguatge perespecificar aquestos “object chunks”, per facilitar la integració ambontologies existents. Per definir la funcionalitat, es proporciona unllenguatge de manipulació d’informació basat en una notació gràfica,que permet representar requeriments funcionals de certa complexi-tat. També permet l’incorporació de serveis Web externs, per seremprats com components funcionals del sistema.

L’objectiu del Disseny Navegacional és definir l’estructura con-ceptual del lloc Web i modelar com els membres poden navegar pelsistema per realitzar les seues tasques. Per a cada classe d’audièn-cia, es crea un “navigation track”, que es deriva a partir del model

Page 58: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

40 CAPÍTOL 2. SISTEMES SOFTWARE PER AL WEB

de tasques de la classe d’audiència corresponent. A continuació, totsels “tracks” són combinats en una estrucutra navegacional bàsicamitjançant enllaços d’estructura. Després, s’afegeixen els enllaçossemàntics entre els objectes del domini i els enllaços navegacionalsde soport que faciliten la navegació (enllaç a la pàgina principal,dreceres, etc.). El resultat és un model navegacional format per com-ponents on la informació s’agrupa en els components (mitjançantels “object chunks”) i enllaços entre components (definint aspectesnavegacionals).

La següent fase del mètode és el Disseny de la Implementa-ció. L’objectiu d’aquest model és completar el disseny conceptualamb detalls necessaris per a la implementació. Si el sistema Webés generara directament a partir del model conceptual, la aplicaciógenerada resultaria molt simple a nivell de presentació. En aquestafase es realitzen tres tasques:

1. Disseny de l’estructura del lloc Web: en aquesta etapa el dis-senyador decideix com agrupar les pàgines en components delmodel navegacional. Aquesta agrupació es realitza tenint encompte les diferents classes d’audiència, que indiquen els com-ponents que deuen ser agrupats junts en funció de la informa-ció presentada. Encara que per defecte un component s’agrupaen una única pàgina, és possible emprar diferents pàgines perrepresentar un únic component. El resultat d’aquesta etapa ésun model d’estructura del lloc web, que representa gràficamentles pàgines (abstractes) i components.

2. Disseny de la Presentació: defineix l’aparença visual del siste-ma Web. Per facilitar aquesta tasca, es defineixen plantillesassociades a un tipus de pàgina (pàgina principal, pàgina d’in-formació, etc.). Per al disseny d’aquestes plantilles es proposen

Page 59: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

2.5. Aproximacions Metodològiques 41

una sèrie de conceptes de presentació per determinar el posici-onament dels components, especificar enllaços, mostrar infor-mació multimedia, crear formularis, definir capçaleres/peus depàgina, . . . , unit a l’ús de plantilles CSS. El resultat d’aquestaetapa és un model de presentació compost per un conjunt deplantilles i estils per a cada pàgina del model d’estructura.

3. Disseny Lògic de la Informació: a partir dels “object chunks” ila seua descripció semàntica mitjançant una ontologia de re-ferència, es deriva l’estructura d’informació del sistema. Si noexisteix una capa de persistència per a la informació disponi-ble, aquest esquema es tradueix en un esquema lògic de dadesque done soport a la informació (com en una base de dadesrelacional), un esquema XML o un esquema semàntic expres-sat en RDF/OWL. Si existeix el sistema d’emmagatzemamenta priori, cal definir les correspondències entre els conceptes del’ontologia i el sistema d’emmagatzemamanent.

Per últim, cal realitzar la Implementació del sistema Web. Elmètode defineix una sèrie de transformacions que tradueixen elsconceptes dels mdoels anteriors en una aplicació Web. Malgrat açò,actualment no existeix una eina que done un soport a aquesta etapa,encara que hi ha definides amb XSLT les transformacions com aprova de concepte.

En el procés d’implementació també s’aprofita per a fer anotaci-ons semàntiques al codi obtés, per poder després emprar tecnologiessemàntiques i llenguatges de consulta semàntica.

Com a aspectes possitius d’aquesta aproximació és la forta pre-sència de l’audiència (usuaris) en tot el procés de desenvolupament.A més a més, ha incorporat una topologia prou completa de tipusd’enllaços navegacionals a nivell de model.

Page 60: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

42 CAPÍTOL 2. SISTEMES SOFTWARE PER AL WEB

Com a aspectes a millorar, la necessitat d’un suport sistematiztatde producció de les aplicacions finals i un millor tractament de ladinàmica del sistema (operacions funcionals).

2.5.5 UWE

“UML-based Web Engineering” (UWE) [61, 51] és una metodologiaper al desenvolupament de sistemes Web que es caracteritza per: 1)l’ús estricte de l’estàndar UML per definir els seus models concep-tuals i 2) el soport al Disseny i Implementació de un Entorn MDAper a la obtenció de les aplicacions Web, mitjançant una eina de codiobert, ArgoUWE [59].

UWE pot considerar-se “UML compliant” ja que els seus ele-ments de modelatge estan definits com extensions al metamodeld’UML. Si bé UML no és allò suficientment expressiu per mode-lar els requeriments dels sistemes Web, UWE introdueix elementsespecífics del domini Web mitjançant els mecanismes d’extensiód’UML (“profiles i restriccions OCL”) d’una manera conservativa-incremental3. Amb açò s’aconsegueix ser compatible amb l’estàndarMOF [84], de manera que es poden exportar els models a XMI i serintercanviats amb altres eines. El fet de seguir estàndars li obre laporta a ser emprat amb altres eines.

L’especificació d’un sistema Web amb UWE involucra la definicióde cinc models: Modelatge de Requeriments, Model de Contingut,Model Navegacional, Model de Processos, Model de Presentació iModel d’Adaptativitat.

En primer lloc es troba el Model de Requeriments. Aquestoss’especifiquen a dos nivells de detall o granularitat. En primer lloces realitza una descripció de la funcionalitat mitjançant Casos d’Ús

3Tot element de modelatge d’UWE hereta d’almenys un element del metamodeld’UML.

Page 61: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

2.5. Aproximacions Metodològiques 43

UML. En distingeix de tres tipus: 1) de navegació, que modeleninteraccions amb l’usuari; 2) de procés, que descriuen les tasquesde negoci que els usuaris han de dur a terme; i 3) de personalització,emprats per especificar els requeriments d’adaptació de l’aplicacióals usuaris. En segon lloc es realitza una descripció més detalladade cada cas d’ús detectat mitjançant Diagrames d’Activitat d’UML.D’aquesta manera es representa el fluix d’accions que el cas d’ús iels usuaris han de realitzar per a dur a terme una tasca.

Després dels requeriments, es defineix el Model de Contingut.L’objectiu d’aquest model és de proporcionar una especificació visual,basada en UML, de la informació rellevant en el domini del sistemaWeb. Aquesta informació és la que defineix el contingut que seràmostrat a l’usuari. Aquest model també pot contenir entitats em-prades per a introduir aspectes de personalització.

El Model Navegacional descriu l’estructura de navegació delsistema Web. Aquest model es composa fonamentalment de classesnavegacionals que represeten els nodes de l’aplicació. Aquestosnodes poden ser alcançats mitjançant enllaços de navegació queconecten nodes entre sí. Per tal que l’usuari puga accedir a la lògicade negoci de l’aplicació, els procesos de negoci subjacents del sistemadeuen incorporar-se dins l’estructura navegacional. Aquestos pro-cessos són derivats a partir dels casos d’ús de tipus procés. Els puntsd’entrada i d’eixida a aquestos processos es modela mitjançant clas-ses de procés (“process class”), i aquestes classes poden relacionar-seentre sí mitjançant enllaços de procés (“process links”).

Cada procés inclós al model navegacional ha de ser refinat mit-jançant el Model de Processos. Aquest model especifica els pro-cessos com Diagrames d’Activitat UML que descriuen el fluix delprocés, les accions possibles, les alternatives i les crides a la lògicade negoci.

Page 62: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

44 CAPÍTOL 2. SISTEMES SOFTWARE PER AL WEB

Figura 2.5 – UWE: Exemple Estructura Navegaci-onal

Per últim, cal introduir certs aspectes més relacionats amb l’in-terfície, mitjançant el Model de Presentació. Aquest model pro-porciona una vista abstracta de la interfície a partir del model na-vegacional. Aquest model descriu l’estructura bàsica de la interfí-cie i quins elements gràfics s’empraran per representar els nodesnavegacionals. Els elements bàsics d’aquest model són les classesde presentació, que s’asocien als elements del model navegacional(classes navegacionals i de procés, primitives d’accés, etc.). Unaclasse de presentació es composa d’elements d’interfície com aratext, enllaços, formularis, botons, images, etc.

Page 63: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

2.5. Aproximacions Metodològiques 45

Generalment, la informació de varios nodes navegacionals espresenta a l’usuari enun única pàgina web. El concepte de pàginaweb es representa en UWE mitjançant la primitiva page, que actuacom contenidora de classes de presentació i grups de presentació(agrupacions recursives de classes i grups de presentació).

Per tractar l’adaptativitat, UWE ho fa de manera diferent a laresta de models. El Model d’Adaptativitat es defineix de manerano intrusiva a la resta de models, emprant tècniques de modelat-ge orientat a aspectes [64]. S’introdueix la primitiva “aspecte”,composta d’un “pointcut” i un “advice”. El “pointcut” és un patróparametritzable que selecciona els elements del model original ambels que coincideix (“matching”). Per a cadascun d’aquestos elements,l’“advice” afegeix una nova característica (per exemple una novarelació o un nou atribut a cadascun dels elements seleccionats. D’a-questa manera és possible definir un “pointcut” que detecte totesles classes que pertanyen a un tipus d’usuari i associar a travésde l’“advice” un atribut específic per a aquest tipus d’usuari. Enl’orientació a aspectes, açò es coneix com weaving .

A més de definir, com s’ha comentat, una extensió UML, UWEes caracteritza per definir un procés de desenvolupament a partird’aquestos models. Aquest procés està basat en l’aplicació dels prin-cipis de MDA, emprant altres estàndars de la OMG com ara MOF,UML, OCL i XMI. El procés es basa en una sèrie de transformacionssuccessives a través de les quals s’obté l’aplicació Web [71]. UWEsitua el model de requeriments al nivell CIM. La primera transfor-mació consisteix en traslladar aquestos requeriments a models fun-cionals mitjaçant regles QVT, obtenint una primera versió del PIMde l’aplicació (basat en el metamodel definit en MOF). El segon pasconsisteix en realitzar un refinament d’aquestos models marcant lesclasses del model de contingut rellevant des del punt de vista de la

Page 64: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

46 CAPÍTOL 2. SISTEMES SOFTWARE PER AL WEB

navegació. Amb aquest refinament és possible derivar un primermodel navegacional aplicant un conjunt de regles predefinides enOCL. Per últim, es realitza un procés d’integració en el que elsmodels funcionals són integrats en un únic model, i després s’integraamb un altre model que introdueix aspectes de disseny arquitectònicde l’aplicació.

Com resultat s’obté el Model d’Integració que cubreix tant elsaspectes funcionals com arquitectònics. A partir d’aquest model, irealitzant transformacions en ATL, s’obtenen els models específicsde plataforma (PSM), que són emprats com punt de partida per a lageneració de codi.

Com a virtuts de l’aproximació està la orientació cap a entornsadaptatius (ha incorporat algunes idees del camp de la HipermediaAdaptativa) i la seua definició rigorosa del procés de producció, ambla introducció de nombroses guies d’ajuda al modelatge. A mésa més, l’utilització d’estàndars notacionals li confereixen un majoràmbit d’impacte, potenciat per la creació de l’eina CASE.

Com a punts a millorar, continua essent necessari tenir més encompte el model dinàmic, en el qual actualment estan treballant.D’altra banda, l’eina CASE dona un suport limitat únicament almodelatge conceptual.

2.5.6 Hera

El propòsit del mètode Hera [52, 132] és el de soportar el dissenyd’aplicacions web adaptables i personalitzables, seguint una estruc-tura navegacional definida sobre informació estructurada semànti-cament.

El punt de partida en Hera és el Model d’Informació a travésde la construcció de dos models conceptuals: el Model de Dominii el Model de Contexte. El Model de Domini s’encarrega de dees-

Page 65: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

2.5. Aproximacions Metodològiques 47

Figura 2.6 – Hera: Procés de Desenvolupament

criure l’estructura d’informació, especificant l’estructura semànticadel contingut. Aquesta especificació és definida emprant l’ontologiaOWL, a través d’un editor genèric d’ontologies com Protégé [118].

D’altra banda, el Model de Contexte apareix per donar suport al’adaptació de l’aplicació Web en base al contexte de l’usuari. Aquestmodel s’encarrega de definir la informació que serà emprada percrear els continguts adaptats i personalitzats. Hera distingeix trestipus d’informació de contexte: de sessió, d’usuari i global, en funcióde l’àmbit d’aplicació. Ambdós models (de Domini i de Contexte) sónimplementats en a través del repositori ontològic Sesame [131], queemmagatzema els models en RDF [136].

Una vegada descrita l’estructura d’informació del sistema, elsegüent pas consisteix en definir la pròpia aplicació. El Modeld’Aplicació especifica el comportament navegacional, permetentestablir quina informació és mostrada a l’usuari i cap a quinespàgines web pot navegar per obtenir-la. Aquest model és a més amés dinàmic, de manera que l’accés a la informació pot ser adaptadaa un usuari i contexte específics.

La instànciació del mode l’aplicació en base als models anteri-

Page 66: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

48 CAPÍTOL 2. SISTEMES SOFTWARE PER AL WEB

ors dona lloc al Model de Pàgines de l’Aplicació (AMP), que estanformades pel contingut a mostrar i enllaços navegacionals a altresAMPs. Per tant, la principial funció d’aquest model és la d’accedira la informació dels models de domini i contexte. Ja que aquestainformació es troba definida en RDF, el model d’aplicació defineixaquest accés a través del llenguatge SeRQL (Sesame RDF QueryLanguage), un llenguatge de consulta i transformació RDF. Aquestllenguatge empra plantilles basades en grafs a partir de les qualsinstància les variables a valors que compleixen el graf RDF buscat.La seua sintaxi propera a SQL la fa especialment expressiva en elcontexte d’aplicació d’Hera. En conseqüència, la resta d’elementsconceptuals del model d’aplicació són construïts en base a aquestllenguatge, i per tant en un entorn que segueix els principis de laweb semàntica [12].

Els constructors principals del model de d’aplicació són les uni-tats navegacionals i les relacions. La instanciació d’unitats i relaci-ons es realitza mitjançant consultes SeRQL sobre la informació dedomini i contexte. En aquestes consultes pot definir-se l’adaptati-vitat d’una unitat, establint condicions sobre el contexte (per exem-ple, l’usuari conectat) que defineixen quina informació del dominies mostra en funció de si s’acompleixen o no. Una unitat pot seremprada per representar una pàgina, que agrupa distints elementsque seran mostrats a l’usuari. Aquestos elements són anomenatsatributs i representen una porció elemental d’informació basada enel model de domini. El seu valor ve definit per una consulta enSeRQL. Les relacions s’encarreguen d’enllaçar unitats entre sí. EnHera és possible emprar les relacions tant per definir unitats quees troben contingudes en altres, com per especificar navegació entreunitats.

El model d’aplicació inclou a més una sèrie de constructors addi-

Page 67: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

2.5. Aproximacions Metodològiques 49

cionals per construir aplicacions més complexes:

• Update Queries: permeten actualitzar i/o modificar l’informa-ció del model de contexte en temps d’execució.

• Frame-Based Navigation: quan una unitat es troba contingu-da en una altra, la navegació per defecte implica reemplaçarcompletament la unitat contenidora per la continguda. Aquestmecanisme permet definir la navegació de manera que única-ment es reemplaça la unitat continguda, mantenint la unitatcontenidora original4.

• Forms: aquesta unitat extèn una unitat genèrica definint unacolecció d’elements d’entrada i una acció que serà executadaquan el formulari s’envie al servidor.

• Scripting Objects: permet al dissenyador especificar un scriptdefinit en un llenguatge extern (JavaScript, VBScript, etc.)que no serà processat pel motor de presentació.

• Service Objects: permeten afegir funcionalitat que s’obté através d’un servei extern a l’aplicació, com per exemple unServei Web.

Per últim, és necessari especificar com la informació serà final-ment presentada a l’usuari. El Model de Presentació s’encarregad’especificar com el contingut de les unitats navegacionals s’han demostrar. Aquest model es defineix en base a regions i relacions entreaquestes. Una regió és una abstracció que representa una àrea dela pantalla de visualització. Cada regió agrupa varies unitats delmodel d’aplicació, i a la seua vegada, poden contenir altres regionsde manera recursiva. A més a més, aquest model especifica la

4Aquest comportament és semblant al constructor frame d’HTML.

Page 68: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

50 CAPÍTOL 2. SISTEMES SOFTWARE PER AL WEB

disposició (“layout”) i l’estil de les diferents regions a través de fllsd’estil CSS. La implementació del model de presentació es realit-za prenent com base el model de documents basat en componentsAMACONT [6].

Aquesta aproximació defineix la implementació d’aplicacionsWeb personalitzades com l’agregació de diferents components docu-mentals. A aquestos components se’ls pot associar una descripció depresentació abstracta, basada en el model de presentació, de maneraque després puguen ser transformats a diferents tecnologies Web.

2.5.7 OOH

El mètode d’Hipermèdia Orientat a Objectes (OO-H) [88][49], a par-tir de la funcionalitat i la lògica que oferisca algun model d’estruc-tura d’informació (inicialment OO-Method).

OO-H defineix un model de processos genèric que ofereix alsdissenyadors la semàntica y notació necessària per al desenvolu-pament d’interfícies basades en el Web i al mateix temps ofereixla possibilitat de conectar-les amb mòduls de lògica d’aplicació pre-existents, facilitant la migració d’aplicació legades. OO-H agregados diagrames complementaris: el Diagrama d’accés navegacional(NAD), que defineix la vista navegacional; i el Diagrama abstractede presentació (APD), que captura els conceptes relatius a la presen-tació. Agregant a aquestos un Catàleg predefinit de patrons d’inter-fície hipermedial s’obté la informació necessària per al disseny de lainterfície. Ofereix, un Compilador de models que genera la interfícieper a la plataforma client indicada.

Existeix un model de procés que compren les fases que el dis-senyador cubreix per obtenir i construir la interfície funcional quesatisfaga els requeriments de l’usuari: 1) Partint del diagrama declasses d’estructura d’informació, es defineix per a cada tipus d’u-

Page 69: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

2.5. Aproximacions Metodològiques 51

suari un NAD, reflexant la informació, serveis i rutes de navegacióque satisfan els requeriments. 2) Aplicant uns passos definits pelmapeig NAD2APD, es genera un interfície Web per defecte, queserà la primera aproximació a la interfície Web final i que requeriràrefinaments. Aquesta interfíce es modela amb un APD emprantuna estratègia de plantilles. 3) Per tal de millorar la qualitat de lainterfície, el APD per defecte es refina aplicant un o més patrons delCatàleg. És possible tenir un o més APD per a cada NAD, mostrantdiferents maneres per visualitzar els mateixos requeriments de na-vegació. 4) Finalment, una vegada refinat l’APD, és possible generarla interfície de l’aplicació Web per a l’ambient desitjat, recolçant-seamb tecnologies com ara HTML, WML, ASP, JSP, etc.

2.5.8 Anàlisi de les Aproximacions

Després d’analitzar cadascun dels mètodes, podem constatar simili-tuts entre ells. En primer lloc, tots contenen un model d’estructurad’informació o de domini (normalment emprant el paradigma d’o-rientació a objectes), d’una manera prou consensuada. UWE iOOHDM proposen l’ús directament d’UML. WebML es basa en unmodel Entitat-Relació Extés, i tant WSDM com Hera empren nota-cions basades en la web semàntica, i en concret amb l’ús de llenguat-ges basats en RDF/OWL. Açò els permet l’ús d’ontologies existents,que els permet aprofitar de soca-rel els avantatges que aquestatecnologia introdueix: construcció ràpida de dominis amb dominisgenèrics predefinits, compartició de models, consulta semàntica demodels, etc. Tanmateix, el problema d’aquestes aproximacions,és que els llenguatges que proposa la web semàntica solen teniruna representació gràfica poc adient per al modelatge de sistemesd’un tamany considerable (poc compacta). Açò fa que els sistemesprompte creixen en tamany i dificulten el seu enteniment, a més les

Page 70: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

52 CAPÍTOL 2. SISTEMES SOFTWARE PER AL WEB

operacions de manipulació de la informació del sistema es realitzamitjançant RDF/OWL, que dona la impressió d’estar “programant”enlloc d’especificant.

També existeix un consens total en la forta necessitat de modelarla navegació, i es sol construir sobre el model d’estructura d’informa-ció (i manté relacions de dependència de recuperació d’informació).Només OOHDM com WSDM proposen primer la construcció delmodel navegacional, i a partir d’aquest derivar la informació delsistema.

A l’hora de modelar la navegació, també hi ha consens en el l’es-tructura subjacent: grafs dirigits. Aquestos grafs estan composatsde nodes (que representen algun tipus de “contingut” en funció de ca-da aproximació) i enllaços entre nodes (que defineixen la navegacióentre ells). Alguns fan una classificació detallada de tipus de nodes(com ara WebML o WSDM) i tots distingeixen tipus d’enllaços. Engeneral, la semàntica és prou similar.

També apareix normalment un model abstracte de presentació,que descriu requeriments abstractes d’interfície, encara que lesaproximacions difereixen en el nivell d’abstracció, i la manera enque es construeix. Així, en OOHDM i OOH primer es fa una des-cripció abstracta i després es detalla aquesta amb objectes concretsd’interfície. Es proposen tècniques i notacions adients.

Un altre model que també és habitual avuí en dia en aquesttipus d’aproximacions és el model de personalització i/o adaptació.En aquest model es representen requeriments d’adapatativitat delsistema, normalment a l’usuari (personalització). Alguns mètodes,com ara UWE o Hera tenen aquest aspecte com un pilar essencialdins el seu procés, i arriba a guiar la construcció dels sistemes.

Però, un aspecte que en general no està ben tractat és el de ladescripció funcional del sistema. En la majoria dels mètodes, només

Page 71: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

2.5. Aproximacions Metodològiques 53

es “declaren” les operacions funcionals del sistema (normalment comoperacions de les classes del diagrama de classes), però no es fa unaespecificació abstracta del seu comportament. Tots els models que espresenten es refereixen fonamentalment a aspectes que donaran lloca la interfície de l’aplicació Web, les seues pàgines, menús, enllaços,etc. De forma natural, també expresen la funcionalitat associadaa la recuperació de la informacio, i alguns, operacions bàsiquessobre aquesta (operacions CRUD5). Tanmateix, no donen soport al’especificació de funcionalitat més complexa, molt habitual en lesaplicacions web (gestió d’un carret de la compra, pagament ambtarjetes de crèdit, etc.). UWE i OOHDM, per emprar UML, pro-posen etiquetar l’especificació anotant el comportament, construirDiagrames de Seqüència (on s’ordenen les operacions) i emprar açòcom a documentació per a la implementació del sistema. WebML,d’altra banda, sí que permet la especificació d’operacions funcionals,encara que per fer-ho cal emprar el llenguatge de consulta de dadesSQL, fent depenent (i per tant perdent nivell d’abstracció) l’especifi-cació del sistema de l’estructura de Base de Dades que es tinga delsistema. El fet de no realitzar una especificació completa de la fun-cionalitat, fa que les aplicacions Web generades (automàticament) apartir d’aquestos mètodes tinguen una manca greu de funcionalitat.

En general, les aproximacions parteixen d’una especificació derequeriments incial, de maneres diferents. Hi ha aproximacions quees basen directament en Casos d’Ús i Escenaris d’UML (com araUWE) i altres que defineixen la seua pròpia notació (els UIDs deOOHDM o la Missió de l’Aplicació en WSDM). WebML no ho defineixexplícitament, encara que podria empar-se’n alguna.

A l’hora de definir les fases del procés de desenvolupament ésquan apareixen més diferències entre les aproximacions, i on es

5De l’angles “Create, Relate, Update i Destroy”, Creació, Relació, Modificació iDestrucció, operacions bàsiques al món Orientat a Objectes.

Page 72: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

54 CAPÍTOL 2. SISTEMES SOFTWARE PER AL WEB

veu quines són les tasques dins el desenvolupament del sistema quetenen més rellevància. Tots enfaticen la necessitat del modelatge del’estructura d’informació i de navegació, però no de la mateixa ma-nera als models de presentació, de personalització o a l’especificacióde requeriments.

Mentre que en UWE i en Hera es donen més detalls a l’hora dedefinir els requeriments, en WebML i en OOHDM, sense obviar-los,no són enfatitzats al mateix nivell. Respecte a la presentació, tantHera com WSDM fan ús de l’estàndar CSS (amplament acceptat enel disseny gràfic d’aplicacions web) introduint aspectes tecnològicsa nivell de modelatge, mentre que la resta de mètodes aporten unmodel de presentació abstracte.

A pesar que anys enrere, la fase d’implementació era tingudacom menys rellevant en la majoria dels mètodes (només WebMLi OOH apostaven per proposar una guia “fins el final”), avuí endia, gràcies a l’aparició i assentament del Desenvolupament Dirigitper Models i MDA, quasi totes les aproximacions apliquen d’una oaltra manera transformacions de models per aconseguir prototipsdel sistema.

Amb respecte a la notació, només UWE aposta clarament perUML, mentre que WebML i OOHDM empren un notació propietària,i marcadament diferenciada de UML. El fet d’emprar com notacióUML es pot considerar un avantatge interessant per a UWE, a causade la gran quantitat d’eines actualment en el mercat que donensuport a aquest llenguatge. Açò li confereix major “portabilitat” aaltres eines. Malgrat açò, i a causa que els conceptes són semblantsen totes les aproximacions, no seria molt complicat construir perfilsUML de qualsevol aproximació per tal d’obtenir aquestos avantat-ges.

A més a més, l’expressivitat es considera suficient per als concpe-

Page 73: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

2.6. Eines de Suport al Desenvolupament Web 55

tes que es pretén capturar, i de fàcil utilització per part de l’analista.Aquesta opció adquereix major pes si tenim en compte que OOHDMi WebML, a pesar d’emprar notacions pròpies, ni són més expres-sives ni a priori més sencilles d’entendre utilitzar. Açò fa que siganecessari el soport per mig d’eines específiques d’aquestes notacions.

OOWS persegueix emprar els conceptes acceptats en els dife-rents mètodes presentats, fent també especial menció al Model Na-vegacional i de Presentació abstracta, definint un model de domini,i emprar una notació UML (o pareguda a UML). També, a nivellde requeriments, es proposa començar a partir d’una especificacióextesa amb requeriments Web, com es pot veure en [126, 124].Per a la definició de la funcionalitat i de l’estructura d’informació,s’emprarà OO-Method: 1) per les seues característiques de definiciód’un entorn complet de generació de codi, tenint en compte també elsaspectes funcionals, i 2) per tenir una eina industrial, OlivaNOVA,que materialitza d’una manera concreta els principis d’OO-Methoden entorns reals de producció de programari.

OOWS empra la Web semàntica, no per modelar conceptual-ment l’aplicació Web, sinó per produir continguts anotats semàn-ticament [87].

2.6 Eines de Suport al Desenvolupament Web

En aquesta secció s’analitza l’estat de l’art des de l’àmbit pràctic iindustrial del desenvolupament d’aplicacions Web seguint un enfocDSDM. En aquest entorn, anem a difereciar entre les eines queprovenen del món acadèmic de les industrials, sempre en l’àmbitdel desenvolupament Web.

En aquest estudi apareixen les més rellevants o interessants encerts aspectes. Tanmateix, en [28] pot conseguir-se informació més

Page 74: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

56 CAPÍTOL 2. SISTEMES SOFTWARE PER AL WEB

completa sobre les eines disponibles al mercat.

2.6.1 HyperDE

HyperDE [79] és un entorn DSDM basat en un framework MVCextés mitjançant primitives navegacionals. Aquesta eina permetal dissenyador introduir els diferents models OOHDM i la definiciód’una interfície des d’el punt de vista del patró MVC. Amb aquestainformació, es genera l’aplicació Web. Com part de l’aplicació ge-nerada, incorpora aspectes funcionals bàsics per crear i modificarinformació al sistema.

En la versió actual de HyperDE, s’empra la variant SHDM [67]de OODHM, la qual empra un model d’objectes derivat d’un modelexpressat en RDF, capaç de descriure semànticament dades i meta-dades.

La implementació de HyperDE pren com punt de partida el fra-mework Ruby on Rails [107], al que se li ha modificat la capa depersitència per altra basada en la base de dades Sesame RDF [103].Tant els metamodels SHDM com la informació del sistema són em-magatzemats en aquesta capa com informació RDF. Tota la funcio-nalitat de HyperDE està disponible a través d’una interfície web quepermet manipular en temps d’execució la informació del sistema. Ai-xí mateix, es proporciona un llenguatge específic (DSL) com extensióde Ruby, que permet la manipulació directa mitjançant scripts delmodel de l’aplicació i del metamodel.

D’altra banda, la funcionalitat de l’aplicació és implementadamitjançant operacions associades a les diferents classes navegaci-onals. El codi per implementar aquestes operacions empra el DSLabans comentat, que permet definir tant operacions d’actualitzaciódel model de dades com crear o alterar els valors dels objectes nave-gacionals.

Page 75: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

2.6. Eines de Suport al Desenvolupament Web 57

Figura 2.7 – HyperDE: Estructura de l’eina

Per obenir la població d’un contexte, HyperDE defineix un llen-guatge de consulta simplificat, basat en l’especificació de la classeorige i destí, la relació i un criteri d’ordenació. Tanmateix, tambésoporta la definició de consultes més complexes mitjançant RQL oamb expressions Ruby sobre el DSL propost.

L’entorn genera per defecte una interfície bàsique per donar su-port a l’aplicació. A partir d’aquesta interfície inicial, el dissenyadorté la llibertat d’afegir aspectes de presentació més complexes. Lapersonalització de la interfície permet inclús la definició d’una dis-tribució concreta per un node o una classe navegacional.

Per últim, cap ressenyar que existeix una versió de l’entornque permet la generació de codi d’una manera similar per per a laplataforma .NET.

Page 76: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

58 CAPÍTOL 2. SISTEMES SOFTWARE PER AL WEB

Figura 2.8 – WebRatio: Arquitectura

2.6.2 WebRatio

El desenvolupamnet d’aplicacions basat en WebML es duu a termemitjançant l’eina WebRatio [138]. L’arquitectura d’aquesta eina esdivideix en dues capes: la capa de disseny, que proporciona funcionsper a l’edició visual de les especificacions, i la capa d’execució, ueimplementa els serveis necessaris per a l’execució de les distintesunitats WebML en una aplicació.

La Capa de Disseny inclou una interfície d’usuari per al dissenydels mòduls de Dades i d’Hipertext, que són emmagatzemats comXMl. D’altra banda, el mòdul Database Synchronizer s’encarregade mapejar les entitats i relacions de l’esquema coneptual a unao varies fonts de dades preexistents o creades mitjançant l’eina.Aquest mòdul inclou a més un mecanisme d’enginyeria inversa quepermet inferir l’esquema conceptual a partir d’una font de dadespreexistent.

L’eina es composa d’un tercer mòdul, anomenat EasyStyler Pre-sentation Designer, que proporciona la funcionalitat necessària per

Page 77: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

2.6. Eines de Suport al Desenvolupament Web 59

definir la presentació visual de l’aplicació. Aquest mòdul permetcrear al dissenyador fulls d’estil en format XSL per associar-les ales pàgines definides en WebML i organitzar la distribució de lesdiferents unitats que formen cada pàgina.

La Capa de Disseny es troba conectada amb la capa d’execu-ció mitjançant el generador de codi de WebRatio. Aquest genera-dor empra transformacions en XSLT per traduir les especificacionsemmagatzemades en XML en codi executable per a la plataformaJ2EE . En concret, un conjunt de traductors XSL produeixen variesplantilles dinàmiques de pàgina i descriptors d’unitat. Una plantilladinàmica de pàgina expresa el contingut i la implementació d’unapàgina en un llenguatge Web (HTML, WML, etc.). En canvi, undescriptor d’unitat és un fitxer en XML que expresa les dependènciesd’una unitat WebML amb la capa de dades (per exemple, el nom dela taula que proporciona la població a la unitat).

Tant la capa de disseny i execució com el generador de codiestan articulats en una arquitectura basada en plug-ins. D’aquestamanera, es facilita la integració de nous components a través dedescriptors XML i ser importats en la capa de disseny com unitatsWebML personalitzades.

D’altra banda, el generador de codi pot ser extés mitjançantregles XSLT addicionals per produir el codi d’aquestos nous com-ponents. Aquesta arquitectura permet a WebRatio ser extesa en elfutur amb noves funcionalitats.

2.6.3 Hera Suite

Al mètode Hera, els models s’especifiquen de forma textual emprantRDF. Aquest fet fa que la gestió d’aquestos models siga complicadai pot induir fàcilment a errors. L’editor Hera Suite [131] facilitaaquesta tasca al dissenyador proporcionant un entorn gràfic per

Page 78: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

60 CAPÍTOL 2. SISTEMES SOFTWARE PER AL WEB

gestionar els models de domini, context i aplicació. Aquestos modelspoden ser exportats a una especificació pura en RDF, que desprésl’eina podrà altra vegada importar.

L’editor de Models de Domini permet definir tant classes compropietats de les classes (segons l’estructura d’organització que pro-posa la Web Semàntica [18]). Per a cada classe, és possible definir eltipus de dades i les seues propietats a partir d’un conjunt predefinit(String, Image, etc.), així com relacions d’herència. Si per algunaraó són necessaris constructors més complexes, el dissenyador sem-pre pot continuar emprant un editor genèric per generar la sintaxiadequada.

L’editor de Models d’Aplicació permet especificar l’organitzacióde les unitats, els seus elements i relacions. Per defecte les consultesque defineixen les unitats són ocultades en la vista gràfica, peròpoden ser configurades per a treballar en mode textual. L’editorproporciona ajudes per a la definició dels constructors més simples(tipus de dades) però si és necessari, el dissenyador pot definirles seues pròpies consultes i propietats. Tanmateix, l’editor actualencara no soporta tots els constructors disponibles en Hera.

La implementació dels models es realitza a través d’un motor quegenera una vista hipermedial en funció de l’especificació del modelde l’aplicació. Aquest motor, anomenant Hera-S [131], està basat enun implementació prèvia anomenada HPG-Java [41]. Aquest motores basa en un component servidor, implementat com un Servlet deJava que per a cada petició de pàgina, genera el contingut de maneradinàmica tenint en compte l’adaptació necessària. El motor actualHera-S, té un funcionament semblant però tenint en compte els nousmodels definits a traves de consultes SeRQL. Si bé la implementaciócontinua sent en forma de Servlet, l’emmagatzemament i manipu-lació dels models es realitza a través de respositores Sesame que

Page 79: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

2.6. Eines de Suport al Desenvolupament Web 61

Figura 2.9 – Hera Suite

soporten qualsevol font d’informació RDF.El motor està definit en base a una arquitectura orientada a

events. Quan una petició de pàgina és rebuda pel ComponentServidor de Presentació, la petició és traduïda a un petició d’unaAMP (Secció 2.5.6). Simultàniament, els components d’usuari isessió actualitzen la informació de context al repositori. A continu-ació, el component AMPGen recupera la part del model d’aplicacióque conté l’especificació necessària per a la construcció de la AMP.Aquesta AMP és implementada internament al repositori Sesame,de manera que totes les seues operacions de transformació es duena terme mitjançant consultes SeRQL. Quan la AMP ha sigut final-ment construida, és enviada cap al Component Servidor de Presen-tació, que s’encarrega de transformar-la en un pàgina que puga ser

Page 80: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

62 CAPÍTOL 2. SISTEMES SOFTWARE PER AL WEB

visualitzada per un navegador. Per aconseguir-ho, es recolça en lacreació de documents AMACONT [6], que després són transformatsa un format d’eixida adequat en funció del client (XHTML, cHTML,WML, . . . ), adaptant-se als seus requeriments.

2.6.4 AndroMDA

AndroMDA [7] és un framework MDA per a la definició de ge-neradors de codi. A partir de models UML, és capaç de generarun conjunt e components funcionals en una plataforma específica(J2EE, Spring, .NET). AndroMDA proposa una arquitectura mo-dular basada en diferents plugins que poden ser intercanviats iredefinits per adaptar-se a les necessitats d’un procés MDA específic.El plugin principal en el que AndroMDA es sustenta és el cartutx,que empaqueta un motor de transformacions per a una plataformatecnològica concreta.

El procés de generació de codi d’AndroMDA està basat en l’úsd’estereotips UML, de manera que el motor analitza el model bus-cant classes marcades amb un estereotip específic. Quan un estereo-tip és reconegut, s’invoca al cartutx corresponent que s’encarregaràde generar el codi per a aqueixa classe. Per poder generar el codi, elcartuxt inclou un conjunt de plantilles de text, que són completadesen funció de la informació obtesa de la classe.

Actualment AndroMDA soporta Velocity [8] i FreeMarker [43]com llenguatges de plantilles. Per defecte, AndroMDA inclou unasèrie de cartutxos predefinits per a diferents plataformes i arquitec-tures, com ara EJB, Spring, Hibernate, Struts, JSF, Axis i jBPM.Tanmateix, l’usuari pot, si vol, definir el seu propi cartutx, indicantcom han de ser processats els models i plantilles de generació de codiassociades.

El framework no proposa una eina CASE específica per a la

Page 81: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

2.6. Eines de Suport al Desenvolupament Web 63

Figura 2.10 – AndroMDA: Arquitectura

definició dels models d’entrada. En canvi, proporciona soport com-plet per al metamodel UML 1.4 [80] (i en un futur per a la versió2.0) i per a metamodels definits mitjançant l’estàndar MOF de laOMG. D’aquesta manera, és possible definir models emprant einescompatibles amb UML, com ara MagicDraw [78], Poseidon [47] oEnterprise Architect [119].

Per garantitzar la correcció dels models, AndroMDA incorporaun mecanisme de validació basat en restriccions OCL associades ales classes el metamodel. Per defecte inclou una sèrie de restriccionsper evitar els errors de modelatge més habitual. No obstant, éspossible definir restriccions per a un odel específic. AndroMDAplaneja donar suport a models definits amb EMF (Eclipse ModellingFramework) [35] i transformacions model-a-model amb ATL [10].

Page 82: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

64 CAPÍTOL 2. SISTEMES SOFTWARE PER AL WEB

2.6.5 OptimalJ

OptimalJ [29] és un entorn MDA per al disseny, desenvolupamenti distribució d’aplicacions J2EE. Aquest entorn fou un dels pionersa l’hora d’adoptar l’estàndar MDA. Seguint aquestos principis, Op-timalJ proporciona una clara distinció entre els models del domini iels models dels components de l’aplicació.

Per a aconseguir-ho, els models es divideixen en tres nivellsd’abstracció: 1) el Model de Domini, que defineix el domini de negocisense tenir en compte detalls relatius a la plataforma, 2) el Modeld’Aplicació, que especifica l’aplicació en base a certa tecnologia peròsense detallar aspectes relacionats amb el codi, i 3) el Model de Codi,que defineix l’aplicació com codi que pot ser compilat i executat. Apartir d’aquestos models, que poden ser dissenyats per distints res-ponsables, és possible generar tant les classes Java com els scriptsSQL de l’aplicació.

En OptimalJ els diferents nivells de modelatge es troben rela-cionats mitjançant patrons, de manera que els canvis realitzats enun nivell superior són propagats a nivells inferiors. La generaciódels models és incremental, poden modificar els models orige i destíen paral·lel sense sobreescriure els canvis realitzats al model destí.Aquest mecanisme garantitza la sincronització entre els models. Amés a més, els patrons aplicats per OptimalJ poden ser configuratsi desactivats per evitar la regeneració de certs elements del modeldestí.

L’arquitectura d’una aplicació dsenvolupada mitjançant Opti-malJ es divideix en tres parts: 1) un framework genèric d’aplicacionsde caràcter estàtic, predefinid d’avantmà; 2) un framework dinàmicde l’aplicació que és generat a partir del Model d’Aplicació; i 3) codique s’introdueix a mà pel desenvolupador.

Actualment, OptimalJ soporta diferents frameworks que poden

Page 83: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

2.6. Eines de Suport al Desenvolupament Web 65

ser emprats com part estàtica de l’aplicació. En concret, per a lacapa de presentació, és possible emprar Apache Struts [40], mentreque per a la resta de capes es proposa l’ús del framework Alturacom a primera elecció. Aquest framework proporciona implemen-tacions de patrons genèrics que faciliten l’implementació d’aplicaci-ons. D’altra banda, el framework dinàmic d’aplicació és específic del’aplicació a generar, ja que s’obté a partir dels models conceptualsd’aquesta. El framework dinàmic empra els frameworks estàtics de-finits prèviament i genera un conjunt de regions de codi no editablesanomenada “guarded blocks”.

Per últim, la lògica de negoci que no és soportada pels modelsdeu ser implementada manualment. Aquest codi pot ser insertatal framework d’aplicació mitjançant regions editables, anomenades“free blocks”. En aquestes regions es poden emprar tant les classesdel framework estàtic com el dinàmic.

2.6.6 ArcStyler

ArcStyler [48] és una eina de producció de programari que segueixla filosofia MDA i que està basada en dos pilars fonamentals: 1) uneditor de models UML, i 2) un motor de transformacions mitjançantcartutxos MDA.

En primer lloc, l’Editor de Models UML és el punt de partida enel procés de desenvolupament de ArcStyler, proporcionant les carac-terístiques habituals que poden trobar-se en altres eines. Respecte aOMG, soporta la definició de perfils UML, la definició de diagramespersonalitzats i mecanismes per documentar i validar els models demanera exhaustiva.

Tots els models generats mitjançant aquest editor són emmagat-zemats en format XMI, podent importar-ne i exportar-los a RationalRose [53]. L’editor també enfatiza la reutilització de models intro-

Page 84: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

66 CAPÍTOL 2. SISTEMES SOFTWARE PER AL WEB

duint mecanismes de composició entre models. D’aquesta manera,qualsevol canvi realitzat en un submodel, queda automàticamentreflexat en el model compost. Tanmateix, el concepte que realmentdiferència a l’editor UML d’ArcStyler respecte al d’altres eines, sónles MDA Marks. Aquestes marques són anotacions sobre elementsdel model que contenent informació referent a la plataforma d’imple-mentació. Ja que aquestes marquen poden ser afegides i eliminadesfàcilment, permeten no tenir que introduir en el model conceptes de-penents de la implementació. És més, distints conjunts de marquespoden definir-se sobre un mateix model de manera que és possiblegenerar codi per a diferents plataformes sene haver de realitzarmodificacions al model inicial.

El motor de generació de codi de ArcStyler es basa en un conjuntde cartutxos MDA intercanviables i extensibles. Cada cartutx contétots els elemnets i mecanismes específics d’una tecnologia concretaper transformar de manera òptima els models a un producte deprogramari. Emprant diferents cartutxos, ArcStyler soporta unampli rang de plataformes, com Java/J2EE (Java2, EJB 1.1, EJB2.0, BEA WebLogic, IBM WebSphere i JBOSS) ó .NET (C# i ASP.NET).

En l’àmbit de les aplicacions Web és possible generar de maneraautomàtica “fornt-ends”, interfícies Web, Serveis Web o InterfíciesExternes (EAI) per a diversos tipus de plataformes. Per al mode-latge d’una aplciació Web, ArcStyler empra els diagrames de clas-ses, els diagrames d’activitat i un perfil UML. A partir d’aquestosmodels, és possible generar una aplicació Web que compleix ambel patró MVC, que soporta l’accés autenticat d’usuaris i amb lainfraestructura necessària per a realitzar operacions CRUD.

A pesar que els cartutxos MDA de ArcStyler han sigut dissenyatstenint en ment un ampli espectre d’entorns, per a un projecte concret

Page 85: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

2.6. Eines de Suport al Desenvolupament Web 67

pot esdevenidre que no cubrisca totes les necessitats. Per solventaraquesta problemàtica, els cartutxos foren dissenyats per a l’extensiói personalització, a través de la definició de punts d’extensió que totcartutx té definit, per poder ser modificat de manera no intrusiva iconservant la funcionalitat prèvia.

A més a més, el desenvolupament d’aquestos cartutxos persona-litzats també es realitza seguint la filosofia MDA. La transformacióés modelada de manera visual mitjançant un profile UML específic iun cartutx especial s’encarrega de generar gran part del odi que im-plementa l’adaptació del cartutx a modificar. En la creació de nouscartuxtos des de zero s’aplica aquest mateix principi. En aquestcas, és possible emprar l’IDE de desenvolupament de cartutxos, queincorpora mecanismes per definir de manera visual la transformaciódel cartutx, depurar les regles de transformació i refinar de maneramanual el codi a generar.

Per últim, cap descatar altres característiques interessants d’a-questa eina MDA. Si bé, ArcStyler enfatiça un procés de desenvo-lupament “top-down” en el que, a partir dels models, es genera elcodi. El procés invers resulta si cap més interessant. ArcStylerproporciona el concepte de Harvester, de manera que a partir d’unaaplicació generada en J2EE és possible obtenir el model associat,aplicant enginyeria inversa. Aquest model pot resultar útil pertenir una visió global del sistema o per a ser traduït a una altraplataforma tecnològica.

Altre aspecte relacionat que incorpora ArcStyler són les trans-formacions model a model. La eina incorpora un mòdul que permetdefinir aquest tipus de transformacions (per exemple, de processosde negoci a UML) i inclús definir “cadenes” que defineixen transfor-macions concatenades entre varios models.

Page 86: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions
Page 87: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

CAPÍTOL 3OOWS: UN MÈTODE PER DESENVOLUPARAPLICACIONS WEB

OOWS, acrònim de “Object-Oriented Web Solution”, és un mètodeque aplica els principis de l’Enginyeria Web per proporcionar suportmetodològic al desenvolupament d’aplicacions web. OOWS defineixunes extensions sobre el mètode de producció de programari orientata objectes anomenat OO-Method.

Aquest capítol presenta breument el procés de desenvolupamentcomplet de l’aproximació OO-Method/OOWS, de manera que servis-ca com a referència per a la resta de treball. Aquest procés estàdividit en dues grans etapes en les que d’una banda es crea una es-pecificació del sistema d’informació mitjançant models conceptualsi en una segona etapa es proposa una estratègia d’obtenció d’unaimplementació automàtica a partir d’aquestos models.

69

Page 88: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

70CAPÍTOL 3. OOWS: UN MÈTODE PER DESENVOLUPAR

APLICACIONS WEB

Figura 3.1 – El procés de desenvolupament basaten MDA de OO-Method extés amb OOWS

3.1 Desenvolupament de Programari ambOO-Method

OO-Method [90, 85, 91] (veure part esquerre de la Figura 3.1 és unmètode de producció de programari orientat a objectes que proporci-ona facilitats de generació automàtica de codi dirigides per models,integrant tècniques d’especificació formal amb notacions orientadesa objectes convencionals.

OO-Method proposa un una estratègia de desenvolupament desoftware basada en dues etapes: l’etapa d’Especificació del Sis-tema, on es construeix una espeficiació d’alt nivell dels requeri-

Page 89: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

3.1. Desenvolupament de Programari amb OO-Method 71

ments funcionals dels sistema, i l’etapa de Desenvolupament dela Solució, on es segueix una estratègia orientada a la generacióde components de software que constitueixen la solució (productefinal).

3.1.1 Etapa d’Especificació del Sistema

En l’etapa d’Especificació del Sistema es realitzen la següent se-qüència d’activitats:

1. El.licitació de Requeriments Funcionals. Mitjançant l’úsde tècniques basades en casos d’ús i escenaris es construeix unesquema conceptual. En [56] hi ha un extens treball realitzaten aquest àmbit.

2. Modelatge Conceptual. Mitjançant l’ús de diferents modelses permet la captura i representació del sistema software desde 3 punts de vista diferents:

• un Model Estructural que defineix, mitjançant un para-digma OO, l’estructura d’informació del sistema en base ales seues classes (operacions, atributs, restriccions, etc.) iles relacions entre aquestes (jerarquies d’herència i rela-cions d’associació, agregació i composició). Tot açò per migd’un Diagrama de Classes

• un Model Dinàmic que descriu les diferents seqüènciesde vida vàlides dels objectes que pertanyen a cada classedel sistema, a més de les interaccions d’objectes (comu-nicació entre objectes). Aquestes descripcions es realitzenmitjançant Diagrames d’Estats i Diagrames de Seqüència,respectivament

Page 90: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

72CAPÍTOL 3. OOWS: UN MÈTODE PER DESENVOLUPAR

APLICACIONS WEB

• un Model Funcional que captura la semàntica de canvisd’estats per definir els efectes dels serveis1 i les operacionsemprant una especificacó formal textual

• un Model de Presentació que permet definir unitats depresentació per dotar a l’aplicació d’una interfície d’usuari

Des d’un punt de vista de la MDA [82], OO-Method proporcionaun PIM on es recullen els aspectes estàtics i dinàmics del sistemesde programari emprant un conjunt de vistes complementàries, quesón definides per aquestos següents models.

3.1.2 Etapa de Desenvolupament de la Solució

Una vegada construit l’Esquema Conceptual d’un sistema d’infor-mació, en l’etapa de Desenvolupament de la solució s’aplica un pro-cés sistemàtic per obtenir la solució (completa) final.

Per tal d’aconseguir aquesta solució, es defineix un procés basaten dues etapes: una primera en la que es proposa un estil arqui-tectònic del sistema, i una segona en la que s’apliquen un conjuntde correspondències entre abstraccions conceptuals i elementssoftware que composen la implementació de cada capa de l’arqui-tectura.

OlivaNova proporciona un marc de treball operacional, conformeamb MDA on un Compilador de Models [22] transforma el PIM(Model Conceptual) en el seu corresponent Producte de Programari.D’una banda, el Modelador d’OlivaNova [21] ens permet definirgràficament les diferents vistes que descriuen un sistema (l’estruc-tural, dinàmica i funcional). D’altra banda, un conjunt de Motors deTransformació compilen aquestes vistes per traduir les primitives

1En la terminologia OO-Method, “servei” és sinònim d’operació, event, mètode. . .

Page 91: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

3.1. Desenvolupament de Programari amb OO-Method 73

de modelatge conceptual definides al PIM en termes de llenguatgesd’implementació. D’acord a terminologia emprada en el món MDA,OlivaNova realitza doncs transformacions “PIM-to-Code” (de modelsa codi).

La generació de les aplicacions es realitza emprant un estilarquitectònic multi-capa, amb una divisió principal en 3 capes:

• Capa d’Interfície d’Usuari ó de Presentació: Proporcionaels components per desenvolupar la interfície gràfica per in-teractuar amb l’usuari.

• Capa de Aplicació: D’una banda implementa la estructurai funcionalitat de les classes de l’esquema conceptual i d’altrabanda proporciona una interfície d’operació per facilitar l’úsper part de la capa de presentació de la funcionalitat imple-mentada.

• Capa de Persistència: Es responsabilitza de donar emma-gatzemament a les dades (mitjançant sistemes gestors de ba-ses de dades) i dona una interfície d’accés a dades emmagat-zemades amb l’objectiu amagant els detalls dels repositoris dedades a les capes superiors.

Com a resultat de modelar els sistemes amb OlivaNova i aplicar-los els Compilador de Models, s’obtenen prototipus del sistema queserveixen per validar-los amb els usuaris i realimentar la fase demodelatge amb les propostes de canvi i/o millora. Seguint aquestprocés de desenvolupament, s’aconsegueix que les especificacionsdels sistemes d’informació siguen documents vius que representenen tot moment el sistema d’informació que s’està tractant de cons-truir.

Page 92: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

74CAPÍTOL 3. OOWS: UN MÈTODE PER DESENVOLUPAR

APLICACIONS WEB

3.2 Extensió Web

Segons el treball realitzat en [77], les aplicacions web tenen requeri-ments que no són tractats adientment pels mètodes de producció deprogramari durant el procés de desenvolupament. Aquestes novespropietats es refereixen a aspectes com ara navegació, presentaci ialtres característiques avançades com la personalització, l’inclusiód’estructures de navegació, definició d’un espai hipermedia, etc. Enaquest sentit, OO-Method no és una excepció i requereix algunesextensions per tractar amb aquestos requeriments.

Agafant OO-Method (OlivaNova) com a punt de partida, OOWSextén el procés de desenvolupament introduint nous models a la fasede modelatge conceptual per capturar les propietats navegacionalsdels sistemes d’informació i nous compiladors de models per a trans-formar aquestos nous models en els seus corresponents componentsde programari.

3.2.1 Etapa d’Especificació del Sistema

Seguint la mateixa filosofia que OO-Method, OOWS també implicales dos etapes bàsiques d’una aproximació MDA: Especificació delSistema i Desenvolupament de la Solució

En la fase d’Especificació del Sistema s’empraran les extensionsintroduïdes pel mètode per desciure: (1) la societat d’usuaris que tin-dran accés al sistema, (2) l’estructura navegacional per a cada usu-ari, mitjançant el seu mapa navegacional, (3) la descripció detalladade cada vista navegacional mitjançant els contextes navegacionals,i finalment (4) la descripció de les propietats de presentació.

Per poder fer la descripció completa de tot açò, OOWS introdu-eix 3 nous models/diagrames que són explicats amb més detall enposteriors capítols: el Diagrama d’Usuaris, el Model Navegacional i

Page 93: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

3.2. Extensió Web 75

el Model de Presentació.Un Diagrama d’Usuaris (Capítol 5). Permet la identificació

i categorització dels usuaris. Determina els tipus d’usuaris quepodran interactuar amb el sistema. Aquestos usuaris són orga-nitzats en una estructura jeràrquica, representant inter-relacionsentre aquestos. A més a més, aquest model caracteritza als usuarisen tres tipus: anònims, registrats i usuaris “abstractes” o sensepermís, descrivint així l’accessibilitat que tindran al sistema.

Un Model Navegacional (Capítol 4). Permet la descripció del’accessibilitat del usuaris al sistemes en dues fases: la fase dedescripció global (“Authoring-in-the-large”) i la fase de descripciódetallada (“Authoring-in-the-small”). Proporciona dues primitivesbàsiques: el Mapa Navegacional, que estructura l’accessibilitat delsusuaris al sistema, descrivint una vista global d’accés; i el ContexteNavegacional, que representa un punt d’interacció amb l’usuari onés descriu una vista detallada sobre el sistema.

Un Model de Presentació (Capítol 7). Permet la descripció derequeriments de presentació mitjançant una sèrie de patrons bàsics.Així, es pot: definir requeriments d’organització i disposició de lesdades a visualitzar mitjançant el patró de disposició d’informació;establir criteris d’ordenació aplicat a les dades (ordenant d’algunamanera la informació a visualitzar); estructurar l’accés a coleccionsde dades mitjançant el patró de paginació, creant blocs de dades quees poden explorar, etc.

3.2.2 Etapa de Desenvolupament de la Solució

Aquestos tres nous models introduïts permeten la descripció dela part més orientada a la web. En la fase de Desenvolupamentde la Solució es descriu com arribar automàticament a la soluciófinal a partir d’aquestos (Capítol 8). El procés de generació de

Page 94: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

76CAPÍTOL 3. OOWS: UN MÈTODE PER DESENVOLUPAR

APLICACIONS WEB

codi implementat pels motors de transformació d’OlivaNova deuser extés per tal d’obtenir el codi resultant dels models OOWS.Tanmateix, aquesta extensió ha de ser realitzada d’una maneraconservativa amb respecte als transformadors comercials per tald’assegurar la compatibilitat amb programari ja desenvolupat.

Per tal d’aconseguir aquesta extensió conservativa, s’ha definitun procés de traducció en paral·lel per a la descripció web. Per tant,la integració de ambdós processos (OO-Method i OOWS) es realitzaa nivell d’implementació.

Per dur a terme aquesta tasca, s’ha construït una eina querealitza les transformacions (Capítol 9). Aquesta obté les interfíciesbasades en Web a partir dels models conceptuals OOWS, ja queaquestos contenen tota la informació necessaria per poder generarel codi. D’acord a MDA, realitzem una transformació automàtica demodel-a-codi.

La interfície Web constitueix la capa de presentació (Figura 3.1 ala pàgina 70) de les aplicacions web. Per obtenir les aplicacions webcompletes, aquesta capa deu ser integrada amb la capa d’aplicació ipersitència generades per OlivaNova (les capes que implementen lafuncionalitat del sistema, des d’un punt de vista estàtic i dinàmic).Per realitzar aquesta integració, s’ha desenvolupat un framework(Annexe A) que realitza dos tasques principals: (1) facilita la codifi-cació de l’aplicació, ja que té constructors de més alt nivell que elspropis dels llenguatges de programació web i (2) realitza la conexióamb la capa de lògica d’aplicació d’OlivaNova (a més a més d’altrespossibilitats).

Page 95: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

CAPÍTOL 4MODEL NAVEGACIONAL

4.1 Introducció

El Model Navegacional és un dels punts clau i diferenciador entreels mètodes de desenvolupament d’aplicacions de programari per alweb. Bàsicament, tots construeixen alguna mena de graf per des-criure l’estructura del sistema i d’alguna manera s’associa als nodesd’aquest graf vistes sobre l’estructura d’informació del sistema (enalgunes aproximacions, inclús la descripció navegacional duu a lacreació de l’estructura d’informació).

En aquest capítol es presenta el Model Navegacional introduïtpel mètode OOWS. Abans que res es fa una reflexió sobre el con-cepte de Navegació, una mica descuitat en aquestes metodologies,sobretot per la dificultat en arribar a un consens. Després es pre-senta la fase de Modelatge Navegacional, que intenta capturar elsrequeriments navegacionals dels sistemes web. Aquest modelatgeproporciona mecanismes i primitives per representades clarament

77

Page 96: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

78 CAPÍTOL 4. MODEL NAVEGACIONAL

les dues fases d’autoria del sistemes hipermedials (“Authoring-in-the-large” i “Authoring-in-the-small”). Una a una s’analitzen lesprimitives navegacionals i es mostraran exemples amb elles.

4.2 El Concepte de Navegació

Abans de començar la definició del model navegacional, cal deixarclar quin és el concepte principal d’aquest: la navegació. Cal comen-tar que en diferents foros s’ha intentat arribar a un consens en quana la seua definició, però encara no s’ha proposat una definició clarai amplament acceptada.

Encara que parega obvi, a causa de l’experiència de la gentemprant la web, molts autors no distingueixen la navegació dealtres funcionalitats de l’aplicació, i altres vegades la inclouen comqualsevol event que provoca canvis en la interície. Queda clar,això sí, que la navegació és una característica emergent de lesaplicacions web. Encara que alguns autors no la consideren allòsuficientment important per donar-li l’atenció necessària durantl’anàlisi del sistema [105].

D’altra banda, la majoria dels mètodes de desenvolupament d’a-plicacions Web tracten la navegació com un punt determinant d’a-questes aplicacions i proporcionen models i notació per especificar-la. Bàsicament proporcionen mecanismes per descriure “continguts”(nodes) que són enllaçats entre sí (“links”) definint el concepte denavegació.

Una vegada aclarat el concepte de navegació i la seua implicacióa nivell conceptual, queden més clars quins són els requerimentsnavegacionals front a d’altres tipus (per exemple, els requerimentsfuncionals). La descripció navegacional d’un sistema consistirà en ladescripció d’uns requeriments no-funcionals que permetrà millorar

Page 97: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

4.3. Modelatge Navegacional 79

la interacció de l’usuari amb aquestos sistemes.

4.3 Modelatge Navegacional

Si tornem al Procés de Desenvolupament de programari proposatper aquesta tesis, com a unió OO-Mehtod/OOWS, arribem a la fasede Modelatge Navegacional després d’haver fet una descripció (al-menys inicial) de l’estructura d’informació del sistema (Diagrama deClasses). És a dir, en aquest punt ja tenim determinats els objectes (iles seues classes) que són rellevants en el sistema, i el que es pretènés aconseguir una descripció navegacional de continguts.

El primer que proposa OOWS és fer una descripció general dela navegabilitat del sistema (“authoring-in-the-large”) mitjançant ladescripció d’un mapa navegacional per a cada tipus d’usuari (veu-re Capítol 5). Una vegada definit, es farà la descripció detallada(“authoring-in-the-small”) descrivint al detall els contextes navega-cionals.

Les següents seccions presenten detalladament cadascuna de lesprimitives que composen el model navegacional, tant a nivell dedescripció general com detallada.

Amb respecte al “Authoring-in-the-large”, el model proporcionales primitives mapa navegacional, enllaç navegacional i node nave-gacional.

La resta de primitives descrites a aquest capítol es refereixen al’especificació detallada de les propietats navegacionals que es fa ala fase de “Authoring-in-the-small”.

4.4 Mapa Navegacional

Un mapa navegacional recull les propietats navegacionals d’unusuari concret del sistema. Aquest mapa descriu una vista global

Page 98: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

80 CAPÍTOL 4. MODEL NAVEGACIONAL

Figura 4.1 – Exemple de Mapa Navegacional

del sistema o “Authoring-in-the-large”, creant una estructura d’ac-cessibilitat a continguts d’informació i a execució d’operacions.

És doncs l’eina que permetrà descriure la manera en que untipus d’usuari concret podrà navegar pel sistema per consultar in-formació i dur a terme certa funcionalitat, atenent a les seues res-ponsabilitats / privilegis com a usuari dins el sistema.

Un mapa navegacional (Figura 4.1) es representa mitjançant ungraf dirigit, format per nodes (anomenats nodes navegacionals) iarcs (anomenants enllaços navegacionals).

Els nodes dels mapa navegacional representen punts d’interac-ció del sistema amb l’usuari, on se li proposen uns continguts perpoder realitzar una certa tasca. Aquesta tasca pot estar relacionadaamb la consulta d’informació, amb l’activació i execució d’una ope-

Page 99: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

4.5. Nodes Navegacionals 81

ració o amb el proveïment d’enllaç que habiliten navegació a altresnodes.

Els enllaços navegacionals defineixen els nodes navegacionalsque són accessibles des d’un node navegacional determinat.

D’aquesta manera, i sense haver d’especificar els detalls de con-tingut de cada node i assumint que cada node té un objectiu dins elsistema (relacionat amb la tasca o tasques que permet realitzar), éspot construir una estructura d’accessibilitat al sistema que permetorganitzar les tasques i responsabilitats d’un usuari.

La majoria d’aproximacions metodològiques també introdueixena nivell de mapa estructures d’accés (normalment índexos) per trac-tar de millorar la navegabilitat pel sistema . Tanmateix, el mètodeOOWS no ho introdueix d’aquesta manera just per tractar de noexplosionar encara més els mapes navegacionals. Una discussió de-tallada de perquè no aparèixen aquestes estructures d’accessibilitates pot trobar en la Secció 6.2 del Capítol 6.

Una propietat que s’expresa a nivell de mapa navegacional és lade node per defecte (o “Home”). Aquest és el node al que l’usuariobtindrà només accedisca al sistema. Sols podrà ser un node perdefecte algun dels nodes d’exploració (veure Secció 4.5), que són deltipus “sempre accessibles”. En la Figura 4.1 a la pàgina anterior potveure’s que està marcat com “Home” el node anomenat Página deInicio.

4.5 Nodes Navegacionals

Un node navegacional representa un punt d’interacció de l’usuariamb el sistema i representa un contingut o vista parcial sobre elsistema d’informació.

Hi ha dos tipus de nodes navegacionals: contextes i subsistemes.

Page 100: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

82 CAPÍTOL 4. MODEL NAVEGACIONAL

Els contextes defineixen un contingut d’informació i funcionalitataccessible a l’usuari (es veuran a la Secció 4.7). Els subsistemespermeten organitzar una estructura d’accessibilitat a un conjunt denodes navegacionals (es veuran a la Secció 4.12)

Existeixen dos tipus de nodes atenent a la seua alcançabilitatdins el mapa navegacional:

• Nodes d’Exploració. Aquest tipus de nodes són semprealcançables desde qualsevol altre node del mapa. Açò implicaque haurà d’existir un enllaç navegacional (de tipus exploració)des de cada node del sistema a tot node d’exploració. Und’aquestos pot estar marcat com node per defecte. Gràficaments’etiqueten amb una E.

• Nodes de Seqüència. Aquest tipus de nodes sols seran alcan-çables seguint un camí navegacional 1 predefinit. És a dir, perpoder alcançar-los, s’haurà de navegar primer per altres nodesque li donen accés. Gràficament s’etiqueten amb una S.

La Figura 4.2 a la pàgina següent mostra un exemple de mapanavegacional on es poden veur els nodes d’exploració (Página deInicio, Info Motor i Info Turistica) i els de seqüència (DescripciónNoticia i Descripción Noticia).

4.6 Enllaços Navegacionals

Un enllaç navegacional defineix una relació d’alcançabilitat direc-cional entre dos nodes de navegació. És a dir, si entre els nodesnavegacionals N1 i N2 existeix un únic enllaç navegacional, amb ladirecció de N1 cap a N2, implica que el node N2 serà accessible desdel node N1, però no a l’inrevés.

1Seqüència enllaçada de nodes

Page 101: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

4.6. Enllaços Navegacionals 83

Figura 4.2 – Nodes d’Exploració i de Seqüència

Hi ha dos tipus d’enllaços navegacionals atenent al tipus d’al-cançabilitat que es vulga definir: els enllaços d’exploració i els deseqüència:2

Els enllaços d’exploració permeten definir una relació d’alcan-çabilitat als nodes que es consideren inicis d’activitats o tasquesde l’usuari. Aquestos nodes doncs, serveixen per definir els puntsd’entrada al sistema. Algunes aproximacions solen anomenar aaquestos enllaços, enllaços estructurals.

Els enllaços d’exploració estan directament relacionats amb elsnodes d’exploració: un. Gràficament es representen mitjançant unafletxa amb línia discontinua que sorgeix del tipus d’usuari sobre el

2Aquest concepte està íntimament relacionat amb el concepte de nodes d’explo-ració i nodes de seqüència

Page 102: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

84 CAPÍTOL 4. MODEL NAVEGACIONAL

que es defineix el mapa i acaba en el node d’exploració. Aquestarepresentació tracta d’aconseguir dues coses: (1) indicar que l’usuarité directament accés a tots aquestos nodes (ja que són d’exploració) i(2) compactar la representació gràfica del mapa, ja que el graf “real”hauria de tenir per a cada node del graf un enllaç cap a tots els altresnodes d’exploració.

Els enllaços de seqüència permeten definir una relació d’al-cançabilitat entre nodes en base a una relació entre els contingutsd’informació que hi proporciona cada node. És a dir, un enllaçde seqüència està associat en el node orige a una informació (queforma part de la vista que defineix el node) i enllaça amb el nodedestí canalitzant o duent aquesta informació com a “contexte” 3 dela navegació. Permeten definir relacions de navegació mitjançantinformació dins l’estructura navegacional del sistema.

Els enllaços de seqüència estan directament relacionats amb lesrelacions navegacionals (Secció 4.10). Gràficament es representenmitjançant una fletxa amb línia continua.

Si observem la Figura 4.3 a la pàgina següent, podrem veureque hi ha 2 enllaços d’exploració (fletxes discontínues) i 3 enllaçosde seqüència (fletxes contínues). Com es pot observar, tots elsenllaços de seqüència tenent com a orige i com a destí un nodenavegacional. D’altra banda, els enllaços d’exploració tenen com aorige l’usuari propietari del mapa navegacional i com a destí un nodenavegacional.

4.7 Contextes Navegacionals

Així com el mapa navegacional (amb els nodes i enllaços) és la baseper definir el la vista global del sistema, els contextes navegacionals

3Contexte en aquest cas significa propietat o àmbit

Page 103: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

4.7. Contextes Navegacionals 85

Enllaços ExploracióEnllaços Seqüència

Figura 4.3 – Enllaços d’exploració i seqüència

són la base per definir el “Authoring-in-the-small”.Un contexte navegacional és un tipus de node navegacional que

defineixen una vista parcial del sistema sobre informació i fun-cionalitat del sistema, amb l’objectiu de permetre-li a l’usuari dur aterme una certa activitat o tasca. Aquesta vista es defineix com unaprojecció sobre el Diagrama de Clases definint un conjunt de dades(atributs de classes) i funcionalitat (operacions de classes) que seranaccessibles a l’usuari quan navegue a aquest contexte. S’anomenapoblació del contexte al conjunt de dades que el contexte ha derecuperar i fa visible a l’usuari.

Gràficament, un contexte navegacional es representa per unpaquet UML estereotipat amb la paraula reservada �contexte�.

Atenent al tipus d’alcançabilitat del contexte navegacional, n’e-xisteixen de dos tipus: contextes de seqüència i contextes d’explora-ció.

Page 104: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

86 CAPÍTOL 4. MODEL NAVEGACIONAL

«context»ResearchLines

E

Member

«context»Resources

E«context»Projects

E

«context»Groups

E

«context»Activities

E

«context»Publications

E«context»Members

E«context»Guests

S

Figura 4.4 – Mapa Navegacional: Contextes deSeqüència

Un contexte de seqüència és aquell que sols són accessiblesseguint algun camí navegacional predefinit. Açò és així perquèinteressa que al arribar a aquest tipus de contextes, l’usuari hajaseleccionat alguna informació en el node previ i en aquest contextees mostre informació detallada d’aquesta informació.

La Figura 4.4 mostra mapa navegacional amb un contexte deseqüència, anomenat Guests (“Convidats”). Com es pot observar, noes pot arribar a ell directament (no té cap enllaç d’exploració definita partir de l’usuari membre) i només es pot arribar a ell seguintalgun dels camins navegacionals següents: *-Projects-Guests ó *-Members-Guests4. Suposem que estem al contexte Projects. Teninten compte que al diagrama de classes (estructura d’informació) hiha una relació entre la classe Project i la classe Guest que indica quehi ha convidats que participen en un projecte. En aquest contexte

4Aquesta notació intuitiva representa dos camins navegacionals en els que,siga quin siga l’inici, al final s’accedeix primer al node Projects o Members abansd’accedir al node Guests

Page 105: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

4.7. Contextes Navegacionals 87

Projects, tal com diu el mapa navegacional, existiran enllaços queduguen al contexte Guest per seqüència, és a dir, seleccionant iduent alguna informació entre els contextes. Allò més normal seriaque que al contexte Projects es vejeren els noms dels convidatsque hi participen, i que al seleccionar un d’aquestos convidats, esvera informació detallada d’aquest en el contexte Guests. De lamateixa manera, la classe Member té una relació d’associacio ambla classe Guest, indicant quins convidats estan a càrrec de quinmember. Obtenir aquestos convidats a partir del contexte Membersper seleccionar un dels membres concrets, podria ser un escenarique també faria viable aquest mapa navegacional.

Un contexte d’exploració té la particularitat que defineixeun contingut sempre accessible per a l’usuari. Açò vol dir que enqualsevol moment, l’usuari pot demanar-li a l’aplicació que el dugaa aquest contexte. Com s’ha vist abans en la Secció 4.6, tot contexted’exploració té associat al mapa navegacional un enllaç d’exploracióque l’uneix amb l’usuari, indicant així que és sempre accessible. Ca-da vegada que l’usuari empre aquest enllaç d’exploració per arribaral contexte, el contexte li proporcionarà la població completa (totesaquelles instàncies que satisfaguen la vista del contexte).

La Figura 4.5 a la pàgina següent mostra un mapa navegaci-onal amb 7 contextes d’exploració: Activities, Group, Publications,ResearchLines, Members, Resources i Projects. Tots aquestos sóndirectament accesibles. Suposem que el al contexte Publicationsmostra totes les publicacions que hi ha disponibles al sistema. Siaccedim a ell per mig de l’enllaç d’exploració, el sistema ens mostra-rà la població completa de publicacions que té disponibles.

Però, a més a més, un contexte d’exploració pot comportar-se comun contexte de seqüència si definim un enllaç de seqüència desdequalsevol altre node fins el contexte. Amb aquest requeriment, el

Page 106: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

88 CAPÍTOL 4. MODEL NAVEGACIONAL

«context»ResearchLines

E

Member

«context»Resources

E«context»Projects

E

«context»Groups

E

«context»Activities

E

«context»Publications

E«context»Members

E«context»Guests

S

Figura 4.5 – Mapa Navegacional: Contextes d’Ex-ploració

que estem representant és que si accedim a un contexte d’exploraciócreuant un enllaç de seqüència, enlloc de mostrar tota la població delcontexte mostrarà sols aquella que estiga relacionada amb la infor-mació que hajam seleccionat en el node orige (enllaç de seqüència).

Així, si revisem la Figura 4.5 podrem adonar-nos que tambépodem accedir al contexte Publicacions per l’enllaç de seqüència apartir del contexte Members (tras seleccionar un membre), sols esmostraran les publicacions d’aquest membre seleccionat i no les detot el sistema

4.8 Unitats d’Abstracció d’Informació, UAI

Un Contexte Navegacional defineix un contingut que és accessiblea un determinat usuari quan hi accedeix al contexte. A causa deltipus de necessitats actuals en els sistemes web, és molt comú queaquest contingut siga en realitat un agregat de continguts, on esmostre diferent tipus d’informació.

Page 107: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

4.9. Classes Navegacionals 89

Una Unitat d’Abstracció d’Informació ó UAI defineix un con-tingut concret i completament relacionat entre sí sobre el Diagramade Classes. D’altra banda, un contexte es defineix com un agregadorde UAIs. D’aquesta manera, un contexte es converteix en un agrega-dor de continguts, possiblement no relacionats5. Per a una discussiómés detallada sobre l’agregació de continguts, veure la Secció 6.3 delCapítol 6.

En el cas més simple, un contexte podrà contenir una únicaUAI. En aquestos casos, el model permet no especificar la UAIexplícitament (encara que hi existeix implícitament). A més a més,aquesta UAI ha de ser obligatòriament de tipus contextual.

Les UAIs estan formades per classes navegacionals i relacionsnavegacionals, les quals li permeten definir l’estructura d’informaciói funcionalitat que definirà la vista. La Figura 4.6 a la pàginasegüent mostra un exemple de contexte amb UAIs: .

4.9 Classes Navegacionals

Una Classe Navegacional és una vista sobre una classe del Di-agrama de Classes. Aquesta vista defineix una projecció sobre lespropietats de la classe que formaran part de la vista. Aquestespropietats es refereixen a atributs i operacions de la classe.

Una classe navegacional es representa gràficament com unaclasse en UML estereotipada amb �vista�6. Aquesta representaciógràfica de la classe, enlloc de tenir els dos calaixos típics d’UML pera representar atributs i operacions, en tres: un, el primer, per aindicar els atributs navegacionals visibles; una altra, la segona,

5Tot el contingut d’una UAI està relacionat entre sí, però no ho està ambrespecte d’altres UAIs

6Per raons de llenguatge, de vegades s’expressa aquest estereotip en la seuaforma anglesa�view�

Page 108: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

90 CAPÍTOL 4. MODEL NAVEGACIONAL

Figura 4.6 – Unitats d’Abstracció d’Informaciód’un contexte

Figura 4.7 – Classe Navegacional

per a indicar les operacions navegacionals que seran activablesen aquest contexte; i una tercera per indicar la condició de filtratque hi pot existir. En ares de simplificar la seua representació, éscomú que no aparega aquell calaix on no hi haja res especificat.

Page 109: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

4.9. Classes Navegacionals 91

La Figura 4.7 a la pàgina anterior mostra una classe navegacio-nal.

Un atribut navegacional és un atribut que pertany a la classe(en el Diagrama de Classes) i sobre el que es demana “visibilitat”.Dit d’altra manera, per a que una propietat (atribut) d’una classesiga visible en un node (contexte navegacional), ha d’aparèixer comatribut navegacional en una classe navegacional.

De la mateixa manera que els atributs navegacionals, una ope-ració navegacional és una operació que pertany a la classe (enel Diagrama de Classes) que serà accessible des de la vista actual,permetent la seua execució. És a dir, en una UAI, si apareix algunaoperació navegacional, està indicant que l’usuari tindrà accés perllançar (executar) la operació associada.

Finalment, en una classe navegacional es pot definir una quepermet restringir la població de la classe que s’ha de recuperar.Sols formaran part de la població de la UAI aquelles instànciesde la classe que complisquen la condició assenyalada. Aquestescondicions de filtrat s’especifiquen mitjançant fòrmules semblantsa OCL, en el tercer calaix de la classe navegacional. La Figura 4.7 ala pàgina anterior mostra la condició de filtrat

D’altra banda, hi ha dos tipus de classes navegacionals: la classedirectora i les classes complementàries.

Una classe navegacional directora és la principal dins unaUAI, i sols hi pot haver una. Defineix quin és el punt de partida(classe del Diagrama de Classes) sobre la que s’inicia a definir lavista.

Una classe navegacional complementària permet completarla vista d’una altra classe navegacional (directora o complementà-ria) sobre la que es defineix. Aquestes classes complementàriessempre van unides a una altra classe navegacional per una relació

Page 110: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

92 CAPÍTOL 4. MODEL NAVEGACIONAL

navegacional (definides a la Secció 4.10).En la Figura 4.6 a la pàgina 90 es poden observar classes

navegacionals a la UAI .

4.10 Relacions Navegacionals

Les classes navegacionals dins una UAI estan relacionades per rela-cions binàries unidireccionals anomenades Relacions Navegacio-nals.

L’objectiu d’una relació navegacional és definir un requerimentper recuperar informació complementària (creant les classes com-plementàries), relacionada per alguna relació estructural (en el Dia-grama de Classes) entre les classes. És per açò que es defineix sobrerelacions d’associació-compossició-agregació i també sobre relacionsd’herència.

Així, si tenim el següent troç de contexte navegacional, mostrata la Figura 4.8 a la pàgina següent, la relació navegacional (re-presentada com una fletxa entre les classes) està representant unarecuperació d’aquells que han escrit un .

Per a eliminar qualsevol tipus d’ambigüitat en el cas de múlti-ples relacions entre duess classes concretes, les relacions navega-cionals han d’incloure un atribut de rol (representat gràficamentcom /atribut-de-rol/) que indicarà el nom de la relació a la que esfa referència.

Així, per exemple, a les Figures 4.8 i 4.9, s’aprecia que s’ha espe-cificat l’atribut de rol /Escrito_por/. Açò pot ser causat perquè entrela classe Libro i la classe Autor podrien existir almenys dues relaci-ons d’associació: una per indicar els autors que han escrit un llibre(relació Escrito_por) i una altra relació que indique quins autors hanrevisat un llibre (relació Revisado_por). D’aquesta manera es lleva

Page 111: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

4.10. Relacions Navegacionals 93

Figura 4.8 – Relacions Navegacionals

l’ambigüitat i es sap en tot moment sobre quina relació estructurals’està projectant la relació navegacional.

A més a més, atenent a si la Relació Navegacional defineix o nouna capacitat de navegació a un node destí, existeixen dos tipus derelacions navegacionals: la relació de dependència de contexte i larelació de contexte.

4.10.1 Relacions de Dependència de Contexte

Una Relació de Dependència de Contexte representa un reque-riment de recuperació d’informació d’una classe relacionada a partird’una classe navegacional inici. Cada vegada que es recupere unainstància de la classe inicial de la relació de dependència, es recupe-raran totes les instàncies de la classe final de la relació existents enel sistema que n’estiguen relacionades.

Page 112: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

94 CAPÍTOL 4. MODEL NAVEGACIONAL

Figura 4.9 – Relació de Dependència de Contexte

Es representa gràficament mitjançant una fletxa discontinua,99K

La Figura 4.9 mostra un exemple de relació de dependència decontexte, aplicat al contexte Libros. Segons aquesta relació, per acada llibre que es recupere al contexte (del que es mostrarà el ISBNi el títol) s’haurà de proporcionar informació addicional sobre el nomdels autors que l’han escrit (relació /Escrito_por/ de tipus “molts-a-molts”).

La Figura 4.10 a la pàgina següent mostra una possible imple-mentació d’aquest contexte navegacional, on es veu les implicacionsd’una relació de dependència de contexte. Com es pot observar,per a cada llibre es proporciona la informació del nom dels autorsd’aquest.

4.10.2 Relacions de Contexte

Una Relació de Contexte representa la mateixa recuperació d’in-formació que les relacions de dependència de contexte, però ademéspermet definir una capacitat de navegació a un contexte navegaci-onal destí. Aquesta relació crea un enllaç de seqüència en el mapanaegacional (veure Secció 4.6). Gràficament es representa mitjan-

Page 113: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

4.10. Relacions Navegacionals 95

Figura 4.10 – Possible implementació d’una Rela-ció de Dependència de Contexte

çant una fletxa continua,→.Per tal de completar l’enllaç de navegació que defineix, cal espe-

cificar les propietats “atribut de contexte” i “atribut d’enllaç”.Un [Atribut de contexte] indica el contexte destí de la navegació.

És a dir, un contexte navegacional que existisca al mapa navega-cional sobre el que es defineix. Gràficament es representa com[contexte-destí].

Un Atribut d’enllaç especifica l’atribut que servirà com a “àn-cora” per activar la navegació al contexte destí. Habitualment, l’a-tribut d’enllaç pertany a la classe navegacional destí en la relacióde contexte. Per qüestions de facilitat de comprensió de cara a

Page 114: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

96 CAPÍTOL 4. MODEL NAVEGACIONAL

Figura 4.11 – Relació de Contexte

l’usuari, de vegades és interessant definir aquesta àncora com una“etiqueta” (un text estàtic). En aquest cas, enlloc d’especificar unatribut navegacional, es ficarà entre dobles-cometes el text que esdesitja.

La Figura 4.11 mostra el mateix exemple del contexte Libros,però ara definint una capacitat de navegació emprant el nom del’autor com enllaç al contexte destí [Autores].

La Figura 4.12 a la pàgina següent mostra una possible imple-mentació d’aquesta relació de contexte. Com es pot apreciar, araels noms dels autors dels llibres s’han convertit en enllaços quedonen accés (per seqüència) al contexte destí [Autores], duent com ainformació contextual l’autor seleccionat. El contexte destí, Autores,recuperarà només la informació referent a l’autor indicat.

Atenent al tipus d’informació contextual que “envia” una rela-ció de contexte al contexte destí, podem distinguir dues relacions:Relacions de Contexte d’Objecte i Relacions de Contexte de Relació.

Page 115: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

4.10. Relacions Navegacionals 97

Figura 4.12 – Possible implementació d’una Rela-ció de Contexte

4.10.2.1 Relacions de Contexte d’Objecte

Una Relació de Contexte d’Objecte defineix la informació contextualde la navegació com un objecte. És a dir, fruit de la navegació, seseleccionarà un objecte (instància concreta d’una classe navegacio-nal al contexte orige) i aquesta es “durà” com a informació contex-tual. Al contexte destí, la classe directora de les UAIs contextualshauran de ser del mateix tipus que l’objecte, i quan es produiscala navegació, recuperaran només la informació de l’objecte passatcontextualment.

Per temes de qualitat, que tenen a veure amb la coherència ifacilitat de comprensió per part de l’usuari final de les aplicacions,

Page 116: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

98 CAPÍTOL 4. MODEL NAVEGACIONAL

es recomana que l’atribut d’enllaç (atribut emprat com àncora enla navegació) siga un atribut de la classe destí de la relació decontexte. Açò és deu al fet que l’objecte que seleccionem pertany ala classe navegacional destí de la relació, que a la seua vegada seràla classe principal en el contexte destí. El que s’aconsegueix ambaquesta recomanació és que l’usuari, al seleccionar informació sobreun tipus d’objecte, aconseguisca al final informació sobre aquesttipus d’objecte i no d’un altre tipus (que podria provocar confussió).

Exemple: Suposem que estem explorant un catàleg de llibres,on cada llibre pot ser escrit per varios autors. Es desitja definiruna navegabilitat de manera que en un contexte es mostre totala informació d’un llibre, incloent el nom dels autors, i que, alseleccionar un d’aquestos autors, s’obtinga informació addicional del’autor seleccionat.

La Figura 4.9 a la pàgina 94 mostra el Diagrama de Classes ques’emprarà per a aquest exemple. Com es pot observar, representaels requeriments d’estructuració d’informació, on un Llibre pot estarescrit (mitjançant la relació /Escrito_por/) per més d’un autor.

Per representar el requeriment navegacional descrit és necessariemprar una relació de Contexte d’Objecte, associada al tipus d’objec-te Autor, i s’emprarà com a àncora el nom de l’autor. La Figura 4.13a la pàgina següent mostra el Mapa Navegacional associat, i elscontextes Libros i Autores que representen aquest requeriment.

Finalment, una possible implementació d’aquest escenari podriaveure’s a la Figura 4.14 a la pàgina 100, on es veu la implementaciódel contexte Libros on, al passar per damunt d’un enllaç associatal nom de l’autor, duu a la pàgina autores.asp (que implementael contexte Autores) passant com informació contextual l’objecteseleccionat (l’identificador d’objecte dels autors).

Page 117: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

4.10. Relacions Navegacionals 99

Figura 4.13 – Relació de Contexte d’Objecte

4.10.2.2 Relacions de Contexte de Relació

Una Relació de Contexte de Relació defineix la informació contextualde la navegació com una relació. És a dir, fruit de la navegació,se seleccionarà una relació entre classes associada a un objecte iaquesta es “durà” com a informació contextual (junt a l’objecte). Alcontexte destí, la classe directora de les UAIs contextuals haurande ser alguna classe relacionada (en el diagrama de classes) ambla classe a la que pertany l’objecte per la relació passada. Quanes produisca aquesta navegació, el contexte destí recuperarà noméstotes les instàncies relacionades amb la relació i l’objecte passatscontextualment.

El que aconseguim amb aquesta primitiva és que no es mostreinformació sobre els objectes relacionats, i aquestos es mostren alcontexte destí. Aquesta primitiva és adient quan la població derelacionats és suficientment gran, o quan aquesta població té unaautonomia semàntica (tenen significat per sí mateix). És per açòque quan s’especifica una relació de contexte de relació, la classe

Page 118: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

100 CAPÍTOL 4. MODEL NAVEGACIONAL

Figura 4.14 – Implementació d’una Relació deContexte d’Objecte

navegacional destí de la relació ha d’estar buida: no ha de teniratributs navegacionals, per no forçar la recuperació d’instàncies.

Amb respecte a l’atribut d’enllaç, hi ha vàries alternatives:

• No s’especifica atribut d’enllaç. En aquest cas apareixerà elnom de la relació com el text que servirà d’àncora en la na-vegació. Aquest cas és el més desitjable, ja que directamentrelaciona l’àncora que seleccionarà l’usuari amb el contingut

Page 119: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

4.10. Relacions Navegacionals 101

d’informació que es recuperarà al destí. En cas necessari, espodria emprar un text estàtic definit per l’usuari en aquestcontexte enlloc del nom de la relació, si amb açò es guanya encomprensió.

• S’especifica un atribut de la classe naveagacional orige de larelació. En aquest cas, l’àncora s’associa amb un atribut de laclasse navegacional orige. Té l’inconvenient de cara a l’usuarifinal que aquest selecciona un tipus d’objecte i en el destí dela navegació veurà altre tipus d’objectes (aquells relacionatsper la relació de contexte). Malgrat açò, en alguns escenaris ésadient emprar aquest tipus d’àncora.

Exemple: Suposem que estem explorant un catàleg de llibres (elmateix que abans), on cada llibre pot ser escrit per varios autors.Es desitja definir una navegabilitat de manera que en un contextees mostre tota la informació d’un llibre, però enlloc de proporcionarinformació sobre els autors, es desitja que es mostre un enllaç (del’estil de “Autors que han escrit el llibre”) que duga al contexte destíAutores on es proporcione informació de tots els autors que hanescrit el llibre seleccionat.

La Figura 4.9 a la pàgina 94 mostra el Diagrama de Classes. UnLlibre pot estar escrit (mitjançant la relació /Escrito_por/) per mésd’un autor.

Per representar el requeriment navegacional descrit és necessariemprar una relació de Contexte de Relació, associada al tipus d’ob-jecte Llibre i emprar la relació /Escrito_por/. Com atribut d’enllaç(àncora de la navegació) podem emprar el propi nom de la relació,de manera que no cal que n’especifiquem cap. La Figura 4.15 a la pà-gina següent mostra el Mapa Navegacional associat, i els contextesLibros i Autores que representen aquest requeriment.

Page 120: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

102 CAPÍTOL 4. MODEL NAVEGACIONAL

Figura 4.15 – Relació de Contexte de Relació

Finalment, una possible implementació d’aquest escenari podriaveure’s a la Figura 4.16 a la pàgina següent, on es veu la imple-mentació del contexte Libros on, al passar per damunt d’un enllaçassociat al nom de la relació Escrito por (en aquest cas no es veuenels autors en aquesta pàgina), duu a la pàgina autores.asp (queimplementa el contexte Autores) passant com informació contextuall’objecte seleccionat (l’identificador d’objecte dels autors) i la relacióque s’està emprant (Escrito_por).

4.11 Enllaços de Servei

Un Enllaç de Servei va associat a una operació navegacional i de-fineix una navegació que es produirà després de l’execució d’aquestservei. Per a definir un Enllaç de Servei, només cal etiquetar laoperació navegacional amb el [contexte-destí] de la navegació, comsi d’una relació de contexte es tractara.

La Figura 4.17 a la pàgina 104 mostra un exemple d’enllaç deservei en la classe principal que defineix una navegació al contexte

Page 121: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

4.12. Subsistemes Navegacionals 103

Figura 4.16 – Implementació d’una Relació deContexte de Relacio

destí [Prestados] que es produirà cada vegada que l’operació prestar()s’active en aquest contexte.

4.12 Subsistemes Navegacionals

Un Subsistema Navegacional és un tipus de node dins un mapanavegacional que té com a objectiu organitzar l’estructura navegaci-

Page 122: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

104 CAPÍTOL 4. MODEL NAVEGACIONAL

Figura 4.17 – Enllaç de Servei

onal de l’usuari. Aquest subsistema defineix un espai navegacionalque conté altres nodes navegacionals que sols són accessibles quanes navega dins el subsistema. Atenent a aquesta definició, dins unespai navegacional (subsistema) podran haver més subsistemes.

D’aquesta manera, es pot entendre fàcilment que un subsistemanavegacional representa un sub-mapa navegacional dins un mapanavegacional major, amagant tots els nodes que conté el sub-mapaquan s’està explorant pels nodes que pertanyen directament al ma-pa, i donant-los visibilitat quan s’està dins el sub-mapa.

Un Subsistema Navegacional es representa gràficament igualque un contexte navegacional (emprant un paquet d’UML), peròestereotipat amb la paraula reservada estereotipoSubistema.

Des d’un punt de vista formal, un mapa navegacional es repre-senta mitjançant un graf navegacional. Els subsistemes navegaci-onals permeten la definició de hiper-grafs, de manera que algunsnodes del graf són a la seua vegada grafs navegacionals.

És a dir, un subsistema navegacional té una dualitat de compor-tament: d’una banda és un graf-mapa navegacional, i d’una altrabanda és un node navegacional (que defineix un contingut formatper altres nodes).

Page 123: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

4.13. Usuari Conectat 105

4.13 Usuari Conectat

La primitiva Usuari Conectat permet accedir a l’usuari que estàconectat a l’aplicació en temps d’execució.

Primitiva que permet accedir a l’usuari que està conectat entemps d’execució. Permet emprar aquesta informació per establiralguna política de personalització o restricció d’accés en funció del’usuari concret i no sols pel seu tipus d’usuari. Explaiar-se ambaquesta última sentència.

Es representa com #usuari#.

4.14 Sessió

Primitiva de modelatge que ens permet controlar l’execució de certestasques (operacions) quan un usuari es conecta al sistema. Hi hados moments en els que es poden llançar operacions: executar unconjunt d’operacions quan l’usuari inicia una sessió d’interacció ambel sistema, o bé executar-les quan acaba la sessió.

La sintaxi per expressar aquest requeriment és la següent:

• Operacions d’inici de sessió: #Classe.Operacio#

• Operacions de fi de sessió: ##Classe.Operacio##

Aquestes operacions s’associen al mapa navegacional, i podendefinir-se tantes com siga necessari.

4.15 Condició de Navegació

La navegació capturada mitjançant les relacions de contexte es ca-racteritza per ser estàtica, és a dir, enllaça unívocament dos contex-tes navegacionals d’una manera predeterminada i fixa. Tanmateix,

Page 124: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

106 CAPÍTOL 4. MODEL NAVEGACIONAL

donada la naturalesa de les aplicacions Web, de vegades cal unmecanisme que exprese una condició dinàmica de navegació ques’avalue abans de produir-se la navegació, en temps d’execució.

Aquestes condicions permeten especificar restriccions que deuensatisfer-se per que puga produir-se la navegació. S’expresen asso-ciades a les relacions de contexte, mitjançant l’atribut de contexte.Aquestes condicions s’avaluen sobre atributs d’alguna de les classesnavegacionals (orige o destí) de la relació de contexte, o sobre l’estatde l’usuari contectat (mitjançant una expressió que empre l’usuariconectat).

4.16 Navegació entre Mapes Navegacionals

De vegades és necessari que un usuari tinga accés a un node d’unaltre usuari, prèvia identificació com a aqueix usuari. Aquestaprimitiva permet definir una navegació a un node que pertany almapa d’un altre usuari. És per açò que també se la coneix com“Navegació amb canvi d’Usuari”.

El comportament definit per aquesta primitiva és el següent:

• el sistema li demanarà a aquest usuari que s’identifique coml’usuari en el que està definit el node destí. En cas que laidentificació siga correcta, li permetrà l’accés al contingut delnode especificat

• si l’identificació ha sigut correcta, el sistema es comportaràcom una navegació “normal”

• després de la navegació, l’usuari es queda identicat al sistemacom l’usuari destí, podent continuar navegant pel mapa d’a-quest

Page 125: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

4.16. Navegació entre Mapes Navegacionals 107

Figura 4.18 – Exemple de Navegació amb Canvid’Usuari

Hi ha dues maneres de definir una navegació entre mapes nave-gacionals:

• Definint una relació de contexte, especificant al seu atribut decontexte un node que pertany al mapa navegacional d’un altreusuari. Per a remarcar aquest fet, s’especificarà a l’atributnavegacional el node destí prefixat amb el nom de l’usuaripropietari del mapa on està definit aquest node.

• “Important” un node navegacional d’exploració al mapa actual.D’aquesta manera es donarà accés a aquest, però no es podrà“redefinir” el seu contingut.

Page 126: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions
Page 127: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

CAPÍTOL 5MODEL D’USUARIS

5.1 Introducció

L’Enginyeria Web promou l’adaptació dels mètodes de producció deprogramari per tal d’introduir els conceptes i requeriments essen-cials de les aplicacions web. Un d’aquestos requeriments és el degestionar correctament els (potencials) usuaris d’una aplicació web.

Malgrat açò, OO-Method sí que introdueix els usuaris al seudiagrama de classes, fent-los explícits. L’objectiu és doble: (1) d’unabanda permet representar-los com estructures d’informació (persis-tents), especificant les seues propietas i relacions amb altres entitatsdel Diagrama de Classes i (2) definir quina visibilitat té sobre laresta de classes del sistema, indicant quins atributs, relacions ioperacions té permís per explorar i executar.

Així, l’objectiu d’aquest capítol és:

• el d’introduir el Diagrama d’Usuaris com un mecanisme quepermeta tenir en compte als tipus d’usuaris d’una manera

109

Page 128: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

110 CAPÍTOL 5. MODEL D’USUARIS

Figura 5.1 – Representació gràfica d’un Usuari

clara i explícita, i així poder gestionar-los i representar els seusrequeriments navegacionals.

• definir la relació d’aquest diagrama amb respecte de l’aproxi-mació metodològica OO-Method, i on pot ser útil.

5.2 El Diagrama d’Usuaris

El Diagrama d’Usuaris és una eina que permet definir explícita-ments els tipus o perfils d’usuari que podran accedir al sistema iles relacions entre aquestos usuaris. . Cada aplicació web haurà detenir el seu propi Diagrama d’Usuaris.

Un tipus d’usuari, o usuari, es representa gràficament mitjan-çant un actor UML, com es pot veure a la Figura 5.1

Per construir un diagrama d’usuaris devem seguir els següentspassos:

1. Detectar i Definir els tipus d’usuaris

2. Asignar un mode d’accés a cada tipus d’usuari

3. Detectar i Definir les relacions entre els usuaris

Page 129: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

5.2. El Diagrama d’Usuaris 111

Figura 5.2 – Diagrama d’Usuaris de la Bibliotecaon-line: Detecció dels Usuaris

Per Detectar i Definir els tipus d’usuaris normalment observaremels requeriments del sistema i extraurem aquells referents a qui potutilitzar el sistema.

Suposem una Biblioteca on-line on hi ha: Internautes que explo-ren el catàleg, Bibliotecaris que gestionen el catàleg, Socis que podenrealitzar prèstec, el/els Director/s que gestionen l’infraestructura dela Biblioteca i els Responsables de Compres que s’encarreguen decomprar el material bibliogràfic.

El primer pas, doncs, per constuir el Diagrama d’Usuaris d’a-questa Biblioteca seria extraure i explicitar els usuaris. Açò potveure’s a la Figura 5.2.

Atenent al tipus d’accés o “permís de conexió” que poden tenirels usuaris de cara al sistema, es distingeixen 3 tipus d’usuaris:anònims, registrats i sense permís.

5.2.1 Usuaris Anònims

Un usuari Anònim (Figura 5.3 a la pàgina següent) no necessitaidentificar-se al conectar-se al sistema. Símplement tenen accés.Per aquesta naturalesa, açò fa que siga molt habitual que els tipusd’usuaris marcats com anònims tinguen uns permisos d’accés al

Page 130: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

112 CAPÍTOL 5. MODEL D’USUARIS

Figura 5.3 – Usuari Anònim

sistema molt reduïts. És molt recomanable que al tipus d’informaciói funcionalitat que puguen accedir siga “no-sensible”, “no-crítica”,“no-personal”, etc., ja que el sistema no pot saber qui hi ha al darrerei seria “responsable” d’algunes accions.

Com que d’aquestos usuaris no es té més informació que elfet de saber que són anònims, no es podrà aplicar cap política depersonalització dinàmica (veure Secció 6.4 del Capítol 6).

5.2.2 Usuaris Registrats

Un usuari Registrat (Figura 5.4 a la pàgina següent) necessitaobligatòriament identificar-se al conectar-se al sistema, de maneraque aquest sàpiga, no sols quin tipus d’usuari és, si nó també quinusuari concret. Avuí en dia, aquestes identificacions solen produir-se proporcionant un identificador d’usuari (“login”) i una clau d’ac-cés. Aquestos són els tipus d’usuaris amb més responsabilitats ambel sistema, i als que se’ls associa accés a informació i funcionalitat“sensible”, “crítica”, “personal”, etc.

A aquestos usuaris si se’ls pot aplicar polítiques de personalit-zació dinàmica (Secció 6.4 del Capítol 6) i és molt habitual establircondicions de filtrat sobre la població (veure Secció 4.13 del Capí-tol 4) en base a la seua informació.

Page 131: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

5.2. El Diagrama d’Usuaris 113

Figura 5.4 – Usuari Registat

5.2.3 Usuari “Sense Permís”

Un usuari “Sense Permís” (Figura 5.5 a la pàgina següent) nopot accedir al sistema. Són usuaris “virtuals” o “sintètics” creats apropòsit (no existeixen en realitat) per tal de: (1) expressar respon-sabilitats comuns entre usuaris, (2) plasmar una jerarquia funcional(per exemple, en una empresa, Departaments, Seccions, Unitats,etc.) i (3) organitzar i estructurar els usuaris del sistema.

Aquest tipus d’usuari només té sentit quan parlem de relacionsentre usuaris (veure la Secció 5.2.5). Aquest usuari representa el“factor comú” de la vista navegacional compartida entre diferentsusuaris.

5.2.4 Exemple

Seguint amb l’exemple de la Biblioteca on-line, podriem afinar elseu Diagrama d’Usuaris introduint la informació relacionada ambel mode d’accés de cada tipus d’usuari. La Figura 5.6 a la pàginasegüent mostra l’especificació d’aquest requeriment. Com es potobservar, s’ha definit l’Internauta com un usuari anònim, ja que pertal d’explorar el catàleg no anem a obligar que es registren, mentreque tota la resta d’usuaris són registrats ja que és important saber

Page 132: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

114 CAPÍTOL 5. MODEL D’USUARIS

Figura 5.5 – Usuari “Sense Permís”

Figura 5.6 – Diagrama d’Usuaris de la Bibliotecaon-line: Mode Accés

qui són a l’hora de realitzar les accions a què estan capacitats.

5.2.5 L’Especialització entre Usuaris

És molt habitual que diferents usuaris tinguen accés al mateixcontingut d’informació i/o compartisquen responsabilitats de cara alsistema (puguen realitzar operacions i accions comunes). Què femaleshores? Repetim l’especificació? Tractem de fusionar allò comú?

Aquest problema no és nou. Per exemple, quan estem descrivintles estructures d’informació del sistema mitjançant un Diagramade Classes, ens pot passar que detectem que dues (o més) classescomparteixen tota o part de les estructures d’informació. En aqueix

Page 133: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

5.2. El Diagrama d’Usuaris 115

moment, el que es fa es definir una jerarquia d’herència entre lesclasses, de manera que es crea una classe “pare” que conté allò comúi classes “filles” que hereten les propietats del pare (herència estruc-tural). Aquestes propietats estructurals són, bàsicament, els atri-buts, les operacions i les relacions estructurals amb altres classes(associació-agregació-composició i especialització-generalització).

La idea, en aquest punt, és seguir el mateix camí ací, a la defi-nició dels usuaris. Quan tingam dos (o més) usuaris que compartis-quen part de l’accés al sistema (que en OOWS es defineix mitjançantel mapa navegacional, com s’ha vist a la Secció 4.4 del Capítol 4), elque farem serà crear un usuari “pare” que continga allò comú i unasèrie d’usuaris “fills” que hereten les seues propietats. Es defineixaixí, intuitivament el concepte d’especialització navegacional. Ala Secció 6.5 del Capítol 6 es pot obtenir més informació sobre aquestconcepte i les seues repercusions.

La Figura 5.7 a la pàgina següent mostra a dos usuaris ambuna relació d’especialització navegacional definida entre ells. Calnotar que, encara que la representació gràfica de l’herència siga lamateixa que en un Diagrama de Classes, el significat és diferent jaque s’està aplicant en el contexte d’un Diagrama d’Usuaris i entretipus d’usuaris, i no entre classes.

Per construir el Diagrama d’Usuaris només cal saber que siespecialitzem un usuari a partir d’un altre, l’usuari especilitzat:

• heretarà el mapa de l’usuari base, i per tant l’accés als nodes ienllaços navegacionals definits

• podrà modificar el seu mapa, afegint, modificant o llevantaccés a nodes i enllaços

Al final, un Diagrama Navegacional podrà tenir una estructura

Page 134: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

116 CAPÍTOL 5. MODEL D’USUARIS

Figura 5.7 – Especialització entre Usuaris

jeràrquica si tots els seus usuaris estan relacionats (no és obligato-ri), sempre que es respeten algunes consideracions:

• els usuaris sense permís no són usuaris finals, és a dir, semprehan d’estar especialitzats en altres usuaris

• un usuari anònim no pot especialitzar-se d’un usuari registrat,però sí d’altre usuari anònim o d’altre usuari “Sense Permís”(ni directa, ni indirectament)

Tenint en compte aquestes relacions entre usuaris, el Diagramad’Usuaris de la Biblioteca podria afinar-se. Així, per exemple, perindicar que tots els usuaris de la Biblioteca poden explorar el catà-leg (almenys de la mateixa manera que un Internauta, encara quedesprés puguen afegir més funcionalitat), el que podem fer és fer quetots els usuaris hereten de l’Internauta (directa o indirectament). Amés, el Director i el Responsable de Compres tenen accés comú ialtre diferenciat. Per tant, podem crear un usuari virtual “Sense

Page 135: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

5.2. El Diagrama d’Usuaris 117

Figura 5.8 – Diagrama d’Usuaris Biblioteca on-line: Relacions entre Usuaris

Permís” Direcció, que reunisca aquesta informació i que despréss’especialitze. La Figura 5.8 mostra com podria quedar aquest Dia-grama d’Usuaris complet, amb les relacions entre usuaris definides.

Page 136: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions
Page 137: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

CAPÍTOL 6CONCEPTES AVANÇATS

6.1 Introducció

Al Capítol 3 s’ha presentat una proposta de procés de desenvolupa-ment d’aplicacions web basat en modelatge conceptual i al Capítol 4s’ha presentat el conjunt de primitives conceptuals bàsiques perrepresentar el concepte de navegació en les etapes de modelatgeconceptual. En aquest capítol es presenten una sèrie de milloresal mètode presentat (tant en expressivitat com en el seu procésd’especificació) orientades a donar un suport a aspectes importantsinherents a les aplicacions web.

La proposta que es fa d’aquestes millores es fa atenent a doscriteris essencials: (1) incorporar cada element en el seu nivelld’abstracció pertinent i (2) trobar el “moment” (dins el procés dedesenvolupament) més adient per descobrir i descriure aquestespropietats.

119

Page 138: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

120 CAPÍTOL 6. CONCEPTES AVANÇATS

6.2 Mecanismes d’Accés a la Informació

L’objectiu d’un mecanisme d’accés a la informació és facilitar labúsqueda d’informació dins el sistema. En les aplicacions web actu-alment implementades i en els mètodes de desenvolupament d’apli-cacions que segueixen els principis de l’Enginyeria Web, s’emprendiferents d’aquestos mecanismes: indexos, filtres, visites guiades,etc. Cadascun d’aquestos mecanismes proveeix a l’usuari d’informa-ció que li permet fer una cerca més eficient d’allò que realment estàbuscant.

Aquests mecanismes són emprats en les etapes de descripció dela navegabilitat pel sistema incloent-los en el “graf navegacional”principal que descriu l’aplicació web. Açò fa que aquest tipus demecanismes siguen considerats com “ents de primer nivell”, compa-rables als nodes que especifiquen informació. És a dir, són un tipusmés de nodes del graf, l’objectiu del qual és proporcionar accés alcontingut d’algun altre node.

Des d’un punt de vista de procés de construcció d’especificacionsconceptuals, l’aproximació presentada en aquesta tesis fa una estra-tègia diferent, ajornant el moment d’especificació d’aquests meca-nismes per aconseguir bàsicament dos avantatges: (1) simplificar elmapa (o graf) navegacional, especificant només nodes que defineixencontingut, i (2) aprofitar al màxim el coneixement recollit en laconstrucció d’aquest mapa navegacional i poder predir on (en quinsnodes) i en quines circumstàncies de navegació serà necessari ques’activen aquests mecanismes. Tot açò serà revisat a la secció 6.2

6.2.1 Estudi inicial. Motivació. Objectius

Els contextes navegacionals defineixen una recuperació de la pobla-ció de les classes navegacionals definides a les Unitats d’Abstracció

Page 139: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

6.2. Mecanismes d’Accés a la Informació 121

Figura 6.1 – Diagrama de Classes d’Amazon.com

d’Informació (UAI). Es defineix cardinalitat d’una UAI com lacardinalitat de la població ó dit d’una altra manera, com el númerod’instàncies que satisfan la vista de la UAI en un instant determi-nat.

De vegades, la cardinalitat d’una UAI és elevada i resulta difícilde gestionar per part de l’usuari, arribant a ser inusable. Per tald’ajudar als usuaris a cercar per aquesta quantitat d’informació,s’empren els mecanismes d’accés.

Una vegada detectats el tipus d’usuaris (diagrama d’usuaris) idescrita la seua accessibilitat al sistema i navegació per la informa-ció i la funcionalitat (model navegacional), podem encara prendrealgunes decisions més per intentar millorar la búsqueda i exploraciódels continguts de l’aplicació.

Suposem el cas d’Amazon.com. Aquesta companyia està orien-tada a la venta on-line de productes, en especial llibres. Aquestsllibres els tenen catalogats per autors i per temàtiques, de tal mane-ra que per cercar un llibre es pot tant accedir directament al catàlegcom buscar-ne alguns emprant l’autor i la temàtica.

A la Figura 6.1 poden observar-se les relacions semàntiques

Page 140: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

122 CAPÍTOL 6. CONCEPTES AVANÇATS

del diagrama de classes en la que s’estableixen els requerimentsd’emmagatzemament i estructura de dades amb relació al catàlegde llibres. Podem observar que un llibre té una sèrie de propietatsbàsiques (atributs) com ara el seu títol, ISBN, número de pàgines,any de publicació, etc. Tanmateix, un llibre té dues relacions estruc-turals: (1) una relació amb la classe autor anomenada “escrit_per”que indica quin autor o autors 1 han escrit el llibre, i (2) una relacióamb la classe temàtica anomenada “matèria” que indica el tipus decontingut que tracta el llibre (humor, ciència-ficció, intriga, etc.).

Suposem que ens encarreguen el desenvolupament d’un sistemaper a la web que emprant aquestes estructures de dades, permetaque usuaris anònims puguen explorar el catàleg de llibres des detres entrades diferents:

1. Accedir dirèctament al catàleg dels llibres disponibles

2. Accedir a informació dels llibres a partir d’algun autor

3. Accedir a informació dels llibres d’alguna temàtica en particu-lar

Si revisem aquests requeriments del sistema, podem observarque es tracta de requeriments de navegació en els quals s’estableixque existirà un usuari anònim (al diagrama d’usuaris) que disposaràd’un mapa navegacional semblant al de la Figura 6.2 a la pàginasegüent.

Com es pot observar en aqueixa figura, un usuari anònim pot:

• accedir al contexte Llibres emprant un enllaç d’exploració perexplorar tot el catàleg de llibres,

1Cardinalitat màxima de llibres a autor establerta a molts (*)

Page 141: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

6.2. Mecanismes d’Accés a la Informació 123

Internaut

Amazon.com Welcome

E << context >>

Store Dir

E << context >>

Shopping Cart

E << context >>

Book Home

S << context >>

DVD Home

S << context >>

Products

S << context >>

Free E-Card

S << context >>

Tax Center

S << context >>

Friends & Fun

S << context >>

Subjects

S << context >>

Books

S << context >>

DVDs

S << context >>

Book Details

S << context >>

DVD Details

S << context >>

Authors

S << context >>

Reviews

S << context >>

Internaut

E << context >>

Figura 6.2 – Mapa Navegacional del usuari Anò-nim

• accedir per exploració al contexte Autors per veure els autorsdel sistema i al seleccionar-ne un d’autor, navegar al contexte

Page 142: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

124 CAPÍTOL 6. CONCEPTES AVANÇATS

Llibres emprant un enllaç de seqüència per veure els llibresescrits per aquest autor

• accedir per exploració al contexte Temàtiques per veure elsautors del sistema i al seleccionar una temàtica, navegar alcontexte Llibres emprant un enllaç de seqüència per veure elsllibres de la matèria d’aquesta temàtica

Si tenim aquesta estructura navegacional, se’ns podrien plante-jar els següents problemes:

• Quan naveguem al contexte Llibres per exploració, què esde-vindria si hi haguera gran quantitat de llibres al catàleg?

• Quan naveguem al contexte Autors per exploració, què esde-vindria si hi haguera gran quantitat de autors al catàleg?

• Quan naveguem al contexte Temàtiques per exploració, quèesdevindria si hi haguera gran quantitat de temàtiques alcatàleg?

• Quan naveguem per seqüència al contexte Llibres a des delcontexte Autors, què esdevindria si un Autor haguera escritmolts llibres?

• Quan naveguem per seqüència al contexte Llibres a des delcontexte Temàtiques, què esdevindria hagueren molts llibresde la mateixa temàtica?

La resposta a totes les preguntes anteriors és que, si no es diures, el sistema li oferiria al usuari anònim massa gran quantitatd’informació d’una vegada, provocant que l’usuari se sentira so-brepassat amb la gran quantitat d’informació i fent-li dificultós eltrobar el/s llibre/s que està buscant.

Page 143: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

6.2. Mecanismes d’Accés a la Informació 125

Per minvar aquests problemes, en el món de l’Enginyeria Webvenent emprant-se uns mecanismes que faciliten un accés més ràpida la informació buscada per l’usuari. Aquests mecanismes sóntípicament tres: els índexos, els filtres i les visites guiades .

Malgrat tot, les aproximacions més rellevants de descripció d’a-plicacions hipermedials empren aquests mecanismes quan s’estàconstruint el graf navegacional (mapa navegacional en OOWS). D’a-questa manera es produeixen en una sèrie de desavantatges:

• L’analista ha d’estar pensant en disseny d’accés a les dadesmentre construeix la navegabilitat pel sistema. Aquesta hau-ria de basar-se essencialment en les relacions estructuralsde dades, i no descentrar-se amb altres detalls irrellevants aaquest nivell. De fet, podria arribar-se a la conclusió que elfet d’introduir aquests mecanismes influeix en la navegació pelsistema (veure discussió sobre el concepte de navegació en laSecció 4.2 del Capítol 4). Aquests mecanismes no impliquennavegació conceptual, i per tant, no han d’aparèixer com anodes dins del graf navegacional.

• Els grafs navegacionals es tornen massa sobrecarregats. Apartd’aparèixer els nodes navegacionals que descriuen les vistesdels usuaris, aparèixen els mecanismes d’accés que s’interpo-sen entre la navegació entre nodes. Açò esdevé en una comple-xitat addicional del graf navegacional.

• L’analista no pot assegurar que fica tots els mecanismes d’ac-cés necessaris ni que no en fica més dels pertinents. Depéndel seu “bon” criteri que veja totes les navegacions que pu-guen necessitar la incorporació d’un MAI per gestionar la granquantitat d’informació.

Page 144: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

126 CAPÍTOL 6. CONCEPTES AVANÇATS

• L’analista ha de duplicar espeficació de mecanismes d’accésquan vulga arribar a un mateix contexte des de diferents lo-calitzacions

L’objectiu serà doncs incorporar aquests mecanismes d’accés demanera que eviten aquests problemes esmentats i que reaprofitenal màxim el coneixement especificat, de manera que siga possibledetectar, a partir d’un graf navegacional d’alt nivell, en quins puntscaldrà actuar per introduir els mecanismes d’accés.

La Secció 6.2.2 presenta els diferents tipus de mecanismes d’ac-cés que incorpora el model navegacional OOWS, tenint en compte elsmecanismes d’accés que existeixen dins la literatura de l’EnginyeriaWeb . En la Secció 6.2.3 es presenta quin comportament segueixenaquests mecanismes per tal d’acomplir amb els requeriments abansesmentats i quines propietats hi aparèixen per tal d’aconseguir-ho.En la Secció ?? es s’estudia quan i sota quines circumstàncies esnecessari definir algun tipus de mecanisme d’accés. Es descriu unalgorisme que permet definir en quins contextes navegacionals caldefinir aquests mecanismes .

Finalment, les Seccions ?? i ?? presenten amb detall les peculia-ritats dels dos mecanismes d’accés que incorpora el mètode OOWS.

6.2.2 Tipus de Mecanismes d’Accés

En la nostra proposta hi ha dos mecanismes principals: indexos ifiltres. Aquestes propietats són especificades a la part inferior decada UAI, sota una línea discontínua.

Com s’ha comentat abans, un mecanisme d’accés ha de facilitarla cerca d’informació específica dins de grans quantitats d’informa-ció. Tradicionalment s’han vingut emprant tres tipus de mecanis-mes d’accés: els índex, els filtres i les visites guiades.

Page 145: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

6.2. Mecanismes d’Accés a la Informació 127

Un índex és una estructura que proporciona un accés “indexat”a la població sobre la que es defineix. Els índexos creen una llistad’informació resumida, atenent a una propietat o un conjunt depropietats (atributs). Si la propietat d’indexació pertany a la classedirectora de la UAI, l’índex s’anomena índex d’atribut. Si la propi-etat pertany a qualsevol classe complementaria, l’índex s’anomenaíndex de relació i caldrà especificar la relació navegacional sobrela que es defineix.

Dit d’una altra manera, un índex crea una classe d’equivalènciad’una “població” de dades2. L’objectiu és crear classes d’equivalènciade cardinalitat molt menor que la cardinalitat de la població global.. . El conjunt de les classes d’equivalència és el que constitueixl’índex. Al seleccionar una de les classes d’equivalència, s’obtindràcom a resultat la “població” d’aqueixa classe.

Quan un índex s’activa, es crea una llista amb tots els possiblesvalors per a la/les propietat/s indexada/es. Si se’n selecciona algund’aquestos valors, es recuperaran totes les instàncies de la classedirectora que tinguen aquest valor i es veurà el resultat és unavista de resultats. Aquesta vista de resultats descriu la informacióque se li proporcionarà a l’usuari per tal que puga triar quina/esinstància/es li són del seu interés. Allò que trie s’activarà per arecuperar segons especifique la UAI.

Amb açò permetem reduir la quantitat d’informació que es recu-pera atenent a una propietat concreta. A més més, no se li demana al’usuari que introduïsca el valor de la propietat que està buscant. Elsistema li proporciona totes les possibilitats diferents que existeixen(cada una representada per una classe d’equivalència).

Per exemple, suposem que volem buscar un llibre entre tot elcatàleg (extens) de llibres. Podríem definir un índex de llibres per

2anomenem població al conjunt de les dades que s’han de visualitzar emprantuna propietat per definir-se

Page 146: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

128 CAPÍTOL 6. CONCEPTES AVANÇATS

la propietat “any-de-publicació”. Aquesta propietat és susceptiblede ser definida com propietat d’indexació ja que es crearien tantesclasses d’equivalència com anys hi hagen catalogats al sistema.Així, cada any constituiria un mecanisme d’accés a tots els llibrespublicats en aqueix any seleccionat. D’altra banda, el títol d’unllibre no seria bona propietat d’indexació, ja que es crearia un indexformat per tantes classes d’equivalència com llibres diferents hihagen al sistema: no facilita l’accés.

Un filtre és un mecanisme que permet restringir la poblacióa recuperar en funció d’alguna propietat o condició de filtrat. Ésl’usuari qui estableix el valor o rang de valors que està buscant.

En aquest cas, sobre la propietat de filtrat no cal establir caprestricció o recomanació sobre la cardinalitat de la població queprodueix i queda en funció de l’usuari el grau d’exactitud en larecerca per filtrar allò que pretén trobar.

Per exemple, continuant amb l’exemple anterior sobre la bús-queda d’un llibre, podríem establir que volem definir un filtre perla propietat any, de tipus rang. Aquest filtre, com veurem mésendavant, permet establir un valor mínim i màxim de búsqueda.Açò provoca que el sistema li demane a l’usuari aquests dos valorsabans de recuperar cap llibre. Una vegada establerts aquests dosmarges, el sistema sols recuperarà aquells que estiguen publicatsentre les dues dates proporcionades.

Una visita guiada és un mecanisme d’accés que permet definirun “tour” per una colecció de dades. En el seu ús actual més extés,aquest mecanisme permet establir, en etapes de modelatge concep-tual, una seqüència predefinida d’objectes que seran explorats. Ésmolt corrent, doncs, que siga emprat en sistemes en els quals esconeixen les instàncies dels objectes que poblaran el sistema.

L’exemple aclaratori més habitual és dona en sistemes hiperme-

Page 147: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

6.2. Mecanismes d’Accés a la Informació 129

dials per a Museus. La definició de Visites guiades permet establiruna ordenació “navegacional” de les obres que aniran sent explora-des.

Però, aquest caràcter de treballar amb instàncies fa molt depe-nent l’especificació de les poblacions que existiran en temps d’exe-cució. Encara que aquest fenòmen ha estat discutit i tractat durantllarg temps , en la nostra aproximació no es permet la introducciód’aquests objectes-instància a nivell de modelatge conceptual.

Des del punt de vista de l’aproximació OOWS, el que ens interes-sa es poder definir una altra classe de visites guiades en les quals noes defineix a priori (en etapa de modelatge conceptual) el camí perexplorar les instàncies. Una visita guiada es podria definir com uncamí entre una població atenent a una ordenació per una propietat.Per exemple, una exploració de les obres pictòriques d’un gènereordenades ascendentment per l’any de creació. Aquest tipus derequeriments es defineixen al model de Presentació (veure Capítol 7)amb les propietats de paginació d’informació i criteri d’ordenació dedades.

6.2.3 Comportament

En funció de quina navegació seguim pel mapa navegacional, podriadonar-se el cas que l’accés a un contexte navegacional provoque quela població de la vista a mostrar siga elevada.

Pensem en el següent cas real extret del portal web d’Amazon.com.Quan un internauta selecciona un enllaç d’exploració per buscarllibres (veure Figura 6.3 a la pàgina següent, el sistema web deuriaproporcionar a l’usuari la informació de tots els llibres que hi hacatalogats a les bases de dades d’Amazon.com. Però, com queaquesta població és massa gran, el sistema respon proporcionant-li a l’usuari diferents mitjos per facilitar l’accés a aquells llibres que

Page 148: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

130 CAPÍTOL 6. CONCEPTES AVANÇATS

Figura 6.3 – Selecció de l’enllaç d’exploració quepermet accedir al catàleg de llibres en Ama-

zon.com

puguen interessar-li.La pàgina web de la Figura 6.4 a la pàgina següent apareix per

acomplir aquest objectiu. En aquesta pàgina es poden observar elsdiferents mecanismes que el sistema li proporciona a l’usuari perbuscar els llibres. D’una banda tenim l’índex per temàtica (veurezona 1 de la figura) i d’altra banda tenim el filtre de llibres perpropietats, com ara el títol, autor, etc. (veure zona 2 de la figura).

Com es pot observar en la Figura 6.4 a la pàgina següent, elsistema li proporciona a l’usuari una pàgina en la que realitzar labúsqueda.

Page 149: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

6.3. Gestió Avançada de Continguts 131

Figura 6.4 – Pàgina de Búsqueda de Llibres em-prant MAIs

6.3 Gestió Avançada de Continguts

En l’actualitat, els llocs web s’han convertit en integradors d’in-formació heterogènea, orientats a proveir funcionalitat de diferentíndole. Des d’un punt de vista de Desenvolupament per Models,les aplicacions web necessiten mecanismes conceptuals que facilitendescriure, gestionar i reutilitzar les dades i els serveis per tal detractar amb aquesta “agregació de continguts” a un nivell d’abs-tracció major.

Com a resultat d’aquest requeriment, s’ha introduït una unaextensió a la tècnica de modelatge conceptual de manera que s’harefinat el concepte inicial de contexte navegacional per introduir

Page 150: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

132 CAPÍTOL 6. CONCEPTES AVANÇATS

el concepte de contenidor de contingut (Unitat d’Abstració d’Infor-mació, UAI) i que un contexte és un agregador de contenidors decontingut. Les UAI, d’altra banda, seran emprades coma a potentsabstraccions encaminades a proveir de mecanismes de reutilitzacióque produeixen considerables beneficis al facilitar l’especificació delscontextes navegacionals.

6.3.1 Estudi inicial. Motivació

Els llocs web estan consolidant el seu rol en Internet. Llocs comara Yahoo (www.yahoo.com), MSN (www.msn.com), Lycos (www.lycos.com) or Terra (www.terra.es) són els portals web més visi-tats . Les principals característiques d’aquestos llocs consisteix enque proporcionen als usuaris de diferents continguts d’informació(blogs, notícies, foros, . . . ) i serveis (correu electrònic, emmagat-zemament on-line, missatgeria, . . . ). La mostra la pàgina inicialdel lloc de Terra. Aquesta pàgina proporciona informació de: (1) lesúltimes notícies del moment, (2) una llista de les novetats del dia, (3)una llista de productes en venta, (4) informació sobre activitats d’ocii (5) publicitat. Aquesta pàgina ha sigut construida a partir de l’a-gregació de diferents continguts o blocs. En el cas de Terra, aquestoscinc blocs composen el lloc web. Tanmateix, aquestos continguts noestan “semànticament” relacionats. És a dir, el continguts no estandirectament relacionats al model conceptual subjacent.

Des d’un punt de vista metodològic, les aproximacions més relle-vants en el marc de l’Enginyeria Web enfoquen els seus esforços endefinir aplicacions web a partir de models conceptuals que permetenobtenir les aplicacions web a partir dels models.

Aquestes aproximacions proporcionen mecanismes que facilitenconceptualitzar i desenvolupar les aplicacions web permetent a l’a-nalista definir els requeriments hipermedial i funcioanls. Els me-

Page 151: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

6.3. Gestió Avançada de Continguts 133

canismes pel modelatge hipermedial permeten: (1) definir les pà-gines web com vistes en un esquema conceptual i (2) interconectaraquestes vistes per definir l’estructura navegacional de l’aplicacióweb. Tanmateix, considerant una pàgina web únicament com unavista sobre l’esquema conceptual, dificulta l’especificació d’aquestaagregació de continguts, on les pàgines web són construides com lacomposició de diferents vistes de l’esquema conceptual .

D’aquesta manera, encara que algunes de les aproximacionsmencionades anteriorment proporcionen suport en les fases de dis-seny dissenyar i/o implementació, ninguna proveeix explícitamentde suport per especificar aquest tipus de requeriment.

La proposta que es seguirà, com s’ha comentat abans, és refinarel concepte de contexte navegacional i definir contenidor de contin-gut (que puguen contenir tant informació con funcionalitat), a mésde definir mecanismes per la reutilització d’aquestos contenidors enla fase d’especificació navegacional del sistema. Tot açò sempre aalt nivell d’abstracció i tenint en compte que serà emprat en unaestratègia de desenvolupament dirigit per models.

6.3.2 Treballs Relacionats

Aquesta secció presenta l’estat de l’art de les aproximacions mésrellevants enfocant-se en el concepte d’agregació de continguts enl’especificació.

Algunes aproximacions, com ara OOHDM, UWE i WSDM defi-neixen una pàgina web agafant una vista específica de l’esquemaconceptual com base. Aquesta vista descriu la informació que deuaparèixer en la pàgina web, proporcionant un gran nivell de cohesióperquè la vista es construeix a partir de les classes (o entitats) iles seues classes (o relacions) relacionades. Seguint aquesta apro-ximació, una pàgina web amb agregació de continguts no es pot

Page 152: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

134 CAPÍTOL 6. CONCEPTES AVANÇATS

definir, ja que la informació proporcionada per les pàgines d’aquesttipus no ha d’estar necessàriament relacionada a nivell concdeptual(per exemple, els continguts notícies, productes, oci de la . A mésa més, l’agregació de continguts implica la definició de pàgines queagreguen múltiples vistes de l’esquema conceptual, cosa que tampocn’és possible.

Altres aproximacions, com ara OOH, defineixen les pàgines webconsistents en una vista, però sense la restrcció que tota la infor-mació estiga relacionada a nivell d’esquema conceptual. Seguintaquesta aproximació, és possible recuperar informació diversa enfunció de les diferents parts (continguts) d’una pàgina web (veureels continguts notícies, productes, oci en el lloc web de Terra). Tan-mateix, adoleix de mecanismes per reutilitzar les peces d’aquestesmúltiples vistes. Aquest mecanisme es considera ventajós i per tantcaldrà tindre’l en compte a l’hora de definir la proposta.

Finalment, les aproximacions de l’estil de WebML treballen aun nivell d’abstracció molt aprop de l’espai de la solució. Les UAIssón abstraccions conceptuals definides en termes de pàgines web(marcs ó “frames” HTML). WebML permet la definició de l’agregacióde continguts doncs a un nivell d’abstracció molt proper al de la tec-nologia d’implementació. D’aquesta manera es fa difícil la separacióentre l’especificació (modelatge) d’aplicacions web i la seua imple-mentació. D’altra banda, tampoc es proporcionen mecanismes per lareutilització de descripcions de continguts. Per tant, els contingutsque puguen ser repetitius en diverses pàgines han d’especificar-sede nou en cada pàgina/node en el que apareguen.

6.3.3 Unitats d’Abstracció de Informació, UAIs

Per tal de soportar l’agregació de continguts, els contextes navega-cionals han de considerar-se com els punts d’interacció amb l’usuari

Page 153: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

6.3. Gestió Avançada de Continguts 135

que han de proporcionar accés a diferents unitats d’abstracció decontiguts (UAI). Una UAI, estereotipada amb la paraula reservada�UAI�, representa una vista específica dins el diagrama de classes.Cada UAI es composa de classes navegacionals, totes relacionadesentre sí per alguna relació navegacional3. Cada classe navegacionalrepresenta una projecció sobre una classe del diagrama de classesi cada relació navegacional implica una recuperació d’aquelles ins-tàncies de la classe destí relacionades amb la classe orige.

. Aquest contexte està definit emprant cinc UAIs: “Top News”(Notícies Recents), “News” (Notícies), “Products” (Productes), “Lei-sure and Advertising” (Publicitat i Esbarjo). Aquesta figura tambémostra la definició de la UAI “News” (que proporciona les notíciesdel dia), i de la UAI “Products” (que proporciona informació sobreels últims productes en llançament).

Cada UAI ha de tenir obligatòriament una classe navegacionaldirectora, desde la que es començarà la recuperació d’informació.A més a més, podrà tenir altres classes navegacionals complemen-tàries, per tal de proporcionar informació relacionada. Aquestesclasses navegacionals podran contenir atributs, operacions i filtresde població, segons la .

En la es pot observar que la UAI “News” té com a classe directoraNews i la classe complementària Author. A més a més, la classeNews té definit un filtre de població self.Date=today() per indicarque sols es recuperen les notícies d’avuí. La UAI “Products” éssemblant a l’anterior, amb la classe directora Product, sense classescomplementàries i amb el filtre de població self.latestRelease=Trueper indicar que sols es recuperen aquelles notícies marcades com ad’última hora

3Aquest requeriment implica que sols puga mostrar-se informació relacionadadins una UAI

Page 154: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

136 CAPÍTOL 6. CONCEPTES AVANÇATS

6.3.4 Tipus d’UAIs

Es necessari distinguir entre UAIs que donen suport a la navegaciócontextual de la que no. La navegació contextual és aquella nave-gació en la que duu informació dels objectes seleccionats desde elcontexte orige 4) al contexte destí. Aquesta informació contextualdeu ser capturada per alguna UAI per tal de mostrar els detallsdels objectes seleccionats. D’aquesta maneram, podem distingir dostipus d’UAIs:

UAIs Contextuals (representades pel símbol C©) son UAIs que ins-tàncien la classe directora amb el/s objecte/s rebuts a través dela navegació contextual. Ha d’haver almenys una UAI contex-tual en: (1) contextes de seqüència i (2) en contextes d’explora-ció que siguen destí d’alguna relació de contexte (apareixen al’atribut de contexte d’aquesta relació navegacional).

UAIs No Contextuals (representades pel símbol NC©) són UAIs queno depenen de la informació contextual que puga arribar. Pro-porcionen sempre la població completa de la classe directora.Aquestes UAIs poden definir-se en qualsevol contexte navega-cional, sense restriccions.

El contexte Product Description està compost per una UAI con-textual “Product” i una UAI no contextual Products on Sale (Pro-ductes en Venda). Quan un usuari selecciona un producte del con-texte Home , el usuari navega ) al contexte navegacional ProductDescription duent com a informació contextual el producte seleccio-nat. Aquest producte serà instanciat en la UAI contextual Productmostrant els seus atributs image, nom, preu i descripció, i les seuesCaracterístiques (“Characteristics”) relacionades (veure la definició

4Lligada a relacions de navegació de contexte

Page 155: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

6.3. Gestió Avançada de Continguts 137

de la UAI Producte ). Els produces en venda es mostren indepen-dentment del producte que s’haja seleccionat (ja que la UAI Productson Sale és del tipus no contextual).

6.3.5 Reutilització d’UAIs

Una de les tasques de la descripció d’una aplicació web, segonshem vist, és la de descriure els continguts dels nodes navegacio-nals. Aquesta tasca està molt a prop de la disciplina de la gestiódocumental .

És molt habitual que en una aplicació web, diferents nodes dinsel graf navegacional, compartisquen part dels seus continguts. Al-guns exemples d’açò poden ser

Per tal de facilitar la seua descripció i reutilització, es proposaconstruir un catàleg de continguts, de manera que, l’analista:

• empre el contingut d’aquest catàleg per crear nous nodes na-vegacioanls

• definisca nous contingtus

• especialitze continguts existents creant nous continguts

El Catàleg de ContingutsEl primer que cal decidir són els components que definiran el

catàleg. Tres són les primitives que descriuen continguts i quepodrien formar-ne part: (1) el contexte navegacional, (2) l’unitatd’abstracció d’informació i (3) la classe navegacional.

Ens interessa que siga d’una granularitat grossa (tamany), peròa la vegada que siga allò suficient menuda/modular per augmentarl’impacte en el reús (el número de vegades que és reutilitzat).

El contexte navegacional té una granularitat grossa, però comque defineix un agregat de continguts, la seua modularitat és pobra.

Page 156: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

138 CAPÍTOL 6. CONCEPTES AVANÇATS

Una UAI té una granularitat mitja, i com que defineix un contin-gut relacionat, la seua modularitat és elevada.

Per últim, una classe navegacional té una granularitat moltbaixa i la seua modularitat és extremadament alta.

Per tant, s’emprarà la UAI com a component base del catàleg, pelseu compromís entre granularitat i impacte en el reús.

Especialització de Continguts ExistentsQuan l’analista necessite especificar un contingut semblant a

un altre que ja existisca en el catàleg, podrà extendre’l emprant elsegüent mecanisme d’especialització: una UAI especialitzada heretala definició de la UAI del seu pare, i es podrà refinar per definir lainformació, funcionalitat i enllaços navegacionals necessàries em-prant alguna de les següents operacions de l’especialització:

• Afegir/Eliminar informació (atributs navegacionals)

• Afegir/Eliminar accés a funcionalitat (operacions navegacio-nals)

• Afegir/Eliminar classes navegacionals complementàries (i laseua relació navegacional associada)

• Canviar el tipus d’una relació navegacional

• Afegir/Eliminar/Redefinir filtres de població a les classes nave-gacionals

L’especialització d’UAIs es realitza per mig d’un operador is_aque acompleix açò descrit. La mostra la definició de la UAI TopNews. Aquesta UAI ha sigut especialitzada de la UAI News (mirarla part superior de la figura). En aquest cas, la UAI pare (News) hasigut refinada afegint un atribut nou (Image) i redefinint el seu filtrede població (per tal de recuperar sols les notícies d’última hora).

Page 157: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

6.4. Personalització d’Aplicacions Web 139

6.4 Personalització d’Aplicacions Web

La demanda per aplicacions web que tenen en compte les diferentsnecessitats i inquietuts dels usuaris ha anat creixent aquestos dar-rers anys. La personalització involucra un ample rang de tecnolo-gies, aproximacions, eines, etc. per millorar l’experiència d’usuari.Aquesta secció descriu l’ús de tècniques de modelatge conceptual enel desenvolupament de programari per al disseny d’aplicacions webpersonalitzades.

6.4.1 Introducció

Amb la consolidació de la “World Wide Web ” (WWW) com a platafor-ma de desenvolupament. Aquesta es caracteritza per la necessitatde suportar ràpids canvis tecnològics i per la de definir aplicaci-ons personalitzades i adaptades per a uns requeriments específicsd’usuaris. L’Adaptació és el mecanisme per definir les regles quepermeten a les aplicacions (web) donar un suport adequat als perfilsd’usuari, històrics de navegació, , conexions de xarxa, . . . . Lesapplicacions de comerç electrònic són exemples representatius desistemes on l’adaptació a nous entorns i requeriments és un factorcrític. En aquest contexte, els entorns de producció automàtic deprogramari poden suposar un avanç significatiu per accelerar el pro-cés de desenvolupament i augmentar les capacitats de reusabilitat.Tot açò va unit al fet que cada dia és més habitual i necessari feradaptacions dinàmiques les aplicacions atenent a les preferènciesdels usuaris.

Avuí en dia, les aproximacions que tracten d’alguna manera lapersonalització varien significativament [2] : des d’estratègies quesimplement generen pàgines fins sistemes complexes de prediccióbasats en contigunt, patrons de reconeixements de comportament

Page 158: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

140 CAPÍTOL 6. CONCEPTES AVANÇATS

d’usuaris, algorismes d’aprenentatge i mineria de dades. Moltes d’a-questes aproximacions consideren la personalització des d’un puntde vista d’implmentació. D’acord amb [54] , les tècniques actuals perrecollir la informació de l’usuari són la de l’extracció explícita de per-fils d’usuari, l’inferència implícita de perfils d’usuari i dades legades.Les tècniques més emprades per analitzar aquesta informació estanbasades en regles de filtrat.

Tanmateix, nosaltres considerem l’ús de tècniques de modelatgeconceptual per a un correcte tractament de la inherent complexitatde les aplicacions web. En [58] i [63], els aspectes d’adaptació enaplicacions web són discutits enfocant la necessitat de mètodes demodelatge per desenvolupar aplicacions web adaptables. El mètodeWSDM [33] és un mètode dirigit per l’audiència que defineix elsobjectes d’informació tenint en compte els requeriments d’informa-ció dels usuaris finals com punt clau i central per desenvolupar lesaplicacions web. En [101] els autors defineixen diferents escenarisd’acord a perfils d’usuari o preferencies. En [13] es proposa un llen-guatge per dissenyar aplicacions web, tenint en compte un modelde personalització on els usuaris i grups poden ser explícitamentespecificats en l’estructura conceptual del sistema d’informació.

La proposta que presenta aquesta tesis proporciona una contri-bució en aquest contexte dirigint l’esforç en proporcionar a nivellde modelatge conceptual conceptes que permeten representar re-queriments de personalització. En aquesta línia, s’ha obert un ca-mí principal d’enriquiment dels models navegacionals [90, 85], queposteriorment ha sigut extés en per dotar de major expressivitat enl’adaptativitat dels sistemes.

Page 159: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

6.4. Personalització d’Aplicacions Web 141

6.4.2 Disseny d’Aplicacions Web Personalitzades

En la fase de modelatge conceptual de les aplicacions web [58, 101],l’adaptació pot dur-se a tres nivells:

• el nivell de contingut d’informació, que defineix quina informa-ció està disponible per un usuari concret

• el nivell de presentació, que defineix la manera en què aquestainforamció es proporciona

• el nivell d’estructura de navegació, que defineix la manera enque s’organitza l’accessibilitat pel sistema

L’adaptativitat per a cadascun d’aquestos nivells pot ser vistade des de dos punts de vista diferents: estàtic i dinàmic. L’adapta-tivitat estàtica es defineix per complet a nivell d’anàlisi (disseny).L’adaptació dinàmica depèn de condicions en temps d’execució.

A nivell de granularitat, es poden considerar dos nivells a l’horad’aplicar adaptativitat : polítiques de personalització sobre grupsd’usuari o sobre usuaris individuals.

D’altra banda, l’adaptativitat pot tenir en compte l’entorn, can-viant o adpatant el sistema depenent dels recuros destí (dispositiu,localització, conexió de xarxa, etc.).

Amb aquestos conceptes, hi ha una terminologia acceptada enla comunitat de la Hipermèdia Adaptativa () que defineix diferentstipus de sistemes:

• Adaptatius. Sistemes que deprenen en base a unes reglesd’adaptativitat, per tal d’adaptar-se dinàmicament a les condi-cions d’ús del sistema.

• Adaptables. Sistemes que solen emprar un framework d’a-daptació preparat per “recodificar o introduir” més requeri-ments d’adaptativitat.

Page 160: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

142 CAPÍTOL 6. CONCEPTES AVANÇATS

• Adaptats. Sistemes que en la seua construcció han tinguten compte regles d’adaptativitat i aquestes han sigut imple-mentades per donar suport a l’especificació. No obstant, elsistema no està preparat per “recodificar o introduir” nousrequeriments d’adaptativitat en temps d’execució.

• No Adaptades. Sistemes en els que no s’ha tingut en compteen cap moment requeriments d’adaptativitat.

Un escenari concret d’adaptativitat i amb un especial interésés l’adaptativitat a l’usuari, que sol anomenar-se personalització.D’aquesta manera, i segons la classificació anterior, hi haurà apli-cacions “personalitzatives”, personalitzables, personalitzades i nopersonalitzades.

Atenent a aquesta classificació, les primitives d’abstracció d’O-OWS permeten únicament la personalització estàtica als nivells decontingut, presentació i navegació. Respecte a la personalitzaciódinàmica, sols permet als nivells de contingut i navegació. Tambédona suport tant a la granularitat de grup com a la individual. Lessegüents seccions tractaran de justificar com es dona suport tant ala personalització estàtica com dinàmica.

6.4.3 Personalització Estàtica en OOWS

La personalització estàtica del nivell de navegació s’obté enllaçantun mapa navegacional amb un tipus d’usuari, predefinint la seuaestructura de navegació en temps d’anàlisi. Amb els contextes na-vegacionals per a cada usauri podem personalitzar el contingut mit-jançant les classes navegacionals (atributs i operacions), relacionsnavegacionals i filtres de població. Els patrons de presentació espe-cificats per als contextes navegacionals defineixen la personalitzacióestàtica a nivell de presentació.

Page 161: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

6.4. Personalització d’Aplicacions Web 143

La personalització definida a la granularitat de grup s’aconse-gueix pel fet que cada mapa navegacional està associat a un tipusd’usuari. D’aquesta manera, els usuaris que pertanyen a aquesttipus comparteixen les mateixes propietats. Tanmateix, no es potdefinir personalització individual estàtica, ja que açò “força” a conèi-xer les instàncies d’usuaris que hi haurà al sistema, quan encaraestem en fase de modelatge.

6.4.4 Personalització Dinàmica en OOWS

La personalització dinàmica permet la definició de regles i condici-ons a nivell conceptual que deuen ser avaluades en temps d’execuciódepenent del usuari que estiga interactuant amb el sistema.

El mètode OOWS proveeix de la primitiva Usuari Actiu perdescriure la personalització dinàmica a nivell de contingut. Aquestapersonalització dinàmica s’aconsegueix emprant el concepte usuariactiu per definir de filtres de població associat a les classes navega-cionals, condicionant la recuperació d’informació en funció del valord’alguna de les propietats de l’usuari actiu.

La personalització dinàmica a nivell de navegació implica la pos-sibilitat de redefinir el mapa navegacional en temps d’execució. Lesimplicacions d’aquest nivell de personalització són considerables ipoc habituals. Sols s’ha considerat treballar en aquesta línia en lapossibilitat que l’aplicació web puga adequar les opcions de nave-gació (creant subconjunts o ordenant els enllaços) atenent al mapanavegacional predefinit. En s’estudien polítiques de personalitzaciódinàmica a la navegació aplicades a aquest mètode.

Page 162: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

144 CAPÍTOL 6. CONCEPTES AVANÇATS

6.5 Herència de Propietats Navegacionals

Avuí en dia, les aplicacions web han evolucionat en sistemes méscomplexes, tenint un alcanç a gran nombre d’usuaris. Si consideremla navegació com una part emergent de les característiques de lesaplicacions web, és necessari tractar d’una manera adequada la ma-nera en que es proporcionen els mecanismes que permeten reutilit-zar les especificacions navegacionals. A continuació es presenta unmecanisme per capturar adequadament la semàntica navegacionalper poder emprar l’especialització navegacional com a eina perextendre i reutilitzar les característiques i requeriments navegacio-nals.

La web s’ha convertit en l’interfície més emprada per compartirdades en la Xarxa. Actualment, es pot considerar com la plata-forma estàndar per a un ample rang d’aplicacions. A més a més,cada vegada més companyies senten la necessitat de poder adaptari personalitzar els seus continguts atenent a les preferències delsusuaris cita Amazon. Apareix la necessitat de donar un correctesuport per al tractament dels potencials usuaris del sistema. Aques-tos fets impliquen un increment en la complexitat dels sistemes i laincorporació de requeriments de sistema directament expressats enforma d’objectius d’usuaris.

Des d’un punt de vista de Modelatge Conceptual, s’han deproveir mecanismes per estructurar l’accessibilitat dels usua-ri al sistema i poder descrirue com aquestos tenen accés a lainformació i la funcionalitat. Els mètodes actuals citaSchwa-be95,Pastor01b,Bonifati00,DeTroyer97,Garzotto93,Atzeni98 ho fand’una manera o una altra. Tots aquestos fan especial menció alsrequeriments de navegació i presentació.

El tractament de la navegació s’aconsegueix introduint un model

Page 163: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

6.5. Herència de Propietats Navegacionals 145

navegacional. Aquest model navegacional sol definir-se mitjançantgrafs (nodes i enllaços) relacionant-los completa o parcialment ambels usuaris. D’aquesta manera es pot representar d’una manerasenzilla la vista d’un usuari, com el conjunt de nodes i enllaços quepot explorar.

La intenció es proporcionar expressivitat per millorar la reuti-lització, introduint el concepte d’especialització navegacional enModels Conceptuals, adaptant el concepte convencional d’especiali-tació, aplicant-lo als entorns de modelatge d’aplicacions web i estu-diant el seu impacte a l’aplicar-lo a la especialització entre usuaris.

6.5.1 Problemàtica

El model navegacional d’un mètode de producció d’aplicacions webserveix per representar els requeriments navegacionals [104, 11].Aquest model descriu els camins d’un usuari per aconseguir el seuobjectiu en el sistema: acceder a la informació i la funcionalitat a laque l’usuari ha de necessàriament tenir accés. És per tant, aquestaassociació entre accessibilitat a la informació i funcionalitat la queha de guiar la construcció d’aquestos models navegacianals.

Des d’aquest punt de vista, existeixen bàsicmanet dos aproxima-cions per construir els models navegacionals:

1. Moltes aproximacions consideren únicament un únic graf na-vegacional on s’exposen els requeriments d’accés a la infor-mació i funcioanlitat de manera global. Després, els usuarissón enllaçats/relacionats amb aquestos nodes (i enllaços), re-presentant l’accessibilitat concreta a la informació i funciona-litat per a cada tipus d’usuari.

2. Altres aproximacions fan un estudi previ dels tipus d’usuarii quina hauria de ser la seua accessibilitat concreta a la in-

Page 164: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

146 CAPÍTOL 6. CONCEPTES AVANÇATS

formació i funcionalitat. Després, el model de navegació escrea a partir d’aquest estudi, normalment associant un grafnavegacional independent per a cada usuari.

La reutilització de peces del model navegacional apareix quandiferents usuaris comparteixen accés a la mateixa informació i fun-cionalitat. Però, no hi ha una solució trivial. Si veiem els principalsavantatges i inconvenients de cada grup d’aproximacions:

1. En les aproximacions on s’empra un únic graf navegacional,l’acessibilitat d’un usuari s’obté a partir de les relacions devisibilitat definides sobre els nodes i els enllaços. En aquestesaproximacions, un node pot tenir varios usuaris associats, per-tement que tots tinguen accés al mateix contingut. D’algunamanera, s’està reutilitzant aquest contingut per a tots els usu-aris. Tanmateix, no es fàcil representar la compartició parciald’un (implica etiquetar parcialment el contingut) per diferentsusuaris. En aquest cas, el node ha de ser dividit en diferentsnodes: un amb les parts comunes i compartides per tots elsusuaris i altres amb les parts específiques per a cada usuari.És per açò que el graf navegacional descrit no és totalmentindependent de l’usuari i la seua accessibilitat a la informació ifuncionalitat. Aquest fet dificulta el “manteniment” d’un node,ja que els canvis afecten a més d’un tipus d’usuari. A més amés, aquest tipus d’aproximacions no poden tenir en compted’una manera sencilla aspectes de personalització, ja que elsnodes navegacionals no estan concebuts per a un tipus únicd’usuari. Segons s’ha discutit a la Secció 6.4, la personalitzacióés l’adaptació al tipus d’usuari.

2. Al segon grup d’aproximacions, es construeix un graf nave-gacional per a cada usuari del sistema. Aquest procés de

Page 165: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

6.5. Herència de Propietats Navegacionals 147

construcció és guiat pels requeriments d’accessibilitat de ca-da tipus d’usuari a un conjunt d’informació i funcionalitat.Aquestes aproximacions permeten abstraure la definició de lescaracterístiques navegacionals per a cada usuari, de maneraindependent als altres. Quan apareix una modificació en els re-queriments d’accés d’algun dels usuaris, els canvis al seu MapaNavegacional només l’afectaran a ell. D’altra banda, quan usu-aris diferents comparteixen accés a informació i funcionalitat,aquestes aproximacions forcen a la definició de nodes repetitsen diferents grafs (un en cada mapa navegacional de cada usu-ari). D’aquesta manera, s’introdueix redundància al models.Malgrat açò, aquesta aproximació afavoreix la personalitzaciója que cada graf pertany a un tipus d’usuari concret i sobreaquest es poden aplicar de manera controlada les polítiques depersonalització.

Es per tot açò que s’ha triat la segona de les aproximacions perabordar el procés de definició navegacional i sobre la que es definiràel concepte d’herència navegacional, aplicant-ho al model navegaci-onal definit pel mètode d’OOWS. D’aquesta manera s’aconsegueixl’objectiu de poder especificar els requeriments d’una manera abs-tracta per a cada tipus d’usuari, i després definir relacions entreusuaris per reutilitzar aquelles parts comunes entre usuaris.

6.5.2 Herència en Models Navegacionals

Des d’un punt de vista convencional, l’herència de classes en unDiagrama de Classes és un mecanisme per compartir propietats icomportament entre classes, establint un mecanisme clar per a lareutilització d’especificacions. En OO-Method, aquestes propietatsheretades són: atributs, operacions, relacions entre classes, restric-cions d’integritat, etc. Però també ho són altres relacionades amb el

Page 166: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

148 CAPÍTOL 6. CONCEPTES AVANÇATS

comportament, com ara les seqüències de vida vàlides dels objectesdefinides al model dinàmic, o els canvis d’estat produïts per les ope-racions definides al model funcional. Tradicionalment, els operadorsd’especialització es-un s’han definit doncs a nivell estructural i decomportament dels objectes.

En aquest punt, ens podem plantejar qué passaria si aplicaremaquest mateix concepte a classes que representen els usuaris delsistema. Des d’un punt de vista tradicional, allò que aconseguiri-em és que compartiren estructures d’informació i comportament,però res més. Ara bé, si extenem les propietats d’els usuaris i elspodem associar mapes navegacionals (com s’ha vist al Capítol 4),podriem considerar que aquestes propietats també s’hereten. És adir, si definim una relació d’herència es-un entre usuaris, l’usuariespecialitzat hereta l’accés a l’estructura navegacional de l’usuaripare, tenint accés als nodes i enllaços definits al mapa del pare.A aquest concepte l’anomenarem d’ara endavant especialitzaciónavegacional.

Però, com es podria aplicar aquesta especialització navegacionalatenent a l’aproximació de descripció navegacional que emprem?

• En les aproximacions que descriuen un únic graf navegacioanl,seria suficient en associar tots els nodes als que el pare téaccés a l’usuari especialitzat. Açò conduiria a la mateixaaccessibilitat per a l’usuari especialitzat.

• En les aproximacions que descriuen un graf per a cada usauridel sistema, es podria considerar aquest graf com una propie-tat adicional (emergent) de l’usuari. D’aquesta manera, quanun usuari s’especialitza d’un altre usuari, aquest graf tambés’hereta, permetent a l’usuari especialitzat accedir i navegarels mateixos continguts que l’usuari pare.

Page 167: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

6.5. Herència de Propietats Navegacionals 149

Com es pot observar, aquesta definició d’especialització navegaci-onal pot ser emprat com una eina per estructurar i reutilitzar l’espainavegacional definits pels usuaris de les aplicacions web. Defineixun mecanisme d’herència addicional, que s’aplicarà només a classesque representen usuaris, i que, de la mateixa manera que esdevéamb l’herència estructural i de comportament, permetrà:

• l’herència

• la redefinició

• la cancel·lació

• l’addició

de propietats navegacionals als grafs navegacionals dels usuarisespecialitzats.

L’herència permet obtenir les mateixes propietats navegacionalsde l’usuari base (compatibilitat navegacional). És el compor-tament per defecte al definir una relació es-un entre usuaris. Laredefinició permet modificar alguna propietat navegacional, defi-nint una estructura navegacional més concreta per a l’usuari espe-cialitzat. La cancel·lació anul·la l’herència d’alguna/es propitat/snavegacional concreta. Per últim, l’addició permet especificar méspropietats navegacionals que sols són accessibles per a l’usuari es-pecialitzat.

Finalment, si tenim en compte aquestos requeriments que hade complir aquesta especialització navegacional, pareix clar que ésmés interessant aplicar-ho a aproximacions en les que existeix ungraf navegacional per a cada usuari. D’aquesta manera, les mo-dificacions d’aquestos grafs per l’aplicació de qualsevol d’aquestesoperacions de l’especialització navegacional estan més controlades i

Page 168: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

150 CAPÍTOL 6. CONCEPTES AVANÇATS

permeten un manteniment més clar i precís que l’altre grup d’apro-ximacions.

En la següent secció es veurà com s’apliquen aquestos conceptesal mètode OOWS.

6.5.3 Especialització Navegacional en OOWS

OOWS defineix la navegació emprant l’aproximació “un graf percada usuari”. A més a més, permet especialitzar els usuaris, con-siderant així l’herència de l’accés a la informació i la funcionalitat.Per tal d’explicar amb precisió les capacitats expressives d’aquestmecanisme d’especialització navegacional, s’empra la taxonomia derelacions d’herència definida en [93]:

• Interpretació Semàntica: significat de les abstraccions

– Especialització. La interpretació del mecanisme d’he-rència proposat defineix que: “un mapa navegacional potser especialitzat en un altre, de manera que el mapa espe-cialitzat captura requeriments navegacionals més especí-fics que el seu mapa base”.

• Relació entre Propietats: Herència i Visibilitat de Propietats

– Herència de Propietats: l’especialització proposta per-ment heretar totes les propietats d’un mapa navegacionali les seues propietats (conjunt de contextes navegacionals,subistemes navegacionals i enllaços navegacionals).

∗ Propietats Heretades: sols és possible heretar unmapa sencer d’un usuari, del que s’heretaran totes lespropietats (contextes, subsistemes i enllaços).

Page 169: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

6.5. Herència de Propietats Navegacionals 151

∗ Propietats Modificades: un mapa navegacional esveu modificat al modificar la definició dels seus com-ponents. Així, si modifiquem o redefinim un contex-te navegacional, aquest es converteix en un contextenavegacional especialitzat per a aquest usuari. Lesoperacions de modificació aplicables poden veure’s enles Seccions 6.5.4 i 6.5.5.

∗ Noves Propietats: es poden introduir nous contex-tes i subsistemes navegacionals a un mapa, definintaixí noves relacions navegacional. Aquestos nodes,probablement definiran nous enllaços navegacionals.

∗ Propietats Cancel·lades: es pot cancel·lar l’herèn-cia tant contextes, com subsistemes, com enllaços na-vegacionals. Açò provoca que aquestos no siguen ac-cessibles al mapa especialitzat. Quan un contexte escancel·la en herència, tots els enllaços navegacionalsrelacionats amb ell també es cancel·len. Quan un sub-sistema es cancel·la, tots els nodes (contextes i subsis-temes) que conté, també són cancel·lats en herència.

– Visibilitat de Propietats: la visibilitat és ascendent.Sols el mapa navegacional especialitzat pot obtenir infor-mació sobre el seu mapa navegacional base.

Aquestes propietats proporcionen una caracterització de l’espe-cialització aplicat a la definició d’aspectes navegacionals en OOWS,permetent el reús de mapes navegacionals. Un mapa navegacio-nal constitueix el principal constructor per especificar navegació enOOWS.

A continuació s’enumeren les operacions de modificació de mapesespecialitzats en OOWS. Aquestes operacions s’apliquen a les propi-etats dels mapes navegacionals, és a dir, als contextes navegacio-

Page 170: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

152 CAPÍTOL 6. CONCEPTES AVANÇATS

nals, subsistemes navegacionals i enllaços navegacionsals. A causaque els enllaços navegacionals són realment informació derivadaa partir de l’especificació dels nodes, a continuació es presentenaquestes operacions agrupades per la seua aplicació a contextes isubsistemes navegacionals.

6.5.4 Operacions d’Especialització de Contextes

Les operacions que es poden aplicar per modificar un contexte nave-gacional especialitzat són les següents:

• convertir un contexte de seqüència en un contexte d’exploració.Açò provacarà la definició d’un enllaç d’exploració al mapa ambdestí aquest contexte

• convertir un contexte d’exploració en un contexte de seqüència.Açò eliminarà l’enllaç d’exploració associat. A més, el contexte(ara de seqüència) haurà de ser accessible a través d’algunaltre contexte (per mig d’un enllaç de seqüència)

• modificar el tipus d’una Unitat d’Abstracció d’Informació (UAI)dins el contexte. Si la UAI és Contextual, pot passar-se a No-Contextual, o a l’inrevés. Només hi ha la restricció que siel contexte de navegació és de tipus Seqüència, almenys had’existir una UAI de tipus Contextual

• afegir/eliminar una UAI dins el contexte. Tot contexte navega-cional ha de tenir almenys una UAI. I si el contexte navegaci-onal és de Seqüència, almenys una UAI Contextual

• modificar el contingut d’una UAI dins el contexte. Per a fer-ho,es poden aplicar les següents operacions:

Page 171: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

6.5. Herència de Propietats Navegacionals 153

– afegir/eliminar una classe navegacional complementària5

– modificar una classe navegacional, afegint/llevant atri-buts navegacionals o operacions navegacionals, o bé afe-gint/modificant/esborrant un filtre de població associat ala classe

– afegir/eliminar una relació de dependència de contexte (nodefineix ni esborra cap capacitat de navegació)

– modificar una relació de dependència de contexte,convertint-la en una relació de contexte. Açò causarà ladefinició d’un enllaç navegacional al mapa

– afegir/eliminar una relació contextual entre classes. Açòdurà a la creació/eliminació d’un enllaç al mapa navegaci-onal

– modificar una relació de contexte canviant algun dels seusatributs: atribut de rol, atribut d’enllaç o atribut de con-texte. Canviar l’atribut de contexte força al canvi del destíde l’enllaç navegacional associat

– modificar una relació de contexte convertint-la en una re-lació de dependència de contexte. Caldrà eliminar l’enllaçnavegacional associat la relació de contexte

– afegir/modificar/esborrar qualsevol dels patrons de pre-sentació associats

6.5.5 Operacions d’Especialització de Subsistemes

Les operacions que es poden aplicar per modificar un subsistemanavegacional especialitzat són les següents

5No es permet afegir o eliminar la classe directora.

Page 172: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

154 CAPÍTOL 6. CONCEPTES AVANÇATS

• convertir un subsistema de seqüència en un subsistema d’ex-ploració. Açò provacarà la definició d’un enllaç d’exploració almapa amb destí aquest subsistema

• convertir un subsistema d’exploració en un subsistema de se-qüència. Açò eliminarà l’enllaç d’exploració associat. A més, elsubsistema (ara de seqüència) haurà de ser accessible a travésd’algun altre contexte (per mig d’un enllaç de seqüència)

• canviar el node definit com “Per Defecte” ó “Home”

• afegir/eliminar un contexte navegacional

• afegir/eliminar un subsistema navegacional

Page 173: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

CAPÍTOL 7MODEL DE PRESENTACIÓ

7.1 Introducció

Fins ara, amb el model navegacional s’ha descrit la navegabilitatdels usuaris pel sistema, definint el seu mapa navegacional queorganitza els nodes de continguts (contextes navegacionals) i lesseues relacions entre sí mitjançant enllaços navegacionals (relacionsde contexte). D’aquesta manera, un mapa navegacional descriu unavista parcial del sistema per a cada usuari.

Una vegada definit aquest model navegacional, cal descriureel requeriments de presentació de les aplicacions web emprant elModel de Presentació . Aquest model es construix sobre el modelnavegacional anotant-lo amb informació sobre com s’haurà de pre-sentar i permet introduir certs aspectes relacionats amb l’aparençade les aplicacions.

Aquestos requeriments de presentació són definits mitjançantpatrons que s’asocien a les primitives navegacionals, en l’àmbit dels

155

Page 174: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

156 CAPÍTOL 7. MODEL DE PRESENTACIÓ

Figura 7.1 – Contexte de Presentació

contextes navegacionals: classes navegacionals, enllaços navegacio-nals, mecanismes de búsqueda, etc.

Es pot veure aquest model de presentació com una extensió delmodel de navegació que s’enriqueix amb un conjunt de patrons bà-sics de presentació. Per tal d’especificar les propietats de presenta-ció es crea una vista addicional del contexte on únicament apareixl’estructura del contexto.

Com es pot observar en la , s’ha emprat l’estructura del contextenavegacional del model de navegació per descriure les propietats depresentació. A continuació es descriuren el patrons de presentació ila seua aplicabilitat a les primitives del model de navegació.

7.2 Patrons del Model de Presentació

A continuació es presenten els patrons de presentació bàsics queel mètode defineix. Com s’ha comentat abans, l’objectiu d’aquestospatrons és descriure a alt nivell d’abstracció, les característiquesde presentació dels elements conceptuals més adients per a entorns

Page 175: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

7.2. Patrons del Model de Presentació 157

Figura 7.2 – Mapa Navegacional i Contexte Lli-bres de la Biblioteca

web.A mode aclaratori, va a emprar-se un exemple per tal de des-

criure els patrons de presentació. La Figura 7.2 mostra el mapanavegacional i el contexte Libros de la Biblioteca.

Com es pot observar, el contexte navegacional Libros defineixuna recuperació d’informació sobre els llibres de la biblioteca, re-cuperant la seua fitxa (títol, any, ISBN, editorial, preu, pàgines iresum), així com dues relacions navegacionals: una relació de con-texte que permet obtenir el nom de l’autor del llibre i una relacióde dependència de contexte que recupera la descripció de les temà-tiques del llibre.

A més a més, aquest contexte té definits dos mecanismes d’accés:

Page 176: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

158 CAPÍTOL 7. MODEL DE PRESENTACIÓ

un índex i un filtre. L’índex està definit sobre la propietat any d’unllibre, i el filtre permet buscar llibres atenent al seu preu. Ambdósestructures empren la mateixa vista de resultats que mostra infor-mació resumida sobre els llibres (títol, any i preu).

7.2.1 Patró de Disposició d’Informació

El Patró de Disposició d’Informació permet definir com es disposaràla informació de la vista que defineix un contexte navegacional. Pera aconseguir-ho, caldrà etiquetar els elements que defineixen uncontexte per descriure aquesta disposició.

Aquest patró pot aplicar-se a:

• la classe directora: indica com es presentaran les instànciesd’aquesta classe

• les relacions navegacionals: indica com es presentaran lesinstàncies de les classes complementàries amb respecte a la se-ua classe orige de la relació. Sols pot aplicar-se sobre relacionsnavegacionals on la cardinalitat destí siga 1.

• les vistes de resultats dels mecanismes d’acces a la informa-ció. S’aplica a la classe directora i les relacions navegacioanlsd’aquesta vista.

El Patró de Disposició d’Informació pot prendre els següentsvalors: Tabular, Registre, Arbre, Text i Mestre-Detall.

El Patró de Disposició Tabular crea una aparença en forma detaula.

.Aquest patró es sol emprar per presentar gran quantitat d’infor-

mació, per la seua capacitat de compactar les dades.

Page 177: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

7.2. Patrons del Model de Presentació 159

Figura 7.3 – Patró de Disposició Tabular

Figura 7.4 – Patró de Disposició Tabular: alterna-tives

Els atributs i operacions de la classe navegacional afectada pelpatró s’organitzen dins la taula. En funció d’aquesta organització,podem tenir dos tipus de disposició tabular:

• Tabular Vertical ó Tabular (V). La taula creix en files. Cadainstància és una nova fila de la taula.

Page 178: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

160 CAPÍTOL 7. MODEL DE PRESENTACIÓ

Figura 7.5 – Patró de Disposició Tabular aplicat aClasse Directora

Figura 7.6 – Patró de Disposició Tabular aplicat aRelació Navegacional

• Tabular Horitzontal ó Tabular (H). La taula creix en columnes.Cada instància és una nova columna de la taula.

La Figura 7.5 mostra l’aplicació d’aquesta disposició als elementsde la classe directora i com aquesta informació hauria de visualitzar-se.

La Figura 7.6 mostra l’aplicació d’aquesta disposicio a la relacióentre les classes navegacionals Libro i Autor . Aquesta disposiciósols aplicar-se a aquesta relació i no a la de temàtiques, ja que unllibre pot tenir moltes temàtiques.

La disposició dels atributs de l’autor del llibre amb respecte

Page 179: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

7.2. Patrons del Model de Presentació 161

Figura 7.7 – Patró de Disposició Tabular aplicat ala Vista de Resultats

del llibre es realitzarà en format tabular (com si es tractara d’unapropietat més de la classe llibre).

De la mateixa manera, la Figura 7.7 mostra l’aplicació sobre unavista de resultat (sobre la classe directora de la vista de resultats).

El Patró de Disposició Registre presenta les dades en forma de“registre”. Un registre (veure Figura 7.8 a la pàgina següent) ésuna forma especial de tabular en la que cada instància es mostrade manera independent en un taula horitzontal. Aquest patró solemprar-se per a presentar informació detallada de poques o unainstància, ja que no compacta la informació i requereix de molt espaiper presentar moltes instàncies.

La Figura 7.9 a la pàgina següent presenta l’aplicació d’aquestpatró sobre la classe directora i com seria la visualització d’instànci-es.

Aplicat a la relació entre Libro-Autor (relació un-a-un), pot veu-re’s a la Figura 7.10 a la pàgina 163.

Igualment, pot aplicar-se a la vista de resultats, encara que com

Page 180: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

162 CAPÍTOL 7. MODEL DE PRESENTACIÓ

Figura 7.8 – Patró de Disposició Registre

Figura 7.9 – Patró de Disposició Registre aplicat ala Classe Directora

a norma general no serà recomanable ja que una vista de resultatshaurà de presentar vàries instàncies. La mostra l’efecte d’aplicar-hoa una vista de resultats d’un mecanisme d’accés a la informació.

El Patró de Disposició Arbre defineix una presentació d’infor-mació en una estructura jerárquica de visualització. Normalmentaquest tipus de visualització és molt adient per relacions d’associ-ació reflexives al diagrama de classes. La Figura 7.11 mostra un

Page 181: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

7.2. Patrons del Model de Presentació 163

Figura 7.10 – Patró de Disposició Registre aplicata la Relació Navegacional

Figura 7.11 – Patró de Disposició en Arbre

exemple d’aplicació d’aquest patró.El Patró de Disposició Text defineix una recuperació d’informa-

ció “sense format”. Aquest patró és molt útil quan la informacióa mostrar està molt clara en el contexte d’ús i no cal enriquir lapresentació amb informació sobre els noms dels atributs a mostrar.La Figura 7.12 a la pàgina següent mostra un exemple d’aplicaciód’aquest patró de presentació a la classe directora del contexte.

Page 182: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

164 CAPÍTOL 7. MODEL DE PRESENTACIÓ

Figura 7.12 – Patró de Disposició Text

Finalment, el Patró de Disposició Mestre-Detall (P) s’utilitzaper presentar informació aplicada a relacions de navegació ambcardinalitat “molts” amb respecte a la classe orige de la relació.

Aquest patró crea un vincle entre la inforamció de la classeorige (que juga el paper de mestre) i el de la classe destí (detall)de la relació. Cal especificar-se, obligatòriament el tipus de patróde presentació que s’aplicarà al detall, podent ser qualsevol delspatrons de disposició vist amb anterioritat.

La Figura 7.13 a la pàgina següent mostra l’aplicació del patróde disposició Mestre-Detall (amb el detall a mode Registre) peral contexte Libros i com seria una visualització adient d’aquestaespecificació.

7.2.2 Patró d’Ordenació de Dades

El Patró d’Ordenació de Dades permet definir una ordenació sobre lapoblació afectada de manera que la presentació d’aquesta informacióseguisca algun criteri d’ordre.

Aquest patró pot aplicar-se a:

• les classes navegacionals: indica l’ordre en que es presenta-ran les instàncies d’aquestes classes

Page 183: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

7.2. Patrons del Model de Presentació 165

Figura 7.13 – Patró de Disposició Mestre-Detall

• les vistes de resultats dels mecanismes d’accés a la infor-mació: aplicat sobre les classes navegacionals de les vistesde resultats, indica l’ordre en que apareixeran els resultatsd’executar un filtre o un índex.

Per tal de definir la ordenació, cal especificar una fòrmula oexpressió d’ordenació. Aquesta expressió es forma a partir delsatributs de la classe navegacional sobre la que s’aplica, indicantel mode d’ordenació (ascendent o descentent). Les expressions esdefineixen com conjuncions de criteris, de la següent manera:

atribut1 MODE [ AND atribut2 MODE [ AND ... ]]on MODE = [ ASC , DESC ]La Figura 7.14 a la pàgina següent mostra l’especificació de:

• una ordenació de dades aplicada a la classe navegacional Librodel contexte Libros: año DESC AND precio ASC, indicant quees vol recuperar els llibres ordenats per any descendentment idesprés per preu ascendentment

• una ordenació de dades aplicada a la classe navegacional Librode la vista de resultats dels mecanismes d’accés, indicant quees vol recuperar els llibres ordenats per preu ascendentment

Page 184: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

166 CAPÍTOL 7. MODEL DE PRESENTACIÓ

Figura 7.14 – Criteri d’Ordenació

Però de vegades és necessari poder-li proporcionar a l’usuari ambvàries alternatives d’ordenació per tal que ell en puga triar algunad’aquestes. Es pot donar suport a aquest requeriment extenent elllenguatge d’expressions de la següent manera. Si a les expressionsvistes abans les anomenem expressions d’ordenació bàsiques, tambépodrem especificar el següent tipus d’expressions:

exprOrdBàsica1 [ OR exprOrdBàsica2 [ OR ... ]]Amb aquesta notació passen a ser alternatives cada expressió

d’ordenació addicional, sent la primera l’ordenació per defecte quetindrà l’usuari i que podrà canviar per una altra de les alternativesen qualsevol moment.

Així, per exemple, podriem especificar la següent expressió d’or-denació per a la classe navegacional Libro:

año DESC AND precio ASC OR titulo ASCindicant que l’usuari veurà per defecte els llibres ordenats per

any descent i preu ascendent, però podrà canviar i aconseguir veu-re’ls ordenats alfabèticament.

Page 185: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

7.2. Patrons del Model de Presentació 167

7.2.3 Patró de Paginació

El Patró de Paginació permet “trocejar” la visualització de dades enblocs per tal que siga més accessible per a l’usuari. A diferènciad’un mecanisme d’accés a la informació que redueix la quantitatd’informació a mostrar tractar d’adequar-se a l’interés de l’usuari,aquest patró no fa cap reducció. Simplement organitza tota lapoblació (per gran que siga) per tal que la seua exploració siga mésventajosa. El concepte del bloc és el principal d’aquest patró.

Exemples hi ha molts a la xarxa, que responen a aquest patró.Però, el més representatiu avuí en dia per ús pot ser al Google.La pàgina següent mostra una pàgina resultat d’una búsqueda alGoogle. Com es pot veure, la quantitat de links a mostrar és moltgran i per això, Google realitza una paginació de dades .

Així doncs, l’objectiu d’aquest patró és poder donar suport a uncomportament d’aquest tipus, on hi ha una població a visualitzar ical que aquesta siga paginada per facilitar-li la tasca a l’usuari.

Aleshores, com s’ha d’aplicar a poblacions, es podrà especificaruna paginació sobre:

• la classe directora: indica que la paginació es realitzaràsobre els elements d’aquesta classe.

• les relacions navegacionals: indica que la paginació es rea-litzarà sobre els elements de la classe navegacional destí de larelació navegacional

• les vistes de resultats dels mecanismes d’accés a la informa-ció. S’aplica a la classe directora i les relacions navegacionalsd’aquesta vista.

Per tal d’espepecificar aquest patró haurem de configurar unasèrie de propietats que es descriuen a continuació.

Page 186: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

168 CAPÍTOL 7. MODEL DE PRESENTACIÓ

La primera propietat, i principal, és el número d’elementsque formaran cada bloc, que també es sol anomenar cardinalitatdel bloc. Aquesta cardinalitat pot ser estàtica o dinàmica. Unacardinalitat estàtica indica que el número d’elements dels blocsestà fixe i predefinit. Una cardinalitat dinàmica indica que elnúmero d’elements dels blocs es variable i pot prendre diferentsvalors. Associat a aquesta cardinalitat dinàmica es pot indicaruna expressió que restringisca els valors possibles en forma d’unaenumeració de valors (per exemple: 10, 25, 50, 100) o d’una condicióque ha de complir la cardinalitat (per exmple: cardinalitat ≤ 100).

A més de la cardinalitat, cal especificar el mode d’accés, quedefineix com es podran explorar els blocs. Hi ha dos tipus d’accés: elmode seqüencial i el mode aleatori. El mode seqüencial especificaque a partir d’un bloc sols podem accedir a l’immediatament anteriori a l’immediatament posterior. El mode aleatori indica que podemaccedir a qualsevol bloc des de qualsevol bloc.

Finalment podem marcar la paginació com circular per conver-tir la colecció ordenada de blocs en un búfer circular, és a dir, definirel primer bloc com el següent bloc de l’últim bloc i definir l’últim bloccom l’anterior bloc del primer bloc.

La Figura 7.15 a la pàgina següent mostra un exemple de pa-ginació aplicada a la classe navegacional Libro. Aquesta paginacióestà definida amb una cardinalitat de 10 elements, estàtica i d’accésseqüencial. Es per això que la població de llibres es veurà trocejadade 10-en-10 llibres, l’usuari no podrà canviar aquesta cardinalitat de10 i des de cada pàgina sols tindrem accés a la següent i a l’anterior.

Un altre exemple, però aquesta vegada amb cardinalitat de 4elements i accés aleatori. La Figura 7.16 a la pàgina següent mostraun exemple d’implementació d’aquest requeriment.

Page 187: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

7.2. Patrons del Model de Presentació 169

Figura 7.15 – Patró de Paginació: paginació Se-qüencial

Figura 7.16 – Patró de Paginació: paginació Alea-tòria

7.2.4 Patró d’Ordre d’Aparició

El Patró d’Ordre d’Aparició indica una relació en el ordre d’apariciódels atributs navegacionals i operacions navegacionals d’un contex-te. En altres contextos, a aquesta propietat se la sol anomenar“tabbing” .

Aquest patró s’aplica a:

• els atributs navegacionals

Page 188: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

170 CAPÍTOL 7. MODEL DE PRESENTACIÓ

Figura 7.17 – Patró d’Ordre d’Aparició

• les operacions navegacionals

Associat a cadascun d’aquestos elements podem etiquetar ambun ordre d’aparició (representat mitjançant nombres enters), in-dicant una relació d’ordre entre aquestos elements en un contextenavegacional o una vista de resultats.

La Figura 7.17 mostra l’especificació d’aquest ordre sobre elcontexte navegacional Libros i com afecta aquesta propietat en laimplementació. Com es pot veure, el primer que apareix és el títoldel llibre, després el seu autor (el nom), les pàgines, l’ISBN, etc.

Page 189: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

CAPÍTOL 8IMPLEMENTACIÓ DE LA INTERFÍCIE WEB

8.1 Introducció

En l’actualitat, existeixen moltes estratègies per abordar la im-plementació d’una aplicació web. Hi ha nombrosos llenguatges deprogramació, frameworks d’implementació, eines de disseny, etc..

Malgrat açò, l’objectiu que es persegueix en aquest treball és fer-ho de manera deslligada a cap tecnologia, però que siga aplicable aqualsevol tecnologia. En realitat, la tasca no és del tot complicadaja que arribem a aquesta fase i tenim com entrada models concep-tuals, independents de plataforma tecnològica. Per a aconseguir-ho,primer s’ha realitzat un anàlisi a nivell conceptual de com hauriende ser les pàgines web, i després s’ha definit una estratègia d’imple-mentació d’aquestes idees conceptuals.

Per abordar l’anàlisi inicial de les pàgines web, observem lesimplementacions existents en diferents aplicacions web per intentarabstaure els diferents continguts i tipus de pàgines que conformen

171

Page 190: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

172 CAPÍTOL 8. IMPLEMENTACIÓ DE LA INTERFÍCIE WEB

l’aplicació. Així, com veurem més endavant, podrem observar queexisteixen pàgines encarregades de la gestió d’informació i que per-meten accedir a l’execució de serveis, altres que permeten estructu-rar la navegabilitat dins l’aplicació, etc.

Una vegada detectats els tipus de pàgines que poden constituiruna aplicació web i com s’organitzem, tractarem d’analitzar els tipusde continguts que solen apareixer en aquestes pàgines. Així, perexemple, podrem adonar-nos que existeixen zones de la pàgina webencarregades de proporcionar un conjunt d’enllaço a altres pàgines,zones que són responsables d’informar a l’usuari de la seqüènciade pàgines que ha anat navegant fins arribar a l’actual, altresque mostren informació sobre l’empresa que hi ha per darrere del’aplicació, etc.

Prenent aquesta informació com punt de partida, es proposaràun mode de conceptualitzar una pàgina web com un conjunt dezones de contingut, en funció del tipus de pàgina. A més a més,emprarem una sèrie de principis de qualitat per tal d’assegurarquins continguts són més adients, necessaris o dolents dins de cadatipus de pàgina. L’objectiu és apropar-nos a aconseguir aplicacionsfianl de major qualitat.

Finalment, es defineix una estratègia per a la implementaciód’aquestos diferents tipus de pàgines emprant com “peces” aques-tes zones de contingut. D’aquesta manera, la solució proposta perdesenvolupar la capa d’interfície de les aplicacions web empra cons-tructors de major granularitat que les meres etiquetes o marquesHTML sobre les que es sol mapejar.

Avuí en dia, MDA està guanyant popularitat com una manerapossible i adequada per desenvolupar programari en diferents en-torns, inclós el Web. Com a conseqüència, diferents eines tant desd’un punt de vista acadèmic com industrial, estan oferint els seus

Page 191: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

8.1. Introducció 173

propis processos MDA per produir aplicacions Web.En aquesta tesi s’introdueix un entorn a l’estil MDA [82]per

al desenvolupament d’aplicacions web, que segueix l’aproximacióproposada pel mètode OOWS. OOWS constitueix una extensió delmètode OO-Method [89] per donar suport al modelatge i desenvolu-pament d’aplicacions web. Des d’un punt de vista MDA, tant OO-Method com OOWS defineixen el seu PIM a partir del llenguatged’especificació que defineixen les seues primitives de modelatge con-ceptual. La solució proposta en aquest treball integra l’eina indus-trial OlivaNOVA [20], com a implementació en àmbits industrialsdel mètode OO-Method, i desenvolupada per l’empresa CARE Tech-nologies S.A. [23]. Aquest entorn OlivaNOVApermet generar demanera automàtica el codi de l’aplicació, emprant transformacionsmodel-a-codi, segons MDA. OOWS extén aquest procés de generacióper obtenir l’interfície web que s’integre amb les aplicacions genera-des per OlivaNOVA.

En aquest capítol es presenta una estratègia de desenvolupa-ment que dona una solució concreta a aquestes necessitats en dospassos: primer es defineix una proposta de desenvolupament deles pàgines web, i segon és realitza un mapeig entre els conceptes(primitives) del mètode i aquestes pàgines web.

En resum, els objectius desitjats per abordar el desenvolupamentde les aplicacions web són els següents:

• Proposar un marc conceptual per al desenvolupament de pàgi-nes web

• Estudiar una classificació de les pàgines web en funció del seuobjectiu

• Analitzar els diferents continguts que poden aparèixer en lespàgines web i a què es deuen

Page 192: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

174 CAPÍTOL 8. IMPLEMENTACIÓ DE LA INTERFÍCIE WEB

• Avaluar una estratègia d’implementació d’aplicacions web ba-sada en pàgines web predisenyades

• Aplicar des d’un principi bons criteris de qualitat en el desen-volupament de les pàgines web que conformen l’aplicació web

• Definir un conjunt de transformacions entre els conceptes deldomini (espai del problema) i els conceptes en una soluciótecnològica concreta (espai de la solució).

8.2 Estructura Conceptual de les PàginesWeb

Per començar devem analitzar aplicacions web centrant-nos en es-tudiar els tipus de pàgines que apareixen i quins continguts apor-ten. Si determinem el conjunt de pàgines formades per un conjuntde continguts, contruir una aplicació web no serà més que empraraquestos troços combinats per desenvolupar l’aplicació web final.

Aquesta manera d’entendre allò que és una pàgina web permetveure quin tipus de responsabilitat ha de tenir cada pàgina, abansd’abordar la implementació de l’aplicació, decidint, per exemple, queuna pàgina d’inici deu ser una pàgina que estructure l’accés dinsl’aplicació, ja que es tracta de la primer pàgina que es visita i pertant el punt d’entrada a qualsevol part del sistema.

També es poden prendre decision de l’estil de: “després d’unapàgina d’estructura de navegació deu aparèixer una pàgina queproporcione contingut d’informacio”. D’aquesta manera, podem dis-senyar prèvia la implementació, quina serà la navegabilitat pel sis-tema, podent estudiar i millorar, si fora necesari, l’accessibilitat dinsl’aplicació.

Suposem per exemple que estem en una tenda per a la venta

Page 193: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

8.2. Estructura Conceptual de les Pàgines Web 175

de llibres. Per motius de fomentar l’ús de l’aplicació i potenciar lesventes volem que els usuaris que es conecten puguen trobar el llibreconcret que busca en menys de 3 clics de navegació. Fent un dissenyde l’estructura navegacional, podrem determinar que l’aplicació laanem a desenvolupar seguint aquesta restricció o deurem fer algunretoc en el disseny.

Altre avantatge d’aquesta aproximació és la possibilitat d’obteniruna ràpida prototipació. Si som capaços de parametritzar un con-junt de tipus de pàgines seguint unes pautes preestablertes, cons-truir un prototipus d’una aplicació es constituirà d’enllaçar adequa-dament aquestes pàgines i triar els continguts que deuen apareixeren cada tipus de pàgina en aquesta aplicació.

8.2.1 Taxonomia

En aquesta secció s’analitzen els diferents tipus de pàginas que exis-teixen en la majoria de les aplicacions web actuals. El nostre criteride classificació de pàgines l’anem a centrar en la responsabilitat queté cada pàgina amb respecte a l’aplicació en sí.

Per aconseguir, anem a repasar quin és el model de funcionamentd’una aplicació per a la web típica:

• un usuari entra en un lloc web (de manera anònima oidentificant-se) i obté la pàgina d’inici. Aquesta pàgina pro-porciona accés a la resta de pàgines que conformen l’aplicació.En la majoria dels casos, podem considerar aquest tipus depàgines inicials com pàgines destines a estructurar l’accés.També és habitual que en aquestes pàgines d’inici aparegainformació institucional de l’empresa (nom, adreça, informacióde contacte, logotipus, etc.).

• si seleccionem un enllaç, arribem a altres pàgines en les que

Page 194: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

176 CAPÍTOL 8. IMPLEMENTACIÓ DE LA INTERFÍCIE WEB

Figura 8.1 – Exemple de Pàgines “Home”

es mostra informació sobre els objectes d’interés (productes,personal, etc.). Són pàgines encarregades de proporcionar con-tingut d’informació. En aquestes pàgines també pot apareixerl’enllaç a l’execució d’alguna funcionalitat, com per exemple,

Page 195: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

8.2. Estructura Conceptual de les Pàgines Web 177

sol·licitar una encomanda de material, informar de l’interéssobre un determinat producte, reservar alguns recursos, etc.Dins d’aquestes pàgines, sol ser habitual el que es puga na-vegar a altres pàgines seleccionant algun enllaç sobre certainformació que apareix en la pàgina. Quan seleccionem algund’aquestos enllaços, l’aplicació canvia la pàgina per una altraon es mostra el contingut d’informació relacionat amb el quehem seleccionat.

• com hem dit abans, a partir d’una pàgina de contingut d’infor-mació també podem llançar l’execució d’alguna funcionalitat.Quan açò esdevé, el sistema proporciona a l’usuari pàgines onapareix un o varios formulari per a la introducció de dades(arguments) per a la execució d’aquesta funcionalitat, afegintels botons de “Acceptar” (executar) i “Cancel·lar” (abortar l’e-xecució del servei).

• una altra possibilitat és navegar a pàgines web que tenen comobjectiu proporcionar accés a una part de l’aplicació que forad’aquesta pàgina no es tenia. Són com les pàgines d’inici,pàgines que estructuren l’espai navegacional introduint nousenllaços a altres pàgines web, facilitant la navegació dins elsistema.

• també hi ha pàgines resultat de la invocació d’un criteri deselecció o filtre. Habitualment aquestes pàgines proporcionenun conjunt limitat d’entrades que solen donar accés a les pà-gines de contingut d’informació per mostrar informació mésdetallada sobre l’ítem seleccionat.

Encara que pogueren existir més tipus de pàgines dins unaaplicació web, anem a centrar-nos en l’estudi d’aquestes i detallar

Page 196: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

178 CAPÍTOL 8. IMPLEMENTACIÓ DE LA INTERFÍCIE WEB

Figura 8.2 – Exemples de Pàgines Web amb Con-tingut d’Informació

les seues responsabilitats. Si volguèrem introduir nous tipus depàgines dins la proposta, deuriem seguir el mateix raonament aqueamb aquestos tipus de pàgines.

Page 197: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

8.2. Estructura Conceptual de les Pàgines Web 179

Figura 8.3 – Exemples de Pàgines Web d’Execucióde Funcionalitat

8.2.1.1 Pàgines d’Informació

Aquest tipus de pàgines són les encarregades de proporcionar al’usuari certa informació i funcionalitat. L’objectiu d’aquestes pà-

Page 198: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

180 CAPÍTOL 8. IMPLEMENTACIÓ DE LA INTERFÍCIE WEB

Figura 8.4 – Exemple de Subsistema de Navegació

gines és informar a l’usuari de certa part de l’estat del sistema,permitint-li modificar aquest estat executant alguns serveis que liestan disponibles i permitir-li navegar a altres pàgines seleccionantalguna informació que en ella aparega.

Són pàgines de contingut d’informació les següents pàgines (dinsel funcionament normal d’una aplicació web):

Page 199: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

8.2. Estructura Conceptual de les Pàgines Web 181

Figura 8.5 – Exemple Pàgina Web amb Estructurad’Indexació

Figura 8.6 – Pàgina Web de tipus Informació

• les pàgines que explores la base de dades proporcionant infor-mació sobre les entitats que allí hi apareixen

Page 200: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

182 CAPÍTOL 8. IMPLEMENTACIÓ DE LA INTERFÍCIE WEB

Figura 8.7 – Pàgina Web de tipus Estructura deNavegació

• les pàgines que són conseqüència de l’execució de filtres deselecció d’informació, que presenten el conjunt resultant d’ins-tàncies i enllacen a altres pàgines (també d’aquest tipus) quemostren informació detallada sobre l’ítem seleccionat

8.2.1.2 Pàgines d’Estructuració de la Navegació

Aquest tipus de pàgines són pàgines especialitzades en estructurarla navegabilitat dins l’aplicació, donant accés a pàgines que sols sónaccessibles a partir d’aquestes pàgines.

Són pàgines d’aquest tipus:

• les pàgines d’inici, que proporcionen accés inicial i estructurata les diferents parts/seccions de l’aplicació.

• pàgines que seccionen i agrupen altres pàgines per facilitar lanavegabilitat dins el sistema.

Page 201: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

8.2. Estructura Conceptual de les Pàgines Web 183

Figura 8.8 – Pàgina Web per a l’Entrada de Dades

8.2.1.3 Pàgines d’Entrada de Dades

Aquest tipus de pàgines sorgeixen quan l’usuari sol·licita o invocal’execució de cert servei i existeix la necessitat d’introduir paràme-tres per dur-lo a terme. Habitualment aquestes pàgines contenenformularis d’entrada de dades adequats a les necessitats del servei.

Són pàgines d’aquest tipus:

• les pàgines ques són conseqüència de l’execució de cada serveique deu proporcionar el sistema

• les pàgines de login d’usuari, on es demana informació d’inden-tificació de l’usuari, identificador i contrassenya

• les pàgines de registre d’usuaris

• les pàgines que demanen la condició de filtrar sobre els contin-guts d’informació

Page 202: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

184 CAPÍTOL 8. IMPLEMENTACIÓ DE LA INTERFÍCIE WEB

8.2.2 Tipus de Continguts

Podriem pensar que cada tipus de pàgina té uns continguts total-ment diferents amb els continguts d’altres pàgines. Tanmateix, sianalitzem els desenvolupaments actuals, podrem observar que en lamajoria dels casos, existeixen troços de pàgines que es repeteixen enalgunes pàgines, i altres que inclús es repeteixen en totes.

Així, per exemple, la majoria de les pàgines web proporcionenuna zona en la que es mostren els enllaços de navegació a altrespàgines que es poden alcançar des de l’actual. Una altra zonamolt habitual és la que mostra informació sobre l’empresa, i quesol aparèixer en totes de les pàgines.

En funció d’aquest tipus de contingut, podem inclús trobar pàgi-nes que tenen més d’una zona amb contingut del mateix tipus. Així,per exemple, podem trobar pàgines web que tenen més d’una zonade navegació, estructurant i donant diferents possibles opcions denavegació organitzades per algun criteri. La Secció 8.2.3 analitaràaquesta possible distribució de zones de contingut en funció del tipusde pàgina.

Si seguim analitzant amb més detall, podrem observar inclúspatrons d’estructuració i presentació de continguts que solen serhabituals. Els dos exemples més representatius són els següents:

1. Una pàgina web dividida en dues seccions: una més menuda,a l’esquerre, on apareixen un conjunt d’opcions de navegaciói una més gran, a la dreta, en la que s’organitza la següentinformació, de dalt cap abaix: nom o identificació de la pàgina,ubicació dins el camí navegacional (no sempre), contingut d’in-formació (zona central dreta, normalment de major proporció),informació sobre la institució (aquesta informació pot aparei-xer disseminada per la pàgina) i opcionalment més enllaços denavegació (presentats d’una manera compacta)

Page 203: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

8.2. Estructura Conceptual de les Pàgines Web 185

Figura 8.9 – Pàgina Web DSIC: Delimitació deZones Principals

2. Una pàgina web sense divisions, en la que, de dalt a baixapareix: un conjunt d’enllaços (normalment en disposició ho-ritzontal), identificació de la pàgina, ubicació en el camí nave-gacional, contingut d’informació i informació institucional.

La proposta tracta de descriure un conjunt de zones de contingut(cadascuna amb un objectiu clar) que després podrem utilitzar perdefinir els diferents tipus de pàgines. Les següents subseccionstractaran de presentar els tipus de continguts més habituals en elsdesenvolupaments actuals.

8.2.2.1 Zona d’Informació

Zona encarregada d’accedir a la base de dades, i disposar de maneraconvenient la informació i funcionalitat que proporciona aquestapàgina.

Page 204: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

186 CAPÍTOL 8. IMPLEMENTACIÓ DE LA INTERFÍCIE WEB

Figura 8.10 – Pàgina Web Amazon.com: Delimi-tació de Zones Principals

8.2.2.2 Zona de Navegació

Zona encarregada de proporcionar a l’usuari un conjunt d’enllaçosde navegació.

8.2.2.3 Zona d’Ubicació

Zona encarregada de notificar a l’usuari de la ubicació d’aquestapàgina dins l’aplicació, indicant el camí navegacional seguit o se-qüència de pàgines web que s’ha seguit fins arribar a l’actual.

8.2.2.4 Zona d’Informació d’Usuari

Zona responsable de donar-li informació personal (identificar-lo comusuari actiu en el sistema). Aquest tipus de zona sols té sentit perals usuaris que necesiten identificar-se per accedir al sistema.

Page 205: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

8.2. Estructura Conceptual de les Pàgines Web 187

Figura 8.11 – Exemple de Zones d’Informació

8.2.2.5 Zona Institucional

Zona encarregada de proporcionar al usuari informació sobre la ins-titució, empresa, organisme, etc. que està al darrere de l’aplicació.

Page 206: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

188 CAPÍTOL 8. IMPLEMENTACIÓ DE LA INTERFÍCIE WEB

Figura 8.12 – Exemple de Zones de Navegació

Habitualment és informació estàtica que es refereix al nom de lainstitució, adreça, logotipus, contacte, etc.

Page 207: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

8.2. Estructura Conceptual de les Pàgines Web 189

Figura 8.13 – Exemple de Zones d’Ubicació

8.2.2.6 Zona d’Entrada de Dades

Zona encarregada de proporcionar formularis per a la introducció dedades, validar-los i enviar-los per al seu processament.

Page 208: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

190 CAPÍTOL 8. IMPLEMENTACIÓ DE LA INTERFÍCIE WEB

Figura 8.14 – Exemple de Zones Institucional

8.2.2.7 Zona d’Enllaços d’Aplicació

Zona on apareixen enllaços a la funcionalitat comú a totes les apli-cacions web: login/logout, home, etc.

Page 209: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

8.2. Estructura Conceptual de les Pàgines Web 191

Figura 8.15 – Exemple de Zones d’Entrada de Da-des

8.2.2.8 Zona de Personalització

És un tipus especial de zona d’informació en la que la informacióque es recuperarà està personalitzada per a l’usuari actiu que està

Page 210: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

192 CAPÍTOL 8. IMPLEMENTACIÓ DE LA INTERFÍCIE WEB

Figura 8.16 – Exemple de Zones d’Enllaços Apli-cació

conectat.Aquesta zona sols té sentit per a usuaris registrats. El seu ús

habitual es proporcionar als usuaris ofertes i/o suggerències sobreproductes/novetats del sistema que li puguen ser d’interés. Serveixper implementar polítiques de personalització.

8.2.2.9 Zona d’Estructures d’Accés

Zona que conté els mecanismes avançats d’exploració dins d’unapàgina. En ella apareixen els filtres de búsqueda, estructures d’in-dexació, etc.

8.2.2.10 Zona Custom

Zona pensada per afegir, en cas necessari, qualsevol altre tipus decontingut no censat anteriorment, donant una major flexibilitat a

Page 211: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

8.2. Estructura Conceptual de les Pàgines Web 193

Figura 8.17 – Exemple de Zones de Personalitza-ció

l’hora de construir l’aplicació.

8.2.3 Estructura Conceptual

Una vegada detectats els tipus de pàgines i les zones de contingutque poden aparèixer en les diferents pàgines, devem establir unasèrie de regles que ens indiquen quines zones de continguts deuenaparèixer obligatòriament en cada tipus de pàgina, quines zones sónrecomanables, quines són opcionals i quines no és recomanable queapareguen. Aquestes decisions deuen prendre’s tenint en compte,quan siga possible, criteris per millorar la qualitat de les aplicacionsdesenvolupades [83].

Una de les regles per assegurar una major qualitat de les pàginesweb és proporcionar a l’usuari sempre informació que li indique onestà, com ha arribat fins ací (camí navegacional) i on pot anar apartir d’ací. És a dir, d’alguna manera s’obliga a que en tota pàgina

Page 212: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

194 CAPÍTOL 8. IMPLEMENTACIÓ DE LA INTERFÍCIE WEB

Figura 8.18 – Exemple de Zones d’Estructures Ac-cés

web apareguen les zones de navegació i ubicació.Altra regla és la de no sobrecarregar en excés les responsabilitats

d’una pàgina web. Per raons de comprensibilitat, devem evitar

Page 213: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

8.2. Estructura Conceptual de les Pàgines Web 195

Pàg. Pàg. Estruc. Pàg. Entr.Informació Navegació Dades

Z. Navegació X X, ∗ XZ. Ubicació X X X

Z. Informació X, ∗ X XZ. Usuari + + +

Z. Institucional ?, ∗ ?, ∗ ?, ∗Z. Enllaços Aplic. + + +Z. Entrada Dades X X XZ. Personalització ?, ∗ ?, ∗ ?, ∗Z. Estruc. Accés ?, ∗ ?, ∗ ?, ∗

Z. Custom ?, ∗ ?, ∗ ?, ∗

Taula 8.1 – Estructura Conceptual d’una PàginaWeb

X- obligatori +- recomanable X- no recomanable?- opcional ∗- poden aparèixer varies

desenvolupaments en el que el producte resultant siga farragós icomplicat. En funció del tipus d’aplicació i audiència (usuaris poten-cials) que puguen emprar l’aplicació, és recomanable la separacióde continguts en diferents pàgines per tal de no sobrecarregar-les,simplicant i millorant substancialment la usabilitat final de l’apli-cació. Malgrat açò, no sempre serà possible determinar el nivell apartir del qual es considera "sobrecarregadaüna pàgina, i més teninten compte la tendència actual on en molts portals web aparèixenagregadors de continguts de molt diferent índole.

A continuació es presenta una taula on apareixen les zones decontingut per un costat i els tipus de pàgines web per altre, indicanles relacion entre ells:

Page 214: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

196 CAPÍTOL 8. IMPLEMENTACIÓ DE LA INTERFÍCIE WEB

8.3 Estratègia d’Implementació d’una Pàgi-na Web

La estratègia per a la implementació de les pàgines web que anema seguir pren com punt de partida el plantejament ja realitzat decategoritzar el tipus de pàgines i detectar el conjunt de zones quevan a constituir la pàgina web.

A més a més, haurem de tenir en compte el comportament desit-jat d’una pàgina web dins l’aplicació: és desitjable que quan unusuari navegue dins d’una aplicació, les pàgines que la constitueixenli vajen proporcionant informació global sobre les pàgines que ja havisitat, els continguts que explora, les possibilitats de navegació, etc.

És per açò que deurem considerar que les pàgines web no estànaïllades unes de les altres, i que, per tant, s’hauran d’anar passantinformació unes a les altres sobre les accions que l’usuari està re-alitzant i l’estat navegacional en el que es troba actualment. Al-guns exemples d’aquesta informació passada d’unes pàgines a altrespoden ser els identificadors dels objectes seleccionats, la seqüènciade pàgines que l’usuari ja ha navegat, els valors introduïts en unformulari per executar una operació, etc.

8.3.1 Estructura d’Implementació

Tenint en compte aquestes idees bàsiques, anem a distingir doszones clares dins una pàgina web:

• El PREÀMBLE: troç inicial de la pàgina web encarregada derecollir la comunicació entre les pàgines (arguments d’entradade la pàgina), provocar el canvi navegacional atenent a l’estatactual, controlar l’accés dels usuaris (sols aquell que tingapermís, etc.

Page 215: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

8.3. Estratègia d’Implementació d’una Pàgina Web 197

• El CÓS: defineix el contingut de la pàgina. Està compost perles diferents zones de contigunt que formen la pàgina.

El següent troç de codi presenta l’esquelet d’una pàgina web ques’empra per implementar aquestos principis: �<!-- PREAMBLE DE LA PÀGINA -->...<!-- FI PREAMBLE DE LA PÀGINA -->

<HTML>

<BODY><!-- COS DE LA PÀGINA -->...<!-- FI COS DE LA PÀGINA --></BODY>

</HTML>

Codi Font 8.1 – Esquelet Mínim d’una Pàgina Web

8.3.1.1 Preamble de Pàgina

Com hem comentat, el preamble de la pàgina ha de ser el responsa-ble d’obtenir tota la informació necessària de l’entorn de l’aplicacióweb per tal que la pàgina puga ser construïda correctament.

Imaginem el següent escenari: suposem que estem dissenyantuna pàgina web (de venta de llibres) en la que es recuperaran totsels llibres de base de dades i per a cada llibre els seus autors. Volem,a més a més, que l’usuari puga seleccionar un autor i navegar a unaaltra pàgina en la que es mostre informació detallada d’aquest autor.

Si pensem en com deuriem implementar aquest comportament,ens adonarem ràpidament que fa falta que la pàgina llibre propor-cione un enllaç associat a cada autor, de manera que aquest enllaçens redirigisca a la pàgina Autor_Detalls i a més a més li “passe”l’identificador de l’autor seleccionat.

Page 216: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

198 CAPÍTOL 8. IMPLEMENTACIÓ DE LA INTERFÍCIE WEB

Figura 8.19 – Exemple de navegació per seqüènciaen Amazon.com

Per la seua part, la pàgina Autor_Detalls deurà accedir a labase de dades per recuperar sols l’autor que tinga com identificadoraquell passat com argument en la navegació.

És per açò que el PREAMBLE de la pàgina web deu precedira la resta de la pàgina, ja que la resta de la pàgina pot tenir unadependència de dades amb la informació del preamble.

Hi ha 3 accions a realitzar dins el preamble d’una pàgina web:(1) recollir els arguments d’entrada de la navegació, (2) provocar elcanvi navegacional i (3) restringir/controlar l’accés dels usuaris.

Page 217: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

8.3. Estratègia d’Implementació d’una Pàgina Web 199

Arguments d’Entrada. Una de les primeres accions que esdeu realitzar dins el preamble és comunicar-se amb l’entorn del’aplicació. Està comunicació es realitza a través dels argumentsnavegacionals que viatgen fins la pàgina.

Els arguments que s’estan tenint en compte per fer el desenvo-lupament actual d’aplicacions en OOWS són els següents:

• Pàgina d’Orige de la navegació. Indica la pàgina de la quevenim per arribar a l’actual.

• Camí Navegacional. Indica el conjunts de passos que hemdonat per arribar fins la pàgina actual.

• Mode de Navegació. Segons s’ha establer al model concep-tual web , existeixen dues maneres d’accedir a un node na-vegacional: per exploració o per seqüència. En la navegacióper exploració (causat per un enllaç d’exploració) i no dueminformació contextual. La pàgina destí ha de recuperar tota lapoblació de la base de dades. En la navegació per seqüència(causat per seguir una relació navegacional de contexte), du-em informació contextual al destí. La pàgina destí haurà derecuperar només la informació de la base de dades relacionadaamb la informació contextual.

• Informació contextual. Quan la navegació siga per seqüèn-cia, produïda per haver seleccionat l’àncora d’una relació decontexte (un autor, per exemple), arribarà a la pàgina destíl’identificador de l’objecte seleccionat.

• Usuari conectat. En el cas de pàgines web que necessitenuna identificació d’usuari, necesitarem saber quin usuari és elque està emprant l’aplicació.

Page 218: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

200 CAPÍTOL 8. IMPLEMENTACIÓ DE LA INTERFÍCIE WEB

Per tant, la primera secció del preamble de la pàgina deuràencarregar-se de la gestió dels arguments d’entrada, deixant-losaccessibles per a que la resta de la pàgina (preamble i cós) pugaemprar-los.

L’esquelet de la pàgina, introduint aquesta gestió d’argumentsquedaria de la següent manera: �<!-- PREAMBLE DE LA PÀGINA -->

<!-- ARGUMENTS ENTRADA -->...<!-- FI ARGUMENTS ENTRADA -->

<!-- FI PREAMBLE DE LA PÀGINA -->

<HTML>

<BODY><!-- COS DE LA PÀGINA -->...<!-- FI COS DE LA PÀGINA --></BODY>

</HTML>

Codi Font 8.2 – Esquelet de Pàgina ambArguments d’Entrada

Estat Navegacional. Es considera estat navegacional a lessegüents propietats:

• Pàgina Actual. Identifica el contexte/pàgina en la que estàl’usuari actualment. S’utilitza per construir el camí navegaci-onal.

• Camí Navegacional Seqüència de pàgines seguides per arri-bar fins la pàgina actual.

Al preamble de cada pàgina web deu provocar-se el canvi d’estatnavegacional. És per açò que cada pàgina web deurà realitzar duesoperacions amb respecte a aquest estat navegacional:

Page 219: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

8.3. Estratègia d’Implementació d’una Pàgina Web 201

• establir l’identificador de la pàgina actual que serà empratquan es navegue a una altra pàgina, sabent així la pàgian origede la navegació

• recalcular el camí navegacional (rebut com argument), en fun-ció del mode de navegació (exploració o seqüència). Així, si lanavegació fins aquesta pàgina ha sigut:

per seqüència, sabem que l’usuari ha seleccionat alguna in-formació en la pàgina orige i en aquesta pretèn veure lainformació detallada. El camí navegacional deu crèixerafegint la pàgina actual. Aquest comportament és deu alfet que l’usuari està seguint una seqüència de navegació.La manera més habitual de construir un camí navega-cional és crear una llista ordenada amb el nom de lespàgines separades per algun símbol (com ara “>” ó “::”).Per exemple: Llibress > Detalls d’Autor.

per exploració, l’usuari manfesta un canvia en la seqüènciad’accions que estava realitzant i ara selecciona un enllaçdel menú navegacional per començar a realitzar altretipus d’operació. El menú navegacional deu reiniciar-sei establir-se únicament a la pàgina actual.

Després de recollir els arguments d’entrada, podem provocar elcanvi navegacional. Aquesta dependència es deu a que per a rea-litzar el canvi d’estat és necessària informació que s’arreplega en elpreamble, com per exemple el mode de navegació i el contexte/pàgi-na d’orige. �<!-- PREAMBLE DE LA PÀGINA -->

<!-- ARGUMENTS ENTRADA --><!-- FI ARGUMENTS ENTRADA -->

Page 220: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

202 CAPÍTOL 8. IMPLEMENTACIÓ DE LA INTERFÍCIE WEB

<!-- ESTAT NAVEGACIONAL --><!-- FI ESTAT NAVEGACIONAL -->

<!-- FI PREAMBLE DE LA PÀGINA -->

<HTML>

<BODY><!-- COS DE LA PÀGINA -->...<!-- FI COS DE LA PÀGINA --></BODY>

</HTML>

Codi Font 8.3 – Esquelet de Pàgina incloent canvid’estat navegacional

Identificació d’Usuaris. Quan es tracte de pàgines web querequerisquen d’un usuari registrat (aquelles pàgines que són laimplementació d’un mapa navegacional que pertany a un usuariregistrat), en el preamble deurem ficar codi que comprove que efec-tivament existeix un usuari identificat. En cas contrari, el sistemaens deurà reconduir a una pàgina d’informació on s’indique que calidentificar-se prèviament a accedir a aquesta pàgina.

Aquesta comprovació és necessària a causa que un usuari senseidentificació podria intentar navegar a una pàgina, pel seu compte,que pertany a algun usuari registrat, sense haver-se identificat. Lapàgina ha d’estar doncs preparada per a açò, detectant aquest fet iredirigint-lo fins una pàgina d’error.

8.3.1.2 Cós de la Pàgina

El cós de la pàgina és la zona de la pàgina web que defineix elscontinguts. Aquestos continguts estan en funció del tipus de pàgina,com s’ha vist a la Taula 8.1. A causa d’açò, cada tipus de pàginatindrà una implementació diferent del seu cós.

Seguint l’estratègia proposta de construcció de pàgines a partir

Page 221: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

8.3. Estratègia d’Implementació d’una Pàgina Web 203

de la composició de zones de contingut, la manera d’abordar laimplementar la capa d’interfície se simplifica.

Una vegada definits els tipus de pàgines més habitual i els con-tinguts que aquestes pàgines deuen (o poden) tenir, implementar-losresulta relativament senzill: devem introduir en la secció del cós dela pàgina tantes zones de contingut com siga necessari. �<!-- PREAMBLE DE LA PÀGINA -->...<!-- FI PREAMBLE DE LA PÀGINA -->

<HTML>

<BODY><!-- COS DE LA PÀGINA -->

<!-- ZONA 1 -->...<!-- FI ZONA 1 -->

<!-- ZONA 2 -->...<!-- FI ZONA 2 -->

<!-- FI COS DE LA PÀGINA --></BODY>

</HTML>

Codi Font 8.4 – Esquelet de Pàgina amb cos

Si analitzem un moment aquest estratègia de desenvolupament ila comparem amb les estratègies de desenvolupament habitual web,podem observar els següents avantatges:

• El desenvolupament de cada pàgina web que va a constituirl’aplicació web es realitza tenint en compte consideracions glo-bals de l’aplicació (comunicació entre pàgines, homogeneitat,etc.), però de manera que cada pàgina és un ent relativamentindependent i configurable de la implementació de la resta depàgines.

Page 222: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

204 CAPÍTOL 8. IMPLEMENTACIÓ DE LA INTERFÍCIE WEB

• Existeix definida una estructura conceptual per cada pàginaweb, cosa que permet explicar clarament els objectius i res-ponsabilitats de cada contingut que apareix a les pàgines im-plementades.

• Hi ha un estudi de diferents tipus de pàgines (en funció delsobjectius de les pàgines) i de continguts, que permet pensaren un desenvolupament basat en l’“ensamblament” de compo-nents , més que en un desenvolupament més clàssic. Aquestenfoc ens proporciona certa flexibilitat en el desenvolupament,ja que per al disseny final de les pàgines podem anar afeginti/o llevant les zones de contingut que ens interesse.

• Inherentement, per l’aplicació d’aquest marc de treball, estemintroduint elements que milloren la qualitat dels prototipus/a-plicacions desenvolupades, ja que obliga a pensar en com de-uen ser les pàgines web i quins continguts deuen proporcionaren funció del seu tipus.

• A més a més, aquesta estratègia ens pot servir per analitzarles aplicacions web ya desenvolupades i detectar virtuts i ca-rències, inclús servir d’estratègia per al possible mantenimentde les pàgines..

8.4 Introducció d’Aspectes de Disseny Gràfic

No cap dubte que la capa de presentació no es limita únicament enmostrar informació. Cada vegada cobra més rellevància que aquestaposeisca un disseny impactant però a la vegada funcional. Es potobservar com la Web va enriquint-se mostrant dissenys cada vegadamés espectaculars basats en animacions o generades amb eines deretoc professional. Per tant, no cap el menor dubte que encara que la

Page 223: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

8.4. Introducció d’Aspectes de Disseny Gràfic 205

finalitat d’una aplicació Web siga la de captar l’atenció de potencialsclients, els requeriments visuals per aconseguir-ho són un fet.

La tasca de definir l’aspecte que les aplicacions Web ha de tenir,no recau (o no deuria recaure) als mateixos programadors, sinó endissenadors gràfics. El que sí és cert, és que aquest grup professionalnormalment no tenen nocions sobre desenvolupament de programa-ri (ni de llenguatges de programació, eines, tecnologies, etc.), i escentren en triar tipografies, estructures de visualització, colors, etc.Tanmateix, de la mateixa manera que els requeriments no funci-onals de l’aplicació, aquestos requeriments de disseny són tambécambiants i les aplicacions Web actualment no estan dissenyadesper ser massa flexibles davant aquestos canvis.

En aquesta secció es presenta el problema de com abordar la defi-nició de l’aspecte visual de les aplicacions Web generades mitjançantl’entorn de desenvolupament que es presenta a la tesi. Actualment,aquestos detalls o requeriments visuals no són contemplats en caplloc dels models conceptuals proposats. La principal raó és queaquestos aspectes visuals no són definits per l’analista, sinó per undissenyador gràfic.

8.4.1 Situació actual. Problemàtica i Objectius

Abans de descriure el problema, cal reflexionar una mica en quin se-ria l’entorn de treball adequat per definir els aspectes visuals d’unaaplicació Web. Els dissenyadors necessiten normalment llibertat al’hora d’establir l’aspecte d’una aplicació Web, seguint unes pautesinicials normalment relacionades amb la creació d’“image corpora”,estratègies de màrketing, atracció d’usuaris, etc. I per a fer-ho,tenen les seues d’eines centrades en el disseny visual, en la líniade l’Adobe Photoshop, que no introdeixen en cap moment aspectesde programació d’aplicacions.

Page 224: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

206 CAPÍTOL 8. IMPLEMENTACIÓ DE LA INTERFÍCIE WEB

D’altra banda, els programadors sols haurien de preocupar-seque deu implementar-se l’aplicació Web, amb les seues pàgines Web,de manera que satisfaguen els requeriments inicials del sistema,i no barrejar els aspectes de disseny visual. És a dir, pareix clarque disseny i funcionalitat haurien d’estar separats, però açò no ésrealment un fet actualment, i no és un problema trivial.

Quan sorgí HTML, el seu objectiu principal era ser capaç dedefinir documents acadèmics que serien distribuits a través de laWWW. Als seus inicis importava pocs la tipografia o estructura deltext. Tanmateix, amb l’apogeu creixent d’Intenet, prompte s’aplicà aambient més general, convertint-se en un nou mitjà de comunicacióde mases. És en aquest moment quan no sols s’ha de compartirinformació, sinó que aquesta deu ser atractiva de cara a l’usuari.

En les versions estándars posteriors a HTML, es feu un treballfort en dotar a aquest d’elements que permeteren estructurar lainformació i definir com aquesta s’hauria de visualitzar. A partirdel llenguatge HTML 3.0, estadaritzat per la W3C1, quedà definidaaquesta estratègia de barrejar contingut amb mode de visualització.

L’evolució de la Web ha conduït a la introducció de llenguatgesaddicionals a HTML, que introdueixen aspectes de comportament ala informació. Amb aquesta evolució, la gran majoria de les pàginesWeb es formen fonamentalment amb dos llenguatges: 1) HTML pera definir els aspectes de contingut de dades i presentació d’aquestes;i 2) llenguatges dinàmics o d’script que poden executar-se tant enla part client (JavaScript, Perl, VBScript o Applets, entre altres)com en la servidora (CGI, ASP, PHP o Servlets, entre altres). Enqualsevol cas, el codi està inserit dins el propi HTML, de manera queel treball en la construcció del disseny visual i la funcionalitat estanlligats. En poques paraules, tant el dissenyador com el programador

1World Wide Web Consortium

Page 225: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

8.4. Introducció d’Aspectes de Disseny Gràfic 207

treballen sobre els mateixos recursos.Si a aquest problema afegim la inherent característica de les

aplicacions Web de “canviar” els seus requeriments, implica que lestasques de manteniment i evolució del programari es compliquen,forçant la interacció continuada entre dissenyadors i programadors.És per açò que cada vegada està més clara la necessitat del tàndemdissenyador-programador en el desenvolupament Web, per tal detenir una visió més global del procés.

Els frameworks basats en el patró Model-Vista-Controlador otecnologies com la recent ASP .NET introdueixen a aquest aspeteuna novetat important, separant el codi dinàmic del HTML. A travésde vistes es defineix el codi HTML estàtic que es completa mit-jançant crides al controlador depenent de la inforamció que desitjel’usuari. L’aparença visual s’implementa amb aquesta aproximaciós’implementa en aquestes vistes HTML, mentre que el codi de l’apli-cació és implementat en les classes controlador.

D’aquesta manera, el dissenyador pot definir una vista amb certaindependència, sense afectar a la funcionalitat. D’altra banda, elprogramador pot reutilitzar el codi d’una manera més eficaç gràciesa tots els mecanismes que li ofereix la programació orientada aobjectes. Únicament haurà de marcar els controls a emprar i a partird’ahí implementar el codi corresponent.

Però, aquest sistema no resol el problema completament, ja quesorgeixen incompatibilitats entre el disseny i la funcionalitat. Tan-mateix, proporciona un mecanisme base per al desenvolupament,aplicable a la Web, més flexible que la incrustació de tot el codi enHTML. Aquest últim cas, se’l sol anomenar com “codi spaghetti”.

En esència, la solució ideal no és altra que la capacitat de definirde manera separada els aspectes de visualització. Aquesta idea du-gué a la creació de plantilles que contenen la descripció dels aspectes

Page 226: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

208 CAPÍTOL 8. IMPLEMENTACIÓ DE LA INTERFÍCIE WEB

visuals de les pàgines d’una aplicació Web. Tanmateix, aquest sis-tema força a l’establiment d’alguna manera d’unes marques al codiHTML, que després són referenciats des de les plantilles. Aquestesmarques no estan predefinides, podent-se definir qualsevol conjunt,bé pels programadors, bé pels dissenyadors. Qualsevol modificacióa aquestes marques pot provocar canvis en la feina d’ambdós bran-ques.

A banda d’aquesta idea de treball, en principi encertada, apareixun problema greu: la reutilització del disseny. Les aplicacions Websolen tenir determinats elements comuns entre les seues pàgines,com ara les capçaleres, menús, estils de lletres, etc. Pareix lògic queallò ideal fora definir aquestos elements comuns i que aquestos forenheretats per les pàgines de l’aplicació. D’aquesta manera es podriamoficar allò que es considerara necessari i els canvis es propagarena tot el lloc web. Una cosa tan habitual encara no està suportadadirectament per cap tecnologia de desenvolupament Web.

Com solució general al problema de l’aparença visual de les apli-cacions Web, el W3C proposà l’adopció dels fulls d’estils en cascada(“Cascade Style Sheets (CSS)”) [134]. Bàsicament, un full d’estilspermet definir d’una manera organitzada regles d’estils (com la ti-pografia, colors, espaiats, disposició, . . . ) aplicats a les etiquetesd’HTML. Les regles CSS es poden definir aplicats directament alspropis elements o bé fer ús de marcat especial (definint identifi-cadors especials creats pel desenvolupador) i aplicar-ho a aquestmarcat, independentment de l’etiqueta HTML.

Els CSS solen estar definits en fitxers separats i compartits pertotes les pàgines d’una aplicació Web, de manera que els elementscomuns comparteixen estils de manera natural. Els avantatges sónevidents. D’una banda podem modificar tot l’aspecte d’una pàgina,d’una altra banda, el codi estarà “net” de regles de visualització.

Page 227: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

8.4. Introducció d’Aspectes de Disseny Gràfic 209

L’ús de CSS aporta gran flexibilitat en l’aspecte de la perso-nalització de l’aparença. Tanmateix, es deu tenir en compte comclassificar els elements. Devem establir les zones que deuen teniruna aparença comú en la nostra aplicació i definir el marcat (iden-tificadors) correctament per que posteriorment es puguen aplicaraquestes plantilles CSS. Així doncs, els elements que formen partdel menú seran inclosos en sota una identificació, la capçalera sotaaltra, i així amb la resta de zones comunes.

Arribats a aquest punt en el que pareix que CSS resol comple-tament el problema, podem ressenyar un problema que no resoladientment. Si bé és possible estructurar una aplicació Web demanera que es puga marcar amb identificadors compartits dins l’a-plicació per establir les regles de visualització als fitxers CSS, seriamolt interessant el que aquestes regles de visualització pogueren seraplicades directament a altres aplicacions Web. El problema arribaquan per aplicar les regles, l’estratègia de marcat és decissiva. Jaque hi ha llibertat a l’hora de definir aquest marcat i no hi ha unestàndar o convenció d’identificadors a utilitzar, cada aplicació tédefinits els seus i és pràcticament impossible que dos aplicacionscompartisquen aquest marcat.

Açò provoca que realment, les regles de visualització no siguenrealment reutilitzables de manera general. De fet, reestructurarl’estratègia de marcat d’una aplicació ja implementada per que sigaequivalent a una altra és una feina complexa, que requereix devegades de reenginyeria a partir de la implementació de les pàginesweb i costosa.

És a dir, els fulls d’estils en cascada són un bon mitjà per abordarla solució el problema de la introducció d’aspectes de disseny visual,però no són en sí la solució al problema.

Per tractar de donar una solució concreta a aquestos problemes,

Page 228: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

210 CAPÍTOL 8. IMPLEMENTACIÓ DE LA INTERFÍCIE WEB

l’estratègia d’implementació d’OOWS respecte al disseny visual deles aplicacions Web es basa en els següents principis:

• Separació de Conceptes: els analistes informàtics han de po-der definir els sistema d’informació sense tenir en compte capaspecte visual, ni definir cap tipus de codi associat. D’altrabanda, els dissenyadors gràfics han de definir l’aparença visualen base a unes directrius que no estan relacionades amb la tec-nologia d’implementació del sistema. Però, la tasca realitzadaper ambdós ha de poder fusionar-se d’una manera sistemàticai controlada.

• Reusabilitat: Un disseny gràfic deu poder ser emprat tantdins d’una mateixa aplicació com per diferents aplicacions Webd’una manera natural i sencilla.

• Adaptativitat: El disseny gràfic deu poder ser adaptat a les pe-culiaritats d’un domini concret. És a dir, a partir d’un dissenyvisual genèric, adaptar-lo a necessitats concretes d’una apli-cació Web concreta, aplicant modificacions que enriquisquenl’aparença visual.

• Patrons de Visualització: En la Web poden detectar-se pa-trons a nivell d’interfície que són emprats repetidament perdiferents aplicacions. Aquestos patrons de visualització, finscert punt podrien considerar-se “estàndars” i haurien de po-der incorporar-se al disseny d’una aplicació. Patrons com aradisposició bàsica d’elements (en columna, o “les opcions denavegació a l’esquerra i el contingut a la dreta”, . . . ), o comvisualitzar les opcions de navegació (com un llistat d’enlla-ços, com una paleta de pestanyes, . . . ), podrien ajudar a unadefinció ràpida del disseny visual de l’aplicació, agrupant percomponents d’una granularitat major.

Page 229: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

8.4. Introducció d’Aspectes de Disseny Gràfic 211

L’estratègia que OOWS empra per aplicar aquestos principis ésla següent:

1. Emprar llenguatges específics per la definició de les reglesde visualització (CSS) i fer-ho en fitxers separats: cap de lespàgines implementades proporcionarà informació de les reglesde visualització. A més a més, s’emprarà XHTML [135] enllocd’HTML. XHTML és el subconjunt d’etiquetes d’HTML encar-regades de definir contingut, i que no defineixen com aquestcontingut s’ha de visualitzar.

2. Definir un marcat de les pàgines web basat en termes concep-tuals i no en termes d’implementació. Açò li dota a l’estratègiade major reusabilitat, ja que es basa en emprar les mateixesprimitives que descriuen qualsevol aplicació web.

3. Crear dos fitxers per definir les regles de visualització: (1) unfitxer de regles dependents de domini, que inclouen els reque-riments de l’aplicació actual (o del mateix domini) i emprarantermes concrets d’aquest domini, i (2) un fitxer de regles inde-pendents del domini, que incloguen les regles genèriques queseran aplicades a qualsevol pàgina web, de manera indepen-dent al domini d’aplicació.

4. Publicar el repositori de dissenys gràfics i els patrons de visu-alització. Aquest repositori podria ser emprat per les pàginesweb implementades per obtenir les regles de visualització.

La implementació del Framework d’Interfícies Web (Secció 8.5.1)és responsable d’introduir el marcat adient a les pàgines Web, ienllaçar els dos conjunts de regles de visualització (dependents iindependents de domini). La Secció 8.4.2 explica com definir aquestmarcat i com aplicar-lo a la definició de les pàgines Web.

Page 230: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

212 CAPÍTOL 8. IMPLEMENTACIÓ DE LA INTERFÍCIE WEB

8.4.2 Estratègia de Marcat

Per complir amb aquestos requeriment, en l’entorn de desenvolupa-ment definit s’ha apostat per una estratègia per definir els aspectesestètics (“look and feel”) basada en plantilles de presentació definidesmitjançant el llenguatge CSS. CSS permet definir les propietatsvisuals dels elements HTML d’una manera separada al codi de lapàgina. Aquesta característica és la que permet dur a terme laseparació de rols, ja que el dissenyador gràfic pot encarregar-se detreballar en aquesta plantilla, i no dependre dels fitxers HTML ge-nerats per l’entorn. A més a més, evita que per error, el dissenyadorpuga canviar codi d’aplicació, introduint errors d’implementació.

Les plantilles CSS estan formades per regles que defineixen elconjunt de propietats visuals, no sols associades a etiquetes HTML(com ara <A> o <DIV>), sinò que és possible definir els nostreselements de marcat emprant la propietat id o class de CSS, quecreen marques d’usuari al codi HTML.

El codi HTML que genera el Framework WIF (Secció 8.5.1)té associat un conjunt d’etiquetes, que fan referència als cons-tructors conceptuals que provenen dels Models Conceptuals Webd’OOWS/OO-Method (Model d’Estructura d’Informació, Model Na-vegacional, etc.) sobre el que el framework es sustenta.

Podem distingir dos tipus clarament d’etiquetes, que estableixendos plantilles complementàries de regles de visualització:

• Les regles Independients del Domini es defineixen a partirde les primitives conceptuals d’OOWS/OO-Method, i els ter-mes que introdueix el framework. Aquest tipus de regles fanreferència a etiquetes com ara: InformationZone (zona d’infor-mació), AttributeName (nom d’atribut), NavigationLink (enllaçnavegacional), etc. Com es pot observar, aquestos conceptessón genèrics i poden emprar-se a qualsevol aplicació Web, siga

Page 231: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

8.4. Introducció d’Aspectes de Disseny Gràfic 213

del domini que siga. Aquest és el primer pas per aconseguirreusabilitat entre aplicacions.

• Les regles Dependents del Domini es defineix a partir deconceptes propis del domini de l’aplicació a construir, és a dir,a partir dels seu Model Conceptual. Suposant l’exemple deIMDb (Annexe B), per exemple, les marques estarien basadesen conceptes com: Movie, Director, GenreName, etc. Aquestosconceptes són específics d’aquest domini d’aplicació, i per tantno són aplicables en general a altres aplicacions. Però, d’altrabanda, són la base per adaptar una plantilla genèrica (obtesaa partir de regles Independents del Domini) i adaptar-la alsrequeriments específics d’aquest domini.

Ambdues plantilles són complementàries ja que, un elementHTML de la interfície pot tenir associades més d’una regla de vi-sualització en CSS. Algunes serien depenents del domini, i altresindependents. En cas de conflicte, ha de prevaleixer la dependentdel domini, per ser més específica.

La Figura 8.20 a la pàgina següent mostra un fragment de codiHTML produït pel framework, en el que s’aprecia el marcat d’amb-dós tipus d’etiques. Com es pot veure, la divisió principal <DIV>constitueix una zona d’informació, i va marcada amb les etiquetes:1) “MovieInformation” (dependent del domini), i 2) “InformationZo-ne” (independent de domini).

La Taula 8.2 mostra les zones web més representatives, i lesetiquestes Dependents de Domini (DD) i Independents de Domini(ID) que s’empren en aquestes zones.

Page 232: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

214 CAPÍTOL 8. IMPLEMENTACIÓ DE LA INTERFÍCIE WEB

Figura 8.20 – Exemple de codi HTML produït pelFramework

Etiquetes EtiquetesIndepend.Domini Depend.Domini

Cós Pàg. Web Context, Subsystem Nom del contexteo subsistema

InformationZone,AIU, Nom de la Zona,

ManagerClass, de l’AIUZona Informació ComplementaryClass, les classes navegacionals,

AttributeName, atributs, operacions, . . .AttributeValue,

OperationName, . . .NavigationZone, Nom dels contextes

Zona Navegació NavigationLink, i subsistemes de cadaNavigationGroup PahtStep

Zona Ubicació LocationZone, Nom dels contextes oPath, PathStep subsist. de cada PahtStep

Taula 8.2 – Principals Etiquetes de Marcat propo-sades per OOWS

Page 233: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

8.4. Introducció d’Aspectes de Disseny Gràfic 215

8.4.3 Regles de Visualització

Les regles de visualització defineixen com han de ser visualitzatsels elements d’una pàgina web, amb respecte a la seua ubicació,tamany, color, tipus de text, etc, depenent del tipus d’element alque l’etiqueta vaja associada. Aquestes regles es defineixen enfitxers addicionals emprant el llenguatge CSS. La Figura 8.21 a lapàgina següent mostra un exemple de la pàgina web que genera elframework, incloent el marcat tant dependent com independent deldomini.

Com s’ha comentat a la Secció 8.4.2, l’estratègia proposada defi-neix dos tipus de regles de visualització: les dependents del dominii les independents del domini. Per tant, hi haurà dos plantilles(repartides en fitxers diferents) amb aquestos grups de regles.

Combinant aquestes idees amb l’estratègia de marcat i l’ús delllenguatge CSS, poden definir regles de visualització realment com-plexes. Podem inclús definir regles que involucren aspectes depen-dents com independents del domini. Si una regla es defineix d’a-questa manera, haurà de considerar-se com dependent del domini,ja que empra etiquetes d’aquest tipus que no seran reutilitzables anivell genèric.

Per tant, els dissenyadors gràfics poden enfocar els seus esforçosen definir aquestos fitxers. No hi ha ja necessitat d’interactuaramb els desenvolupadors de l’aplicació, ja que coneixen a priori,a partir dels models i de l’estratègia de marcat, les marques quetindrà l’aplicació final. D’alguna manera, aquesta estratègia és laque serveix com contracte entre les tasques de disseny visual i lestasques d’implementació, sentant les bases per separar els esforçosi combinar-los d’una manera senzilla.

Vejem els següents exemples de regles de visualització, aplicat alcas d’estudi IMDb (Annexe B):

Page 234: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

216 CAPÍTOL 8. IMPLEMENTACIÓ DE LA INTERFÍCIE WEB

Figura 8.21 – Pàgina Web amb Marcat

• Requeriment de Visualització: “Ubicar la zona de navegació decada pàgina web a la part superior de la pàgina. Separar elsenllaços navegacionals d’aquesta zona mitjançant una barravertical. Totes les pàgines deuen mostrar el “logo” de IMDb”.Aquestos són 3 examples de regles de visualització indepen-

Page 235: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

8.4. Introducció d’Aspectes de Disseny Gràfic 217

dents de domini, ja que no estan definides en termes del modelconceptual d’IMDb, i podria extrapolar-se a qualsevol aplicacióWeb..

• Requeriment de Visualitzacio: “Els títols de les pel·lícules (Mo-vie) deuen aparèixer en lletra gran, negreta”. Aquest és unexemple de regla de visualització depenent del domini, ja quesols es pot aplicar al domini actual de l’aplicació, on hi hainformació de tipus Movie que té la propietat títol.

Per satisfer els requeriments de visualització independents dedomini presentats, la Figura 8.22 a la pàgina següent mostra unexemple de codi en CSS que ho representa. Com podem apreciar,s’especifica que tots els contextes han de tenir com a image baseun logo.jpg (que serà el de IMDb). Les zones de navegació s’hande possicionar de manera absoluta a la part superior de la pàgina(top=35px deixa un marge petit de la part superior). Finalment,quan es troben dos enllaços de navegació seguits dins una zonade NavigationGroup (que defineix un menú de navegació al fra-mework), s’estableix un border (creant una línia) i una separacióde 5 píxels entre els enllaços.

D’altra banda, la Figura 8.23 a la pàgina següent mostra la reglade visualització que diu que el tipus de lletra associat al títol (Title)de les pel·lícules (Class_Movie) han de mostrar-se en negreta (font-weight:bold) i un tamany de 15 pixels.

Com es pot observar, totes aquestes regles es poden definir demanera ortogonal a la construcció de les pàgines Web, aconseguintla separació de tasques entre el dissenyador gràfic i els programa-dors.

Page 236: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

218 CAPÍTOL 8. IMPLEMENTACIÓ DE LA INTERFÍCIE WEB

Figura 8.22 – Exemple de Marcat Independent deDomini

Figura 8.23 – Exemple de Marcat Dependent deDomini

8.4.4 El Paper del Framework

El framework (WIF) (Secció 8.5.1) és l’encarregat d’associar les mar-ques de les plantilles de presentació al codi que implementa l’apli-cació Web. Per a fer-ho, l’estratègia que segueix és la següent:

• En primer lloc, els constructors del framework produeixen co-di XHTML sense cap tipus de format predefinit. Tanmateix,

Page 237: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

8.4. Introducció d’Aspectes de Disseny Gràfic 219

aquest codi el marca mitjançant un conjunt d’etiquetes genè-riques (les independents del domini), que permeten al disse-nyador gràfic distingir els diferents components de disseny deles pàgines Web. D’altra banda, també introdueix el marcatdependent del domini a patir de la informació extreta delsmodels conceptuals. Ambdós marcats es realitzen de maneracompletament automàtica, sense intervenció de cap programa-dor o dissenyador. Per evitar col·lisions en els noms de lesmarques, tant dependents com independents de domini, s’haaplicat una estratègia de nomenat que té en compte aquestfet.

• D’altra banda, el framework proporciona un mètode, De-faultStyle, que pertany a l’objecte Aplicació (Annexe A), iens permet definir la plantilla de visualització que s’aplicarà.Aquestes plantilles hauran d’estar publicades en un repositoride plantilles de visualització, al que l’aplicació farà referència.És una tasca del dissenyador gràfic emplenar aquest repositorideplantilles, a partir de l’estratègia de marcat definida. Elframework s’encarrega d’associar aquestes plantilles al codiXHTML a mesura que les pàgines Web són accedides en tempsd’execució.

Suposem, sobre l’exemple d’IMDb, que s’ha especificat la següentconfiguració:$Application->DefaultStyle(“IMDB”);

El Framework generarà les següents línies de codi XHTML cadavegada que l’usuari accedisca a una pàgina de l’aplicació Web i car-regarà les regles de visualització:

Page 238: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

220 CAPÍTOL 8. IMPLEMENTACIÓ DE LA INTERFÍCIE WEB

<link rel=“stylesheet” type=“text/css” href=“X/IMDB/DD.css”>

<link rel=“stylesheet” type=“text/css” href=“X/IMDB/DI.css”>

sent X la URL on està publicat el repositori d’estils de visualit-zació, organitzats per carpetes (nom de l’estil) i contenint les reglesdependents (DD.css) i independents (DI.css).

Aquesta estratègia basada en plantilles dependents i indepen-dents de domini ens permet complir d’una manera clara dos delsprincipis que es proposaren al principi:

• Adaptabilitat: Canviar el “look and feel” d’una aplicació con-sisteix en canviar la crida al mètode DefaultStyle, passant-liuna nova plantilla. La Figura 8.24 a la pàgina següent mostraun exemple d’una mateixa pàgina web després d’aplicar-li dosplantilles de visualització diferents.

• Reusabilitat: totes les aplicacions Web desenvolupades mitjan-çant la OOWS Suiteestan implementades de manera que com-parteixen el marcat independent de domini (el mateix per a to-tes). D’aquesta manera, les plantilles independents de dominide qualsevol altra aplicació poden ser associades a qualsevolaplicació Web implementada d’aquesta manera. Si aquestaproposta de marcatge fora accepatada com un estàndar, l’a-firmació anterior podria convertir-se en: “qualsevol plantillaindependent de domini és aplicable a qualsevol aplicació Webdesenvolupada, i a l’inrevés”.

8.5 El Procés de Generació de codi

Una vegada definits els models conceptuals que especifiquen l’apli-cació Web, el següent pas és compilar aquestos models per produir el

Page 239: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

8.5. El Procés de Generació de codi 221

Figura 8.24 – Pàgina Web amb dos estils visualsdiferents

codi equivalent a l’aplicació. En l’actualitat existeixen dos possiblesalternatives en l’àmbit de la MDA per realitzar aquest procés. Enprimer lloc, l’aproximació elaboracionista proposa la definició d’unatransformació de PIM a PSM prèvia a la generació de codi. Enaquest cas, el desenvolupador por completar el PSM amb informa-ció addicional relacionaa amb la tecnologia destí, parametritzant laproducció del codi final.

La segona aproximació, anomenada de transformació automàti-ca, defén que a partir d’un PIM s’obtinga directament el codi mitjan-çant un conjunt de regles de transformació. En aquesta alternativa,el PSM segueix present, però d’una manera implícita en les regles detransformació, però no pot ser parametritzat, com esdevé en l’altraaproximació.

A l’hora de decidir quina aproximació MDA és més adequadaper al nostre procés de generació, cal preguntar-se si és realmentnecessari tenir un PSM. Dividir la generació de codi en dues etapessimplifica la complexitat de les regles de transformació, però provoca

Page 240: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

222 CAPÍTOL 8. IMPLEMENTACIÓ DE LA INTERFÍCIE WEB

que el procés general siga més complexe. A més, cal tenir el PSM pera les plataformes a les que va a generar-se, que no resulta trivial, acausa de la complexitat de les tecnologies d’implementació existents.

En conseqüència, el bot entre el PIM i el PSM és massa complexa pesar de la potència dels llenguatges de transformació de models.Açò és degut a que els llenguatges de programació Web imposen unaarquitectura de desenvolupament molt allunyada semànticamentde la que es pot obtenir a partir dels models conceptuals d’OOWS.D’altra banda, aquesta aproximació implica la definició d’un segonconjunt de regles de transformació que produisquen el codi a partirdel model.

Altre inconvenient de les transformacions PIM a PSM és el fetque l’analista ha de tenir coneixements tecnològics sobre el PSMa emprar, per tal de poder modificar-lo i manipular-lo. El mètodeOOWS persegueix just el contrari: que l’analista definisca l’aplicacióWeb de manera independent a la tecnologia.

Per tant, ja que definir i emprar un PSM com a pas intermedi enles transformacions no anava a proporcionar cap avantage real en elprocés de desenvolupament, es decidí descartar el seu ús explícit.

Ara bé, si produir codi a partir d’un PSM és complexe, obviamenta partir d’un PIM la dificultat augmenta. Cal aleshores definir unmecanisme que permeta simplificar les regles de transformació. Lasolució presa ha sigut la implementació d’un Framework d’imple-mentació d’Interfícies Web (WIF) que proporcione primitives d’altnivell per a la construcció de les aplicacions. La seua missió ésfacilitar la delegació dels problemes d’implementació a nivell d’im-plementació (i no de les regles de transformació).

Així, per exemple, l’autenticació d’usuari implica la definició degran quantitat de codi que realitze totes les comprovacions oportu-nes en un llenguatge de programació concret. Tanmateix, és possible

Page 241: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

8.5. El Procés de Generació de codi 223

construir una classe que encapsule aquesta funcionalitat i que laexpose a través d’un conjunt reduït de mètodes (Identificar Usuari,Difinir Rol d’Usuari, etc.). Les regles de transformació, enlloc degenerar tot el codi subjacent, únicament genera codi per realitzarles crides aquesta classe que encapsula aquesta funcioanlitat.

Emprant aquesta aproximació, les regles de transformció sónsignificativament simplificades i la transformació PIM a codi(model-a-codi) també es veu simplificada. Aquest framework WIFsegueix aquesta aproximació definint un conjunt de classes que ex-posen la funcionalitat típica de les interfícies Web.

En aquesta secció es presenta, a la Secció 8.5.1 el frameworkWIF, fent un repàs als constructors que proporciona. Després, ala Secció 8.5.2 es revisen els aspectes tecnològics per definir les re-gles de transformació, de manera que aquestes puguen representar-se i executar-se correctament. A la Secció ?? es mostren les reglesde transformació, i com s’apliquen emprant el framework WIF comtecnologia destí. Finalment, la Secció 8.5.3 mostra com el codi resul-tant de la transformació de models OOWS es comunica amb la lògicade negoci generada per OlivaNOVA, donant lloc a una aplicació Webcompletament funcional.

8.5.1 Framework d’Interfícies Web

El principal objectiu del Framework d’Interfícies Web, WIF és simpli-ficar les transformacions model-a-codi. Aquest framework ha sigutdesenvolupat amb PHP (versió 5) donada la seua àmplia acceptacióper construir frameworks Web.

L’Annexe A proporciona informació més detallada i completasobre aquest annexe. A més a més, en [121] es podrà trobar totala informació relativa a aquest, a més d’actualitzacions i milloresque se li vagen fent.

Page 242: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

224 CAPÍTOL 8. IMPLEMENTACIÓ DE LA INTERFÍCIE WEB

Per definir aquest framework s’han agafat alguns principis sobreles Factories de Programari. Així, per exemple, les primitives d’altnivell que abstrauen la implementació de les pàgines web es propo-sen com primitives de construcció dins el propi framework. Gràciesa aquest nivell d’abstracció, el “gap semàntic” entre els models PIMi el codi (del framework) es redueix dràsticament.

D’aquesta manera, les transformacions PIM-a-PSM se simplificaal màxim ja que existeix una relació directa entre els conceptes delPIM (model conceptual web) i les primitives del PSM (primitives delframework). Els avantatges i incovenients d’aquesta aproximació esdiscuteixen en [5]. Aquestes primitives són definides com un conjuntde classes que representen els conceptes comuns de les aplicacionsWeb, com ara: pàgina web, enllaç, menú de navegació, servei, etc.

Seguint aquesta aproximació, una aplicació Web pot ser definidacom un conjunt d’objectes que especifiquen el tipus de funcionalitatque han de proporcionar. Els objectes definits pel framework perconstruir una aplicació Web són: Application, Page i Zone.

L’objecte Application, únic en l’aplicació, conté informació glo-bal de l’aplicació. Així, el mètode Role permet definir els diferentstipus d’usuaris que poden accedir a l’aplicació, mentre que la pro-pietat AllowAnonymous habilita l’accés a usuaris anònims. També,sobre aquest objecte Application es defineixen el conjunt de pàginesamb el mètode AddPage (aplicat sobre objectes de tipus Page

L’objecte Page està relacionat amb la implementació d’una pà-gina Web. Seguint els principis vistos en Secció 8.2, aquest objectedefineix una pàgina web com una agregació de zones de contingut.Una zona pot ser definida com una peça independent que composa lapàgina web, amb un objectiu clar. Aquest objecte Page proporcionamètodes per afegir aquestes zones de contingut, com ara AddNavi-gationZone o AddInformationZone.

Page 243: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

8.5. El Procés de Generació de codi 225

L’objecte Zone defineix qualsevol contingut d’una pàgina. Perexemple, si definim una zona d’informació, aquest objecte proporci-ona el mètode AddField per seleccionar els atributs que es recupe-raran ó el mètode AddDetail que mostra la informació recuperadaa través d’una relació d’associació-agregació-composició o herència.Els mecanismes per definir filtres o indexos també s’especifiquenen aquest objecte mitjançant els mètodes DefineFilter i DefineIndex,respectivament.

Ja que aquestos conceptes no són únics d’OOWS (no provenendirectament de les seues primitives), aquest framework podria seremprat per altres mètodes d’enginyeria web en la seua fase degeneració. A més a més, el framework facilita la inclusió d’aspectesde disseny estètic per mig de plantilles que poden ser adaptades ireutilitzades com es pot veure en [128].

La Figura 8.25 a la pàgina següent mostra un exemple de pàginaweb del cas d’estudi de IMDb on es poden veure els objectes delframework WIF i una representació concreta. Quan un usuari fauna petició a l’aplicació, el framework crea un conjunt d’objectesque construeixen la pàgina web sol·licitada (Application, Page, Zone,etc.). Aquestos objectes produeixen una eixida en codi XHTML quees enviat al navegador client.

8.5.2 Regles de Transformació. Aspectes Tecnològics

Per definir les transformacions de model a codi, hi ha varies aproxi-macions. Alguns autors suggereixen l’ús de transformacions basa-des en grafs [65], altres mitjançant llenguatges de suport basadesen plantilles [36], i altres que defensen l’ús de transformacions enXSLT [30].

D’aquestes, el primer de transformacions, les basades en grafs,són molt adients per realitzant transformacions model-a-model. Les

Page 244: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

226 CAPÍTOL 8. IMPLEMENTACIÓ DE LA INTERFÍCIE WEB

Figura 8.25 – Exemple de Codi Web emprant elframework WIF

regles defineixen l’homomorfisme entre els grafs. Però per a rea-litzar transformacions model-a-codi (“PIM-to-code”), que és el quepretenem, no són massa adients.

Els altres dos grups de transformacions són en realitat basats enplantilles. XSLT és un exemple concret de llenguatge de plantilles,que empra com a base XML. No s’ha triat aquest tipus de trans-formacions per la limitació que imposen, ja que l’orige ha de sernecessàriament XML i la potència expressiva del llenguatge XSLTes queda curta en certes circumstànces.

És per açò que hem seguit la filosofia de la transformació mit-jançant plantilles, amb llenguatges específics creats a propòsit per aaquesta feina. MOFScript [38] i openArchitectureWare (oAW) [120],són dos llenguatges referència en aquest aspecte, i ambdós han sigutemprats en la definició de diferents generadors [121].

La Secció ?? mostra l’ús de oAW per realitzar les transformacionstenint com destí el framework WIF. El principal avantatge de oAW

Page 245: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

8.5. El Procés de Generació de codi 227

amb respecte a altres llenguatges és que proporciona un bon suportdins l’entorn Eclipse [36], de manera que pot ser fàcilment integraten l’entorn MDA proposat. Emprant aquest llenguatge, les regles detransformacions es defineixen a patir de les primitives conceptuals,que agafen com entrada. A partir d’aquesta informació conceptuales completa una plantilla de codi.

Per definir el procés de generació amb OOWS, s’han definit unconjunt de regles que agafen les primitives conceptuals d’OOWScom entrada. Cada element OOWS té una relga que produeix codiemprant el Framework d’Interfície Web. Des d’un punt de vistaMDA, acçò s’anomena Transformació Automàtica, ja que no cal unPSM intermig per realitzar les transformacions.

L’exemple de la Figura 8.26 a la pàgina següent ilustra aquestprocés. El Model Navegacional (descrit al Capítol 4) té una reglaassociada, anomenada ModelNavigationalRule que genera el codique afig l’usuari com a Rol dins el framework (un usuari ambaccés al sistema). Després, per a cada Contexte Navegacional quees trobe, es crea una pàgina en el framework amb la invocació a:$Application->Page().

Com es pot apreciar, les regles de transformació són prou simplesgràcies al framework implementat, que redueix la distància delsconceptes del domini i de la solució, i internament dona una solució anivell d’implementació comuna a al conceptes del domini (que podenser vists com patrons).

8.5.3 Integració funcional amb la lògica de negoci

Com s’ha indicat al llarg d’aquest treball, a partir dels modelsOOWS es pot generar una interfície Web aplicant unes regles detransformació o compilació de models. Aquesta interfície Web noconstitueix per sí una aplicació Web, ja que no proveeix la fun-

Page 246: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

228 CAPÍTOL 8. IMPLEMENTACIÓ DE LA INTERFÍCIE WEB

Figura 8.26 – Transformacions Model-a-Codi

cionalitat necessària. L’arquitectura del framework WIF ha sigutdissenyada de manera que fora allò més independent possible la im-plementació de la lògica de negoci. Així, és possible acoplar diferentslògiques de negoci a la interfície, o no lligar l’interfície en funció decom estiga implementada la lògica.

Actualment, les implementacions del compiladors de modelsexistents d’OOWS2 s’han centrat en emprar la lògica de negoci ge-nerada per OO-Method/OlivaNOVA. Tanmateix, existeix la possi-bilitat tant de proporcionar una lògica de negoci implementada enPHP o mitjançant Serveis Web externs [110].

Per desacoplar la lògica de negoci, la solució adoptada ha sigutla d’aplicar el patró façana de negoci (“facade”) de la colecció depatrons de [44]. L’objectiu d’aquest patró és el d’oferir una interfícieúnica d’un subsistema per facilitar el seu ús. En el nostre cas,el subsistema està format pel conjunt de classes que proporcionenla funcionalitat. Emprant una única interfície predefinida, no solssimplifiquem les interaccions, sinó que per a la resta de classes delframework, és transparent com s’implemente aquest subsistema.

Per que les diferents lògiques de negoci definisquen la mateixafaçana de negoci, s’ha definit al framework la interfície Bussiness

2En [121] poden trobar-se més compiladors: de OOWS a ASP, i OOWS a PHP,ambdós realitzats en MOFScript, disponibles en el moment de finalització d’aques-ta tesi.

Page 247: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

8.5. El Procés de Generació de codi 229

Facade, que implementa un objecte façana concret. Aquesta interfí-cie exposa els següents mètodes que hauran de ser definits, en funcióde la lògica i tecnologia subjacent:

• QueryPopulation: retorna la població relacionada d’una classedeterminada. Rep com argument l’identificador de la classe,una colecció amb els identificadors dels atributs a mostrar i unconjunt de filtres per restringir les instàncies a partir de lescondicions de filtrar. Un exemple de consulta: “recuperar elnom i gènere (atributs) de totes les pel·lícules (classe) de l’any2007 (filtre)”.

• QueryById: retorna una única instància d’una classe a partirdel seu identificador oid. Rep com arguments l’identificadorde la classe, una colecció amb els identificadors dels atributs amostrar i l’identificador únic de la instància a recuperar. Unexemple de consulta: “recuperar el nom i any (atributs) de lapel·lícula (classe) amb l’identificador (oid) de valor 115”.

• QueryRelated: a partir de l’identificador oid d’una instància,retorna totes les instànces que pertanyen a altra classe rela-cionada. Rep com arguments l’identificador de la classe orige,una colecció amb els identificadors dels atributs a mostrar dela classe relacionada, l’identificador únic (oid) de la instànciade la classe orige, l’identificador de la relació entre ambduesclasses i opcionalment una colecció de filtres. Un exemplede consulta: “recuperar els noms (atribut) de tots els actors(classe relacionada) de la pel·lícula (classe) amb identificador(oid) 115, que s’obté a través de la relació amb la classe actoranomenada Participa”.

• ExecuteService: executa una operació que pertany a la lògicade negoci a partir de l’identificador únic d’un servei i el conjunt

Page 248: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

230 CAPÍTOL 8. IMPLEMENTACIÓ DE LA INTERFÍCIE WEB

dels seus arguments. Com argument s’envia el valor (com unacadena de text) i el tipus de dades. El mètode retorna cert sil’execució del servei ha sigut correcta o fals en cas contrari.

• GetServiceResponse: recupera el resultat o l’error de l’últimservei executat en la façana de negoci. No rep arguments.

La façana de negoci descrita conté la funcionalitat mínimaque necessita una interfície Web desenvolupada mitjançant el fra-mework. La interfície presuposa que la lògica de negoci prové d’undiagrama de classes implícit. Els diferents mètodes retornen pertant els objectes i instàncies tal i com les entén el framework.

D’altra banda, la lògica d’integració ha de ser implementadamanualment en funció de la plataforma destí. En el cas d’aplicacionsgenerades amb OlivaNOVAo que seguisquen una arquitectura per-fectament definida, únicament és necessari implementar la façanade negoci una sola vegada. Però, si la funcionalitat prové de ServeisWeb dispars, aquesta aproximació no resulta possible.

Com avantatge, la lògica d’integració es troba definida en un úniclloc i totalment desacoplada de la resta del framework, de maneraque l’impacte de canviar o introduir noves plataformes es minimitza.Per defecte, el framework incorpora una façana de negoci que escomunica amb aplicacions OlivaNOVA, que es descriu a continuació.

La lògica de negoci modelada amb OlivaNOVAes produeix através d’un dels motors de transformació que proporciona. Aquestosmotors, anomenats OlivaNOVA Transformation Engines [22], sónimplementacions de diferents processos de compilació de modelsconceptuals OO-Method. Cada motor implementa: (1) un repositoridel model conceptual, (2) un repositori del model d’aplicació, (3)un conjunt de correspondències entre els elements dels repositorisanteriors i (4) un conjunt de transformacions associades a cadascundels elements del repositori del model d’aplicació.

Page 249: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

8.5. El Procés de Generació de codi 231

El repositori del Model Conceptual és comú a tots els motorsde transformació i és capaç de carregar models emmagatzemats enXML d’intercanvi produïts per OlivaNOVA Modeller.

El resultat d’una transformació varia en funció de la tecnologiadestí triada (.NET, J2EE). Tanmateix, l’arquitectura de l’aplicació esdivideix en dos components clarament diferenciats: un componentclient, que encapsula l’interfície modelada, i un component servidor,que encapsula la funcionalitat i l’accés a la Base de Dades. Per tant,una aplicació OlivaNOVAestà formada per dos components basatsen el mateix model conceptual, però independents des del puntde vista de la mplementació. Amb l’aproximació OOWS es preténsubstituir el component client per l’interfície Web implementadaamb el framework WIF.

Per acotar el problema i demostrar la viabilitat, la implementa-ció actual del framework només té en compte la plataforma .NETque genera OlivaNOVA, on la lògica de negoci s’encapsula com uncomponent COM+, i la base de dades es genera amb SQL Server.

Es pot veure que la integració entre els seus components clienti servidor no és diferent que la integració que és pretén en aquesttreball. Per tant, pareix raonable aplicar el mateix mecanisme. Enles aplicacions generades, aquesta integració es produeix mitjançantuna API que exposa la funcionalitat com si les classes foren part delclient. Per cada classe del model, es genera una classe Proxy [44] através de la qual la interfície accedeix a la lògica i la base de dades.Aquesta classe Proxy implementa la lògica necessària per realitzarles crides al component servidor. D’aquesta manera, la lògica denegoci és transparent a la interfície.

Malgrat aço, l’ús d’aquesta API no és possible, i més quan depende la tecnologia d’implementació. És a dir, si el component servidorés generat mitjançant .NET, les classes de la API estan implemen-

Page 250: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

232 CAPÍTOL 8. IMPLEMENTACIÓ DE LA INTERFÍCIE WEB

tades en .NET, i per tant la interfície ha de ser capaç de treballaramb aquesta tecnologia.

Per tant, s’optà per una altra comunicació que proporciona Oliva-NOVA: intercanvi de missatges XML de petició/resposta, que constadels següents passos:

• En primer lloc, el component client construeix un missatgeXML mitjançant l’API, per realitzar una operació (de consulta,per exemple).

• Aquest missatge s’envia al component servidor, on es processai s’invoca la operació sol·licitada.

• El resultat de l’operació es torna a codificar com XML i ésenviada al component client com resposta.

• La responsta és rebuda pel component client, que s’encarregade processar la inforamció i enviar-la a les classes de la inter-fície com objectes.

Per tant, podem deduir que el rol de l’API és facilitar la construc-ció de missatges XML des del punt de vista de la interfície. Des delpunt de vista de la generació de codi, aquesta aproximació, igual queel framework, permet abstraure codi complex mitjançant un conjuntsencill de mètodes que realitzen aquesta funció.

La solució adoptada ha sigut la de crear els missatges en lafaçana de negoci. Quan una classe de la interfície sol·licita unafuncionalitat de la capa de lògica, en la façana de negoci es constru-eix el missatge corresponent i s’envia al component servidor. Unavegada rebut el missatge, aquest és processat en la mateixa façanai emmagatzemat en les estructures de dades que esperen la restade classes del framework. El XML en el que es basen els missatges

Page 251: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

8.5. El Procés de Generació de codi 233

és propietari d’OlivaNOVA, pero fàcilment comprensible i manipu-lable.

Page 252: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions
Page 253: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

CAPÍTOL 9OOWS SUITE: EINA DE SUPORT

El Desenvolupament de Programari Dirigit per Models (Model-Driven Software Development (MDSD)) és una disciplina que es-tà començant a produir resultats interesants. Hi ha diferents in-dicadors optimístics relacionats amb la implementació industriald’aquesta filosofia de desenvolupament. Per exemple, la creixentpopularitat de l’estàndard MDA [82] proposada pel grup OMG o lafilosofia de les Factories de Programari [57] proposades per Micro-soft.

Potser, l’indicador més prometedor de resultats és el continudesenvolupament d’eines i tecnologies per construir eines CASE persuportar el MDSD, com ara el Projecte de Modelatge Eclipse [36]i les Eines DSL [74] que estan integrades en el propi MicrosoftVisual Studio. Altres eines comercials que donen suport explícit pera MDSD són OptimalJ [29] o AndroMDA [7], que també plantejenun escenari prometedor.

Aquest capítol revisa els aspectes tecnològics que s’han tingut en

235

Page 254: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

236 CAPÍTOL 9. OOWS SUITE: EINA DE SUPORT

compte a l’hora de construir l’eina OOWS Suitede suport al mètodeOOWS. Primer, en la Secció 9.1 es revisen els principis per desenvo-lupar un entorn que seguisca l’aproximació MDA. En la Secció 9.2,s’analitza l’estat dels Entorns de Producció Dirigits per Models i elsseus objectius principal. Amb aquestes premises com base, es pre-senta l’Editor de Models (Secció 9.3), que permet fer un tractamentde la persistència i manipulació dels models, així com de la visua-lització d’aquestos. Finalment en la Secció 9.4, s’introdueixen elsaspectes considerats per la construcció d’un Compilador de Models il’estratègia seguida per a aconseguir-ho.

9.1 Definició d’un Entorn de Desenvolupa-ment MDA

Les metodologies de desenvolupament de programari s’estan enca-minant cap a l’ús de models no com mera documentació del procés,sinó com elements claus a l’hora d’obenir una implementació defini-ta. A pesa de compartir un estàndar comú, ha aparegut MDA [82]per impulsar el desenvolupament de programari a partir de models,sentant unes nocions bàsiques amplament acceptades.

En essència, MDA és una nova metodologia per la definició d’es-pecificacions i desenvolupament d’aplicacions, que es basa en latransformació de diferents models que van refinant la funcionalitatde l’aplicació fins obtenir el codi final. És precís distingir MDA deMDD (de l’anglés “Model Driven Development”, “DesenvolupamentDirigit per Models”), que és una aproximació de desenvolupamentde programari basat en models conceptuals i la genearació de l’apli-cació a partir d’aquestos.

Al ser MDA una aproximació, sols recomana una estratègia ge-neral a seguir, però sense indicar plataformes, estàndars o processos

Page 255: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

9.1. Definició d’un Entorn de Desenvolupament MDA 237

que ajuden a complir-la. MDA es fonament en tres idees principals:

1. Representació Directa: es deu tractar d’apartar el desenvo-lupament de programari del domini de la solució o representa-ció tecnològica d’aquest, per centrar-se en les idees i els concep-tes del domini del problema. Reduint la distància semànticaentre el domini del problema i la seua representació, permetobtenir solucions més precises als problemes plantejats.

2. Automatització: emprar eines per mecanitzar totes aquellestasques del desenvolupament de programari que no necessi-ten de la creativitat humana. Per això, es deu enfatitzar latransformació entre models i la generació automàtica de codi apartir d’aquestos.

3. Estàndars Oberts: el fet que els estàndars siguen obertsfacilita qeu siguen adoptats per la indústria, possibilite la in-teroperabilitat i que l’usuari final tinga possibilitats d’elecció.

En l’aproximació MDA, en primer lloc es modela un PIM(“Platform-Inependent Model”, Model Independent de Plataforma),que deu capturar la funcionalitat de l’aplicació web de manera in-dependent a la plataforma tecnològica en que serà desenvolupada.Aquest PIM haurà de ser transformat definint les regles corres-ponents, en un PSM (“Platform-Specific Model”, Model Dependentde Plataforma) que estarà basat en les característiques concretesd’una plataforma d’implementació. A partir d’aquest PSM serà ons’aplicaran les transformacions definitives per aconseguir el codi del’aplicació.

Per tanto, una aplicació MDA consisteix en un PIM i un o variosPSMs, un per cada plataforma tecnològica destí. La Figura 9.1 a lapàgina següent mostra un resum del procés definit per MDA:

Page 256: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

238 CAPÍTOL 9. OOWS SUITE: EINA DE SUPORT

Figura 9.1 – Procés MDA

Tant OO-Method com OOWS han sigut dissenyat tenint encompte la seua implementació dins un procés MDA. La implemen-tació comercial MDA d’OO-Method, OlivaNOVA, compleix aquestespremises definint un PIM i varios PSM (en forma de motors detransformació) per a diverses plataformes.

L’elecció de MDA com aproximació de desenvolupament ha sigutmolt fructífera per l’eina OlivaNOVA, demostrant que és possibledesenvolupar programari més ràpid i amb menor número d’errorsque seguint una aproximació tradicional. Veient l’acceptació in-dustrial d’aquesta eina, es considerà adequat no partir de zero ireutilitzar les idees per definir l’entorn de producció d’OOWS.

Seguint aquestes premises, s’ha construit un entorn paral·lel aOlivaNOVAque permet treballar amb els Models definits per OOWS,així com integrar les aplicacions generades aquesta eina amb lessolucions generades pels motors de transformació d’OlivaNOVA.

Page 257: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

9.1. Definició d’un Entorn de Desenvolupament MDA 239

Aquest entorn, anomenat OOWS Suite, introdueix una sèried’eines per a, basant-se en l’aproximació OOWS, fer una extensióconservativa d’OO-Method, per donar suport al desenvolupamentd’aplicacions Web. Aquest procés de desenvolupament ha sigutpresentat al Capítol 3.

Des d’un punt de vista MDA, el procés que defineix l’entorn potdividir-se en tres etapes:

1. Modelatge: es construeix el PIM que defineix els diferentsaspectes d’una aplicació Web. D’una banda, els models OO-Method que capturen els aspectes estàtics i de comportamentsón definits mitjançant l’editor de models OlivaNOVA Mode-ller [21]. D’altra banda, les extensions web són definides ambajuda de l’eina OOWS Visual Editor. La Secció 9.3 presentaaquest editor i la interacció amb l’eina OlivaNOVA Modeller.

2. Generació de codi: en aquesta etapa, es duen a terme dosprocessos de generació de codi paral·lels. D’una banda, el mo-tor de transformacions d’OlivaNOVA(els OlivaNOVA Trans-formation Engines) obté el codi basat en una arquitectura detres capes a partir de models OO-Method. Per això realitzatransformacions PIM-PSM-Codi implementada mitjançant elmotor de transformació corresponent [22]. D’altra banda, elOOWS Model Compilergenera una interfície Web mitjançantuna transformació PIM-PSM a codi. El PSM es troba im-plementat implícitament al framework WIF (Annexe A). Lestransformacions es realitzen agafat el PIM com orige i obtenintcodi destí amb el framework.

3. Integració: la integració de la informació capturada pelsmodels OO-Method amb la informació capturada pels modelsOOWS es duu a terme a nivell d’implementació. La interfície

Page 258: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

240 CAPÍTOL 9. OOWS SUITE: EINA DE SUPORT

Figura 9.2 – Procés de Desenvolupament MDA deOOWS Suite

Web generada a partir dels models OOWS està basada enel framework, que s’encarrega d’interactuar amb la lògica denegoci d’OlivaNOVA

Del resultat d’aquest procés s’obté la lògica de negoci i la per-sistència (OlivaNOVA), explotades per una interfície Web obtesa apartir dels models OOWS emprant el framework WIF.

Per desenvolupar el procés ací descrit, cal definir un entorn que

Page 259: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

9.2. Entorns de Producció Dirigits per Models 241

permeta treballar en totes les fases. En el marc del Desenvolupa-ment Dirigit per Models estan sorgint cada vegada més eines quedonen suport a aquestos desenvolupaments. En la següent secciós’analitzen les alternatives disponibles i perquè acabem emprant lapaltaforma Eclipse.

9.2 Entorns de Producció Dirigits per Mo-dels

Tot procés de desenvolupament ha d’estar suportat per un entorn,és a dir, un conjunt d’eines, editors, etc. que ajuden al desenvolu-pador a seguir un mètode. En l’àmbit del desenvolupament dirigitper models, tradicionalment s’havia apostat per la personalitzaciód’eines CASE com Rational Rose, ArgoUML o Together. Aquesteseines proporcionen editors gràfics, generalment basat en UML, quepoden ser personalitzats mitjançant estereotipus.

Tanmateix, les funcionalitats de personalització són molt limita-des, tant a nivell gràfic, com de generació de codi (on pràcticamentsón nules). Per aquest motiu, aquestes eines han quedat relegadespràcticament a l’àmbit de la documentació gràfica.

Per fer front a aquesta situació, han començat a sorgir einesper la construcció d’entorns de producció de programari dirigit permodels. Aquestes eines no es basen en la personalització d’einesgenèriques preexistents, sinó en la construcció de Llenguatges deDomini Específic (“Domain Specific Languages”, DSL) que represen-ten amb fidelitat els conceptes amb que es pretèn treballar.

A partir d’aquestos DSLs, es poden obtenir editors (inclús gràfics)per als models, a més d’introduir aspectes de validació i generacióde codi.

Actualment hi ha dos tendències que es troben enfrontades,

Page 260: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

242 CAPÍTOL 9. OOWS SUITE: EINA DE SUPORT

encara que comparteixen les premises del desenvolupament dirigitper models: l’aproximació proposada pel Projecte Eclipse [36] i lesFactories de Programari [57]. D’una banda ens trobem amb un grupd’empreses que recolzen la proposta MDA, entre les que destacaIBM. L’estratègia d’IBM està basada en l’IDE de codi lliure Eclipse,un entorn de desenvolupament de programari extensible que estasent molt ben acollit per la comunitat de desenvolupadors.

El desenvolupment dirigit per models que proposa IBM és co-herent amb les propostes d’estandarització de l’OMG i per tant,segueix els estàndars definits per aquesta. La proposta d’IBM esbasa en enfatitzar l’ús de l’UML com estàndar de modelatge, em-prant els Perfils UML per centrar-se en dominis concrets. Així, amés d’emprar UML com llenguatge de modelatge gràfic, empra XMI(XML Model Interchange) per serialitzar els models i així estanda-ritzar les eines, i per representar i manipular els llenguatges dedomini específics aposta per l’ús de MOF o els Perfils UML. Per ala definició de representacions d’informació o esquemes de base dedades, proposa CWM (Common Warehouse Model). La Figura ?? ala pàgina ?? mostra la visió de MDA segons IBM i com entren en jocaquestos estàndars.

9.2.1 El Projecte Eclipse

Com nexe comú que proporcione cohesió a tots els estàndars, s’-ha definit una extensió per eclipse anomenada “Eclipse ModelingFramework” (EMF) [35]. EMF és un framework de modelatge igeneració de codi per a la construcció d’eines i aplicacions basades enun model de dades estructurat. Aquest model haurà de ser descritemprant XMI i a partir d’aquest, EMF és capaç de proporcionarun conjunt de classes en Java que el sustenten. Açò permet, entrealtres coses, generar un editor senzill, textual, que serveix per a la

Page 261: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

9.2. Entorns de Producció Dirigits per Models 243

Figura 9.3 – Visió de MDA segons IBM

visualització i edició del nostre model.Per a la descripció interna dels models, EMF inclou el seu propi

metamodel, basat en MOF, que rep el nom de Ecore. A partird’aquest metamodel, es proporciona serialització en XMI a una APIper a la manipulació dels objectes que el composen.

Una altra característica interessant del framework EMF, és queinclou un conjunt de classes reutilitzable, per a la creació d’editors imodels basats en Ecore. La creació d’aquest editor no és limita sols ales classes, sinó que també és possible obtenir una interfície gràficaque el soporte.

Però EMF no proporciona tot allò necessari per a la construcciód’una eina final usable i productiva. Els editors textuals manipu-len els models en estructures d’arbre, complicant la manipulació ienteniment de models de cert tamany.

Per solventar açò, s’està desenvolupant un framework gràfic,“Graphical Modeling Framework” (GMF) [37], amb l’objectiu de fa-cilitar la definició i construcció d’editors gràfics. La definició d’un

Page 262: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

244 CAPÍTOL 9. OOWS SUITE: EINA DE SUPORT

Figura 9.4 – Definició d’un editor gràfic amb GMF

editor gràfic amb GMF es resumeix en la Figura 9.4. A partir d’unmetamodel expressat en Ecore (i que defineix el DSL), es defineix lanotació gràfica que emprarà l’editor (.gmfgraph), els elements per ala creació de les primitives de modelatge (.gmftool) i la correspon-dèncie entre aquestos elements gràfics i el metamodel (.gmfmap).

Una vegada realitzada aquesta especificació, GMF genera demanera automàtica un plug-in d’Eclipse que pot emprar-se comeditor gràfic del metamodel (DSL) definit com punt de partida.Aquest editor es genera prenent com base les tecnologies EMF i GEF(“Graphical Editing Framework”), podent ser extés de forma manualmitjançant les possibilitats que ambdós frameworks proporcionen.

9.3 Editor de Models d’OOWS

L’objectiu principal de l’Editor Visual d’OOWS és donar suport a lacreació i manipulació dels models conceptuals OOWS. Aquest editor

Page 263: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

9.3. Editor de Models d’OOWS 245

ha sigut desenvolupat emprant Eclipse GMF, cobrint els següentsrequeriments fonamentals:

• Creació i Persistència de Models: L’editor ha de propor-cionar mecanismes que faciliten la creació de models OOWS,respetant sempre el seu metamodel, i la sserialització delsmodels en un llenguatge estàndar.

• Edició Visual de Models: Per facilitar la construcció demodels era necessari desenvolupar una eina d’edició visual demodels, similar a les eines CASE industrials.

9.3.1 Persistència del Metamodel en EMF

Per a la creació i persistència de models, s’han emprat els compo-nents que proporciona EMF. En primer lloc fou construida la de-finició en Ecore a partir del metamodel d’OOWS. Aquest es trobadisponible en [121]. A partir d’aquesta definició del metamodel,EMF proporciona automàticament un entorn per poder crear i modi-ficar els models, de manera textual en forma d’arbre. Aquest editordisposa d’algunes funcionalitat avançades, com la possibilitat derestringir la cardinalitat o valors possibles de les relacions, validarel model o mostrar diferents vistes del model. A més a més, EMFemmagatzema els models en XMI, obrint el camí a l’intercanvi demodels amb altres eines.

La Figura 9.5 a la pàgina següent mostra l’editor generat auto-màticament per a una especificació OOWS.

9.3.2 Editor Gràfic en GMF

Per a la construcció de l’editor gràfic, es trià GMF. Aquest editorestà actualment subdividit en tres editors, que cubren un part con-

Page 264: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

246 CAPÍTOL 9. OOWS SUITE: EINA DE SUPORT

Figura 9.5 – Editor EMF del Metamodel d’OOWS

creta del metamodel: l’editor de Models d’Usuari, l’editor de MapesNavegacionals i l’editor de Unitats d’Abstracció d’Informació.

Ja que la notació gràfica d’OOWS és molt semblant a la d’UML,gran part de la notació gràfica ja era proporcionada d’avantmà perGMF, com la definició de les classes contenidores, les fletxes, elspaquets, etc. Tanmateix, l’editor no ha sigut completat a causa derestriccions en la plataforma, anuncis de canvis en versions imme-diates i l’estat encara no suficientment madur de GMF. Aquestesrestriccions implicaven, de vegades, la modificació del metamodel(Ecore) per poder representar gràficament alguns constructors. Ésper açò que l’editor sofrirà millores en un futur proper quan GMF

Page 265: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

9.3. Editor de Models d’OOWS 247

avance en el camí que es planteja.Tanmateix, tot allò que de moment no pot ser representat grà-

ficament, pot gestionar-se mitjançant l’editor textual que proposaEMF, que és completament funcional. estos problemas se esperaque estén resueltos en un futuro próximo, se decidió dejar

La definició dels models OOWS es realitza partint del model es-tructural d’OO-Method definit mitjançant el OlivaNOVA Modeller.Les UAIs que formen els contextes poden definir-se com vistes sobreles classes, atributs i relacions d’aquest model OO-Method. Aixídoncs, la interacció entre ambdues eines de modelatge es durà aterme a través del model estructural d’OO-Method.

Per començar a crear els models OOWS, és necessari importar eldiagrama de classes d’OO-Method a l’entorn de l’eina. La importaciódirecta d’un model creat en OlivaNOVA Modellerno és possible enEclipse ja que el XML en que s’emmagatzema segueix un esquemapropietari. Si bé l’eina inclou mecanismes d’exportació a XMI [69],la versió de XMI especificada no és compatible amb Eclipse.

Per tant, és necessari definir un mecanisme per importar aques-tos models definits amb l’OlivaNOVA Modeller. Per complir aquestatasca, s’han d’implementar dos tipus de mecanismes: (1) mecanis-mes que faciliten a l’eina OlivaNOVAl’exportació del model estruc-tural, i (2) mecanismes que faciliten als editors gràfics d’OOWS laimportació del model.

Com que OlivaNOVAemmagatzema el seus models en XML, s’hafet que siga aquest document el que servisca d’entrada als editors.Així, la solució adoptada ha sigut processar aquest XML amb unaplantilla de transformació XSLT, de manera que s’obtinga com aresultat el metamodel d’OlivaNOVArepresentat en l’Ecore d’OOWS,obviant aquelles parts del model original que no calien. La Figu-ra 9.6 a la pàgina següent mostra esqumàticament aquest procés

Page 266: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

248 CAPÍTOL 9. OOWS SUITE: EINA DE SUPORT

Figura 9.6 – Importació entre OlivaNOVA i OOWSSuite

d’importació.Encara que el model estructural és importat a l’OOWS Visual

Editori que aquest podria modificar-se, cal tenir en compte que lalògica de negoci que genera OlivaNOVAdepèn d’aquest model, i nos’ha definit cap procediment per que OlivaNOVAl’importe. Així, lesmodificacions a l’estructura d’informació del sistema estan prohi-bides a l’eina OOWS Visual Editor, i hauran de realitzar-se ambl’OlivaNOVA Modeller.

A efectes d’ilustrar l’eina, es mostra una sèrie de captures depantlla de l’aspecte de l’editor de mapes navegacionals (Figura 9.7a la pàgina següent) i l’editor de contextes (Figura 9.8 a la pàginasegüent). Tanmateix, aquesta es troba disponible en [121].

9.4 Compilador de Models OOWS

Definim el compilador de Models OOWS com un conjunt de reglesde transformació, de PIM a codi, que a partir d’una especificacióOOWS, genera una interfície Web i la funcionalitat necessària per

Page 267: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

9.4. Compilador de Models OOWS 249

Figura 9.7 – Editor GMF de Mapes Navegacionals

Figura 9.8 – Editor GMF de Contextes Navegacio-nals

Page 268: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

250 CAPÍTOL 9. OOWS SUITE: EINA DE SUPORT

integrar-se amb la lògica de negoci implementada pels l’eina Oli-vaNOVA. Una vegada definits tots els models, falta decidir com esrealitzaran les transformacions entre aquestos models.

La OMG llançà una petició de propostes per definir un nouestàndar, sota el nom de MOF2Text [81], l’objectiu del qual eraprecisament servir de llenguatge per a la transformació de modelsdefinits en UML, a text. Tanmateix, a data d’avuí encara està enfase d’aprovació i no existeix cap implementació d’aquest. Peròexisteixen alternatives per dur a terme aquesta tasca.

En [106] ens descriu com emprar tècniques de reescritura degramàtiques de grafs per realitzar transformacions de model acodi. Aquesta tècnica es basa en definir una sèrie de regles dereescritura de tal manera que quan un graf compleix una regla,es reemplaçat per un nou graf que el representa en el nou mo-del. Aquesta aproximació té diversos avantatges: d’una banda, lestransformacions poden representar-se demanera visual (una regla,una transformació); d’altra banda, té una sòlida base formal. L’einaAGG Tool [3] simplifica el procés de definició de regles i emmagat-zema els resultats en XML, facilitant la interoperabilitat. A moded’example d’ús exitós d’aquestos entorns, en [124] s’empra aquestaeina per definir i realitzar transformacions entre un metamodel derequeriments web i el metamodel d’OOWS. D’aquesta manera, s’a-consegueix obtenir models navegacionals a partir de requerimentsweb mitjançant reescritura de grafs.

El principal problema d’aquesta aproximació per a l’ús que ne-cessitem és que aquestes aproximacions serveixen per realitzartransformacions model-a-model (o PIM-a-PSM. Tanmateix, com s’hadiscutit a la Secció 9.1, les transformacions que pretenem realitzarseran model-a-codi (o PIM-a-Codi). És per açò que aquesta aproxi-mació no és la més adient.

Page 269: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

9.4. Compilador de Models OOWS 251

Una altra possibilitat era la d’emprar plantilles XSLT igual queen [65]. En aquest treball s’empren una sèrie de transformacionsXSLT per compliar una sèrie de models UML emmagatzemats comXML. De la mateixa manera que l’XML, el XSLT és un llenguatgeproposat per la W3C que és amplament suportat i estandaritzat,podent-se emprar amb nombrosos llenguatges i entorns de desen-volupament. A més a més, és un llenguatge flexible i relativamentpotent a l’hora de definir transformacions en XML.

El principal inconvenient de realitzar transformacions basadesen plantilles XSLT consisteix en que la creació i manteniment deregles és una tasca costosa. A causa de les característiques sintàcti-ques del XSLT, la plantilla resultant és difícil d’entendre i modificar.Açò és degut a que, a l’igual que l’XML, el seu model subjacent és unmodel entitat-relació, i no orientat a objectes. Açò provoca que tantla representació de la informació, com l’encapsulació de les reglesde transformació no siga massa adients ni fàcilment manipulables.Si el resultat de la transformació no és XML, com és el cas que ensocupa, el problema encara s’agreuja més.

Una tercera aproximació per a la generació de codi és la utilit-zació de plantilles igual que en [75]. Una plantilla és un troç decodi que deu ser completat a partir de la informació que conté unarxiu orige, com per exemple, un model emmagatzemat en XML.Amb aquest objectiu, els llenguatges de transformació basats enplantilles que proporcionen la informació a la plantilla definint unaespècie de meta-programació.

Existeixen nombrosos llenguatges de plantilles, tals com Ve-locity [8], FreeMarker [43] o JET, el llenguatge que empra EMFper produir automàticament els editors EMF/GMF. Aquest tipusde llenguatges són més potents en el sentit que es poden definirles transformacions d’una manera molt pròxima al codi a generar.

Page 270: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

252 CAPÍTOL 9. OOWS SUITE: EINA DE SUPORT

Tanmateix, el seu manteniment pot considerar-se de l’estil del XSLT,costós a causa de barrejar codi final amb codi per definir la plantilla.

L’alternativa a aquestos llenguatges, són els llenguatges detransformació model a text, com MOFScript [38] o oAW Xpand [120].A diferència dels llenguatges de plantilles anteriors, aquestos llen-guatges tenen en compte que l’entrada no és un document qualsevol,sinó un model conceptual. Aquest tipus de llenguatges ofereixenuna visió més declarativa, en contrast amb els anteriors tipus dellenguatges de plantilles, que tenen una visió més imperativa. Amés, entre les facilitats de transformació, introdueixen operadorsque permeten navegar i obtenir elements del model de manera sen-zilla. Per tant, aquesta és l’opció que més s’ajusta a les necessitatsde l’entorn a desenvolupar. A dia d’avuí, oAW ofereix un majornúmero de possibilitats amb respecte a MOFScript.

9.4.1 Transformacions amb OpenArchitectureWare

OpenArchitectureWare (oAW) [120] és un Framework de suport alDesenvolupament de Programari Dirigit per Models i MDA, compostper diferents mòduls que cobreixen gran part del procés de desenvo-lupament. El Framework suporta diferents tipus de metamodelsi proporcioan un conjunt de llenguatges per validar, transformar igenerar codi a partir d’aquestos.

oAW manté una estreta relació amb el Projecte Eclipse, ja que else IDE s’integra amb la plataforma Eclipse i suporta models definitsen EMF de manera nativa, així com models basats en UML o XML.

El nucli de oAW és un motor de “workflow” que duu a terme elprocés de generació de codi. Diversos components predefinits podenser incorporats al workflow per a la lectura i instanciació de models,la seua verificació, la transformació entre models i finalment, laproducció de codi.

Page 271: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

9.4. Compilador de Models OOWS 253

S’ha triat oAW bàsicament per la seua versatilitat. A pesar quenomés s’ha emprat el component de generació de codi Xpand, l’ampliabanic de possibilitats que ofereix oAW permet en un futur es pugamillorar aquest procés de generació.

Per crear un generador de codi en oAW, en primer lloc s’hade definir el fitxer del workflow del procés de generació. Aquestworkflow controla les diferents fases: càrrega dels models, validaciói generació. A més, permet configurar el metamodel en que es basala generació (en aquest treball s’empra el metamodel d’OOWS enEcore), així com el directori destí del codi generat. Important enaquest punt és definir la plantilla que s’emprarà com arrel (“Root”)a partir de la que comença el procés de transformació.

Les regles del compilador es troben definides com plantilles es-crites en Xpand. El concepte central d’aquest llenguatge és el blocDEFINE, que representa la unitat mínima que forma una plantilla.Cada bloc DEFINE especifica una regla de transformació d’un ele-ment del metamodel. La capçalera d’un DEFINE es composa d’unidentificador de la regla, un conjunt de paràmetres (opcionals) i elnom de la classe del metamodel sobre la que es defineix la regla. Encerta manera, aquestes regles de transformació poden considerar-secom mètodes de la metaclase sobre la que es defineixen.

Xpand incorpora una propietat this implícita, a partir de la quales poden referenciar, mitjançant el seu identificador, els atributsde la metaclase i altres elements del metamodel relacionats. Elcós del bloc DEFINE pot contenir altres expresions del llenguatge oqualsevol tipus de text que s’afegirà al procés de generació. Perdiferenciar el codi estàtic a generar de les expressions i instruccionsde Xpand, aquestes últimes es delimiten mitjançant els símbols��. Les expresions són les encarregades de processar la informacióproporcionada per la instanciació del metamodel.

Page 272: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

254 CAPÍTOL 9. OOWS SUITE: EINA DE SUPORT

Xpand proporciona operadors avançats per la selecció, mani-pulació de coleccions i navegació de la informació del metamodel.Després d’avaluar una expressió, el resultat és bolcat com text.

Una característica interessant de la definició de regles en Xpandés el suport al polimorfisme. Si existeixen dues regles amb el mateixnom definides sobre dos metaclasses que hereten de la mateixametaclasse pare, Xpand selecciona de manera automàtica la reglaadequada, encara que s’haja invocat com si fós la metaclasse pare.Si no existeix una regla que redefineix la metaclasse filla, per defectes’invoca a la regla que pertany a la metaclasse pare.

La generació de codi emprant Xpand es basa en la concatenacióde crides a regles que produeixen codi per a un element concret delmetamodel. Aquest procés comença en la regla DEFINE marcada com“Root” al fitxer del workflow. Per invocar una regla, cal emprar lasentència EXPAND, que rep el nom del bloc DEFINE a expandir, juntals paràmetres si aquest en tinguera.

La sentència EXPAND també rep un element del metamodel quedeu ser del tipus que espera el bloc DEFINE. Aquest element potreferenciar-se mitjançant l’operador FOR si és únic, o mitjançantFOREACH si és una col·lecció d’elements (obtesos per exemple mit-jançant una relació de cardinalitat n). A aquestos elements obtesosd’aquesta manera se’ls aplicarà la regla.

Molt important en aquestos llenguatges de plantilles és definirel fitxer d’eixida on es generarà el codi. Xpand empra la sentènciaFILE per a aquest propòsit. Aquesta sentència s’empra dins lesdefinicions de les regles, i se li passa com a paràmetre el nomdel fitxer que es vol obtenir. És habitual que el nom del fitxer esgenere a partir de la pròpia informació del model d’entrada a lestransformacions.

El llenguatge Xpand també incorpora instruccions pròpies d’un

Page 273: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

9.4. Compilador de Models OOWS 255

Figura 9.9 – oAW Xpand: Exemple de Regla deTransformació

llenguatge imperatiu, com ara bucles foreach o sentències condici-onals if, que ajuden a estructurar la definició de les regles.

La Figura 9.9 mostra un exemple de codi que ilustra els con-ceptes ací detallats. Aquesta regla forma part de la plantilla arreldel procés de generació, i està composada per dos regles: Root iNavigationalNodes_rule.

La regla Root inicia el procés de generació rebent com entra-da l’element del metamodel OOWSModel, que també és l’arrel delmetamodel Ecore d’OOWS. Fora de les sentències del llenguatgeXpand, pot observar-se el text que anirà produint-se en la plantilla.Aquest text correspon a codi en PHP que empra el Framework d’In-terfícies Web descrit en l’Annexe A. Aquest codi es genera de maeraestàtica, com les capçaleres del fitxer PHP o les crides a l’objecte$Application del Framework.

Page 274: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

256 CAPÍTOL 9. OOWS SUITE: EINA DE SUPORT

L’objectiu d’aquesta regla Root és recòrrer els rols (usuaris) queformen part del Model Navegacional (NavigationalModel.UserRol,segons el metamodel d’OOWS en Ecore) de l’aplicació, mitjançantel bucle FOREACH. Si detecta el Rol Anonymous (comprovat mitjan-çant la instrucció IF), a més genera la crida al Framework per habi-litar la autenticació anònima ($Application->AllowAnonymous()).

A continuació, i per a cada Node Navegacional que pertany aun Rol (Rol.NavigationalNode), s’invoca a la regla NavigationalNo-des_rule mitjançant la sentència EXPAND. Aquesta regla s’encarregade produir el codi associat per a cada node. Com es pot apreciar,en aquesta regla s’aplica el polimorfisme d’oAW que s’ha comentatabans, per diferenciar la generació de codi entre un NavigationalContext i un Navigational Subsystem, ambdues subclasses del Na-vigational Node al metamodel d’OOWS.

La regla NavigationalNode_rule, aplicada a un Navigational-Context crea una nova pàgina web mitjançant la instrucció el fra-mework $Application->Page(. . . );.

La regla NavigationalNode_rule, aplicada a un Navigational-Subsystem crea un grup de pàgines ($Application->PageGroup(. . . ))i després invoca a la regla que processa el Subsistema (NavSubsys-tem_rule).

Normalment els metamodels són descrits d’una manera estruc-turada, ja siga de manera gràfica o a través d’una jerarquia (comés el cas de l’“arbre” amb que ho representa EMF). A causa d’a-questa restricció, de vegades es complexe explorar el model i definircomportament addicional, com ara operacions de consulta o atributsderivats a partir d’altres. A més, és una bona pràctica no incloureen el metamodel informació relativa al procés de transformació.

Per donar una solució a aquestos problemes, Xpand introdu-eix una sèrie d’extensions basades en el llenguatge Extend. Una

Page 275: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

9.4. Compilador de Models OOWS 257

extensió és una propietat complexa definida sobre un element delmetamodel, de manera externa a aquest. A través de les extensionsés possible afegir comportament addicional que puga ser reutilitzati que simplifica encara més la definició de les regles.

El següent exemple mostra el codi de l’extensió Access empradaen la reglaNavigationalNode_rule sobre l’element del metamodelReachabilities. En funció del valor d’aquesta propietat, retorna lacadena “Always” o “FromPage”, que són els tipus d’accessibilitat queel Framework empra:String Access(Reachabilities r): r ==

Reachabilities::Exploration ? "Always": "FromPage";

Aquest procés s’ha aplicat per a cadascun dels elements del me-tamodel d’OOWS de manera que per a cada primitiva conceptual(elements del metamodel) s’ha definit una regla DEFINE. La semàn-tica de les transformacions pot veure’s al Capítol 8 a la Secció 8.5.L’Annexe C mostra el codi complet del compilador de models OOWS(a patir de l’Ecore del metamodel d’OOWS) i la seua transformacióa codi del Framework (Annexe A), emprant oAW Xpand.

Page 276: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions
Page 277: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

CAPÍTOL 10CONCLUSIONS

Aquesta tesi ha presentat OOWS, un Mètode per al Desenvolupa-ment d’Aplicacions Web dirigit per Models, que permet realitzarextensions conceptuals introduint els conceptes Web bàsics i defineixuna estratègia aplicant compilació de models per obtenir aplicacionsfuncionals de manera automàtica. A més a més, es caracteritzaperque per dur-ho a terme, s’han unit els principis de l’EnginyeriaWeb i materialitzats mitjançant l’aplicació de les tècniques de Desen-volupament de Programari Dirigides per Models i MDA.

La xarxa MDWE.NET [129, 62] ha sorgit recentment de la màdels creadors dels principals mètodes de desenvolupament Web ondefenen i aposten clarament per aquesta estratègia. Açò reforçaencara més la línia d’actuació presa en aquest treball, on des d’unprincipi s’ha apostat per l’ús i aplicació d’aquest tipus d’entorns.

En aquest últim capítol s’introdueixen les conclussions del tre-ball realitzat en aquesta tesi. En primer lloc es revisen les princi-pals contribucions en l’àrea de l’Enginyeria Web. A continuació es

259

Page 278: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

260 CAPÍTOL 10. CONCLUSIONS

presenta l’investigació actual i treball futurs directament relacionat.Per últim, les contribucions en aquesta àrea en forma de publicaci-ons d’investigació.

10.1 Principals Contribucions

Les aportacions principals d’aquesta tesi es poden resumir breu-ment com:

• En primer lloc, la definició un procés complet per construiraplicacions Web. En aquest procés es consideren tant les eta-pes primerenques per a la construcció de Models Conceptuals,com l’etapa de Implementació, on es construeix de manerasistemàtica una aplicació funcional a partir d’aquestos models.Aquest s’ha definit tenint en compte els principis que propo-sa l’Enginyeria Web on s’enfatitza la necessitat de definirprocessos sistemàtics on s’introduisquen els conceptes Web alsmètodes convencionals per desenvolupar sistemàticamentles aplicacions Web.

• A nivell conceptual, s’han revisat els requeriments navegaci-onals de les aplicacions i s’ha proposat una extensió a OO-Method, introduint-hi diferents models (d’usuaris, navegaciói presentació) per poder obtenir Models Conceptuals Web.

• Gràcies al fet que s’ha emprat OO-Method com a mètode subja-cent i que aquesta té una forta base formal, la representaciódels requeriments navegacionals, ha pogut dur-se a terme d’u-na manera més precisa que aquells mètodes que empren UMLcom a base. Així, s’han establit unes fortes relacions entre lesprimitives d’ambdós mètodes, aconseguint una solució cohe-sionada. Així, s’han pogut resoldre problemes que encara avuí

Page 279: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

10.1. Principals Contribucions 261

en dia tenen una representació complicada en altres aproxima-cions, com ara el tractament d’aspectes dinàmics-funcionalsde les aplicacions (a causa principalment de l’UML i que haafectat per extensió la resta de mètodes) que en aquesta apro-ximació OO-Method/OOWS no ha sigut problemàtica.

• S’ha realitzat un estudi intens sobre les primitives que repre-sent els requeriments de navegació, analitzant les amplamentacceptades. Sobre aquestes s’han introduït algunes millores,que si bé subtils, introdueixen beneficis. Així, per exemple,la revisió dels mecanismes d’accés (índexos, filtres) esta-blint millors criteris a l’hora de definir-los i convertir-los enaccessoris per millorar la navegabilitat, enlloc de definir-la.També la introducció del concepte d’herència navegacional,que permet d’una banda reutilitzar especificacions conceptualsi d’altra simplificar la tasca de definició dels models navegaci-onals.

• Per aconseguir un millor enteniment dels models proposats iper permetre la interacció entre aproximacions (molt en vi-gor actualment), s’ha definit el metamodel d’OOWS. Aquestmetamodel recull el significat de les primitives i les inter-relacions entre aquestes, tant a nivell navegacional, com anivell d’estructura d’informació. El metamodel d’OOWS estàservint també com a la base per a la seua extensió, facilitantla introducció dels conceptes que es revisen a la Secció 10.2.

• Com que en el desenvolupament d’aplicacions Web és molt im-portant l’aspecte visual del producte resultat, en aquest treballs’ha realitzat una proposta d’integració d’aspectes de dis-seny visual que permeten realitzar un treball multidiscipli-nar en conjunt amb experts en el disseny gràfic. Però, aquesta

Page 280: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

262 CAPÍTOL 10. CONCLUSIONS

aproximació permet que la tasca realitzada per ambdues disci-plines puguen dur-se a terme de manera ortogonal i separada.Un dels punts claus per aconseguir-ho ha sigut la definiciód’aquestos requeriments fora dels models de l’aplicació (a dife-rència d’altres) però establint clarament el “contracte” a seguirper a la seua definció.

• Per facilitar la implementació de les aplicacions Web, s’ha re-alitzat una anàlisi de les pàgines Web que composen aquestesaplicacions, atenent als seus objectius i continguts. Açò ha per-més donar una conceptualització de les pàgines Web. Ate-nent a aquesta conceptualització, i seguint els principis de lesFactories de Programari, s’ha desenvolupat un Frameworkd’Interfícies Web que recull aquestes idees i proporciona unmecanisme per implementar, d’una manera senzilla, les apli-cacions Web.

• Una vegada conceptualitzades les pàgines Web, s’han seguitels principis de la transformació de models descrits en MDAper definir una estratègia de compilació de models a codi.S’han definit les correspondències que permeten realitzar lacompilació de models OOWS, realitzant les transformaci-ons de les primitives d’una manera abstracta, de manera quepuga ser aplicada a la generació en qualsevol plataforma.

• S’ha construït un entorn, OOWS Suite, que materialitza aques-tes idees. Per a la seua construcció s’han aplicat les últimestendències tecnològiques aplicades al Desenvolupament Dirigitper Models, i emprant l’entorn proposat pel Projecte Eclipse,s’han definit: un gestor de repositoris de models amb EMF(encarregat de mantenir i manipular els models), un editorgràfic amb GMF (que permet capturar mitjançant la seua

Page 281: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

10.1. Principals Contribucions 263

representació gràfica, els diferents models Web) i un compila-dor de models en oAW Xpand que aplica les transformacionsModel a Codi de manera automatitzada.

• S’ha provat la valia d’aquest mètode en el desenvolupamentde diferents aplicacions reals. Altres vegades, el mètodes’ha emprat per fer enginyeria inversa i poder documentar,entendre, millorar el desenvolupament o estimar el cost deldesenvolupament d’una aplicació. Aquestos són alguns deldesenvolupaments realitzats:

– Web DSIC: una part de l’aplicació Web d’aquest departa-ment fou desenvolupada amb aquest mètode [125].

– BibioUP: es construí una intranet que gestiona els recur-sos bibliogràfics i personal en la UPV

– Centre a la Cooperació i Desenrrollament (UPV): aquestaaplicació Web, de caràcter solidari, ajudà en la definició iintroducció dels aspectes de disseny gràfic.

– Web del Grup OO-Method: aquesta aplicació permet lagestió d’un grup d’Investigació (membres, publicacions,projectes, activitats, recursos, etc.)

– Peritatge de la Web del València C.F.: es realità un peri-tatge de la web del València C.F. per estimar el cost dedesenvolupament. Per a realitzar-ho, es construiren elsmodels conceptuals OO-Method/OOWS i s’estimà el seucost aplicant una proposta d’estimació del tamany funcio-nal a partir de models OOWS [1].

Quasi totes aquestes contribucions han sigut establertes mitjan-çant la publicació de diferents articles en conferències de la temàticaadient (en cada cas) per donar-li la validesa científica necessària. Ala Secció 10.3 queden recollides aquestes publicacions.

Page 282: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

264 CAPÍTOL 10. CONCLUSIONS

10.2 Investigació Actual i Treballs en Curs

Durant els últims anys, el mètode OOWS ha anat evolucionant in-cloent característiques per donar suport a noves extensions. Aques-tes extensions tenen a veure amb els següents tòpics: Modelatge deRequeriments Web, Modelatge de Sistemes Adaptatius, Modelatgede Processos de Negoci, Aplicacions de les tecnologies de la WebSemàntica i Arquitectures Orientades a Serveis

10.2.1 Modelatge de Requeriments Web

Aquesta extensió proposa l’ús d’un model de requeriments per aldesenvolupament d’aplicacions Web [124]. Aquest model es basa enel concepte de tasca, reorientant-les per capturar no sols aspectesestructurals i de comportament (com esdevé en aplicacions no-Web),sinó també per tenir en compte requeriments navegacionals.

Aquest model de requeriments introduït a OOWS es crea en 3grans etapes [127]:

1. En una primera etapa es crea una taxonomia de tasques.Aquesta taxonomia especifica una estructura jeràrquica detasques que els usuaris han de acomplir quan interactuen ambl’aplicació Web. Hi ha tasques generals i tasques específiques.Per tal de dur a terme un refinament de tasques, es proposal’aplicació de descomposicions estructurals i temporals.

2. En una segona etapa cada tasca full és descrita analitzantl’interacció amb l’usuari. S’empra una estratègia basada enDiagrames d’Activitats. Cada diagrama d’activitats es definitemprant accions del sistema i punts d’interacció, que repre-senten el moments durant una tasca on el sistema i l’usuari

Page 283: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

10.2. Investigació Actual i Treballs en Curs 265

intercanvien informació (aquesta informació ens permet cap-turar la semàntica navegacional a nivell de requeriments).

3. En una tercera etapa es descriuen una sèrie de plantillesd’informació. Aquestes plantilles descriuen la informació ques’intercanvia en cada punt d’interacció.

Després, s’aplica una estratègia per realitzar transformacionsModel-a-Model per obtenir models navegacionals parcials a partirdels requeriments definits. El procés de generació de codi permetobtenir prototipus en entorns multidisciplinars definints diferentsrols (dissenyadors gràfics, experts en usabilitat, etc.) i responsabili-tats.

Les transformacions Model-a-Model i Model-a-Codi definidesproporcionen un mecanisme d’alt nivell per traçar des dels reque-riments fins al codi. Aquesta característica facilita la gestió delsrequeriments volàtils i l’evolució de l’aplicació.

10.2.2 Modelatge de Sistemes Adaptatius

La major part dels esforços en l’àrea de la hipermèdia adaptativa escentren en implementar conceptes d’adaptativitat per resoldre pro-blemes i en desenvolupar i millorar les estratègies d’adaptativitati algorismes, que són introduïts en fases posteriors del procés dedesenvolupament de programari.

En aquest treball es proposa la inclusió de perspectives de majornivell d’abstracció (més generals i independents del domini) per aldesenvolupament d’aplicacions de la hipermèdia adaptativa, dinsdel marc del desenvolupament dirigit per models. Tanmateix, en-cara hi ha problemes importants amb respecte al poc suport concep-tual per a múltiples tècniques d’adaptativitat, i la carença completad’un suport metodològic.

Page 284: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

266 CAPÍTOL 10. CONCLUSIONS

L’aproximació que es proposa per dotar a OOWS de suport per aldesenvolupament d’aplicacions web adaptatives [97] introdueix ei-nes conceptuals per descriure aquestes tècniques de l’adaptativitat,a un nivell d’abstracció elevat. Per tal de donar aquest suport, lesprincipals parts de l’extensió d’OOWS han sigut:

1. Una estratègia de modelatge d’usuaris basada en la descripciód’aquestos usuaris com conceptes propis del domini, conside-rant les seues característiques personals, les seues relacionsamb el domini de l’aplicació, i la descripció de la seua interaccióamb l’aplicació [99].

2. Un conjunt d’estructures i propietats conceptuals, incorpora-des al model navegacional d’OOWS, que donen suport a tècni-ques adaptatives ben conegudes, com ara l’amagat d’enllaços(“link-hidding”), l’ordenat d’enllaços (“link-ordering”), o frag-ments condicionals [98].

3. Una aproximació d’especificació de requeriments que incloucapacitats per definir els requeriments relatius als diferentsusuaris de l’aplicació (requeriments de classificació d’usuaris,informació i funcionalitat). A més a més, proporciona einesper descriure el conjunt dels requeriments d’adaptativitat delsistema, en termes de característiques de tasques del siste-ma (vist a la Secció 10.2.1). En aquest sentit, les decisionssobre l’adaptativitat es prenen en la fase de modelatge con-ceptual i són soportades pels requeriments d’adaptativitat ausuaris [99].

4. Una aproximació sistemàtica per derivar especificacions con-ceptuals de característiques d’adaptativitat a partir de les es-pecificacions de requeriments corresponents, per mig de la de-

Page 285: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

10.2. Investigació Actual i Treballs en Curs 267

finició de regles de mapeig entre les estructures dels modelsconceptuals d’OOWS [99].

10.2.3 Modelatge de Processos de Negoci

L’increment en l’ús de la tecnologia dels Serveis Web ha fet d’Inter-net una plataforma molt adient pel desenvolupament d’aplicacionsde negoci (moltes companyies ja proporcionen serveis a tercerescompanyies emprant aquestes tecnologies).

Un dels problemes principals sorgeixen quan aquest tipus d’a-plicacions són com les següents: (1) de vegades, la descripció d’a-questes aplicaciones de negoci està altament lligada a descripcionsde processos de negoci, on l’objectiu d’aquestes aplicacions no és solsla gestió d’informació sinó també la gestió del propi procés; (2) elsprocessos de negoci reals no sols inclouen tasques automatitzades iel propi sistema; de fet, aquestos processos poden incloure partici-pants humans (participants que requeriexen una interfície d’usuariper interactuar amb el procés) i activitats manuals (activitats queno són automatitzables en absolut, com ara, fer una crida telefònicao revisar un document).

Des de la perspectiva que proposa OOWS, s’està realitzant unaextensió per generar aplicacions Web que donen suport complet al’execució de processos de negoci [122]. Per tal d’aconseguir-ho, esproposa generar a partir d’especificacions de processos de negoci: (1)la interfície gràfica d’usuari per llançar i completar les activitats delprocés, així com (2) la definició d’un procés executable equivalent.

Tanmateix, aquesta aproximació força a revisar l’aproximacióOOWS no sols des d’un punt de vista de modelatge, sinó també desd’un punt de vista arquitectònic (en alguns casos, la execució d’unprocés es realitza en un motor de processos de negoci).

Aquesta aproximació permet obtenir implementacions de proces-

Page 286: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

268 CAPÍTOL 10. CONCLUSIONS

sos de negoci que estan totalment integrats dins aplicacions Web.Aquesta integració es produeix a tres nivells: dades/contingut, fun-cionalitat i interfície d’usuari. Per aquest motiu, s’ha definit unaextensió sobre el model navegacional per modelar aquestes interfí-cies d’usuari que són necessàries per descriure la interacció entreels participants humans i el procés de negoci.

10.2.4 Aplicacions de les tecnologies de la Web Semàn-tica

Amb l’objectiu de dur a la realitat la Web Semàntica [12], és ne-cessari proporcionar guies, mètodes i eines que remarquen l’ús iaplicabilitat de les tecnologies de la Web Semàntica en desenvolu-pament d’aplicacions reals. El desenvolupament en aquest sentit nosols involucra la generació de contingut semàntic (definint dominisespecífics mitjançant ontologies), sinó que també anotar la semàn-tica de funcionalitat que permeta a usuaris externs i aplicacionsde programari, descobrir, invocar, composar i monitoritar aquestafuncionalitat amb un alt nivell d’automatització.

En aquest sentit, els mètodes d’Enginyeria Web deuen estarpreparats per proporcionar solucions que consideren el modelatged’aquesta dimensió, referint-se a la vista del sistema des d’un puntde vista de la Web Semàntica. Aquesta nova dimensió permet gene-rar aplicacions no sols per ser emprades per humans, sinó també quepuguen ser automatitzades i composades per agents de programari,de manera que entenguen el contingut de les aplicacions (dades ifuncionalitat) ja que estan expresades en un llenguatge que propor-ciona un vobulari formalitzat.

En aquest treball es proposa la generació de la part del l’es-pecificació del sistema que serà accessible per la tecnologia de laWeb Semàntica [123]. Aquesta generació es pot dur a terme ja

Page 287: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

10.2. Investigació Actual i Treballs en Curs 269

que l’aproximació OO-Method/OOWS inclou una sèrie de models quepermeten especificar de manera precisa l’estructura i comportamentdel sistema mitjançant un Esquema Conceptual. Ací, aquesta apro-ximació ha sigut enriquida amb un mecanisme per definir -a nivellde modelatge- el sistema des del punt de vista de la Web Semàntica.

Aquestes noves dimensions especifiquen l’accés/vista sobre elsistema per a agents externs, definint dos models. el model deldomini del sistema (turisme, salut, notícies, educació, etc.) i el segonmodel descriu com agents i entitats externes podem emprar el lafuncionalitat exposada pel sistema.

10.2.5 Arquitectures Orientades a Serveis

Un objectiu principal de les Arquitectures Orientades a Serveis(SOA) es resoldre el problema de la integració de diferents aplicaci-ons heterogènees en entorns distribuïts. Les arquitectures d’aquesttipus proporcionen escenaris apropiats per integrar aplicacions Web.Els mètodes d’Enginyeria Web proporcionen mecanismes per aplicaraquest tipus d’arquitectures i suportar l’ús de serveis Web externsper desenvolupar nous serveis.

D’acord a SOA, es necessari proporcionar guies metodològi-ques per fer un disseny i implementació automàtic de ServeisWeb completament operatius a partir de models conceptuals OO-Method/OOWS. Aquestos models són considerats la part clau enaquest desenvolupament.

En aquesta estratègia, el primer que s’ha fet ha sigut determinarquins models són més útils per identificar les operacions dels ServeisWeb, i després s’ha proposar una guia per desenvolupar aquestesoperacions [109, 108].

Aquesta extensió és suportada per una eina que agafa modelsconceptuals com entrada i aplica aquesta guia per obtenir les des-

Page 288: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

270 CAPÍTOL 10. CONCLUSIONS

cripcions de les operacions dels Serveis Web. Aquesta eina és laresponsable finalment de generar el codi per aquestes operacionsautomàticament [110].

10.3 Publicacions Relacionades

Durant el periode que ha durat el desenvolupament d’aquesta tesi,s’han realitzat les següents publicacions relacionades amb el treball:

Capítols de Llibres

• Joan Fons, Vicente Pelechano, Oscar Pastor, Pedro Valderas,Victoria Torres. Applying the OOWS Model-Driven Approachfor Developing Web Applications. The Internet Movie DatabaseCase Study. Web Engineering: Modelling and Implemen-ting Web Applications. Rossi G., Pastor O., Schwabe D., Ol-sina L. (Eds) Springer. Human-Computer Interaction Series.ISBN: 978-1-84628-922-4. pp. 65-108. 2007

• Victoria Torres, Joan Fons, Vicente Pelechano. Building Usa-ble Business Process Driven Web Applications. Handbookof Research on Web Information Systems Quality. IdeaGroup Inc. Calero, C., Moraga, M.A., and Piattini, M. (Eds.).(En fase de publicació) ISSN: 0950-5849. 2007

• Oscar Pastor, Joan Fons, Vicente Pelechano, Silvia Abra-hao. Conceptual Modelling of Web Applications: the OOWSapproach. Web Engineering: Theory and Practice of Me-trics and Measurement for Web Development. MendesE., Mosley N. (Eds) Springer-Verlag Berlin Heidelberg. ISBN:3540281967. pp. 277-302. 2005

• Victoria Torres, Joan Fons, Vicente Pelechano. Getting Re-ady Web Engineering Methods for the Semantic Web. Putting

Page 289: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

10.3. Publicacions Relacionades 271

Ontologies into Practice (publicación original en ICWE 2004).Engineering Advanced Web Applications. Rinton Press.ISBN 1-58949-046-0. Volumen 9, pp. 110-123. 2004

• Vicente Pelechano, Antonio Vallecillo, Javier Muñoz, JoanFons. Desarrollo de Software Dirigido por Modelos.MDA y Aplicaciones. Departamento de Sistemas Informá-ticos y Computación, Universidad Politécnica de Valencia.ISBN: 84-688-8870-2. Pelechano V., Vallecillo A., Muñoz J.,Fons J. (Eds). pp. 105. 2004

• Vicente Pelechano; Joan Fons. Servicios Web. Aplicaciones,Tecnologías y Diseño. Tendencias en el Desarrollo de Apli-caciones WebDepartamento de Informática y Automática dela Universidad de Salamanca. ISBN 84-688-7872-3. pp. 85-100. 2004

• Oscar Pastor, Joan Fons, Vicente Pelechano. Generación au-tomática de aplicaciones Web a partir de Esquemas concep-tuales orientados a objetos. Tendencias actuales en la in-teracción persona ordenador: accesibilidad, adaptabilidady nuevos paradigmas (XIII Escuela de Verano de Informáti-ca). Universidad de Castilla-La Mancha. Departamento deInformática. ISBN: 84-921873-1-X. 2003

• Vicente Pelechano, Marta Ruíz, Joan Fons, Pedro Valderas.Desarrollo de Aplicaciones WEB basadas en Servicios WEBXML. Un Caso Práctico. Avances en Comercio Electróni-co. Francisco J. Garcia (Eds.) Avalon Programming Solutions.ISBN 84-607-5827-3. Volumen 7, pp. 99-118. 2002

• Joan Fons, Oscar Pastor, Pedro Valderas, Marta Ruíz. OOWS:Un Método de Producción de Software en Ambientes Web.

Page 290: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

272 CAPÍTOL 10. CONCLUSIONS

Avances en Comercio Electrónico. Avances en ComercioElectrónico. Francisco J. Garcia (Eds.) Avalon ProgrammingSolutions. ISBN 84-607-5827-3. Volumen 7, pp. 119-137. 2002

• Silvia Abrahao, Joan Fons, Magali Gonzalez, Oscar Pastor,Vicente Pelechano. Un Método Orientado a Objetos para elDiseño de Aplicaciones de Comercio Electrónico. New met-hods and Tools Supporting E-Commerce. pp. 125-140.2001

Revistes

• Oscar Pastor, Silvia Abrahao, Joan Fons. Building E-Commerce Applications from Object-Oriented Conceptual Mo-dels. ACM Press, SIGecom Exchanges, Newsletter ofthe ACM, Special Interest Group on E-Commerce, vol.2.2. http://www.acm.org/sigecom/exchanges/volume_

2_(01)/2.2-index.html. pp. 28-36. 2001

Conferències Internacionals

• Francisco Valverde, Pedro Valderas, Joan Fons, Oscar Pastor.An MDA-based environment for Web Application Development:From Conceptual Models to Code. IWWOST 2007. Interna-tional Workshop on Web Oriented Software Technologies (wit-hin the International Conference on Web Engineering, ICWE2007). ISBN: 978-88-902405-2-2. pp. 164-178. Como (Italia),Juliol 2007

• Pedro Valderas, Joan Fons, Vicente Pelechano. Develo-ping E-Commerce Applications from Task-Based Descriptions.ECWEB 2005. 6th Electronic Commerce and Web Techno-logies. Springer-Verlag, Lecture Notes in Computer Science,

Page 291: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

10.3. Publicacions Relacionades 273

LNCS 3590. ISBN 3-540-28467-2. Copenhague, Dinamarca,August, 2005

• Pedro Valderas, Joan Fons, Vicente Pelechano. From WebRequirements to Navigational Design. A TransformationalApproach. ICWE 2005. 5th International Conference on WebEngineering. Springer-Verlag, Lecture Notes in ComputerScience, LNCS 3579. ISBN: 3-540-27996-2. pp. 506-511.Sydney, Australia. July, 2005

• Pedro Valderas, Joan Fons, Vicente Pelechano. TransformingWeb Requirements into Navigational Models: An MDA basedApproach. ER 2005. 24th International Conference on Con-ceptual Modelling. Springer-Verlag, Lecture Notes in Com-puter Science, LNCS 3716. ISBN: 3-540-28467-2. pp. 63-75.Klagenfurt, Austria. October 2005

• Gonzalo Rojas, Vicente Pelechano, Joan Fons. A Model-Driven Approach to include Adaptive Navigational Techniquesin Web Applications. IWWOST 2005. Workshop on Web Orien-ted Software Technologies (within Fifth Edition in conjunctionwith CAiSE 2005). Porto, Portugal, June, 2005

• Pedro Valderas, Joan Fons, Vicente Pelechano. ModellingContent Aggregation for Developing E-Commerce Web Sites.ECWEB 2004. 5th Electronic Commerce and Web Techno-logies. Springer-Verlag, Lecture Notes in Computer Science,LNCS 3182. ISBN: 3-540-22917-5, ISSN:0302-9743 Septem-ber. pp. 259-267. Zaragoza, 2004

• Pedro Valderas, Joan Fons, Vicente Pelechano. ExtendingNavigation Modeling to Support Content Aggregation in Web

Page 292: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

274 CAPÍTOL 10. CONCLUSIONS

Sites. ICWE 2004. International Conference on Web Engine-ering. Nora Koch, Piero Fraternalli, Martin Wirsing (Eds.).Springer-Verlag, Lecture Notes in Computer Science, LNCS3140. ISBN: 3-540-22511-0, ISSN:0302-9743 . pp. 98-102.Munich, Germany. July, 2004

• Victoria Torres, Joan Fons, Oscar Asensi y Vicente Pelecha-no. Getting Ready Web Engineering Methods for the SemanticWeb. Putting Ontologies into Practice (publicat en “Enginee-ring Advanced Web Applications”, Ed. Rinton Press per ser undels millors treballs enviats). IWWOST 2004. Fourth Editionof the Workshop on Web Oriented Software Technologies, inconjunction with ICWE 2004. pp. 90-100. Munich, Alemania.Julio, 2004

• Gonzalo Rojas, Vicente Pelechano, Joan Fons. NavigationalProperties and User Attributes for Modelling Adaptive Web Ap-plications. EAW 2004. Engineering the Adaptive Web. Works-hop of the International Conference on Adaptive Hypermediaand Adaptive Web-Based Systems, AH’04. ISSN: 0926-4515.pp. 52-57. Lora Aroyo, Carlo Taso (Eds.). Eindhoven, TheNetherlands, August, 2004

• Victoria Torres, Joan Fons, Vicente Pelechano, Oscar Pastor.Navigational Modeling and the Semantic Web. An Ontologybased Approach. LA-Web 2004. Second Latin American WebCongress. IEEE CS Press. ISBN: 0-7695-2237-8/04. pp. 94-97.POSTER. Brazil. October, 2004

• Joan Fons, Vicente Pelechano, Manoli Albert y Oscar Pastor.Development of Web Applications from Web Enhanced Con-ceptual Schemas. ER 2003. 22nd International Conferenceon Conceptual Modelling. Springer-Verlag, Lecture Notes in

Page 293: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

10.3. Publicacions Relacionades 275

Computer Science, LNCS 2814. ISBN: 3-540-20299-4. pp. 232-245. Chicago, EE.UU. October, 2003

• Manoli Albert, Vicente Pelechano, Joan Fons, Marta Ruíz,Oscar Pastor. Implementing UML Association, Aggregationand Composition. A Particular Interpretation based on a Mul-tidimensional Framework. CAiSE 2003. 15th InternationalConference on Advanced Information Systems Engineering.Springer-Verlag, Lecture Notes in Computer Science, LNCS2681. ISBN: 3-540-40442-2. pp. 143-158. Klagenfurt, Austria.June, 2003

• Vicente Pelechano, Joan Fons, Manoli Albert, Oscar Pastor.Developing Web Applications from Conceptual Models. CAiSE2003. 15th International Conference on Advanced InformationSystems Engineering. Springer-Verlag, Lecture Notes in Com-puter Science, LNCS 2681. ISBN: 3-540-40442-2. pp. 221-224.Klagenfurt, Austria. June, 2003

• Joan Fons, Vicente Pelechano, Manoli Albert, Oscar Pastor,Pedro Valderas. Extending an OO Method to Develop WebApplications using Web Services. WWW 2003. Twelfth Inter-national Conference World Wide Web, Poster Edition. ISBN1581136242. Budapest, Hungary. May, 2003

• Joan Fons, Francisco J. García, Vicente Pelechano, Oscar Pas-tor. User Profiling Capabilities in OOWS. ICWE 2003. ThirdInternational Conference on Web Engineering. Springer-Verlag, Lecture Notes in Computer Science, LNCS 2722.ISBN: 3-540-40522-4. pp. 486-496. Asturias, Spain. July, 2003

• Luis Olsina, Ma Angeles Martín, Joan Fons, Silvia Abrahao,Oscar Pastor. Towards the Design of a Metrics Cataloging Sys-

Page 294: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

276 CAPÍTOL 10. CONCLUSIONS

tem by Exploiting Conceptual and Semantic Web Approaches.ICWE 2003. Third International Conference on Web Engine-ering. Springer-Verlag, Lecture Notes in Computer Science,LNCS 2722. ISBN: 3-540-40522-4. pp. 324-333. Asturias,Spain. July, 2003

• Vicente Pelechano, Joan Fons, Manoli Albert y Oscar Pastor.Developing Web Applications from Conceptual Models. A WebServices Approach. eCOMO 2003. International Workshop onConceptual Modeling Approaches for e-Business, 4th Edition.Dealing with Business Volatility (in conjunction with the 22ndInternational conference on Conceptual Modeling ER 2003).ISBN: 3-540-20257-9. Chicago, EE.UU. October, 2003

• Manoli Albert, Vicente Pelechano, Joan Fons, Gonzalo Rojas,Oscar Pastor. Extracting Knowledge from Association Relati-onships to Build Navigational Models. La-Web 2003. FirstLatin American Web Congress. ISBN: 0-7695-2058-8. pp. 2-10. Santiago, Chile. November, 2003

• Oscar Pastor, Joan Fons, Vicente Pelechano. OOWS: A Met-hod to Develop Web Applications from Web-Oriented Concep-tual Models. IWWOST 2003. Third International Workshopon Web Oriented Software Technologies. pp. 65-70. POSTER.Oviedo, Spain, July, 2003

• Joan Fons, Pedro Valderas, Oscar Pastor. Specialization inNavigational Models. ICWE 2002. International Conferenceon Web Engineering (withing th Conference on Computer Sci-ence and Operational Research). ISSN: 1666-6526. pp. 16-31.Santa Fe, Argentina. 2002

• Silvia Abrahao, Joan Fons, Magali Gonzalez, Oscar Pastor.

Page 295: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

10.3. Publicacions Relacionades 277

Conceptual Modeling of Personalized Web Applications. AH2002. 2nd International Conference on Adaptive Hypermediaand Adapative Web Based Systems. Springer, Lecture Notesin Computer Science, LNCS 2347. De Bra P., Brusilovsky P.,Conejo R. (Eds.). ISBN: 3-540-43737-1, ISSN: 0302-9743. pp.358-362. Malaga, Spain. 2002

• Magali González, Silvia Abrahao, Joan Fons, Oscar Pastor.Evaluando la Calidad de Métodos para el Diseño de Aplicaci-ones Web. SBQS 2002. I Simposio Brasilero de Qualidade deSoftware. ISBN: 85-88442-37-X. pp. 23-32. Gramado, Brasil.Octubre, 2002

• Oscar Pastor, Silvia Abrahao, Joan Fons. An Object-Oriented Approach to Automate Web Applications Develop-ment. ECWEB 2001. Second International Conference onElectronic Commerce and Web Technologies. Springer, LectureNotes in Computer Science, LNCS 2115. ISBN: 3-540-42517-9.pp. 72-79. Munich, Alemania. September, 2001

• Pedro J. Molina, Oscar Pastor, Sofia Marti, Joan Fons, EmilioInsfran. Specifying Conceptual Interface Patterns in an Object-Oriented Method with Authomatic Code Generation. UIDIS2001. Second International Workshop on User Interfaces toData Intensive Systems. IEEE Computer Society. ISBN: 0-7695-0834-0. pp. 72-79. Zurich, Switzerland. May, 2001

Conferències Nacionals

• Ricardo Quintero, Vicente Pelechano, Joan Fons y Oscar Pas-tor. Aplicación de MDA al Desarrollo de Aplicaciones Web enOOWS. JISBD 2003. VIII Jornadas de Ingeniería del Softwa-re y Bases de Datos. Ernesto Pimentel, Nieves R. Brisaboa,

Page 296: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

278 CAPÍTOL 10. CONCLUSIONS

Jaime Gomez (Eds.). ISBN: 84-668-3836-5. pp. 379-388. Ali-cante, España. Noviembre, 2003

• Silvia Abrahao, Oscar Pastor, Joan Fons, Luis Olsina. UnMétodo para Medir el Tamaño Funcional y Evaluar la Calidadde Sitios Web. JISBD 2001. VI Jornadas de Ingeniería delSoftware y Bases de Datos. ISBN: 84-699-6275-2. pp. 477-490.Almagro, España. Noviembre, 2001

• Silvia Abrahao, Joan Fons, Magali Gonzalez, Oscar Pastor,Vicente Pelechano. Un Método Orientado a Objetos para elDiseño de Aplicaciones de Comercio Electrónico. ZOCO 2001.Reunion de Trabajo sobre Metodos y Herramientas para elDesarrollo de Aplicaciones de Comercio Electronico (withinJISBD?01). R. Corchuelo, A. Ruiz y José A. Pérez (Eds.). ISBN:84-96086-02-X. pp. 125-140. Almagro, España. Noviembre,2001

Conferències Iberoamericanes

• Francisco Valverde, Pedro Valderas, Joan Fons. OOWS Suite:Un entorno de desarrollo para Aplicaciones Web basado enMDA. IDEAS 2007. Workshop Iberoamericano de Ingenieriade Requisitos y Ambientes Software. Isla Margarita, Venezue-la. 2007

• Ricardo Quintero, Vicente Pelechano, Joan Fons,Oscar Pas-tor. Desarrollo de Sistemas Basados en Web mediante la apli-cación de MDA a OOWS. CIIC 2003. X Congreso Internacionalde Investigación en Ciencias Computacionales, CIIC 03. ISBN:86-435-0549-8. pp. 155-162. Oaxtepec, México. Octubre, 2003

• Pedro Valderas, Marta Ruíz, Joan Fons, Manolo Albert, Vi-cente Pelechano. Desarrollo de un portal Web para un Depar-

Page 297: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

10.3. Publicacions Relacionades 279

tamento Universitario desde Modelado Conceptual. IDEAS2003. VI Workshop Iberoamericano de Ingeniería de Requi-sitos y Ambientes Software. Mario Piattini, Luca Cernuzzi,Francisco Ruíz (Eds.). ISBN: 84-96023-05-2. pp. 15-26. Asun-cion, Paraguay. Mayo, 2003

• Ma Angeles Martín, Hernán Molina, Fernanda Papa, JoanFons, Oscar Pastor, Luis Olsina. Aspecto de Diseño Arquitec-tural y Semántico para un Sistema Web de Catalogación deMétricas. IDEAS 2003. VI Workshop Iberoamericano de In-geniería de Requisitos y Ambientes Software. Mario Piattini,Luca Cernuzzi, Francisco Ruíz (Eds.). ISBN: 84-96023-05-2.Asuncion, Paraguay. Mayo, 2003

• Magali Gonzalez, Luca Cernucci, Silvia Abrahao, Joan Fons.Aspecto de Diseño Arquitectural y Semántico para un SistemaWeb de Catalogación de Métricas. IDEAS 2001. IV Works-hop Iberoamericano de Ingeniería de Requisitos y AmbientesSoftware. ISBN: 959-7164-08-6. pp. 45-56. La Habana, Cuba.Abril, 2001

• Oscar Pastor, Joan Fons, Silvia Abrahao, Manoli Albert, EvaCampos. Una Aproximación OO para el Modelado Conceptualde Aplicaciones Web. IDEAS 2001. VIII Jornadas Iberoame-ricanas de Informatica: Tecnologías Software para AmbientesWeb. Cartagena de Indias, Colombia. Agosto, 2001

• Oscar Pastor, Joan Fons, Silvia Abrahao, Sergio Ramon. Mo-delado Conceptual Orientado a Objetos para Aplicaciones Web.IDEAS 2001. Workshop Iberoamericano de Ingenieria de Re-quisitos y Ambientes Software. Centro de Formación Tecnolo-gica (CIT). ISBN: 9968-32-000. pp. 239-251. San Jose, CostaRica. Abril, 2001

Page 298: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

280 CAPÍTOL 10. CONCLUSIONS

Lloc #Capítols de Llibre Springer (2), Rinton Press, 10

Avalon Computing (2), UPV, ...Revistes ACM SIGecom 1

Conf. Internacionals ICWE (5), CAiSE (3), ER (2),IWWOST (4), ECWEB (3), WWW, 24

eCOMO, La-Web, AH (2), ...Conf. Nacionals JISBD (2), ZOCO 3

Conf. Iberoamericanes IDEAS (5) 7Total 44

Taula 10.1 – Resum de Publicacions

10.3.1 Resum de Publicacions

La Taula 10.1 mostra informació resumida sobre les publicacionsrealitzades en l’àmbit de la tesi.

Page 299: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

APÈNDIX AFRAMEWORK D’INTERFÍCIES WEB, WIF

A diferència dels desenvolupaments d’aplicacions tradicionals quenormalment s’implementen seguint una arquitectura i llenguatgeconcret, en l’àmbit de la Web existeix una major hetereogenitat. Enprimer lloc, sempre entren en joc dos llenguatges clarament diferen-ciats: el llenguatge de programació o script que implementa la lògicade negoci de l’aplicació Web i el llenguatge HTML que defineix lespàgines que rep el navegador. La combinació inadequada d’ambdósllenguatge dona lloc amb relativa facilitat a l’efecte anomenat “spag-hetti” on la presentació definida en HTML es troba barrejada ambscript en altre llenguatge que defineixen el seu comportament.

Aquesta problemàtica implica que les aplicacions siguen costosesde mantenir i comprendre. La introducció de noves tecnologiesbasades en JavaScript, com AJAX [4], no fan més que complicarmés el ja de de per sí complexe panorama en el desenvolupamentWeb, introduint un llenguatge més al problema, que barreja inhe-rentment aquetos conceptes. I, per si aquestos problemes no foren

281

Page 300: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

282 APÈNDIX A. FRAMEWORK D’INTERFÍCIES WEB, WIF

suficients, les incompatibilitats entre diferentes navegadors Web al’hora d’interpretar l’HTML de l’aplicació provoca que el desenvo-lupamnet Web totalment compatible siga encara més complicat, sicap.

En l’actualitat existeix una gran varitat de frameworks per aldesenvolupament d’aplicacions Web. Alguns exemples que tenenuna particular accpetació són Struts [40] basat en J2EE, Ruby onRails [107], Cake PHP [19] com alternativa OpenSource, o el propiASP .NET [73] de Microsoft. La proliferació d’aquest tipus de fra-meworks es deu a la necessitat de mecanismes que faciliten el desen-volupament d’aplicacions Web. Aquestos frameworks fan especialtractament entre la separació entre la lògica de negoci i la presenta-ció, emprant a sovint patrons de disseny com el MVC (“Model-View-Controller” [96]). A més més, inclouen facilitats per desenvoluparaplicacions com ara l’abstracció de la comunicació client-servidor,la simulació d’events en la interfície o la introducció de “widgets”d’interfície HTML. L’objectiu que persegueixen no és un altre sinófer equiparable el desenvolupament Web amb el desenvolupamenttradicional.

Tanmateix, aquestos frameworks no són una solució òptima enentorns de producció de programari MDA. Encara que és cert quefaciliten la implementació, les aplicacions web continuen definint-se en base al llenguatge de programació sobre el que es sustentael framework. D’altra banda, el disseny segueix bassant-se enplantilles sobre les que s’“injecta” el codi HTML que retorna la lògicade negoci.

Des d’un punt de vista MDA (PIM/PSM-a-codi), l’avanç no ésespecialment significatiu. En alguns casos, inclús poden dificultarles transformacions al imposar una arquitectura que difícilment potser obtesa a partir dels models concpeutals. D’una banda, gran

Page 301: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

283

part de la lògica de negoci està lligada a conceptes d’implementaqcióespecífics del framework que no té perquè estar suportat en altresframeworks. Com a conseqüència, les transformacions definidesemprant un framework destí són totalment depenents d’aquest, ino són fàcilment adaptables a altres frameworks.

Un dels principis que proposa la filosofia de les Fàbriques deSoftware [57] és la d’utilitzar frameworks que abstraguen els con-ceptes tecnològics relacionats a l’aplicació a construir. Seguintaquesta premisa, s’ha definit una Framework per a la construc-ció d’Interfícies Web (que hem anomenat WIF). Aquest framework(WIF) presenta dos diferències fonamentals respecte a la resta deframeworks actuals: (1) sols s’encarrega de definir al interfície webque es comunica amb la lògica de negocia (implementada a banda);i (2) presenta una visió més “declarativa” de la construcció d’aplica-cions Web. Enlloc de sustentar-se en un llenguatge de programació,el framework es sustenta una sèrie de primitives d’alt nivell querepresenten conceptes habituals de les interfícies Web.

Aquest framework abstrau mitjançant un conjunt de classes, elselements comuns, com ara: pàgines, enllaços, menús, etc. D’aquestaforma, la definició d’una aplicació Web es realitza instanciant aques-tes classes amb la informació del domini de l’aplicació (visualitzarinformació de clients en forma de taula, crear un enllaç a la pàginade factures, etc.). Si bé el framework ha sigut desenvolupat ambPHP 5, per a la construcció de les aplicacions només caldrà emprarla interfície d’operació (“API”) que el framework proposa (veure Sec-ció ??), en base als seus objectes i operacions. D’aquesta manera,l’ús de PHP és anecdòtic, ja que els conceptes del framework podrienhaver-se implementat en altre llenguatge orientat a objectes per a laweb, com ara J2EE o ASP .NET (C#). Les úniques diferències entrel’ús del framework definit en un u altre llenguatge es trobarien a

Page 302: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

284 APÈNDIX A. FRAMEWORK D’INTERFÍCIES WEB, WIF

nivell sintàctic.

A.1 Relació d’OOWS amb el Framework

OOWS, com metodologia Web, permet definir un esquema concep-tual d’una aplicació Web. Els models d’Usuaris, de Navegació i dePresentació d’OOWS descriuen a alt nivell una aplicació Web. Coms’ha vist al Capítol ??, és possible transformar aquestes descripcionsen una aplicació Web concreta. Una de les solucions possibles ésemprar aquest framework WIF com llenguatge objectiu en el procésde transformació.

D’altra banda, són els models definits per OO-Method (Diagramade Classes, Model Dinàmic i Model Funcional) els que defineixen lafuncionalitat del sistema. La comunicació amb aquesta lògica denegoci es produeix mitjançant una façana de negoci encarregada depresentar la lògica de negoci com un conjunt de serveis de recupera-ció d’informació i funcionalitat [22].

El framework assumeix que la informació es troba representadamitjançant un model del domini, normalment en forma d’un dia-grama de classes o d’entitat-relació, de forma implícita (o per unaabstracció) de la façana de negoci. Com a conseqüència, els atributsde les classes/entitats defineixen la informació emmagatzemada i lesoperacions i la funcionalitat ofertada.

En el cas particular de produir aplicacions Web mitjançant Oli-vaNOVA [20], la implementació comercial d’OO-Method, aquesta fa-çana de negoci es comunica mitjançant un objecte COM+ que repre-senta la informació mitjançant un model d’estructura (diagrama declasses). Tanmateix, el disseny del framework no obliga que aquestalògica siga necessàriament implementada mitjançant OlivaNOVAiestà preparat per suportar funcionalitat que provinga d’altres fonts.

Page 303: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

A.2. WIF, Un Framework per a construir Interfícies Web 285

A.2 WIF, Un Framework per a construir In-terfícies Web

Una aplicació Web creada mitjançant el framework d’interfícies Webes fonamenta en quatre classes principals: Application, Page, Zone iService.

Application emmagatzema l’estructura navegacional de l’aplicacióweb i les seues característiques globals

Page defineix una pàgina web a la que s’accedirà com a resultat denavegar per l’aplicació web

Zone especifica el contingunt que forma part d’una pàgina web

Service estableix un vincle amb l’execució d’una funcionalitat del’aplicació web

A partir d’aquestes quatre classes principals del framework ésdefineixen una sèrie de mètodes que permeten construir una inter-fície Web. A continuació es detallen les operacions que ofereix elframework, classificades en grups de funcionalitat i la classe sobrela que està definida. A més a més, es mostra el model de base aaquestes classes del framework, que forma el PSM implícit per a lestransformacions de Model-a-codi.

A.2.1 Creació de l’Aplicació

El punt de partida per a la definició d’una interfície mitjançant unframework és la creació d’un objecte Aplicació que emmagatzemela informació global de l’aplicació. Aquesta informació es defineixmitjançant un objecte únic (“singleton”) de la classe Application.Entre altres dades, emmagatzema la referència a l’objecte amb la

Page 304: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

286 APÈNDIX A. FRAMEWORK D’INTERFÍCIES WEB, WIF

façana de negoci, l’usuari actualment connectat, les pàgines sobreles que aquest usuari té permís d’accés i la seua ubicació actualen l’aplicació. Aquest objecte Application s’emmagatzema en lacache de sessió de manera que puga ser recuperat per la resta dela interfície.

A continuació es mostren les operacions específiques relaciona-des amb la creació d’una nova aplicació.

A.2.1.1 Application.New

Crea un objecte Application on se li indica el nom de la aplicació,un identificador del tipus de la lògica per defecte a emprar i l’iden-tificador de l’objecte que encapsula la lògica de negoci. La interfícied’operació és la següent:$Application = new Application(pAppName:String,

pLogicType:String, pBLId:String);

on:

• pAppName és el nom de l’aplicació Web

• pLogicType indica el tipus de lògica de negoci a la que esconectarà. Actualment estan suportats els següents tipus:“ONME”, “WebServices” i “PHP”

• pBLId indica l’objecte que implementa la lògica, en funció deltipus de lògica de negoci que s’haja especificat. Aquest serà:l’identificador d’un objecte COM+ si la lògica és OlivaNova,una URL a un Servei Web o una classe BusinessFacade si lalògica està en PHP.

El fet de crear un objecte Application implica també la creaciód’un objecte que representa la lògica de negoci seleccionada.

Page 305: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

A.2. WIF, Un Framework per a construir Interfícies Web 287

Exemple:$Application = new Application(“IMDB”, “ONME”, “IMDBSpace”);

A.2.1.2 Application.DefaultStyle

Defineix l’estil CSS a aplicar a l’aplicació introduint-hi el nom delfitxer d’estils.$Application->DefaultStyle(pDefStyle:String);

Aquest estil ha de ser un dels que existisca al recurs “styles” del’aplicació web.

Extemple:$Application->DefaultStyle(“IMDB”);

A.2.2 Autenticació d’Usuaris

El framework incorpora un mecanisme d’autenticació d’usuaris ba-sat en Rols. Un Rol representa a un grup d’usuaris que compartei-xen els permissos, podent establir herència entre rols (els rols fillshereten els permissos del rol pare). El framework presuposa que lalògica de negoci proporciona un servei per autenticar usuaris i retor-na un valor lògic (booleà). Els mètodes que configuren l’autenticaciód’usuaris són: Application.Rol, Application.AllowAnonymous.

A.2.2.1 Application.Rol

Un Rol defineix a un grup d’usuaris de l’aplicació sobre el que selsotorga permís per accedir o no a una pàgina determinada. Un rol

Page 306: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

288 APÈNDIX A. FRAMEWORK D’INTERFÍCIES WEB, WIF

es defineix en base a un identificador únic, un àlies, un servei de lalògica de negoci d’autenticació i un rol pare. L’aplicació espera queun usuari s’identifique mitjançant un login i un password que seranenviats a aquest servei d’autenticació. Si el servei retorna “cert”, espermetrà a l’usuari entrar n l’aplicació. D’altra banda, el rol parepermet definir un mecanisme d’herència entre rols de manera queel fill herete els permisos d’accés a l’aplicació del rol pare.$Application->Rol(pRol:String, pRolAlias:Sring,

pAutService:String, pParentRol:String);

Exemple: El següent exemple defineix un Rol “Logged Client”que hereta els permisos de l’usuari anònim i realitza l’autenticacióamb el servei “Client_Login”. A més a més, es defineix un Rol“Administrador” que hereta del rol anterior i per tant també delsusuaris anònims.$Application->Rol(“Logged Client”, “Client”, “Client_Login”,

“Anonymous”);

$Application->Rol(“Administrator”, “Administrator”,

“Administrator_Login”, “Logged Client”);

A.2.2.2 Application.AllowAnonymous

Habilita la possibilitat de que puguen accedir usuaris anònims al’aplicació.$Application->AllowAnonymous();

Page 307: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

A.2. WIF, Un Framework per a construir Interfícies Web 289

A.2.3 Definició de les Pàgines Web

En una interfície Web, les pàgines són l’element principal, ja queactuen com els contenidors de la informació, la funcionalitat i per-meten a l’usuari interactuar amb el sistema. La missió de la classePage del framework és la de representar una pàgina Web. Cadapàgina és creada en un fitxer individual amb el nom de l’identifica-dor de la pàgina, i estableix la URL d’accés. El conjunt de pàginesque formen la interfície Web és definit a l’objecte Application, creantreferències a les diferents pàgines i establint el rol que té accés acadascuna, junt amb la seua accessibilitat.

El framework també permet la possiblitat de definir grups depàgines que divideixen la interfície en subsistemes per facilitar lanavegació. A partir de tota aquesta informació el framework ge-nera de forma automàtica un menú de navegació principal (zonade navegació) que comparteixen totes les pàgines de la interfíce.Aquest menú esà format per totes les pàgines definides amb ac-cessibilitat “Always” que pertanyen al rol de l’usuari connectat.Els mètodes disponibles per a la creació de pàgines són: Appli-cation.Page, Application.PageGroup, Application.AddPageToGroup,Application.HomePage, Page.New.

A.2.3.1 Application.Page

Afig la referència a una pàgina a l’objecte Application. Rep l’iden-tificador de la pàgina que deu coincidir amb l’identificador (nomdel fitxer) de l’objecte Page al que repesenta, un àlies, el rol queté permís per accedir a la pàgina i l’accessibilitat. Aquest últimparàmetre pot prendre únicament dos valors: Always, si la pàginapot ser accedidad des d’enlloc en l’aplicació web, o FromPage si solses possible accedir a través d’una seqüència de navegació concreta(a través d’un enllaç explícit en una altra pàgina).

Page 308: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

290 APÈNDIX A. FRAMEWORK D’INTERFÍCIES WEB, WIF

Exemple: Es mostra la definició de dues pàgines, MovieCom-ments i MovieInformation amb diferents rols i accessibilitat:$Application->Page(“MovieComments”, “Comments”, “Registered

User”, “Always”);

$Applciation->Page(“MovieInformation”, “Movie Detail”,

“Anonymous”, “FromPage”);

La primera pàgina, MovieComments, definida amb l’àlies Com-ments, està accessible desde qualsevol pàgina per al rol RegisteredUser.

La segona pàgina, MovieInformation, definida amb l’àlies MovieDetail, està accessible per als usuaris anònims però sols a partird’altres pàgines concretes1.

A.2.3.2 Application.PageGroup

El framework permet la definició d’agrupacions de pàgines a fi defacilitar la navegació. Un grup rep un identificar que fa referència aun objecte Page que representa la pàgina inicial del grup, un rol quetindrà permisos sobre totes les pàgines del grup i un grup pare si elgrup es troba dins un altre grup (subgrup). Aquest últim paràmetrerep el valor Root si no es troba dins de cap altre grup.

Exemple:$Application->PageGroup(“MoviesBrowse”, “Anonymous”, “Root”);

1Els enllaços a aquesta pàgina es definiran mitjançant el mètode Fi-eld.InternLinkTo a la Secció A.2.7.3

Page 309: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

A.2. WIF, Un Framework per a construir Interfícies Web 291

A.2.3.3 Application.AddPageToGroup

Mitjançant aquest mètode és possible afegir referències a pàginesdins d’un grup, de manera similar al mètode Application.Page. Laúnica diferència és que el rol no és necessari definir-lo, ja que ja hasigut definit al crear al grup.

Exemple:$Application->AddPageToGroup(“MoviesGenre”, “ByGenre”,

“MoviesBrowe”, “Always”);

A.2.3.4 Application.HomePage

Aquest mètode permet establir quina serà la pàgina d’inici d’unaaplicació. Deu verificar-se que els usuaris tinguen un rol adequatper poder accedir a aquesta pàgina, ja que en cas contrari no podranaccedir a l’aplicació.

Exemple:$Application->HomePage(“TopMovies”);

A.2.3.5 Page.New

Inicialitza un objecte de tipus pàgina (Page) a partir del qual espodran afegir les diferents zones de contingut. Rep l’àlies de lapàgina, que és el que serà visible en l’aplicació Web.

Exemple:$Page = new Page(“Top Movies”);

Page 310: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

292 APÈNDIX A. FRAMEWORK D’INTERFÍCIES WEB, WIF

!"#$%&'()

!"##$%&'(%)*+,-'./01)2#345)6%/781)97/:;:"*)*<=)27:;:>))(:?@A

!""#$%&'$()*!++,&-./(01(2"3

!"#$%&'(")*"*(#*"+'#,),"*("-,(./0*"%1%).$"$*2*$*34.%("%"-56.3%(")*3#$,")*"73"6$7-,")*"2,$+%"(.+.0%$"%0"+'#,),"*+,#8"9%":3.4%").2*$*34.%"*(";7*"*0"$,0"3,"*("3*4*(%$.,")*2.3.$0,"-7*(#,";7*"<%"27*")*2.3.),"%"0%"=,$%")*"4$*%$"*0"6$7-,8"

!"#$%&'()

!"##$%&'(%)*+,"BB-'./C)01)2#345)6%/70/*1/:;:8<0/*1/:;:5)6%/781)97/:;:"$9'<7:?@A

!""#$%&'$()*4(5.,&-.3

>(#%"+'#,),"-*$+.#*"*(#%/0*4*$"47%0"(*$5"0%"-%6.3%")*".3.4.,")*"0%"%-0.4%4.?38"@*/*"&*$.2.4%$(*";7*" 0,("7(7%$.,("#*3)$53"*0"$,0"%)*47%),"-%$%"-,)*$"%44*)*$"%"*00%"<%";7*")*" 0,"4,3#$%$.,"3,"(*$5"-,(./0*"*3#$%$"*3"0%"%-0.4%4.?38""

!"#$%&'()

!"##$%&'(%)*+,D)=/-'./34C)#5)6%/7:?@A

,&-.*6.73

A3.4.%0.B%"73",/C*#,"-56.3%"%"-%$#.$")*0"47%0"(*"-,)$53"%1%).$"0%(").2*$*3#*("B,3%(")*"4,3#*3.),8"D*4./*"*0"%0.%("%"+,(#$%$")*"0%"-56.3%"

!"#$%&'())

!-'./AEA*/9A-'./34C)#A5)6%/7:?@A

"

-.//01#//2',034+3+5#

.)"E"F#$.36

GFH%4%)*

7$0GF@9"E"F#$.36

IJIH%4%)* KLM>H%4%)*

4,+F*$&*$"E"F#$.36

D,0

0,6.3K-*$%#.,3"E"F#$.36

N-%$*3#D,0

I%6*O$,7-

P88QP P88QP

N-%$*3#O$,7-

!--0.4%#.,3

3%+*"E"F#$.36

)*2%70#F#<0*"E"F#$.36

!00,R!3,3<+,7("E"S,,0

P

T88Q

P

T88Q

T88QT88Q

T88Q P88QT88Q P88Q

I%6*

%44*((./.0.#<"E"F#$.36

PP

P

NI%6*(

P

T88Q

P88Q

T88Q

P88Q

T88Q

P

T88Q

PPP

NJ,+*I%6*

3

8$-*39*:3;(+.#(3+.3#&3&"#$%&%$<)=3&2'.)'$%&%$<)3>3+.?$)$%$<)3+.3"@-$)&A3

!"#$ %&'()&*+',-.$/&$0+$,.12*3+',-.$

F."#*3*+,("*3"47*3#%";7*"273)%+*3#%0+*3#*"0%"2734.?3")*"73%"%-0.4%4.?3"G*/"*("0%")*"+,(U#$%$" .32,$+%4.?3V"4,+-$*3)*$*+,(" 0%"&.#%0" .+-,$#%34.%")*"*(#%"4%$%4#*$W(#.4%8"9%" $*47-*$%4.?3")*" .32,$+%4.?3" (*" $*-$*(*3#%" *3" *0" 2$%+*R,$X"+*).%3#*" B,3%(" )*" .32,$+%4.?38" >(#%(" B,3%("=%4*3"$*2*$*34.%"%"40%(*(V"%#$./7#,("<"$*0%4.,3*(")*0"+,)*0,")*0"),+.3.,";7*"(,3"0%("*34%$6%U)%(")*"%0+%4*3%$"0%".32,$+%4.?3")*"+%3*$%"*(#$74#7$%)%8""Y3%"B,3%")*".32,$+%4.?3"(*"*34%$U6%"#%3#,")*"$*47-*$%$"0%".32,$+%4.?3"(,0.4.#%)%")*()*"0%"0?6.4%")*"3*6,4.,V"4,+,")*"-$*(*3#%$0%"%0"7(7%$.,")*"2,$+%"%)*47%)%8"9%(",-*$%4.,3*(";7*"-*$+.#*3")*2.3.$"B,3%(")*".32,$+%4.?3"(,3"0,("(.67.*3#*(E"

,&-.*!++B)?(15&'$()C().3

Figura A.1 – Model de l’aplicació, autenticació idefinició de pàgines

A.2.4 Recuperació de la Informació

Si tenim en compte que fonamentalment la funció d’una aplicacióWeb és la de mostrar informació, comprendrem la vital importànciad’aquesta característica. La recuperació d’informació es representaal framework mitjançant zones d’informació. Aquestes zones fanreferència a classes, atributs i relacions del model del domini quesón les encarregades d’emmagatzemar la informació de manera es-tructurada.

Una Zona d’Informació s’encarrega tant de recuperar la infor-mació solicitada desde la lògica de negoci, com de presentar-la a l’u-suari de manera adequada. Les operacions que permeten definir leszones d’informació són: Page.AddInformationZone, InformationZo-ne.Field, InformationZone.AddRelatedField iInformationZone.DetailRelationship.

Page 311: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

A.2. WIF, Un Framework per a construir Interfícies Web 293

A.2.4.1 Page.AddInformationZone

Afig una zona d’informació que recupera les instàncies associadesa una classe de la lògica denegoci (classe principal). Una zonad’informació es defineix mitjançant un identificador, un àlies, el nomde la classe principal i una variable lògica que indica si la zonad’informació té en compte un filtre navegacional o no. Si com aconseqüència d’una navegació, la pàgina rep una instància d’objecte,la zona d’informació únicament recuperarà la informació associadaa aquesta instància.

Exemple: En el següent exemple es recuperen totes les instàn-cies de la classe Movie. Si la pàgina rebera un identificador d’unainstància d’una pel·lícula, sols es recupearia la informació associadaa aquesta instància.$InfoZone = $Page->AddInformation(“TopMovies”, “Top Movies”,

“Movie”, true);

A.2.4.2 InformationZone.Field

Afig un nou camp (atribut) per a ser mostrat en una zona d’informa-ció. El camp estarà relacionat amb l’identificador d’un atribut de laclasse principal que forma la zona d’informació. A més a més, podràdefinir-se opcionalment un àlies. Per accedir a l’atribut i utilitzarels seus mètodes, s’empra la següent notació:$zona->idAtribut->mètode

Exemple: El següent exemple mostra la informació relativa alsatributs rating i commentsNumber que pertanyen a la classe Movie.$InfoZone->Field(“rating”, “Rating”);

$InfoZone->Field(“commentsNumber”, “Votes”);

Page 312: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

294 APÈNDIX A. FRAMEWORK D’INTERFÍCIES WEB, WIF

A.2.4.3 InformationZone.AddRelatedField

Afig un camp (atribut) d’una classe relacionada de manera univalu-ada2 amb la classe principal de la zona d’informació. És a dir, cadainstància de la zona d’informació tindrà un únic valor per a aquestcamp. El mètode rep l’identificador de l’atribut, l’àlies amb el que esmostrarà i l’identificador de la classe relacionada, a la que pertany.

Per accedir a l’atribut i utilitzar els seus mètodes s’empra lasegüent notació:$zona->RolClasseRelacionada_idAtribut->mètode

.Exemple: Suposant que la classe principal de la zona té una

relació a-un amb la classe AgeRating, per cada instància recuperadad’una pel·lícula podria veures la seua classificació per edad:$Zone->RelatedField(“value”, “Age rating”, “AgeRating”);

Nota: En l’estat actual d’implementació del framework sols essuporta definir camps relacionats directament amb la classe princi-pal, encara que es planteja donar solució completa i permetre definirrecuperacions a partir de classes complementàries també.

A.2.4.4 InformationZone.DetailRelationship

Crea una nova pàgina d’informació de detall a partir d’una zonad’informació principal o mestra. Un detall representa un conjuntd’instàncies relacionades amb una altra instància de la classe prin-cipal. Per tant, la classe que defineix la zona d’informació de detall

2Existeix una relació estructural en el diagrama de classes amb extrem “a-un”amb respecte a la classe orige.

Page 313: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

A.2. WIF, Un Framework per a construir Interfícies Web 295

deu tenir una relació multivaluada amb la classe principal de lazona d’informació.

Una vegada definit el detall, aquest es comporta de manerasimilar a una zona d’informació en la que la classe relacionada(detall), actua com la classe principal de la seua zona d’informació.Per tant, és possible afegir camps d’informació, mecanismes d’accési inclús altres zones, recursivament.

Una zona de detall es defineix a partir de l’identificador dela classe detall, l’identificador de la relació i l’àlies per a la zonad’informació de detall. L’identificador de la relació, junt amb laclasse relacionada és la informació que se li passa a la lògica denegoci per poder recuperar la informació relacionada. Per tant,en certa manera, es depenent d’aquesta lògica. Per al cas concretd’emprar la lògica de negoci amb OlivaNova, aquest identificador dela relació es forma mitjançant la classe relacionada, un guió baix (_)de separació i el nom del rol de la relació entre ambdues classes. Espot apreciar que aquesta aproximació és allò suficientment genèricasempre i quant el diagrama de classes que representa l’estructurad’informació empre els rols, tal com els defineix l’UML.

Exemple: Es defineix un detall per a les instànces dels gèneresde pel·lícules (Genre), de manera que mostre totes les pel·lículesassociades a cada gènere. La classe relacionada és per tant Movie, il’identificador de la relació es forma mitjançant la classe oposada enla relació, en aquest cas Genre junt amb el rol definit en el diagramade classes entre ambdues classe (en aquest cas, també Genre). Decada pel·lícula es mostrarà el seu títol i l’any en què s’estrenà.$DetailMovie = $Zone->DetailRelationship(“Movie”,

“Genre_Genre”, “Genres”); $DetailMovie->Field(“title”,

“Title”); $DetailMovie->Field(“year”, “Year”);

Page 314: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

296 APÈNDIX A. FRAMEWORK D’INTERFÍCIES WEB, WIF

A.2.5 Presentació de la Informació

Per defecte, les instàncies d’una zona d’informació es mostren al’usuari sense cap tipus d’estructura. Tanmateix, és habitual quecerts atributs tinguen una visualització distinta a la textual o quecalga limitar el número d’instàncies. Els mecanismes de presentaciós’encarreguen d’aquestes tasques. Cal destacar que aquestos meca-nismes no influeixen sobre l’aparença més visual de la informació(color, tamany de font, posició, etc.) sinó més bé en la seua estructu-ra de presentació amb relació a altres elementes.

Els mètodes disponibles són els següents: Field.Type, Informa-tionZone.AddSortCondition, InformationZone.SetPagination, Infor-mationZone.SetMaxInstances i InformationZone.SetLayout.

A.2.5.1 Field.Type

A través de la propietat Type és possible determinar com la informa-ció que conté un camp serà renderitzada a l’hora de tornar la pàginaWeb. En altres paraules, defineix el tipus de presentació del camp.Els tipus possibles, en la implementació actual, són:

• Text: Per defecte, la informació recuperada en un camp esmostra a l’usuari de forma textual, és a dir, com una simplecadena.

• Number: La informació es segueix mostrant de manera tex-tual, però l’identificador de l’estil de camp varia per poderestablir un estil diferenciat al de la informació textual.

• Decimal: Defineix un número amb dues possicions decimals apartir d’un camp numèric. A més a més, afig un identificadord’estil diferent.

Page 315: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

A.2. WIF, Un Framework per a construir Interfícies Web 297

• Image: Mostra el camp com una image mitjançant l’estiquetaIMG (de HTML). El camp deurà contenir una URL vàlida queapunte a la image.

• ExternLink: Mostra el camp com un enllaç mitjançant l’etique-ta A (de HTML). Aquest tipus d’enllaç únicament deu emprar-se per a enllaços externs a l’aplicació.

• MailTo: Estableix el camp com un link a una adreça de cor-reu electrònic mitjançant l’identificador mailto en la URL del’etiqueta A (de HTML). El camp ha de contenir una adreça decorreu electrònica vàlida.

• Multimedia: Defineix la renderització del camp com un objectemultimedia (generalment un arxiu flash), mitjançant l’etique-ta EMBED (de HTML).

Per accedir a aquest atribut, s’empra la següent notació, depe-nent d’on es trobe l’atribut. Per a camps de la classe principal:$zona->idAtribut->Type(pTipus)

Per a camps de classes relacionades:$zona->ClasseRelacionada_idAtribut->Type(pTipus)

Exemple:$InfoZone->rating->Type(“Decimal”);

A.2.5.2 InformationZone.AddSortCondition

Estableix una condició d’ordenació sobre algun dels camps definitsen la zona de informació. Aquest mètode rep l’identificador de

Page 316: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

298 APÈNDIX A. FRAMEWORK D’INTERFÍCIES WEB, WIF

l’atribut i el sentit de la ordenació (ASCendent o DESCendent).Exemple:

$InfoZone->AddSortCondition(“rating”, “DESC”);

A.2.5.3 InformationZone.SetPagination

Defineix el número d’instànces que formen una pàgina en la zonad’informació. Aquesta primitiva activa automàticament el meca-nisme de paginació de tal manera que l’aplicació mostra un únicconjunt d’instànces de cardinalitat definida. L’usuari podrà navegara la pàgina anterior o posterior, així com directament a la pàgina enconcret a través d’un número de posició.

Nota: Com es pot observar, la implementació actual només donasuport a la paginació estàtica. És a dir, no permet canviar-la dinà-micament. És una tasca pendent permetre la paginació dinàmica.

Exemple:$InfoZone->SetPagination(50);

A.2.5.4 InformationZone.SetMaxInstances

Estableix el número màxim d’instàncies a mostrar en una zonad’informació (per temes de rendiment).

Exemple:$InfoZone->SetMaxInstances(1000);

Page 317: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

A.2. WIF, Un Framework per a construir Interfícies Web 299

A.2.5.5 InformationZone.SetLayout

Defineix com s’estructura la informació de les instàncies recupe-rades. Actualment existeixen tres tipus possibles de distribucionsde presentació (layouts) que poden ser definits, més un quart tipus(Mestre-Detall) que s’empra automàticament quan es defineixen de-talls en la zona d’informació.

• TabularVertical: és la distribució per defecte. Les instànciessón mostrades en forma de taula on la capçalera de les colum-nes són els àlies dels diferents camps de la taula. Cada filaaddicional representa una instància.

• TabularHoritzontal: les instàncies es mostren en una composi-ció tabular, però en aquest cas les files de la primera columnacontenen els àlies dels camps. Cada columna addicional repre-senta una instància.

• Registre: es mostra tota la informació associada a una instàn-cia (àlies i valors dels seus camps) un a un.

Exemple:$InfoZone->SetLayout(“Register”);

A.2.6 Mecanismes d’accés a la informació

Sempre que l’usuari accedeix a una zona d’informació, són recupe-rades totes les instànces que formen part de la classe principal iaquelles relacionades mitjançant detalls. En molts casos, aquestcomportament pot comprometre la usabilitat ja que l’usuari pot ve-rure’s desbordat per la quantitat d’informació recuperada. Els me-canismes d’accés a la informació que ofereix el framework pretenen

Page 318: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

300 APÈNDIX A. FRAMEWORK D’INTERFÍCIES WEB, WIF

!""#$%&"'

(')*"'+,$')+

-)*../

0112

/

0112

(3)'!..34$*"$35

6'"*$)(')*"$35.7$8

#')*"$35.7$89:9;"#$5<

!"#$

=5>3#?*"$35@35'

A*<$5*"$359:9=5"'<'#

B*C=5."*54'.9:9=5"'<'#

D*E3&"9:9;"#$5<

0112

/

0112

/

/0112 /0112

;3#"-35+$"$35

F#+'#9:9;"#$5<

/112

/

/112

/

,$')+

G$.$%)'9:9H33)'*5

"E8'9:9;"#$5<

/

0112

/

0112

/

/112

/

/112

9

!"#$%!&%'!()*+,)!-./.!,.!+0-+1#2#1.1#34!*+!,.!#42)/5.1#34!

!"#$ %&'()*+,-+$.&$(''&+-$($/($*)0-1,('*2)$

;$'?8#'9I&'9')9&.&*#$39*44'+'9*9&5*9J35*9+'9 $5>3#?*4$K5L9.359#'4&8'#*+*.9"3+*.9)*.9$5."*5M4$*.9I&'9>3#?*598*#"'9+'9)*94)*.'98#$54$8*)9E9*I&'))*.9#')*4$35*+*.9?'+$*5"'9+'"*))'.19N59<#*59G*#$'+*+9+'9'.4'5*#$3.L9'."'943?83#"*?$'5"398&'+'943?8#3?'"'#9)*9&.*%$)$+*+9E*9I&'9')9&.&*M#$398&'+'9 G'#.'9+'.%3#+*+3983#9 )*9 4*5"$+*+9 +'9 $5>3#?*4$K59 #'4&8'#*+*19D3.9?'4*5$.?3.9+'9*44'.39+'9)*9$5>3#?*4$K59I&'93>#'4'9')9>#*?'O3#PL98#'"'5+'59.3)&4$35*#9'."'98#3%)'?*9#'."#$5M<$'5+39')9435Q&5"39+'9$5."*54$*.9I&'9.359#'4&8'#*+*.9+'.+'9)*9)K<$4*9+'95'<34$319N)9>#*?'O3#P9.383#"*9 +3.9 "$83.9 +'9?'4*5$.?3.9 +'9 *44'.3:9 /R9 =5+$4'.L9 I&'9 '."*%)'4'59 &5*9 8*#"$4$K59 '59 ')9435Q&5"39+'9$5."*54$*9*98*#"$#9+'9)3.9+$."$5"3.9G*)3#'.9+'9&59*"#$%&"39E9SR9,$)"#3.:9I&'9+'>$5'59&5*9435+$4$K59)K<$4*9.3%#'9&59*"#$%&"39+'9"*)9>3#?*9I&'9.K)39.'9#'4&8'#*59*I&'))*.9$5."*54$*.9I&'9)*94&?8)'519 F84$35*)?'5"'9 8*#*9 *?%3.9?'4*5$.?3.9 '.9 83.$%)'9 +'>$5$#9 &5*9 G$."*9 +'9 %T.I&'+*9U%$&'()* +,$-R9 I&'9?&'."#*9 '59 >3#?*9 *%#'G$*+*9 U&"$)$J*5+39 &53.9 8343.9 *"#$%&"3.9 +'9 )*9 4)*.'98#$54$8*)R9')9435Q&5"39+'9$5."*54$*.9#'4&8'#*+*.9*)9*8)$4*#9&59?'4*5$.?39+'9*44'.319D3.9?V"3M+3.9I&'98&'+'59&"$)$J*#.'98*#*9)*9+'>$5$4$K59+'9'."3.9?'4*5$.?3.9.'9+'"*))*59*9435"$5&*4$K5:99

642)/5.7#)48)4+%9+2#4+64*+:!

6'>$5'9&59W5+$4'9.3%#'9&59*"#$%&"39'9)*9J35*9+'9$5>3#?*4$K598'#"'5'4$'5"'9*9)*94)*.'98#$54$8*)939+$#'4"*?'5"'9#')*4$35*+*94359V."*19('4$%'943?398*#X?'"#3.9')9$+'5"$>$4*+3#9+')9W5+$4'L9&59*)$*.9E9 ')9 $+'5"$>$4*+3#9 +')9 *"#$%&"39 U53?%#'9 +'9 )*9 4)*.'9Y9 19 Y9 53?%#'9 *"#$%&"3R9 I&'9 *4"T*9 43?39 $5M+'C*+3#19

./$012":9

;&835$'5+39&5*9J35*9+'9$5>3#?*4$K59+'>$5$+*9.3%#'9)*94)*.'93$#'$L9')9.$<&$'5"'9W5+$4'9'."*#W*9>3#?*+3983#9)3.9+$."$5"3.9"$83.9+'9<V5'#3.9

!"#$%&'%()(!*&+,-,&%./0%+"&%*&1%234"#$%&'%4546%7%89($%&'%454$%&'%:;<7=%4>?(

642)/5.7#)48)4+%9+2#4+;7.7#1"#,7+/!

-#'*9&59>$)"#39+'94*#X4"'#9'."X"$439.3%#'9&59*"#$%&"39+'9)*94)*.'98#$54$8*)939+$#'4"*?'5"'9#')*4$3M5*+394359V."*19Z59>$)"#K9'."X"$439'.9*I&')9I&'9)*9435+$4$K59+'9>$)"#*+39'."X9>3#?*+3983#9&5*9>K#M?&)*9)K<$4*94'##*+*9U.$598*#X?'"#3.R19N)9&.&*#$3983+#X9*4"$G*#939+'.*4"$G*#9')9>$)"#398'#3953983M+#X9?3+$>$4*#9)*9>3#?&)*9+'9>$)"#*+398#'+'>$5$+*9'59"$'?839+'9+$.'[319N."*938'#*4$K59#'4$%'943M?39*#<&?'5"3.9')9$+'5"$>$4*+3#9+')9>$)"#39'."X"$43L9&59*)$*.98*#*9')9?$.?3L9')9*"#$%&"39+'9)*94)*.'9

Figura A.2 – Model per a l’Especificacio de la In-formació

solucionar aquest problema restringint el conjunt d’instàncies quesón recuperades desde la lògica de negoci.

El framework soporta dos tipus de mecanismes d’accés: (1) Ín-dexos, que estableixen particions en el conjunt d’instàncies a partirdels valors que pot prendre un atribut (creant classes d’equivalèn-cia), i (2) Filtres, que defineixen una condició lògica sobre un atributde manera que sols es poden recuperar aquelles instàncies que lacompleixen.

Opcionalment, per a ambdós mecanismes és possible definir una

Page 319: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

A.2. WIF, Un Framework per a construir Interfícies Web 301

vista de búsqueda o de resultats (Search View) que mostre de for-ma abreviada (utilitzant uns pocs atributs) el conjunt d’instànciesrecuperades a l’aplicar el mecanisme d’accés.

Els mètodes que poden emprar-se per la definició d’aques-tos mecanismes són: InformationZone.DefineIndex, Information-Zone.DefineStaticFilter, InformationZone.DefineDynamicFilter, Fil-ter/Index.SearchView, SearchView.Attribute i SearchView.SelectionAttribute.

A.2.6.1 InformationZone.DefineIndex

Defineix un índex en una zona d’informació sobre un atribut dela classe principal o d’una classe relacionada amb aquesta direc-tament. Rep com paràmetres l’identificador de l’índex, un àlies il’identificador de l’atribut (en la forma: “nom de la classe + . + nomde l’atribut”) que actua com indexador.

Exemple: Suposant una zona d’informació definida sobre la clas-se gèneres de pel·lícules (Genre), el següent índex crearia una llistaamb tots els gèneres disponibles:$i_Genre = $InfoZone->DefineixIndex(“i_Genre”, “Select

Genre”, “Genre.value”);

A.2.6.2 InformationZone.DefineStaticFilter

Crea un filtre de caràcter estàtic sobre un atribut de la classeprincipal o directament relacionat amb aquesta. Un filtre estàtic ésaquell en que la condició de filtrat està format per una fòrmula lògicatancada (sense paràmetres). L’usuari podrà activar o desactivar elfiltre, però no podrà modificar la fòrmula de filtrat predefinida entemps de disseny.

Aquesta operació rep com argument l’identificador del filtre es-tàtic, un àlies per al filtre, l’atribut de la classe sobre la que actua el

Page 320: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

302 APÈNDIX A. FRAMEWORK D’INTERFÍCIES WEB, WIF

filtre, un operador de filtre i el valor de la fòrmula que deu complirl’atribut.

Els operadors de filtre actualment disponsibles són: “Equal” (elsdos valors són idèntics), “Aproximate” (la cadena alfanumèrica delvalor del filtre està continguda en el valor de l’atribut), “Greater”(major estricte), “GreaterEqual” (major o igual), “Lesser” (menorestricte) i “LesserEqual” (menor o igual).

Exemple: Suposant una zona d’informació definida sobre la clas-se Movie, el següent filtre mostra les películes produides a partir del’any 2000.$f_y2000 = $InfoZone->DefineStaticFilter(“f_y2000”, “Movies

from year 2000”, “Movie.year”, “GreaterEqual”, “2000”);

A.2.6.3 InformationZone.DefineDynamicFilter

Defineix un filtre de caràcter dinàmic sobre un atribut de la classeprincipal o directament relacionada amb aquesta. A diferènciadel filtre estàtic, en un filtre dinàmic la condició de filtrat estàformada per una fòrmula lògica oberta, és a dir, amb paràmetres.Com a conseqüència, l’usuari deurà introduir un valor sobre el quals’aplique la condició de filtrat.

Un filtre dinàmic es defineix mitjançant un identificador, unàlies, l’identificador de l’atribut de la classe principal i un operadorde filtre (igual que els dels filtres estàtics).

Exemple: El següent filtre rep un any introduit per l’usuari iretorna les pel·lícules produides en aqueix any.$f_year = $InfoZone->DefineDynamicFilter(“f_yar”, “Movies by

year”, “Movie.year”, “Equal”);

Page 321: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

A.2. WIF, Un Framework per a construir Interfícies Web 303

A.2.6.4 Filter/Index.SearchView

Tant als filtres com als índex se’ls pot associar una vista de resultats(Search View) que mostre els resultats d’executar el mecanisme.La vista es composa d’un conjunt d’atributs de la classe principali almenys un atribut de selecció, que al ser seleccionat per l’usuarimostra tota la informació de la instància.

Una vista de resultat es defineix a partir de la classe a la que fareferència, i un àlies. Es deu tenir un compte, a efectes pràctics, queuna vista de resultats es comporta com una zona d’informació.

Exemple: El següent codi defineix una vista de resultats sobre laclasse Actor associat al filtre “f_fActor”.$f_fActor->SearchView(“Actor”, “Actor names”);

A.2.6.5 SearchView.Attribute

Afig un atribut per ser mostrat en una vista de resultats. Els atri-buts poden pertanyer tant a la classe principal de la vista com a unaclasse relacionada de forma directa i amb cardinalitat univaluada.

Rep com paràmetres l’identificador de l’atribut i un àlies.Exemple: S’afegeix l’atribut “Actor.first_name” i “Actor.last_name”

a la vista de resultats.$f_fActor->Attribute(“Actor.first_name”, “First Name”);

$f_fActor->Attribute(“Actor.last_name”, “Last Name”);

A.2.6.6 SearchView.SelectionAttribute

Defineix l’atribut de selecció en una vista de resultats. L’atributdeu pertànyer a la classe principal sobre la que es defineix la vista.

Page 322: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

304 APÈNDIX A. FRAMEWORK D’INTERFÍCIES WEB, WIF!"#$%$&"#"'#$()*+,(-##./0(-)12*)3(45$6"7#$#'$#8*3($#&"#+93:,"&$#

!"#"$%&'()*$&&(+,-&./0$%&'(1"+(2&#345.0607+(2&8945.0:;8

;<5$6*0=*'(") !($(*0=*'(")

2*'(")>$',"#?#!()*5@

=*"'&

!"$)0A>*"B

CD!"'"0(*-5/(()*+,(" E11F D/(()*+,("3C E11F

G5&"H

G52-)6$(*-5I-5"

C

E11F

C

E11FE11F

!"#$%&

2*'(")JK")$(-)#?#!()*5@

E11F

E11F

E11F

#

!"#$%&$'%()*+,)%-./.%,.%*+0"1"2"31%*+%4+2.1"54)5%*+%.22+5)%

!"!# $%&'()*)(+(),-#.'#/+#-+0'1+(),-#L5#"'#&-6*5*-#&"#'$3#$K'*0$0*-5"3#M"+#'$#*5(")$00*N5#2,5&$6"5($'#"3#'$#5$8"@$0*N51#L'#2)$6"OB-)P#K")6*("#&"2*5*)#($5(-#'$#5$8"@$0*N5#()$&*0*-5$'Q#"5("5&*&$#0-6-#'$#()$53*0*N5#&"#,5$#KR@*5$#$#-()$Q#0-6-#'$#5$8"@$0*N5#-+S"(,$'1#L3($#*5(")$00*N5#&"#5$8"@$0*N5#"3($#$3-0*$&$#$#'$#3"'"0O0*N5#&"#,5$#*53($50*$Q#&"#($'#2-)6$#:,"#0,$5&-#3"#$0(*8$#'$#5$8"@$0*N5Q#'$#KR@*5$#&"3(*5-#)"0*O+"#"'#-*&#&"#'$#*53($50*$#:,"#&*3K$)N#'$#5$8"@$0*N51#L'#2)$6"B-)P#0-5("6K'$#($6+*T5#'$#5$8"O@$0*N5#K-)#)"'$0*N5Q#&"#($'#6$5")$#:,"#K")6*("#3"'"00*-5$)#$'@,5$#&"#'$3#)"'$0*-5"3#:,"#K-3""#,5$#*53($50*$#0-5#-()$3#0'$3"3#K$)$#$0(*8$)#'$#5$8"@$0*N51#L5#"3("#0$3-Q#'$#KR@*5$#&"3(*5-#)"0*O+"#($5(-#"'#-*&#&"#'$#*53($50*$#0-6-#'$#)"'$0*N5#3"'"00*-5$&$1#U$#:,"#'$3#*53($50*$3#&"#'-3#-+S"O(-3#3-5#)"K)"3"5($&-3#"5#"'# 2)$6"B-)P#6"&*$5("#V-5$3#&"# *52-)6$0*N5Q#"3("# (*K-#&"#5$8"@$O0*N5#3"#$3-0*$#$#"'"6"5(-3#&"#&*0A$#V-5$1#L'# 2)$6"B-)P# *50-)K-)$#,5#6"0$5*36-#&"# 2*'()$&-#-+S"(,$'# W$0(*8$&-#$# '$#A-)$#&"#0)"$)#,5$#V-5$#&"# *52-)6$0*N5X#:,"#K")6*("#:,"#,5$#V-5$#&"#*52-)6$0*N5#3N'-#6,"3()"#'$#*52-)6$0*N5#)"'$0*-5$&-#0-5#"'#-*&Y)"'$0*N5#)"0*+*&-#$#0$,3$#&"#,5$#5$8"@$0*N5# -+S"(,$'1# # Z$3# -K")$0*-5"3# :,"# 3-K-)($5# '$# 5$8"@$0*N5# $:,[# &"30)*($# 3-5# '$3# 3*O@,*"5("3?#

6.#+$7**8.9"#.:")1;)1+%

/@)"@$#$#,5$#V-5$#&"#5$8"@$0*N5#:,"#"3($# 2-)6$&$#K-)#,5#6"59#0-5#&*2")"5("3#"5'$0"3#&"#5$8"@$0*N51#\-)#&"2"0(-#(-&$#KR@*5$#K-3""#,5$#V-5$#&"#5$8"@$0*N5#0-5#'-3#"5'$0"3#$#'$3#KRO@*5$3#0-5#$00"3*+*'*&$&#.'#()*+,1#

-.%/0#123

!94<='3.8>8!?4@.)*$AA94<+@4&+'3='3./BC4+3C'<+.2D6DE'&'8C4+38C'<+.2D:;8

8.9"#.:")1;)1+$8.9"#.:")1<"1=%

L3("#6T(-&-#$0(9$#3-+)"#,5$#V-5$#&"#5$8"@$0*N5#<#K")6*("#$%$&*)#,5#"5'$0"#K$)$#5$8"@$)#$#-()$#KR@*5$#&"#'$#$K'*0$0*N51#]"0*+"#"'#*&"5(*2*0$&-)#&"#'$#KR@*5$#&"3(*5-Q#,5#$'*$3#K$)$#"'#"5'$0"#<#3*#"'#5*8"'#&"#$5*&$6*"5(-#"5#"'#6"591#L'#5*8"'#&"#$5*&$6*"5(-#K")6*("#&"2*5*)#6"593#0-5#8$O)*-3#5*8"'"3#&"#$5*&$6*"5(-#3*"5&-#"'#K)*6")#5*8"'#.411$,1#

-.%/0#123

Figura A.3 – Model per a la Definició de Mecanis-mes d’Accés

Provoca que aquest atribut siga visible en la vista de resultats (si noho era ja)

Rep com paràmetres l’identificador de l’atribut i un àlies.Exemple: Es defineix l’atribut “Actor.last_name” com l’atribut de

selecció sobre el que s’aplicarà l’enllaç.$f_fActor->SelectionAttribute(“Actor.last_name”, “Last

Name”);

A.2.7 Especificació de la Navegació

En el domini de les aplicacions Web la interacció fonamental ésla navegació. El framework permet definir tant la navegació tra-dicional, entesa com la transició d’una pàgina a una altra, com lanavegació objectual. Aquesta interacció de navegació està associada

Page 323: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

A.2. WIF, Un Framework per a construir Interfícies Web 305

a l’exploració de l’estructura d’informació del sistema (segons el dia-grama de classes), a base d’anar seleccionant instàncies d’objectesi obtenint la seua informació relacionada. El framework tambécontempla la navegació per relació, que és aquella en la que enlloc deseleccionar una instància d’un objecte es selecciona una relació d’unobjecte, per tal de veure tota la informació relacionada amb aqueixarelació.

Ja que les instàncies dels objectes són representats en el fra-mework mitjançant zones d’informació, aquest tipus de navegaciós’associa a elements d’aquesta zona. El framework incorpora unmecanisme de filtrat objectual (activat a l’hora de crear la zonad’informació) que permet que una zona d’informació sols mostre lainformació relacionada amb l’identificador de l’objecte (i de la rela-ció) rebut a causa de la navegació. Aquest comportament de filtratel fa de manera automàtica el framework.

Les operacions que soporten la navegació són: Page.AddNavigation,NavigationZone.NavigationLink, Field.InternLinkTo i Information-Zone.RelationshipLinkTo.

A.2.7.1 Page.AddNavigationZone

Afig una zona de navegació que està formada per un menú ambdiferents enllaços de navegació. Per defecte, tota pàgina té unazona de navegació amb els enllaços a les pàgines amb accessibilitat“Always”.

Exemple:$NavZone = $Page->AddnavigationZone(“MainMovies”, “Goto Main

Movies”);

Page 324: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

306 APÈNDIX A. FRAMEWORK D’INTERFÍCIES WEB, WIF

A.2.7.2 NavigationZone.NavigationLink

Aquest mètode actual sobre una zona denavegació i permet afegir unenllaç per navegar a una altra pàgina de l’aplicació. Rep l’identifica-dor de la pàgina destí, un àlies per a l’enllaç i el nivell d’anidamenten el menú. Aquest nivell permet definir menús amb varios nivell,sent el primer nivell “Root”.

Exemple: En el següent exemple, la zona de navegació estariaformada per dos enllaços, on l’enllaç ActionMovies es trobaria en unsegon nivell d’anidament dins TopMovies.$NavZone->NavigationLink(“TopMovies”, “Goto Movies”, “Root”);

$NavZone->NavigationLink(“ActionMovies”, “Action”, “Top

Movies”);

A.2.7.3 Field.InternLinkTo

Aquest mètode defineix un enllaç de navegació objectual associat aun camp de la zona d’informació. Quan l’usuari seleccione aquestcamp, es navegarà a la pàgina destí de l’aplicació que rebrà l’identi-ficador que activà la navegació.

Exemple: En aquest exemple, quan l’usuari seleccione el títolde la pel·lícula es navegarà a la pàgina MovieInformation, enviantl’identificador (oid) de la pel·lícula seleccionada.$InfoZone->title->InternLinkTo(“MovieInformation”);

A.2.7.4 InformationZone.RelationshipLinkTo

De manera similar a Field.InternLinkTo, aquesta operació defineixun enllaç de navegació, però associat a una relació enlloc de aun objecte. Per a cada instància de la classe principal s’afig un

Page 325: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

A.2. WIF, Un Framework per a construir Interfícies Web 307

camp addicional que representa un enllaç que activa aquest tipusde navegació.

Aquest mètode rep l’identificador de la relació (definit de la ma-teixa manera que en DetailRelationship), un àlies per a l’enllaç queserà mostrat i la pàgina destí. Desde la pàgina destí es tindrà visibi-litat tant de l’identificador de l’objecte seleccionat com l’identificadorde la relació.

Exemple: El següent enllaç definit sobre la classe Movie mos-traria un enllaç Cast per cada instància. Quan l’usuari seleccionel’enllaç, navegarà a la pàgina ActorInformation on veurà tots elsactors relacionats (com a participants) en la pel·lícula seleccionada.$InfoZone->RelationshipLinkTo(“Movie_Movie”, “Cast”,

“ActorInformation”);

A.2.8 Serveis. Execució de la funcionalitat

Si la classe Page i les zones d’informació són els elements fonamen-tals a l’hora de definir la informació de la interfície, la classe Servicei les zones de servei fan aquest paper quan es necessari fer disponiblea l’usuari la funcionalitat del sistema.

Un servei representa una interfície (funcional), típicament unformulari d’entrada de dades que causa l’execució d’algun mètodeofertat per la lògica de negoci. A l’igual que amb les pàgines, unservei es defineix en un fitxer propi amb un nom que comparteixamb l’identificador del servei a la lògica de negoci i que defineix laURL d’accés.

Dos tipus de zones de contingut s’empren a l’hora de definir unservei: (1) les zones del servei, formades per enllaços que naveguenal formulari del servei, i (2) les zones d’entrada de deades, definidesde manera implícita al crear un servei, on s’especifiquen els camps

Page 326: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

308 APÈNDIX A. FRAMEWORK D’INTERFÍCIES WEB, WIF

!"#$%#&'()'$"*$#$+$,-%.# %/#0."/#1$#"/2$(/3'4"#$&*/5'/# 6.5,/1/#-.5#1.&#$"%/3$&7#$"#1."1$#$%#$"%/3$#83*'."9.2'$&#&$#$"3."*5/5:/#$"#)"#&$()"1.#"'2$%#1$#/"'1/,'$"*.#1$&1$#;.-9.2'$&<#

!"#$%&'()*"#$+,#-+&'.+'/012&34&$+(56768&-&9:&$+(5676;&&-6<=9!"#$%&'()*"#$+,#-+&'.+'/01>?-+&'4&$+(5676>?-+&'96762&394&$+(56<=9

#

!"#$%&'()#*(+"(,-./

!&*$#,=*.1.#1$6'"$#)"#$"%/3$#1$#"/2$(/3'4"#.>+$*)/%#/&.3'/1.#/#)"#3/,-.#1$# %/#0."/#1$#'"?6.5,/3'4"<#@)/"1.#$%#)&)/5'.#&$%$33'."$#1'3A.#3/,-.7#&$#"/2$(/5B#/#)"/#-B('"/#1$&*'".#1$#%/#/-%'3/3'4"#C)$#5$3'>'5B#$%#.'1#1$#%/#'"&*/"3'/#C)$#/3*'24#%/#"/2$(/3'4"<##

!"#$%&'()

!"#$&*$#$+$,-%.#3)/"1.#$%#)&)/5'.#&$%$33'."$#$%# *:*)%.#1$# %/#-$%:3)%/#&$#"/2$(/5B#/%#3."*$D*.#*'+,#-./'0$12,'.##$"2'/"1.#$%#.'1#1$#%/#-$%:3)%/#&$%$33'."/1/<#

!@'A&%&'()*-+-B()*@'-(C'.+'/2&014&$+(@'A&C:#-+&'6<=9

'(0.*12)".(3.(#&4#$2)".(56"7+"(,-./

E$#6.5,/#&','%/5#/#-.2#0.3,.45')1$6'"$#)"#$"%/3$#1$#"/2$(/3'4"#5$%/3'."/%7#&'"#$,>/5(.#$"#2$0#$&*/5#/&.3'/1.#/#)"#3/,-.#1$#%/#0."/#1$#'"6.5,/3'4"7#$%#$"%/3$#&$#/&.3'/#/#)"/#5$%/3'4"#1$#%/#3%/&$# -5'"3'-/%<# F/5/# 3/1/# '"&*/"3'/# &$# /G/1$# )"# 3/,-.# /1'3'."/%# C)$# 5$-5$&$"*/# )"# $"%/3$#C)$#/3*'2/#$&*$#*'-.#1$#"/2$(/3'4"<#!&*$#,=*.1.#5$3'>$#)"#'1#1$#%/#5$%/3'4"#1$6'"'1.#1$#%/#,'&?,/# 6.5,/# C)$# $"#6#21,&7#&12,'.89,%7# )"# /%'/&# -/5/# $%# $"%/3$# C)$# &$5B#,.&*5/1.# H# %/# -B('"/#1$&*'".<#E$&1$#%/#-B('"/#1$&*'".#&$#*$"15B#2'&'>'%'1/1#*/"*.#&.>5$#$%#'1#1$%#.>+$*.#&$%$33'."/1.#3.,.#$%#'1#1$#%/#5$%/3'4"<##

!"#$%&'()

!%#&'()'$"*$#$"%/3$#1$6'"'1.#&.>5$#%/#3%/&$#*'+,##,.&*5/5:/#)"#$"%/3$#:182#-/5/#3/1/#'"&*/"3'/<#@)/"1.#$%#)&)/5'.#&$%$33'."/&$#$%#$"%/3$7#"/2$(/5B#/#%/#-B('"/#;<2'0-./'0$12,'.#$"#%/#3)/%#&$#,.&*5/5B"#%.&#/3*.5$&#5$%/3'."/1.&#3."#%/#-$%:3)%/#&$%$33'."/1/<##

!@'A&%&'()*;(B#-+&'5D+3.+'/2&014&$+(E4&$+(676F#5-676>?-&C@'A&C:#-+&'6<=9

I/2'(/*'."J."$

I/2'(/*'."K'"L

M

M<<N

M

M<<N

O'$%1

P"6.5,/*'."J."$

M

Q<<N

M

Q<<N

F/($

Q<<N

M

Q<<N

M

RP"*$5"K'"L

S$%/*'."&A'-K'"L

Q<<N

M

Q<<N

M

S.%$8&&.3'/*'."

#

!"8&/9&:/;.%#$./%#/$2/(2<#82=">(/

!"#$ %&'()*)+,"$-.&*/*)01$2&$34$5/1*)+143)242$T'#%/#3%/&$#F/($#H#%/&#0."/&#1$#'"6.5,/3'4"#&."#%.&#$%$,$"*.&#6)"1/,$"*/%$&#/#%/#A.5/#1$#1$6'?"'5#%/#'"6.5,/3'4"#1$#%/#'"*$56/07#%/#3%/&$#T$52'3$#H#%/&#0."/&#1$#&$52'3'.#+)$(/"#$&$#5.%#3)/"1.#$&#"$3$&/5'.#$&-$3'6'3/5# %/# 6)"3'."/%'1/1<#U"#&$52'3'.# 5$-5$&$"*/#)"/# '"*$56/07# *:-'3/,$"*$#)"#

Figura A.4 – Model de la Navegació

del formulari en base als arguments del servei.Les operacions que ofereix el framework són les següents:

Page.AddServicesZone, ServiceZone.ServiceReference, Service.New,Service.Arg<TipusArgument>, Argument.Value, Argument.NotRequired,Argument.NotVisible, NumberArgument.SetNatural, TextArgument.Lines,Argument.SetStaticValues i Argument.SetDynamicValues.

A.2.8.1 Page.AddServicesZone

Defineix una zona en la que es mostren una sèrie d’enllaços queactiven l’execució d’un servei o naveguen cap al formulari d’entradadels paràmetres.

Page 327: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

A.2. WIF, Un Framework per a construir Interfícies Web 309

Rep com paràmetres un identificador i un àlies per a la zona.Exemple:

$ServZone = $Page->AddServicesZone(“MovieServicesZone”,

“Movie Services”);

A.2.8.2 ServiceZone.ServiceReference

Afig un nou enllaç en una zona de serveis que fa referència alformulari d’execució del servei.

Rep com arguments l’identificador del servei i un àlies per al’enllaç.

Exemple:$ServZone->ServiceReference(“Movie_CREATE_MOVIE”, “New”);

A.2.8.3 Service.New

Crea un nou objecte servei que abstrau un formulari per a l’execuciód’una operació de la lògica de negoci. Cada objecte servei deu sercreat en un fitxer de configuració individual, amb el mateix nom quel’identificador del servei.

Únicament rep com argument l’identificador l’àlias que descriuràel formulari.

Exemple:$Service = new Service(“New”);

Page 328: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

310 APÈNDIX A. FRAMEWORK D’INTERFÍCIES WEB, WIF

A.2.8.4 Service.Arg<TipusArgument>

Afig un argument del tipus indicat a un objecte servei. Cada ar-gument introduit serà mostrat a l’usuari com un camp junt a unaetiqueta descriptiva. Tots els mètodes reben com argument un iden-tificador de l’argument i un àlies. Els tipus d’arguments que podenafegir-se són els següents:

• ArgText: defineix un argument de tipus text (cadena de carac-ters). Rep com paràmetre addicional el número de caracters(longitud) del camp.

• ArgNumber: defineix un camp per a la introducció d’un valornumèric no decimal.

• ArgReference: defineix un argument de tipus referència a ob-jecte. Utilitza un tercer paràmetre que indica la classe a laque pertany l’objecte. El camp que es crea en el formulariés de tipus numèric en el que s’espera que s’introduisca unidentificador d’objecte vàlid.

• ArgBool: afig un argument de tipus booleà. Típicament esrepresenta com un checkbox.

• ArgTime: crea un camp per a la introducció d’un argument detipus “temps” (hores i minuts).

• ArgDate: afig un camp de tipus data que permet introduir eldia, el mes i l’any. Valida que la data és correcta.

• ArgReal: defineix un camp per a la introducció d’un valornumèric en el domini dels números reals.

• ArgPassword: crea un camp de tipus contrassenya en la queallò que s’introdueix romany ocult. L’argument és de tipustextual.

Page 329: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

A.2. WIF, Un Framework per a construir Interfícies Web 311

Una vegada definits els arguments del servei, és possible accedirals mètodes que aquestos proporcionen mitjançant la sintaxi:$idZonaServei->idArgument

.Exemple: En el següent codi es defineix un servei que rep un títol

(màxim 32 caracters), un any i un objecte de la classe director.$Service->ArgText(“pt_p_atrtitle”, “Title”, 32);

$Service->ArgNumber(“pt_p_atryear”, “Release Year”);

$Service->ArgReference(“pt_p_evcDirector”, “Director”,

“Director”);

A.2.8.5 Argument.Value

Permet definir el valor per defecte que rep un atribut.Rep com paràmetre un valor que haurà de ser del mateix tipus

que l’argument.Exemple: Inicialitza l’argument Release Year a 2007.

$Service->pt_p_atryear->Value(2007);

A.2.8.6 Argument.NotRequired

Indica que l’argument és opcional per a l’execució del servei i pertant no és necessari que l’usuari l’introduisca. Per defecte, tots elsarguments són necessaris.

Exemple:$Service->pt_p_plot->NotRequired();

Page 330: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

312 APÈNDIX A. FRAMEWORK D’INTERFÍCIES WEB, WIF

A.2.8.7 Argument.NotVisible

Oculta el camp d’un argument de manera que l’usuari no pugaintroduir cap valor. Sol deu emprar-se si l’argument és opcional os’ha definit un valor per defecte. Tots els arguments són visibles amenys que s’indique el contrari.

Exemple:$Service->pt_p_atryear->NotVisible();

A.2.8.8 NumberArgument.SetNatural

Estableix un argument numèric com natural de manera que no potrebre valors negatius.

Exemple:$Service->pt_p_atryear->SetNatural();

A.2.8.9 TextArgument.Lines

Permet definir un argument textual compost per varies línies de textd’una longitud introduida. Rep com paràmetre el número de línies.

Exemple:$Service->ArgText(“pt_p_atrplot”, “Plot_Outline”, 32);

$Service->pt_p_atrplot->Lines(4);

A.2.8.10 Argument.SetStaticValues

Estableix un conjunt de valors possibles per a un argument per quel’usuari en seleccione un a través d’un seleccionar (típicament unallista desplegable). Aquest conjunt estarà format per un vector de

Page 331: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

A.2. WIF, Un Framework per a construir Interfícies Web 313

valors que rep el mètode com argument. Aquestos valors deuenser compatibles amb el tipus definit per l’argument al que estanassociats.

Exemple: El següent codi estableix que l’usuari sols podrà selec-cionar valors compresos entre el 0 i el 5 per a l’atribut p_atrrate.$Service->p_atrrate->SetStaticValues(array(0,1,2,3,4,5));

A.2.8.11 Argument.SetDynamicValues

Estableix un conjunt de valors possibles per a un argument basant-se en una població de l’estructura d’informació del sistema (atributd’una classe). Un conjunt dinàmic es defineix a partir de l’identifi-cador d’una classe, un atribut de la classe que defineix el possiblesvalors de l’argument i un altre atribut que defineix el text que seràmostrat en el selector (típicament una llista desplegable).

Aquest mecanisme millora la usabilitat, ja que permet mostrara l’usuari un valor més descriptiu per a la seua selecció, mentre queal servei se li envia el valor de l’atribut.

Exemple: El següent exemple defineix per a l’argument de re-ferència p_agrMovie, un conjunt format per tots els identificadorsd’objecte de la classe Movie que seleccionarà l’usuari mitjançantl’atribut title corresponent.$Service->p_agrMovie->SetDynamicValues(“Movie”, “id_Movie”,

“title”);

A.2.9 Definició d’altres zones de contingut

Les zones d’informació, navegació i servei engloben la major part dela definició d’una interfície Web. Tanmateix, és fàcil detectar contin-

Page 332: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

314 APÈNDIX A. FRAMEWORK D’INTERFÍCIES WEB, WIF

!"#"$#%&'()(#*(%(#+,-.%"/'(0#12'(2#3+$(,"2#)"!"/#2",#*(%4+'5!$"2#*(/#"$#'54(#)"65/5)(#"/#"$#+,-.%"/'(#

!"#$%&'7#

1$#25-.5"/'"#*8)5-(#"2'+!$"*"#9."#"$#.2.+,5(#:/5*+%"/'"#4.")"#2"$"**5(/+,#3+$(,"2#)"$#;#+$#<;#4+,+#"$#+',5!.'(#4=+',,+'"0#

!"#$%&'#()*+,-$$,-#()"#-"-,-&'.,/0#12,$$,324565758595:5;5<5=5>564??@A

#

!"#$%&'()*&(+,'-%./0-1$&23

>$#5-.+$#9."#"$#%&'()(#+/'",5(,#"2'+!$"*"#./#*(/?./'(#)"#3+$(,"2#4(25!$"2#4+,+#./#+,-.%"/'(@#4",(# "/# "2'"# *+2(# +# 4+,'5,# )"# 5/6(,%+*58/# ,"*.4",+)+# )"$# 252'"%+0#A/# *(/?./'(# )5/B%5*(# 2"#)"65/"#+#4+,'5,#)"$#5)"/'565*+)(,#)"#./+#*$+2"#)"$#252'"%+@#./#+',5!.'(#)"#$+#*$+2"#9."#)"65/"#$(2#4(25!$"2#3+$(,"2#)"$#+,-.%"/'(#C#(',(#+',5!.'(#)"#$+#*$+2"#9."#)"65/"#"$#'"D'(#9."#2",B#%(2',+)(#"/#"$#('$)'*)'+*4+,+#2"$"**5(/+,#"$#3+$(,0#12'"#%"*+/52%(#%"?(,+# $+#.2+!5$5)+)@#4."2'(#9."#4",%5'"#%(2',+,#+$#.2.+,5(#./#3+$(,#%B2#)"2*,54'53(#4+,+#2.#2"$"**58/#%5"/',+2#9."#+$#2",35*5(#$"#"2#"/35+)(#"$#3+$(,#*(,,"*'(0#

!"#$%&',#

1$#25-.5"/'"#"?"%4$(#)"65/"#4+,+#"$#+,-.%"/'(#)"#,"6","/*5+#%-./01'23#@#./#*(/?./'(#6(,%+)(#4(,#'()(2#$(2#(5)#)"#$+#*$+2"#1'23##9."#2"$"**5(/+,B#"$#.2.+,5(#%")5+/'"#"$#+',5!.'(#434&##*(,,"2E4(/)5"/'"0##

!"#$%&'#()*+,B$CD%&#()"#-E3F,G&'.,/0#12HCD%&#H5H&I+CD%&#H5H-&-/#H?@A

F",35*"2G(/"

F",35*"H"6","/*"

+$5+2#7#F',5/-

<00I

<00I

<00I

<00I

F",35*"

;00I

<

;00I

<

J/4.'K+'+G(/"

<

<

<

<

L(($>,-.%"/'

K+'">,-.%"/'

M.%!",>,-.%"/'

/+'.,+$#7#!(($

H"+$>,-.%"/'

F'+'5*N+$."2

3+$."2#7#N+,5+/'OP

5.&6#7'&&#(43'8

90/6$#84

3525!$"#7#L(($

,"9.5,")#7#L(($

)"6+.$'N+$."#7#F',5/-

<

;00I

<

;00I

<

;00<

<

;00<

Q"D'>,-.%"/'

25R"#7#J/'

$5/"2#7#J/'

Q5%">,-.%"/'

S+22T(,)>,-.%"/'

H"6","/*">,-.%"/'

U$+22 KC/+%5*N+$."2

>'',5!.'"

<

;00I

<

;00I V3+$."

V)"2*,54'5(/

#

4.#)35)63789&183:-"-31-39&;.'./.<'39&32&"=./.823

!"#$ %&'()(*(+)$,&$-./01$2-)01$,&$*-).&)(,-$

W+2#R(/+2#)"# 5/6(,%+*58/@#/+3"-+*58/#C#2",35*5(#"/-$(!+/# $+#%+C(,#4+,'"#)"# $+#)"65/5*58/#)"#./+#5/'",6+R#X"!0#F5/#"%!+,-(@#"2#6B*5$#)"'"*'+,#*(/'"/5)(#"/#./+#+4$5*+*58/#X"!#Y5/6(,%+*58/#)"#*(/'+*'(@#).88#0:*4.!$5*5'+,5(2@# 5/6(,%+*58/#)"$#4",65$#)"#.2.+,5(Z#9."#/(#"2'+#*(/'"%4$+)(#

Figura A.5 – Model per a la Definició de Serveis

gut en una aplicació (informació de contacte, publicitat, informaciódel perfil d’usuari) que no està contemplada en les zones vistes.

Per tal de donar suport a aquest tipus de necessitats, s’han creatles següents zones: Page.AddUserInfoZone, Page.AddCustomZone iPage.AddCustomExternZone.

A.2.9.1 Page.AddUserInfoZone

Afig la pàgina una zona de contingut que mostra la informació del’usuari conectat (login i rol) i permet tancar la sessió.

Exemple:$Page->AddUserInfoZone(“userzone”, “logged user”);

Page 333: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

A.2. WIF, Un Framework per a construir Interfícies Web 315

A.2.9.2 Page.AddCustomZone

Afig a la pàgina una zona de continguts personalitzada de caràcterestàtic. Exemples de continguts que són especificats mitjançantaquesta zona són la d’informació institucional-empresa, els anuncis,missatges de benvinguda, etc.

Una zona personalitzada es defineix mitjançant un identificadori un àlies. Aquest identificador serà a la vegada el nom d’un fitxerque conté el contingut de la zona (ubicat al recurs customZones), enforma de HTML “lliure”.

Exemple:$Page->AddCustomZone(“ContactInformation”, “About us”);

A.2.9.3 Page.AddCustomExternZone

Crea una novava zona de contingut a partir de la informació rebudad’altra (pàgina d’una) aplicació Web externa. A partir d’una URLagafa el contingut HTML de la mateixa i l’inclou en la pàgina enuna nova zona.

Aquest mecanisme permet reutilitzar desenvolupaments ja rea-litzats i residents inclús en altres servidors, com ara anuncis publi-citaris, fragments de codi HTML, etc.

Exemple: El següent codi inserta en la pàgina una zona quemostra els deu millors tràilers del lloc web IMDb.$Page->AddCustomExternZone(“trailerZone”, “Best Trailers”,

“http://i.imdb.com/hotlink/top10_trailers_400.html”);

Page 334: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions
Page 335: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

APÈNDIX BCAS D’ESTUDI: IMDB LITE

La base de dades pel·lícules per Internet, més coneguda comIMDb [55] és un repositori online de informació relacionada ambel món del cine. Com diuen al lloc web oficial, és “the Earth’sBiggest Movie Database” (la base de dades més gran del món sobrepel·lícules).

Aquest sistema emmagatzema qualsevol tipus d’informació re-lacionada amb les pel·lícules (Movie): ara detalls sobre la pel·lícula(producció, notes, duració, format, tràilers, galeries de fotos, bandessonores, els millors diàlegs, etc.); els participants en les pel·lícules(actors, directors, escriptors, productors, etc.); i informació sobre laposta en escena actualment (on s’estan projectant i planficacionstemporals).

Qualsevol usuari pot registrar-se al sistema de manera que pu-guen introduir revisions crítiques sobre pel·lícules, o inclús valorar-se, establint un rànking de votacions. D’altra banda, els usuarisanònims sols poden emprar el sistema per explorar el catàleg, sense

317

Page 336: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

318 APÈNDIX B. CAS D’ESTUDI: IMDB LITE

poder realitzar cap més operacions1 (a menys que es registren).El propòsit d’aquest annexe és descriure el model conceptual que

represente de la manera més fidel el sistema real, realitzant unatasca d’enginyeria inversa. Com que el sistema és suficientmentgran, per tal de simplificar l’enteniment de tot el procés de mode-latge i generació de codi, només es descriurà una part del sistema,la principal. Aquest subsistema, que anomenarem IMDb Lite ésl’encarregat d’emmagatzemar la informació sobre les pel·lícules, elsparticipants, les revisions dels usuaris i informació de planificaciód’exposicions en cines.

Seguint l’aproximació OO-Method/OOWS presentada en aquesttreball de tesi, el primer pas consisteix en realitzar una descripcióconceptual del sistema. La Secció B.1 descriu els aspectes estructu-rals i de comportament del sistema mitjançant OO-Method, mentreque la Secció B.2 descriu l’extensió conceptual web emprant la pro-posta OOWS.

Finalment, la Secció B.3 presenta el resultat de la compilaciód’aquestos models i el codi obtés amb el Framework d’IntertíciesWeb (Annexe A). Aquest cas d’estudi està disponible online demanera completa en [121].

B.1 Model Conceptual amb OO-Method

El primer pas consisteix en descriure els aspectes d’estructura d’in-formació i funcionals. Aquestos requeriments són capturats en OO-Method per mig d’un Diagrama de Classes, un Model Dinàmic i unModel Funcional.

Les següents seccions mostren la descripció d’aquestos modelsaplicats a IMDb Lite.

1Almenys fins a dia d’avuí, 21/12/2007

Page 337: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

B.1. Model Conceptual amb OO-Method 319

B.1.1 Diagrama de Classes

El Diagrama de Classes captura els aspectes estructurals del sis-tema des d’un punt de vista orientat a objectes: classes, atributs,operacions i relacions entre classes.

D’acord al sistema IMDb Lite, els objectes d’interés són lespel·lícules, els participants, exhibicions, crítiques dels usuaris, etc.La Figura B.1 a la pàgina següent mostra el diagrama de classesconstruit per al sistema i que s’agafarà com a base en el desenvolu-pament.

Com es pot apreciar, aquesta figura enfatisa la part del sistemaque està relacionada amb la informació de les pel·lícules: la classeMovie és la principal del diagrama. Aquesta classe introdueix lespropietats d’una pel·lícula: el seu títol, l’any de producció, unadescripció general, la URL oficial del lloc web de la pel·lícula, l’estatde producció (“filmació”, “post-producció”, “pre-estreno”, etc.), unafoto principal, els idiomes en que està disponible, el sistema de so,etc.

A més a més, una pel·lícula pot ser marcada amb diferents eti-quetes per indicar que és la “pel·lícula del dia” o “pel·lícula recoma-nada” (“watch This”), que després s’emprarà en l’aplicació Web permostrar suggeriments.

Emprant la propietat “firstTimeExhibition” (data de la primeraexhibició de la pel·lícula), es pot derivar dinàmicament les pel·lículesque estan a punt d’estrenar-se (“coming soon”). Açò es representaamb OO-Method com un atribut derivat. OlivaNOVAdisposa d’unllenguatge de definció de fòrmules complexes, mitjançant operadorslògics, de col·leccions i aritmètics, que proporciona un ample espec-tre de possibilitats.

Per al cas del càlcul de l’atribut derivat coming_soon, aquest escrea associat a la classe Movie, de tipus booleà, i la seua fòrmula de

Page 338: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

320 APÈNDIX B. CAS D’ESTUDI: IMDB LITE

Figura B.1 – IMDb Lite: Model Estructural ambOlivaNOVA

derivació podria representar-se com (si considerem 15 dies com elmarge per considerar que s’estrena prompte):Movie.coming_soon = ( date_diff(Movie.firstExhibitionTime,toda(),“d”)

< 15 and date_diff(Movie.firstExhibitionTime,toda(),“d”) > 0

És a dir, una pel·lícula està a punt d’estrenar-se si ha menys

Page 339: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

B.1. Model Conceptual amb OO-Method 321

Figura B.2 – IMDb Lite: Atributs de la Classe“Movie”

de 15 dies entre avuí i la data d’estrena, i la data d’estrena no hapassat.

B.1.2 El Model Dinàmic

A més de l’estructura de classes del sistema, hem de considerar certsaspectes de comportament. El Model Dinàmic permet descriureels cicles de vida vàlids dels objectes, així com certa comunicacióinterobjectual.

Per a realitzar aquestes especificacions, OO-Method empra dostipus de diagrames: el Diagrama de Transició entre Estats, i elDiagrama d’Interacció.

El Diagrama de Transición entre Estados o DTE, s’empra perdescriure el comportament d’un objecte descrivint el seu cicle devida. Per a descriure aquest cicle de vida, cal desciure una ordenacióen la manera que es poden executar les seues operacions. Tota classeha de tenir un DTE associat.

La Figura B.3 a la pàgina següent mostra el cicle de vida associata la classe pel·lícula (“Movie”).

D’altra banda, amb el Diagrama d’Interacció podem especificarla comunicació entre objectes. Tanmateix, no ha calgut definir res

Page 340: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

322 APÈNDIX B. CAS D’ESTUDI: IMDB LITE

Figura B.3 – DTE per a la classe “Movie”

d’aquest model per al sistema IMDb Lite.

B.1.3 El Model Funcional

Mitjançant el Model Funcional es captura la semàntica associadaal canvi d’estat dels objectes com conseqüència de l’execució delsseus events. Emprant un formlisme subjacent (basat en la lògicadinàmica [50]), per a cada atribut variable es defineix una fòrmulaque defineix com un o diferentes events poden modificar aquestatribut.

La Figura B.4 a la pàgina següent mostra un troç del Model Fun-cional apreciant-se l’efecte de l’event edit_instance sobre la classepel·lícula (Movie).

B.2 Extensions Web amb OOWS

Una vegada descrits els requeriments d’estructura d’informació ifuncionals, el següent pas és descriure els requeriments navega-cionals del sistema. Seguint l’aproximació OOWS, cal definir elssegüents diagrames: (1) un diagrama d’usuaris; (2) un mapa na-vegacional per a cada usuari del diagrama d’usuaris, descrivint els

Page 341: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

B.2. Extensions Web amb OOWS 323

Figura B.4 – Model Funcional de la classe “Movie”

seus nodes; i (3) els requeriments de presentació associats a tots elsnodes navegacionals detectats.

B.2.1 Diagrama d’Usuaris

En IMDb Lite hi ha dos tipus d’usuaris: els AnonymousUser (Usu-aris Anònims) i els RegisteredUser (Usuaris Registrats). Ambdóstipus poden explorar la base de dades de pel·lícules, però sols elsusuaris registrat poden introduir les seues opinions i vots (críti-ques).

La Figura B.5 a la pàgina següent mostra aquest Diagramad’Usuaris. Els AnonymousUser estan etiquetats amb la marca “?”,indicant que no necessiten identificar-se per accedir al sistema. ElsRegisteredUser estan especialitzats dels usuaris anònims, indicantque heretaran les propietats navegacionals d’aquestos. Seguintl’aproximació OO-Method (que introdueix els usuaris com part del’estructura d’informació del sistema), aquestos usuaris formen partdel diagrama de classes de l’aplicació.

Page 342: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

324 APÈNDIX B. CAS D’ESTUDI: IMDB LITE

Figura B.5 – IMDb Lite: Diagrama d’Usuaris

B.2.2 Model Navegacional

Al següent pas s’ha de definir un Mapa Navegacional per a cadatipus d’usuari. Aquest Mapa Navegacional defineix l’accessibilitatde l’usuari al sistema. La Figura B.6 a la pàgina següent mostrael mapa navegacional per als usuaris registrats. Aquest mapa estàcompost per 18 contextes navegacionals i un subsistema navegacio-nal.

Cadascun dels contextes navegacionals definits proporciona unvista diferent del diagrama de classes, proporcionant a l’usuari di-ferents punts de vista sobre la mateixa estructura d’informació. Elcontexte “Now Playing” proporciona informació sobre les pel·lículesque estan exhibint-se actualment, mentre que el contexte “Showti-me and Tickets” mostra els llocs (cines) on s’estan exhibint.

El contexte “My Movies” permet als usuaris marcar les seuespel·lícules preferides (donar el seu vot o crítica).

De tots aquestos contextes, hi ha 14 que estan marcats comd’exploració (etiquetats amb una “E”). Açò significa que aquestos

Page 343: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

B.2. Extensions Web amb OOWS 325

Figura B.6 – IMDb Lite: Mapa Navegacional peral “RegisteredUser”

nodes sempre estaran disponibles per accedir, estiguem on estiguemdins el sistema. La resta de nodes són de seqüència (etiquetats ambuna “S”). Açò significa que sols es podrà accedir a aquestos nodes através d’un camí navegacional predefinit.

El contexte anomenat “Home”, d’exploració, té a l’enllaç d’explo-ració (fletxa discontínua) associada l’etiqueta “Home”. Açò significaque aquest contexte serà el node per defecte quan un usuari regis-trat es conecte al sistema. Aquest contexte proporciona informació

Page 344: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

326 APÈNDIX B. CAS D’ESTUDI: IMDB LITE

Figura B.7 – IMDb Lite: Contexte “Home”

sobre: les pel·lícules actuals (“Trailers and more”), la votació diària(“daily poll”), les pel·lícules del dia (“movie of the day”), etc. Totsaquestos continguts són definits mitjançant Unitats d’Abstracciód’Informació (UAI), que composen el contexte. Com es pot apreci-ar, a pesar que aquest node captura gran quantitat d’inforamció,aquesta està ben organitzada i estructurada amb aquestes UAIs.La Figura B.7 mostra la descripció d’aquest contexte “Home”.

La UAI “What This: Trailers and More” és l’encarregada deproporcionar als usuaris informació sobre els títols de les pel·lículesque estan marcdes amb la propietat watchThis. Aquest requeriments’ha definit especificant la classe Movie, amb l’atribut navegacio-nal title i una condició de filtrat de població: watchThis = TRUE.Aquesta UAI té definides dos capacitats de navegació, mitjançant

Page 345: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

B.2. Extensions Web amb OOWS 327

dos relacions de contexte. Una que duu al contexte “Trailer”, queestà dins el subsistema “Promotional” (que a la vegada està dins elsubsistema “Movie”); i l’altra opció de navegació ens duu al contexte“Main Details”, dins el subsistema “Overview” (també dins el subsis-tema “Movie”). La Figura B.8 a la pàgina següent mostra aquestaestructura del sistema en subsistemes.

Encara al contexte Home, la UAI “Today IMDb Poll Questionis:” proporciona a l’usuari informació sobre la votació diària (“Daily-Poll”). Per representar el requeriment que és “votació d’avuí”, s’haespecificat una condició de filtrat de població a la classe DialyPollindicant que la seua data es la d’avuí: date = today()2. Aquesta UAItambé permet a un usuari registrat realitzar una votació, ja queapareix el mètode per a votar (“vote”).

De la mateixa manera, les altres UAIs proporcionen a l’usuari in-formació addicional sobre altres aspectes del sistema (pel·lícula deldia, pròximes estrenes, etc.). Totes aquestes UAIs estan marcadescom No Contextuals (etiqueta NC) perquè no necessiten informaciócontextual (que provinga com a resultat d’haver activat una navega-ció) per recuperar la informació que defineixen. La Figura B.14 a lapàgina 335 mostra aquesta pàgina implementada.

A causa de la gran quantitat d’informació disponible per a unapel·lícula, l’estructura navegacional s’ha organitzat per subsistemes,de manera que faciliten la navegació pel sistema. Així, al mapanavegacional, s’ha creat el subsistema “Movie”. Aquest subsistemaserà doncs responsable de proporcionar tota la informació del catà-leg sobre una pel·lícula, organitzat a la seua vegada per diferentssubsistemes: “Overview” (que mostra informació resumida de lespel·lícules), “Awards and Reviews” (que es centra en mostrar infor-mació sobre els premis que s’han otorgat), “Fun Stuff ” (informació

2Today() és una operació de l’entorn que ens permet recuperar la data delsistema.

Page 346: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

328 APÈNDIX B. CAS D’ESTUDI: IMDB LITE

Figura B.8 – IMDb Lite: Subsistema “Movie”

curiosa i divertida al voltant d’una pel·lícula), etc. Dins aquestsubsistema “Movie”, el subsistema “Overview” està etiquetat ambuna “H”, fet que el converteix en el node per defecte.

La Figura B.8 mostra aquesta organització del subsistema “Mo-vie”.

Les Figures B.9 i B.10 mostren una vista expandida dels subsis-temes “Promotional” i “Overview”, respectivament.

El subsistema “Movie.Promotional” permet als usuaris navegar através de les “Tagline” (trama), “Trailers”, “Posters” i “Photo Gallery”(galeria fotogràfica) d’una pel·lícula.

El subsistema “Movie.Overview” proporciona la principal infor-mació sobre una pel·lícula (es podria considerar com la part més im-portant de la base de dades de IMDb): “Main Details” (detalls prin-cipals), “Full Cast and Crew” (la gent que participa en la pel·lícula),“Combined Details” (paregut als detalls principals, però mostratd’una altra manera) i “Company Credits” (informació sobre la com-

Page 347: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

B.2. Extensions Web amb OOWS 329

Figura B.9 – IMDb Lite: Subsistema “(Movie) Pro-motional”

panyia).Dins el subsistema “Movie.Overview” es troba el contexte nave-

gacional “Main Details”, que és l’encarregat de proporcionar l’infor-mació bàsica d’una pel·lícula: títol, resum, duració, país, idiomes,etc. També proporciona informació sobre els “Directors”, “Writers”(guionistes) i “Producers” (productors), a més de les frases cèl·lebres(“memorable quotes”) dels actors en la pel·lícula (Figura B.11 a lapàgina 331).

Aquest contexte “Main Details” està composat per 4 UAIs contex-tuals (marcades amb una C) que mostraran informació relacionadaamb la pel·lícula seleccionada. També hi ha una UAI no contextual(“Message Board”), on els usuaris registrats deixen els seus comen-taris sobre les pel·lícules.

Page 348: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

330 APÈNDIX B. CAS D’ESTUDI: IMDB LITE

Figura B.10 – IMDb Lite: Subsistema “(Movie)Overview”

Dins aquest contexte, es pot considerar que la UAI “Main De-tails” és la principal, ja que és la que mostra la informació de lapel·lícula (títol, any, resum, . . . ). També permet (1) afegir mar-car (amb el mètode addToMyMovies() una pel·lícula com preferida(apareixerà al contexte “MyMovies”; (2) valorar una pel·lícula (ambel mètode rate()); i (3) escriure una revisió de la pel·lícula (amb elmètode review).

B.2.3 Model de Presentació

Després d’haver especificat el model navegacional, es deuen especi-ficar els requeriments de presentació emprant el Model de Presenta-ció.

IMDbsegueix un princpi molt sencill i homogeni de mostrar lainformació: per cada entitat (instància d’una classe), tota la info-ramció es mostra a partir d’aquesta en mode registre. És a dir, totes

Page 349: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

B.2. Extensions Web amb OOWS 331

Figura B.11 – IMDb Lite: Contexte Navegacional“(Movie.Overview) MainDetails”

les relacions “un-a-un” empren el patró Registre, i totes les relacions“un-a-molts” empren el patró Mestre-Detall, amb el detall establertal patró Registre.

Aquest fet condueix a un Model de Presentació prou senzill.La Figura B.12 a la pàgina següent mostra un exemple representa-tiu de l’especificació d’aquestos requeriments de presentació aplicats

Page 350: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

332 APÈNDIX B. CAS D’ESTUDI: IMDB LITE

Figura B.12 – IMDb Lite: Contexte de Presentació“(Movie.Overview) MainDetails”

al contexte “Movie.Overview.MainDetails”.

B.3 Implementació de l’aplicació Web

Aquesta secció descriu com obtenir un prototipus de l’aplicació IMDbLite. Després d’haver construit l’especificació conceptual del siste-

Page 351: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

B.3. Implementació de l’aplicació Web 333

ma, arribem a la fase d’implementació. El següent pas consisteix enaplicar les transformacions dels models web. Per fer-ho, ha sigutnecessari exportar els models realitzats amb OlivaNOVAa XML,importar-los a l’eina OOWS Visual Editorper a finalment poder apli-car aquestes transformacions. El Capítol 9 explica els detalls de comaconseguir-ho. Al final, s’aconsegueix una aplicació web implemen-tada amb el Framework d’Interfícies Web definit a l’Annexe A.

La Figura B.13 a la pàgina següent mostra el fitxer de confi-guració del framework generat per a l’aplicació. Si ens fixem, elcompilador ha asignat l’estil per defecte anomentat IMDb(el nomde l’aplicació). Atenent a l’estratègia d’introducció d’aspectes dedisseny gràfic, s’ha construït aquest estil de manera que tinga unasemblança amb l’aplicació Web real IMDb.

Aquest fitxer de configuració defineix dos rols diferents (AddRol)que provenen del Diagrama d’Usuaris especificat. Tal com apareixen aquest diagrama, l’usuari “RegisteredUser” és una especialitzacióde l’usuari “AnonymousUser”, i així apareix a la seua sentència decreació3.

Per cada contexte navegacional especificat s’ha creat una pàginaweb (AddPage). Per cada subsistema navegacional s’ha creat ungrup de pàgines (AddPageGroup), incloent-li tots els nodes que con-té. La pàgina per defecte (SetHomePage) ha sigut també marcada(“Home”).

La Figura B.14 a la pàgina 335 pàgina “Home” recupera in-formació variada (veure Figura ?? a la pàgina ??): “Watch This”,“Today’s Poll”, “IMDb Movie of the Day”, etc. La part de la pàginaweb que mostra la informació que especifica la UAI “Watch This”proporciona a l’usuari el títol de les pel·lícules marcades com reco-manades. Aquest títol serveix com àncora per navegar al contexte

3Veure l’últim argument de l’operació AddRol associada al “RegisteredUser”.

Page 352: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

334 APÈNDIX B. CAS D’ESTUDI: IMDB LITE

Figura B.13 – IMDb Lite: Fitxer de configuraciód’aplicació generat

“Movie.Overview.MainDetails”, tal i com s’ha especificat a la defini-ció d’aquest contexte.

La UAI “IMDb Movie of the Day” mostra el títol, foto i descripcióde la pel·lícula establerta com a “del dia” (a través de la propietatmovieOfDay). La foto s’ha definit com àncora per navegar concontexte “Movie.Overview.MainDetails”.

La pàgina “MainDetails” prové del contexte “MainDetails” queestà dins el subsistema “Movie.Overview”. Aquest requeriment d’in-clusió pot veure’s al fitxer de configuració del sistema. El codi d’a-questa pàgina web es mostra a la Figura B.15 a la pàgina 336.

Aquesta pàgina web recupera tota la informació bàsica d’unapel·lícula: títol, any, foto, resum (“PlotOutline”). Per cadascun

Page 353: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

B.3. Implementació de l’aplicació Web 335

Figura B.14 – IMDb Lite: Implementació de laPàgina “Home”

d’aquestos camps a visualitzar, pot veure’s al codi del frameworkgenerat com apareix una operació AddField associada a la UAIon està definit (en aquest cas, a la “AIU-1”). L’atribut “plotOut-line” fou especificat com àncora per navegar a la pàgina “Mo-vie.PlotandQuotes.PlotSummary”. Açò està representat al codi mit-jançant la sentència: plotOutline->AddInternalLinkTo.

Page 354: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

336 APÈNDIX B. CAS D’ESTUDI: IMDB LITE

Figura B.15 – IMDb Lite: Codi de Pàgina Web“(Movie.Overview) MainDetails”

L’aparença d’aqueta pàgina “Movie.Overview.MainDetails” potveure’s a la Figura B.16 a la pàgina següent.

Com es pot apreciar, l’estil de visualització és semblant al queempra IMDb. Això es deu a que les regles de visualització empradess’ha dissenyat per recrear l’aparença d’aquesta aplicació.

Per demostrar el reús d’aquestes regles de visualització, s’hadecidit emprar en aquesta aplicació web un altre estil prèviamentdefinit i emprat en altres desenolupament. Aquest nou estil imple-menta l’estil visual que empra l’Universitat Politècnica de València(http://www.upv.es) a dia d’avuí.

Per aconseguir-ho, només cal anar al fitxer configuració de l’apli-cació, i canviar l’argument de l’operació SetDefaultStyle per:

Page 355: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

B.3. Implementació de l’aplicació Web 337

Figura B.16 – IMDb Lite: Pàgina Web “(Mo-vie.Overview) MainDetails (estil IMDb)”

$Application->SetDefaultStyle(“UPV-like”);

La Figura B.17 a la pàgina següent mostra l’aplicació Web IMDbLiteamb l’estil visual de la UPV.

Page 356: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

338 APÈNDIX B. CAS D’ESTUDI: IMDB LITE

Figura B.17 – IMDb Lite: Pàgina Web “(Mo-vie.Overview) MainDetails (estil UPV)”

Page 357: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

APÈNDIX CUN COMPILADOR DE MODELS D’OOWS

Aquest annexe presenta una implementació de les regles de trans-formació definides pel mètode OOWS al Capítol 8, segons es detallaal Capítol 9, emprant el llenguatge oAW Xpand [120]. És a dir,realitzar les transformacions de Model a Codi, sent l’entrada unmodel instància del metamodel d’OOWS en Ecore, i sent l’eixida elcodi en un Framework d’Interfícies Web desenvolupat en PHP (vista l’Annexe A).

Seguint l’estructura d’organització que proposa Xpand, cada re-gla de transformació es descriu mitjançant una sentència DEFINE.Però també permet organitzar aquestes en diferents fitxers o pa-quets com un mecanisme per simplificar i estructurar la definiciód’aquestes regles.

339

Page 358: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

340 APÈNDIX C. UN COMPILADOR DE MODELS D’OOWS

C.1 Configuració Inicial Aplicació. PlantillaRoot

�«IMPORT oows»«EXTENSION template::helpers »

«DEFINE Root FOR OOWSModel-»«FILE id +".php"-»

<?phpinclude_once "../../OOWSFramework/ApplicationBegin.php";

$Application = new Application("«id»","ONME","«id»");$Application->DefaultStyle("«id»");

«FOREACH NavigationalModel.UserRol AS Rol -»«IF Rol.id == "Anonymous" -»

$Application->AllowAnonymous();«ELSE -»

$Application->Rol("«Rol.id»","«Rol.Class.id»","«Rol.Class.id»_MVAgentValidation","«Rol.Parent.id»");

«ENDIF -»«EXPAND NavigationalNodes_rule FOREACH Rol.

NavigationalNode-»«ENDFOREACH -»$Application->HomePage("«NavigationalModel.Root.id»");

«PROTECT CSTART "/*" CEND "*/" ID id»//Put your custom code here«ENDPROTECT»

include_once "../../OOWSFramework/ApplicationEnd.php";?>

«ENDFILE»«ENDDEFINE»

«DEFINE NavigationalNodes_rule FOR NavigationalNode-»«ENDDEFINE»

«DEFINE NavigationalNodes_rule FOR NavigationalContext-»$Application->Page("«id»","«alias»","«UserRol.id»","

«reachability.Access()»");«EXPAND ContextTemplate::Context_Rules FOR this-»

«ENDDEFINE»

«DEFINE NavigationalNodes_rule FOR NavigationalSubsystem-»$Application->PageGroup("«id»","«UserRol.id»","Root");«EXPAND NavSubsystem_rule FOR this-»«EXPAND ContextTemplate::SubsystemPage_rule FOR this-»

«ENDDEFINE»

Page 359: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

C.2. Transformació de Contextes i Subsistemes 341

«DEFINE NavSubsystem_rule FOR NavigationalSubsystem-»«FOREACH NavigationalNode.typeSelect(NavigationalContext) AS

navContext -»$Application->AddPageToGroup("«navContext.id»","«navContext.

alias»","«id»","«navContext.reachability.Access()»");«EXPAND ContextTemplate::Context_Rules FOR navContext-»«ENDFOREACH -»

«FOREACH NavigationalNode.typeSelect(NavigationalSubsystem) ASnavSubsystem -»

$Application->PageGroup("«navSubsystem.id»","«UserRol.id»","«id»");

«EXPAND NavSubsystem_rule FOR navSubsystem-»«ENDFOREACH -»

«ENDDEFINE»

Codi Font C.1 – Plantilla de Transformació RootOOWSGenerator.xpt

C.2 Transformació de Contextes i Subsiste-mes

�«IMPORT oows»«DEFINE Context_Rules FOR NavigationalContext»

«FILE "/Pages/" + id + ".php"-»<?phpinclude_once "../../../OOWSFramework/PageBegin.php";

$Page = new Page("«alias»");$Page->AddUserInfoZone("UserZone","Logged User");«EXPAND AIU_Rules FOREACH AIU-»

«PROTECT CSTART "/*" CEND "*/" ID id »//Put your custom code here«ENDPROTECT»

include_once "../../../OOWSFramework/PageEnd.php";?>

«ENDFILE-»«ENDDEFINE»

//Crea un pagina auxiliar con los enlaces a las paginas del subsistema«DEFINE SubsystemPage_rule FOR NavigationalSubsystem»

«FILE "/Pages/" + id + ".php"-»<?php

Page 360: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

342 APÈNDIX C. UN COMPILADOR DE MODELS D’OOWS

include_once "../../../OOWSFramework/PageBegin.php";

$Page = new Page("«alias»");$Page->AddUserInfoZone("UserZone","Logged User");

$Zone= $Page->AddNavigationZone("«id»Menu","«alias» Menu");«FOREACH NavigationalNode AS childNode -»$Zone->NavigationLink("«childNode.id»","«childNode.alias»","

Root");«ENDFOREACH -»

«PROTECT CSTART "/*" CEND "*/" ID id »//Put your custom code here«ENDPROTECT»

include_once "../../../OOWSFramework/PageEnd.php";?>

«ENDFILE-»«ENDDEFINE»

«DEFINE AIU_Rules FOR AIU»//Main Information Zone$Zone = $Page->AddInformationZone("«id»","«id»","«ManagerClass.

Class.id»");«FOREACH ManagerClass.NavigationalAttribute AS NavAttribute-»$Zone->Field("«NavAttribute.Attribute.ref»","«NavAttribute.

alias»");«ENDFOREACH-»«EXPAND NavigationalRelationship::NavRelationship_rule(

ManagerClass) FOREACH NavigationalRelationship -»

//Services«EXPAND Service::Service_rule FOR this-»«REM» Si el AIU tiene una vista de busqueda asociada no

recuperamos todas sus instancias de golpe «ENDREM»«IF SearchView.exists(e|e != null)-»$Zone->NotRetrieveAlways();«ENDIF-»//Mechanism access«IF ManagerClass.Pagination != null-»

«EXPAND AccessMechanisms::Pagination_rule FORManagerClass.Pagination-»

«ENDIF»«EXPAND AccessMechanisms::OrderBy_rule FOREACH ManagerClass.

OrderBy-»

«EXPAND AccessMechanisms::Filter_rule FOREACH Filter-»

«EXPAND AccessMechanisms::Index_rule FOREACH Index-»«ENDDEFINE»

Codi Font C.2 – Plantilla de TransformacióContextTemplate.xpt

Page 361: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

C.3. Transformació de les Relacions Navegacionals 343

C.3 Transformació de les Relacions Navega-cionals

�«IMPORT oows»«DEFINE NavRelationship_rule (ManagerClass mc) FOR

NavigationalRelationship-»«REM»Detectamos las relaciones reflexivas mediante this«ENDREM»«IF id == "this" -»

«EXPAND NavigationLink_rule ("$Zone->") FOR this-»«REM»Determinamos si el detalle se creara a partir de la clase

directora u otro detalle«ENDREM»«ELSEIF Source.NavigationalClass.Class.id == mc.Class.id -»

«EXPAND RelationshipEnds_rule ("$Zone->") FOR this-»«ELSE-»

«EXPAND RelationshipEnds_rule ("$Detail"+ Source.NavigationalClass.Class.id+"->") FOR this-»

«ENDIF-»«ENDDEFINE»

«DEFINE RelationshipEnds_rule (String pZoneId) FORNavigationalRelationship-»

«REM»Con cardinalidad 1 añadimos los atributos de las clasescomplementarias como relacionados«ENDREM»

«IF Target.AssociationEnd.maxCardinality == "1" -»«EXPAND RelatedFields_rule (pZoneId) FOREACH Target.

NavigationalClass.NavigationalAttribute-»«EXPAND NavigationLink_rule (pZoneId,Target.

NavigationalClass) FOR this -»«REM»Si la cardinalidad es N, es neceario añadir un

detalle«ENDREM»«ELSE -»

«LET Target.NavigationalClass.Class.id AS vDetail -»$Detail«vDetail» = «pZoneId»DetailRelationship("«vDetail»","

«Source.AssociationEnd.role+"_"+Source.NavigationalClass.Class.id»","«alias»");

«EXPAND Fields_rule ("$Detail" + vDetail + "->")FOREACH Target.NavigationalClass.NavigationalAttribute-»

«EXPAND NavigationLink_rule ("$Detail" + vDetail +"->") FOR this -»

«ENDLET-»«ENDIF-»«ENDDEFINE»

//Reglas dummy para evitar problemas con la herencia«DEFINE NavigationLink_rule (String pHeader) FOR

NavigationalRelationship-»«ENDDEFINE»

Page 362: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

344 APÈNDIX C. UN COMPILADOR DE MODELS D’OOWS

«DEFINE NavigationLink_rule (String pHeader,NavigationalClasspRelatedClass) FOR NavigationalRelationship-»

«ENDDEFINE»

//Añade el link de navegacion de las relaciones de contexto«DEFINE NavigationLink_rule (String pHeader) FOR ContextRelationship-»

«pHeader»«LinkAttribute.Attribute.ref»->InternLinkTo("«TargetContext.id»");

«ENDDEFINE»

«DEFINE NavigationLink_rule (String pHeader, NavigationalClasspRelatedClass) FOR ContextRelationship-»

«pHeader»«pRelatedClass.Class.id»_«LinkAttribute.Attribute.ref»->InternLinkTo("«TargetContext.id»");

«ENDDEFINE»

«DEFINE Fields_rule (String pHeader) FOR NavigationalAttribute-»«pHeader»Field("«Attribute.ref»","«alias»");

«ENDDEFINE»

«DEFINE RelatedFields_rule (String pHeader) FOR NavigationalAttribute-»«pHeader»RelatedField("«Attribute.ref»","«alias»","«Attribute.

Class.id»");«ENDDEFINE»

Codi Font C.3 – Plantilla de TransformacióNavigationalRelationship.xpt

C.4 Transformació dels Mecanismes d’Accés

�«IMPORT oows»«EXTENSION template::helpers »«DEFINE Filter_rule FOR Filter -»«ENDDEFINE»

«DEFINE Filter_rule FOR StaticFilter-»«LET "f_"+id AS vFilterId -»$«vFilterId» = $Zone->DefineStaticFilter("«vFilterId»","

«description»","«Argument.Property()»","«operator»","«Value»");

«IF SearchView != null-»«EXPAND SearchView_rule (vFilterId) FOR SearchView-»

«ENDIF-»«ENDLET-»

«ENDDEFINE»

Page 363: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

C.4. Transformació dels Mecanismes d’Accés 345

«DEFINE Filter_rule FOR DynamicFilter-»«LET "f_"+id AS vFilterId -»$«vFilterId» = $Zone->DefineDynamicFilter("«vFilterId»","

«description»","«Argument.Property()»","«operator»");«IF SearchView != null-»

«EXPAND SearchView_rule (vFilterId) FOR SearchView-»«ENDIF-»«ENDLET-»

«ENDDEFINE»

«DEFINE Index_rule FOR Index -»«LET "i_"+id AS vIndexId -»$«vIndexId» = $Zone->DefineIndex("«vIndexId»","«description»","

«Attribute.Property()»");«IF SearchView != null-»

«EXPAND SearchView_rule (vIndexId) FOR SearchView-»«ENDIF-»«ENDLET-»

«ENDDEFINE»

«DEFINE SearchView_rule (String pIdAccess) FOR SearchView -»$«pIdAccess»->SearchView("«AIU.ManagerClass.Class.id»","«id»");$«pIdAccess»->SelectionAttribute("«SelectionAttribute.Attribute

.ref»","«SelectionAttribute.alias»");«FOREACH SearchViewAttribute AS navAttribute-»$«pIdAccess»->Attribute("«navAttribute.Property()»","

«navAttribute.alias»");«ENDFOREACH -»

«ENDDEFINE»

«DEFINE Pagination_rule FOR Pagination -»$Zone->SetPagination(«cardinality»);

«ENDDEFINE»

«DEFINE OrderBy_rule FOR OrderBy -»$Zone->AddSortCondition("«NavigationalAttribute.Attribute.ref»

","«direction.Order()»");«ENDDEFINE»

Codi Font C.4 – Plantilla de TransformacióAccessMechanisms.xpt

Page 364: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

346 APÈNDIX C. UN COMPILADOR DE MODELS D’OOWS

C.5 Transformació de l’accés a la Funcionali-tat

�«IMPORT oows»«DEFINE Service_rule FOR AIU-»

«IF ManagerClass.NavigationalOperation.exists(op|op!=null)-»«LET ManagerClass.Class.id + "ServicesZone" AS vZoneId

-»$«vZoneId» = $Page->AddServicesZone("«vZoneId»","«ManagerClass.

Class.id +" Services"»");«EXPAND ServiceReference_rule (vZoneId) FOREACH

ManagerClass.NavigationalOperation -»«ENDLET-»

«ENDIF-»

«FOREACH ComplementaryClass AS compClass -»«IF compClass.NavigationalOperation.exists(op|op!=null)-»

«LET compClass.Class.id + "ServicesZone" AS vZoneId -»$«vZoneId» = $Page->AddServicesZone("«vZoneId»","«compClass.

Class.id +" Services"»");«EXPAND ServiceReference_rule (vZoneId) FOREACH

compClass.NavigationalOperation -»«ENDLET-»

«ENDIF-»«ENDFOREACH -»

«ENDDEFINE»

«DEFINE ServiceReference_rule (String pHeader) FORNavigationalOperation -»

$«pHeader»->ServiceReference("«Operation.id»","«alias»");«EXPAND ServiceForm_rule (alias) FOR Operation-»

«ENDDEFINE»

«DEFINE ServiceForm_rule (String pAlias) FOR Operation-»«FILE "/Services/" + id + ".php" -»

<?phpinclude_once "../../../OOWSFramework/ServiceBegin.php";

$Service = new Service("«pAlias»");

«EXPAND Parameter_rule FOREACH Argument -»

«PROTECT CSTART "/*" CEND "*/" ID id»//Put your custom code here«ENDPROTECT»

include_once "../../../OOWSFramework/ServiceEnd.php";?>

«ENDFILE -»

Page 365: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

C.6. Extensions Auxiliars amb Extend 347

«ENDDEFINE»

«DEFINE Parameter_rule FOR Argument-»«IF dataType == DataTypes::Auto-»$Service->ArgNumber("«ref»","«id»");$Service->«ref»->Value(-1);«ELSEIF dataType == DataTypes::Int -»$Service->ArgNumber("«ref»","«id»");«ELSEIF dataType == DataTypes::Natural -»$Service->ArgNumber("«ref»","«id»");$Service->«ref»->SetNatural();«ELSEIF dataType == DataTypes::Real-»$Service->ArgReal("«ref»","«id»");«ELSEIF dataType == DataTypes::String-»$Service->ArgText("«ref»","«id»",32);«ELSEIF dataType == DataTypes::Text-»$Service->ArgText("«ref»","«id»",32);$Service->«ref»->Lines(4);«ELSEIF dataType == DataTypes::Bool-»$Service->ArgBool("«ref»","«id»");«ELSEIF dataType == DataTypes::Date-»$Service->ArgDate("«ref»","«id»");«ELSEIF dataType == DataTypes::Time-»$Service->ArgTime("«ref»","«id»");«ELSEIF dataType == DataTypes::password-»$Service->ArgPassword("«ref»","«id»",16);«ELSEIF dataType == DataTypes::Object-»$Service->ArgReference("«ref»","«id»","«ObjectValuatedTo.id»");$Service->«ref»->SetDynamicValues("«ObjectValuatedTo.id»","

id_«ObjectValuatedTo.id»","id_«ObjectValuatedTo.id»");«ENDIF-»

«ENDDEFINE»

Codi Font C.5 – Plantilla de TransformacióService.xpt

C.6 Extensions Auxiliars amb Extend

�import oows;

//Transforma el tipo de contexto (Secuencia/Exploracion) del tipoenumerado a los valores

//que soporta el frameworkString Access(Reachabilities r): r == Reachabilities::Exploration ? "

Always" : "FromPage";

//Concatena la clase con el atributo

Page 366: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

348 APÈNDIX C. UN COMPILADOR DE MODELS D’OOWS

String Property(NavigationalAttribute this): Attribute.Class.id+"."+Attribute.ref;

//Transforma el tipo de ordenacion a valores del framework;String Order(DirectionTypes d): d == DirectionTypes::Ascendant ? "ASC

" : "DESC";

Codi Font C.6 – Extensions auxiliars amb Extend

Page 367: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

REFERÈNCIES

[1] Silvia Abrahao. On the Functional Size Measurement ofObject-Oriented Conceptual Schemas: Design and EvaluationIssues. PhD thesis, Departament de Sistemes Informàticosi Computació (Universitat Politècnica de València), Valencia,Spain, October 2004.

[2] ACM. Special Issue on Personalization. Communications ofthe ACM, 43(8), 2000.

[3] AGG: Attributed Graph Grammar System v6.0.http://tfs.cs.tu-berlin.de/agg/, (última visita 20-12-2007).

[4] AJAX: Asynchronous JavaScript And XML.

[5] Manoli Albert, Javier Muñoz, Vicente Pelechano, and OscarPastor. Model to Text Transformation in Practice: Genera-ting Code From Rich Associations Specifications. In BP-UML2006 - Best Practices in UML, 2nd. International Workshop,Proceedings, Tucson, USA, 2006.

[6] AMACONT Project: system Architecture for Multime-dia Adaptive WebCONTent. http://www-mmt.inf.tu-dresden.de/Forschung/Projekte/AMACONT/index.xhtml,(última visita 20-12-2007).

349

Page 368: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

350 REFERÈNCIES

[7] AndroMDA. http://www.andromda.org, (última visita 20-12-2007).

[8] Apache Software Foundation. The Apache Velocity Project.http://velocity.apache.org/, (última visita 20-12-2007).

[9] Colin Atkinson and Thomas Kühne. Model-Driven Develop-ment: A Metamodeling Foundation. IEEE Software, 20(5):36–41, 2003.

[10] ATLAS Group. ATL: ATLAS Transformation Language.http://www.eclipse.org/m2m/atl/, (última visita 20-12-2007).

[11] Luciano Baresi, Franca Garzotto, and Paolo Paolini. FromWeb Sites to Web Applications: New Issues for ConceptualModeling. In ER 2000 - Conference on Conceptual Modeling,19th International Conference, Proceedings, volume 1921 ofLecture Notes in Computer Science, Salt Lake City, USA, 2000.Springer.

[12] Tim Berners-Lee, J. Hendler, and O. Lassila. The SemanticWeb. Scientific American, May 2001.

[13] Angela Bonifati, Stefano Ceri, and Piero Fraternali. BuildingMulti-Device, Content-Centric Applications Using WebMLand the W3I3 Tool Suite. In ER 2000 - Conference on Con-ceptual Modeling, 19th International Conference, Proceedings,Salt Lake City, USA, 2000. Springer.

[14] Borland. Borland Together: Visual Mo-deling for Software Architecture Design.http://www.borland.com/us/products/together/index.html,(última visita 20-12-2007).

Page 369: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

Referències 351

[15] Marco Brambilla, Stefano Ceri, Sara Comai, Piero Fraternali,and Ioana Manolescu. Specification and design of workflow-driven hypertexts. JWE - Journal of Web Engineering, RintonPress, 1(2):163–182, April 2003.

[16] Marco Brambilla, Stefano Ceri, Mario Passamani, and Alber-to Riccio. Managing Asynchronous Web Services Interactions.In ICWS 2004 - Conference on Web Services, InternationalConference, Proceedings, pages 80–87, San Diego, USA, 2004.

[17] Marco Brambilla and Christina Tziviskou. Fundamentals ofexception handling within workflow-based web applications.JWE - Journal of Web Engineering, Rinton Press, 4(1):38–56,March 2005.

[18] Dan Brickley and R.V. Guha. RDF Vocabulary Descrip-tion Language 1.0, RDF Schema (W3C Recommendati-on). http://www.w3.org/TR/2004/REC-rdf-schema-20040210/,February 2004.

[19] CakePHP: Rapid Development Framework for PHP.http://www.cakephp.org, (última visita 20-12-2007).

[20] CARE Technologies S.A. OlivaNOVA. http://www.care-t.com/products/index.asp, (última visita 20-12-2007).

[21] CARE Technologies S.A. OlivaNOVA Modeller.http://www.care-t.com/products/modeler.asp, (última visita20-12-2007).

[22] CARE Technologies S.A. OlivaNOVA Transformation Engi-nes. http://www.care-t.com/products/transengine.asp, (últimavisita 20-12-2007).

Page 370: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

352 REFERÈNCIES

[23] CARE Technologies S.A. http://www.care-t.com, (última visita20-12-2007).

[24] Stefano Ceri, Florian Daniel, Maristella Matera, and Federi-co Facca. Model-driven Development of Context-Aware WebApplications. ACM TOIT - ACM Transactions on InternetTechnology, (to appear), 2007.

[25] Stefano Ceri, Piero Fraternali, and Aldo Bongio. Web Mode-ling Language (WebML): a Modeling Language for DesigningWeb Sites. Computer Networks, 33:137–157, 2000.

[26] Stefano Ceri, Piero Fraternali, and Aldo Bongio. Web Mode-ling Language (WebML): a Modeling Language for DesigningWeb Sites. In WWW 2000 - World Wide Web Conference, 9thInternational Conference, Proceedings, pages 137–157. Elsevi-er, 2000.

[27] Stefano Ceri, Piero Fraternali, and Maristella Matera. Con-ceptual Modeling of Data-Intensive Web Applications. IEEEInternet Computing, 6(4):20–30, 2002.

[28] Code Generation Network. Code Generation Information forthe Pragmatic Engineer: Quality, Consistency, Productivityand Abstraction. http://www.codegeneration.net/generators-by-standard.php?standard=1, (última visita 20-12-2007).

[29] Compuware. OptimalJ: Model-driven development for Java.http://www.compuware.com/products/optimalj, (última visita20-12-2007).

[30] Jim Conallen. Building Web Applications with UML 2.Addison-Wesley, 2003.

Page 371: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

Referències 353

[31] Olga De Troyer. Audience-driven Web Design. In InformationModeling in the New Millennium. Idea Group, 2001.

[32] Olga De Troyer and Sven Casteleyn. Modelling Complex Pro-cesses from web applications using WSDM. In IWWOST 2003- Web Oriented Software Technologies, Third InternationalWorkshop, Proceedings, pages 1–12, Oviedo, Spain, 2003.

[33] Olga De Troyer and C. Leune. WSDM: A User-centeredDesign Method for Web sites. In WWW 1997 - World Wide WebConference, 7th International Conference, Proceedings, pages85–94, 1997.

[34] Yogesh Desphande, San Murugesan, and Steve Hansen. WebEngineering: Beyond CS, IS and SE Evolutionary and Non-engineering Perspectives. In Web Engineering: Managing Di-versity and Complexity of Web Application Development, Pro-ceedings, volume 2016 of Lecture Notes in Computer Science,pages 14–23, 2001.

[35] Eclipse Foundation. Eclipse Modelling Framework.http://www.eclipse.org/modeling/emf/, (última visita 20-12-2007).

[36] Eclipse Foundation. Eclipse Modelling Project.http://www.eclipse.org/modeling/, (última visita 20-12-2007).

[37] Eclipse Foundation. GMF: Graphical Modeling Framework.http://www.eclipse.org/gmf/, (última visita 20-12-2007).

[38] Eclipse Foundation. MOFScript: Developing Tools andFrameworks for supporting Model to Text Transformations.http://www.eclipse.org/gmt/mofscript/, (última visita 20-12-2007).

Page 372: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

354 REFERÈNCIES

[39] Joan Fons, Vicente Pelechano, Manoli Albert, and Oscar Pas-tor. Development of Web Applications from Web EnhancedConceptual Schemas. In ER 2003 - Workshop on ConceptualModeling and the Web, 22nd International Conference, Pro-ceedings, volume 2813 of Lecture Notes in Computer Science,Chicago, USA, 2003. Springer.

[40] The Apache Software Foundation. Apache Struts: Extensibleframework for creating enterprise-ready Java web applicati-ons. http://struts.apache.org/, (última visita 20-12-2007).

[41] Flavius Frasincar, Geert-Jan Houben, and Peter Barna. HPG:the Hera Presentation Generator. JWE - Journal of WebEngineering, Rinton Press, 5(2):175–200, 2006.

[42] Piero Fraternali. Tools and approaches for developing data-intensive Web applications: a survey. ACM Computing Sur-veys, ACM Press, 31(3):227–263, September 1999.

[43] FreeMarker. http://freemarker.org/, (última visita 20-12-2007).

[44] Erich Gamma, Richard Helm, Ralph Johnson, and John Vlis-sides. Design patterns: elements of reusable object-orientedsoftware. Addison-Wesley, 1995.

[45] Franca Garzotto, L. Mainetti, and Paolo Paolini. HypermediaDesign, Analysis and Evaluation Issues. Communications ofthe ACM, 38(8):74–86, 1995.

[46] Franca Garzotto, Paolo Paolini, and Daniel Schwabe. HDM- A Model-Based Approach to Hypertext Application Design.ACM Transactions on Information Systems, 11(1):1–26, 1993.

Page 373: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

Referències 355

[47] GentleWare. Poseidon for UML. http://www.gentleware.com/,(última visita 20-12-2007).

[48] Interactive Objects Software GmbH. ArcStyler: TheDynamic Link Between Business and Technology.http://www.interactive-objects.com/products/arcstyler, (últimavisita 20-12-2007).

[49] Jaime Gómez, Cristina Cachero, and Oscar Pastor. Extendinga Conceptual Modeling Approach to Web Application Design.In CAiSE 2000 - Conference on Advanced Information SystemsEngineering, International Conference, Proceedings, volume1789 of Lecture Notes in Computer Science, pages 79–93, In-terlaken, Suiza, 2000. Springer.

[50] David Harel. Handbook of Philosophical Logic II, chapter 10Dynamic Logic, pages 497–694. D.M. Gabbay and F. Guenth-ner, Reidel, 1984.

[51] Rolf Hennicker and Nora Koch. A UML-based Methodologyfor Hypermedia Design. In Andy Evans, Stuart Kent, andBran Selic, editors, UML 2000 - The Unified Modeling Lan-guage. Advancing the Standard. Third International Confe-rence, Proceedings, pages 410–424, York, United Kingdom,2000. Springer.

[52] Geert-Jan Houben, Peter Barna, Flavius Frasincar, and Ric-hard Vdovjak. Hera: Development of Semantic Web Infor-mation Systems. In ICWE 2003 - Web Engineering, ThirdInternational Conference, Proceedings, volume 2722 of LectureNotes in Computer Science, pages 529–538, Oviedo, Spain,July 2003. Springer.

Page 374: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

356 REFERÈNCIES

[53] IBM. Rational Rose. http://www.ibm.com/software/awdtools/developer/rose/index.html, (última visita 20-12-2007).

[54] IBM High-Volume Web site team. Web Site Personalization.Technical report, IBM, January 2000.

[55] IMDb: The Internet Movie Database. http://www.imdb.org/,(última visita 20-12-2007).

[56] Emilio Insfrán, Oscar Pastor, and Roel Wieringa. Require-ments Engineering-Based Conceptual Modelling. Require-ments Engineering, 7(2):61–72, 2002.

[57] Jack Greenfield and Keith Short and Steve Cook and StuartKent. Software Factories: Assembling Applications with Pat-terns, Models, Frameworks, and Tools. Wiley, September 2004.

[58] Gerti Kappel, Werner Retschitzegger, and Wieland Schwinger.Modeling Customizable Web Applications - A Requirement’sPerspective. In Digital Libraries: Research and Practice, In-ternational Conference, Proceedings, Kyoto, Japan, November2000.

[59] Alexander Knapp, Nora Koch, Flavia Moser, and Gefei Zhang.ArgoUWE: A CASE Tool for Web Applications. In Jolita Ralyteand Colette Roland, editors, EMSISE 2003 - Engineering Met-hods to Support Information Systems Evolution, 1st Interna-tional Workshop, Proceedings, pages 37–50, Geneve, France,2003.

[60] Alexander Knapp, Gefei Zhang, and Hanns Martin Hassler.Modeling Business Processes in Web Applications with Ar-goUWE. In Thomas Baar, Alfred Strohmeier, Ana M. D. Mo-reira, and Stephen J. Mellor, editors, UML 2004 - The Unified

Page 375: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

Referències 357

Modeling Language.Modelling Languages and Applications,7th International Conference, Proceedings, volume 3273 ofLecture Notes in Computer Science, pages 69–83. Springer,2004.

[61] Nora Koch. Software Engineering for Adaptive HypermediaApplications. PhD thesis, Lüdwig-Maximilians-University,Munich, Germany, 2000.

[62] Nora Koch, Santiago Meliá, Nathalie Moreno, Vicente Pelec-hano, Fernando Sánchez-Figueroa, and Juan M. Vara. Model-Driven Web Engineering. Novática-Upgrade. Special Issue onMDA at the Age of Seven, (en espera de publicació), March/A-pril 2008.

[63] Nora Koch and Martin Wirsing. Software Engineering forAdaptive Hypermedia Applications. In Workshop on AdaptiveHypertext and Hypermedia, 3rd International Edition, Mála-ga, Spain, 2001.

[64] Nora Koch and Martin Wirsing. The Munich Reference ModelforAdaptive Hypermedia Applications. In Paul De Bra, PeterBrusilovsky, and Ricardo Conejo, editors, AH 2002 - Adap-tive Hypermedia and Adaptive Web Based Systems, SecondInternational Conference, Proceedings, volume 2347 of LectureNotes in Computer Science, pages 213–222, Malaga, Spain,2002. Springer.

[65] Jernej Kovse and Theo Härder. Generic XMI-Based UMLModel Transformations. In Object-Oriented Information Sys-tems, 8th International Conference, Proceedings, Montpellier,France, 2002.

Page 376: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

358 REFERÈNCIES

[66] Henry Lieberman, Fabio Paternò, and Volker Wulf, editors.End User Development, volume 9. Springer, 2006.

[67] Fernanda Lima and Daniel Schwabe. Modeling Applicationsfor the Semantic Web. In ICWE 2003 - Web Engineering, ThirdInternational Conference, Proceedings, volume 2722 of LectureNotes in Computer Science, pages 417–426, Oviedo, Spain,July 2003. Springer.

[68] Ioana Manolescu, Marco Brambilla, Stefano Ceri, Sara Co-mai, and Piero Fraternali. Model-Driven Design and Deploy-ment of Service-Enabled Web Applications. ACM TOIT - ACMTransactions on Internet Technology, 5(3):439–479, August2005.

[69] Beatriz Marín, Giovanni Giachetti, and Oscar Pastor. nter-cambio de Modelos UML y OO-Method. In IDEAS 2007 -Ingeniería de Requisitos y Ambientes Software, 10th Iberoame-rican Workshop, Proceedings, pages 283–296, Isla Margarita,Venezuela, 2007.

[70] Santiago Meliá and Cristina Cachero. An MDA Approachfor the Development of Web Applications. In Nora Koch,Piero Fraternali, and Martin Wirsing, editors, ICWE 2004 -Web Engineering, 4th International Conference, Proceedings,volume 3140 of Lecture Notes in Computer Science, pages 300–305, Munich, Germany, July 2004. Springer.

[71] Santiago Meliá, Andreas Kraus, and Nora Koch. MDA Trans-formations Applied to Web Application Development. In Da-vid Lowe and Martin Gaedke, editors, ICWE 2005 - Web En-gineering, 5th International Conference, Proceedings, volume

Page 377: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

Referències 359

3579 of Lecture Notes in Computer Science, pages 465–471,Sydney, Australia, 2005. Springer.

[72] Stephen J. Mellor, Anthony N. Clark, and Takao Futagami.Guest Editors’ Introduction: Model-Driven development. IE-EE Software, 20(5):14–18, 2003.

[73] Microsoft. ASP .NET: Active Server Pages .NET.http://www.asp.net/, (última visita 20-12-2007).

[74] Microsoft. DSL Tools. http://msdn2.microsoft.com/en-us/vstudio/aa718368.aspx, (última visita 20-12-2007).

[75] Javier Muñoz and Vicente Pelechano. Building a SoftwareFactory for Pervasive Systems Development. In Oscar Pastorand João Falcão e Cunha, editors, CAiSE 2005 - Conferenceon Advanced Information Systems Engineering, 17th Interna-tional Conference, Proceedings, volume 3520 of Lecture Notesin Computer Science, pages 342–356, Porto, Portugal, 3-540-26095-1 2005. Springer.

[76] San Murguesan, Yogesh Desphande, and Athula Ginigie. WebEngineering: A New Discipline for Development of Web-basedSystems. In Web Engineering (ICSE) 1999, InternationalWorkshop, Proceedings (within the International Conferenceon Software Engineering), 1999.

[77] San Murugesan and Yogesh Desphande. Web Enginee-ring. Software Engineering and Web Application Develop-ment. Springer LNCS - HotTopics, 2001.

[78] No Magic, Inc. MagicDraw: Architecture Made Simple.http://www.magicdraw.com/, (última visita 20-12-2007).

Page 378: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

360 REFERÈNCIES

[79] Demetrius Arraes Nunes and Daniel Schwabe. Rapid Prototy-ping of Web Applications combining Domain Specific Langua-ges and Model Driven Design. In David Wolber, Neil Calder,Christopher H. Brooks, and Athula Ginige, editors, ICWE2006 - Web Engineering, 6th International Conference, Procee-dings, pages 153–160, Palo Alto, USA, 2006. ACM Press.

[80] Object Management Group. Unified Modeling Language(UML) Specification Version 1.4 draft. Technical report,www.omg.org, February 2001.

[81] Object Management Group, OMG. MOF2Text: Modelto Text Transformation Language, Request for Proposals.http://www.omg.org/cgi-bin/doc?ad/2004-4-7, May 2004 (últi-ma visita 20-12-2007).

[82] Object Management Group, OMG. Model Driven Architecture(MDA). http://www.omg.org/mda, 2006 (última visita 20-12-2007).

[83] Luis Olsina. Metodología Cuantitativa para la Evaluacióny Comparación de la Calidad de Sitios Web. PhD thesis,Facultad de Ciencias Excatas de la Universidad Nacional deLa Plata, 1999. In spanish.

[84] OMG Group. MetaObject Facility. http://www.omg.org/mof/,(última visita 20-12-2007).

[85] Oscar Pastor, Joan Fons, Silvia Abrahão, and Sergio Ramón.Object-Oriented Conceptual Models for Web Applications. InIDEAS 2001 - Ingeniería de Requisitos y Ambientes Software,4th Iberoamerican Workshop, Proceedings, San José, CostaRica, 2001.

Page 379: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

Referències 361

[86] Oscar Pastor, Joan Fons, and Vicente Pelechano. A Methodto Develop Web Applications from Web-Oriented ConceptualModels. In IWWOST 2003 - Web Oriented Software Technolo-gies, Third International Workshop, Proceedings, pages 65–70,Oviedo, Spain, July 2003.

[87] Oscar Pastor, Joan Fons, Victoria Torres, and Vicente Pelec-hano. Conceptual Modelling versus Semantic Web: the twosides of the same coin? In Worshop on Application Design2004 (WWW), International Workshop, Proceedings (withingthe World Wide Web Conference), New York, USA, 2004.

[88] Oscar Pastor, Jaime Gómez, and Cristina Cachero. Conceptu-al Modeling of Device-Independent Web Applications. IEEEMultimedia, April-June 2001.

[89] Oscar Pastor, Jaime Gómez, Emilio Insfrán, and Vicente Pe-lechano. The OO-Method Approach for Information SystemsModelling: From Object-Oriented Conceptual Modeling to Au-tomated Programming. Information Systems, 26(7):507–534,2001.

[90] Oscar Pastor, Emilio Insfrán, Vicente Pelechano, José Romero,and José Merseguer. OO-Method: An OO Software ProductionEnvironment Combining Conventional and Formal Methods.In CAiSE 1997 - Conference on Advanced Information SystemsEngineering, 9th Edition, Proceedings, volume 1250 of LectureNotes in Computer Science, pages 145–159, Barcelona, Spain,June 1997. Springer.

[91] Oscar Pastor and Juan Carlos Molina. Model-Driven Architec-ture in Practice. A Software Production Environment Based onConceptual Modeling. Springer, 2007.

Page 380: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

362 REFERÈNCIES

[92] Fabio Paternò. ConcurTaskTrees: An Engineered Notationfor Task Models, chapter 24, pages 483–501. The Handbookof Task Analysis for Human-Computer Interaction. LawreceErlbaum Associates, London, United Kingdom, 2004.

[93] Vicente Pelechano. Tratamiento de Relaciones Taxonómi-cas en Entornos de Producciõn Automática de Software. UnaAproximación Basada en Patrones. PhD thesis, Departamentde Sistemes Informàticos i Computació, Universitat Politècni-ca de València, València, Spain, 2001.

[94] Thomas A. Powell. Web Site Engineering: Beyond Web PageDesign. Prentice Hall, 1998.

[95] Roger S. Pressman. Can internet-based applications be engi-neered? IEEE Software, September/October, 1998.

[96] Trygve Reenskaug. The Model-View-Controller (MVC): ItsPast and Present. Technical report, University of Oslo, 2003.

[97] Gonzalo Rojas. Modelling Adaptive Web Applications inOOWS. PhD thesis, Departament de Sistemes Informáticosi Computació, Valencia, Spain, 2008.

[98] Gonzalo Rojas, Vicente Pelechano, and Joan Fons. A model-driven approach to include adaptive navigational techniquesin Web applications. In IWWOST 2005 (CAiSE) - Web-Oriented Software Technologies, Fifth International Workshop,Proceedings (within the 17th Conference on Advanced Infor-mation Systems Engineering), Porto, Portugal, 2005.

[99] Gonzalo Rojas, Pedro Valderas, and Vicente Pelechano. Des-cribing adaptive navigation requirements of Web applications.In AH 2006 - Adaptive Hypermedia and Adaptive Web-Based

Page 381: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

Referències 363

Systems, Fourth International Conference, Proceedings, Du-blin, Ireland, 2006.

[100] Gustavo Rossi. Uma Metodologia Orientada a Objetos para oProjeto de Aplicativos Hipermidia. PhD thesis, Departamentode Informática da PUC-Rio, Rio de Janeiro, Brasil, 1996.

[101] Gustavo Rossi, Fernando Lyardet, and Robson Guimarães.Designing Personalized Web Applications. In WWW 2001 -World Wide Web Conference, 10th International Conference,Proceedings, pages 275–284, Hong Kong, China, 2001. ACMPress.

[102] Gustavo Rossi and Daniel Schwabe. Object-Oriented WebApplications Modeling. In Information Modeling in the NewMillennium, pages 463–484. Idea Group, 2001.

[103] Gustavo Rossi and Daniel Schwabe. Modelling and Implemen-ting Web Applications with OOHDM, chapter 6, pages 109–155. Web Engineering: Modelling and Implementing WebApplications. Human Computer Interaction Series. GustavoRossi and Oscar Pastor and Daniel Schwabe and Luis Olsina,eds. Springer, 2007.

[104] Gustavo Rossi, Daniel Schwabe, and Fernando Lyardet. WebApplication Models are More than Conceptual Models. In ER2000 - Conference on Conceptual Modeling, 19th InternationalConference, Proceedings, Salt Lake City, USA, 2000. Springer-Verlag.

[105] Gustavo Rossi, Daniel Schwabe, Luis Olsina, and Oscar Pas-tor. Overview of Design Issues for Web Applications Develop-ment, chapter 4. Web Engineering: Modelling and Implemen-ting Web Applications. Human Computer Interaction Series.

Page 382: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

364 REFERÈNCIES

Gustavo Rossi and Oscar Pastor and Daniel Schwabe and LuisOlsina, eds. Springer, 2007.

[106] Grzegorz Rozenberg. Handbook of Graph Grammars andComputing by Graph Transformations. World Scientific Pu-blishing Company, 1997.

[107] Ruby on Rails: Web development that doesn’t hurt.http://www.rubyonrails.org/, (última visita 20-12-2007).

[108] Marta Ruiz, Vicente Pelechano, and Oscar Pastor. DesigningWeb Services for supporting user tasks: A model driven appro-ach. In CoSS 2006 - Conceptual Modeling of Service OrientedSoftware Systems, International Workshop, Proceedings, 2006.

[109] Marta Ruiz, Pedro Valderas, and Vicente Pelechano. Applyinga Web Engineering method to design Web Services. In ICSOC2005 - Service-Oriented Computing, Third International Con-ference, Proceedings, pages 576–581, 2005.

[110] Marta Ruiz, Francisco Valverde, and Vicente Pelechano. Des-arrollo de Servicios Web en un Metodo de Generaciõn deCõdigo Dirigido por Modelos. In JSWEB 2006 - JornadasCientıfico-Tecnicas en Servicios Web, II Edition, Proceedings,2006.

[111] Daniel Schwabe and Gustavo Rossi. An object-oriented appro-ach to Web-based application design. Theory and Practice ofObject Systems, 4(4):207–225, October 1998.

[112] Daniel Schwabe and Gustavo Rossi. An Object Oriented ap-proach to Web-based applications design. Theory and Practiceof Object Systems, 4(4):207–225, 1998.

Page 383: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

Referències 365

[113] Daniel Schwabe and Gustavo Rossi. Developing HypermediaApplications Using OOHDM. In Hypertext 1998 - Workshopon Hypermedia Development Processes, Methods and Models,Proceedings, Pittsburgh, USA, 1998.

[114] Daniel Schwabe, Gustavo Rossi, and Simone Barbosa. Syste-matic Hypermedia Design with OOHDM. In Hypertext 1996- Workshop on Hypermedia Development Processes, Methodsand Models, Proceedings, Washington, USA, 1996.

[115] Daniel Schwabe, Guilherme Szundy, Sabrina Silva de Moura,and Fernanda Lima. Design and Implementation of Seman-tic Web Applications. In Christoph Bussler, Stefan Decker,Daniel Schwabe, and Oscar Pastor, editors, Workshop on Ap-plication Design, Development and Implementations Issues inthe Semantic Web 2004, Proceedings (within the World WideWeb Conference), volume 105, 2004.

[116] Bran Selic. The Pragmatics of Model-Driven Development.IEEE Software, 20(5):19–25, 2003.

[117] Sabrina Silva de Moura and Daniel Schwabe. Interface De-velopment for Hypermedia Applications in the Semantic Web.In WebMedia/LA-WEB 2004 - Latin American Web Congress,2nd Edition, Proceedings (within the 10th Brazilian Sympo-sium on Multimeda and the Web), pages 106–113, RibeiraoPreto-SP, Brazil, October 2004. IEEE Computer Society<.

[118] Stanford Center for Biomedical Informatics Research. Proté-gé: a free, open source Ontology Editor and Knowledge baseFramework. http://protege.stanford.edu/, (última visita 20-12-2007).

Page 384: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

366 REFERÈNCIES

[119] Sparx Systems. Enterprise Architect: The Advanced SoftwareModelling Tool for UML. http://www.sparxsystems.com.au/,(última visita 20-12-2007).

[120] The oAW Team. oAW: The leading platform forprofessional model-driven software development.http://www.openarchitectureware.org/, (última visita 20-12-2007).

[121] The OO-Method Group. The OOWS Project.http://oomethod.dsic.upv.es/OOWS/.

[122] Victoria Torres and Vicente Pelechano. Building business pro-cess driven Web applications. In BPM 2006 - Business ProcessManagement, Fourth International Conference, Proceedings,pages 322–337, Vienna, Austria, 2006.

[123] Victoria Torres, Vicente Pelechano, and Oscar Pastor. Buil-ding Semantic Web Services based on a model driven WebEngineering method. In CoSS 2006 - Conceptual Modeling ofService Oriented Software Systems, International Workshop,Proceedings, Tucson, USA, 2006.

[124] Pedro Valderas. A Requirements Engineering Approach for theDevelopment of Web Applications. PhD thesis, Departamentde Sistemes Informàticos i Computació (Universitat Politèc-nica de València), 2008.

[125] Pedro Valderas, Joan Fons, Manoli Albert, and Vicente Pelec-hano. Desarrollo de un portal Web para un DepartamentoUniversitario desde Modelado Conceptual. In IDEAS 2003 -Ingeniería de Requisitos y Ambientes Software, 6th Iberoame-rican Workshop, Proceedings, pages 15–26, Asunción, Para-guay, May 2003.

Page 385: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

Referències 367

[126] Pedro Valderas, Joan Fons, and Vicente Pelechano. Transfor-ming Web Requirements into Navigational Models: An MDABased Approach. In Lois Delcambre, Christian Kop, HeinrichMayr, John Mylopoulos, and Oscar Pastor, editors, ER 2005 -Workshop on Conceptual Modeling and the Web, 24th Interna-tional Conference, Proceedings, volume 3716 of Lecture Notesin Computer Science, pages 320–336, Klagenfurt/Velden, Aus-tria, 2005. Springer.

[127] Pedro Valderas, Vicente Pelechano, and Oscar Pastor. A trans-formational approach to produce Web application prototypesfrom a Web requirements model. International Journal onWeb Engineering and Technology, IJWET, 2006.

[128] Pedro Valderas, Vicente Pelechano, and Oscar Pastor.Towards and End-User development approach for Web Engi-neering Methods. In CAiSE 2003 - Conference on AdvancedInformation Systems Engineering, 15th International Confe-rence, Proceedings, volume 4001 of Lecture Notes in ComputerScience, pages 528–543, Luxembourg, June, 5-9 2006. Sprin-ger.

[129] Antonio Vallecillo, Nora Koch, Cristina Cachero, Sara Comai,Piero Fraternali, Inés Garrigós, Jaime Gómez, Gerti Kappel,Alexander Knapp, Maristella Matera, Santiago Meliá, Natha-lie Moreno, Birgit Pröll, Thomas Reiter, Werner Retschitzeg-ger, José E. Rivera, Andrea Schauerhuber, Wieland Schwin-ger, Manuel Wimmer, and Gefei Zhang. MDWEnet: A Practi-cal Approach to Achieving Interoperability of Model-DrivenWeb Engineering Methods (Position Paper). In MDWEnetWorshop 2007 (within the ICWE 2007 - Web Engineering, 7th

Page 386: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

368 REFERÈNCIES

International Conference), pages 246–254, Como, Italy, July2007.

[130] Francisco Valverde, Pedro Valderas, Joan Fons, and VicentePelechano. A MDA-based Environment for Web ApplicationsDevelopment: From Conceptual Models to Code. In Mar-co Brambilla and Emilia Mendes, editors, IWWOST 2007 -Workshop on Web Oriented Software Technology, 7th Inter-national Edition, Proceedings (within the ICWE Conference),pages 164–178, 2007.

[131] Kees van der Sluijs, Geert-Jan Houben, Jeen Broekstra, andSven Casteleyn. Hera-S: Web Design using Sesame. In Da-vid Wolber, Neil Calder, Christopher H. Brooks, and AthulaGinige, editors, ICWE 2006 - Web Engineering, 6th Internati-onal Conference, Proceedings, pages 337–344, Palo Alto, USA,2006. ACM Press.

[132] Richard Vdovjak, Flavius Frasincar, Geert-Jan Houben, andPeter Barna. Engineering Semantic Web Information Sys-tems in Hera. JWE - Journal of Web Engineering, RintonPress, 1(2):3–26, 2003.

[133] Patricia Vilain, Daniel Schwabe, and Clarisse Sieckenius deSouza. A Diagrammatic Tool for Representing User Interacti-on in UML. In Andy Evans, Stuart Kent, and Bran Selic, edi-tors, UML 2000 - The Unified Modeling Language. Advancingthe Standard. Third International Conference, Proceedings,volume 1939 of Lecture Notes in Computer Science, pages 133–147, York, United Kingdom, October 2000. Springer.

[134] W3C Consortium. CSS: Cascade Style Sheets.http://www.w3.org/Style/CSS/, 1996.

Page 387: OOWS: Un Mètode Dirigit per Models per al Desenvolupament ...€¦ · UNIVERSITAT POLITÈCNICA DE VALÈNCIA OOWS: Un Mètode Dirigit per Models per al Desenvolupament d’Aplicacions

Referències 369

[135] W3C Consortium. XHTML 1.0: eXtensible Hypertext MarkupLanguage. A reformulation of HTML 4 in XML 1.0. W3CRecommendation. http://www.w3.org/MarkUp/, August 2002.

[136] W3C Consortium. RDF: Resource Description Framework.http://www.w3.org/RDF/, (última visita 20-12-2007).

[137] WebML: Web Modelling Language. http://www.webml.org,(última visita 20-12-2007).

[138] WebRatio: You Think it, You get it. http://www.webratio.com,(última visita 20-12-2007).