This dissertation presents a novel technique to implement the behaviour of some widely used design patterns using a combination of aspect oriented programming and computational reflection. Object-oriented languages do not support design patterns as a language construct, instead these have to be specifically implemented by the programmer. As a result, their implementation ends up scattered over different classes and tangled with the domain code of such classes, leading to reusability, modularity and comprehensibility issues. The aspect-oriented implementations presented in this thesis get rid of such issues. A design pattern is implemented as an aspect which, by intercepting an annotation that marks an application class, enforces the role of the pattern on that class, thus making the pattern available for the system. Such implementations enjoy four properties, especially defined from from the analysis of the literature, considered useful and not found together in existing approaches. Efficient variants of the proposed approach are also described and compared with the standard object-oriented approach in terms of running times. The proposed implementations can be used in object-oriented legacy applications, applying specific refactoring steps to convert legacy code to make it use the aspect versions.

In questa tesi viene presentata una nuova tecnica per l'implementazione di alcuni design pattern facendo uso della programmazione orientata agli aspetti e della riflessione computazionale. I linguaggi di programmazione orientati agli oggetti non sono in grado di supportare i design pattern a livello di costrutti del linguaggio, per cui il programmatore è costretto ad implementarli espressamente. Il codice che implementa un design pattern risulta quindi disperso su diverse classi che finiscono per mescolare al proprio codice quello relativo al design pattern. Ciò comporta diversi problemi di riusabilità, modularità e comprensibilità del codice. L'implementazione basata sulla programmazione orientata agli aspetti proposta in questa tesi elimina tali problemi. Un design pattern viene implementato in un aspetto che, intercettando un'annotazione usata per identificare le classi che giocano un ruolo per il design pattern, inserisce nel sistema il comportamento atteso dal pattern. L'analisi della letteratura ha portato alla definizione di quattro utili proprietà verificate dalle implementazioni proposte, non tutte verificate insieme negli approcci già esistenti. Le implementazioni di base sono presentate in varianti che ne migliorano i tempi di esecuzione. Le versioni dei design pattern implementate sono confrontate con le equivalenti implementazioni orientate agli oggetti. Le implementazioni proposte possono essere usate anche in applicazioni esistenti scritte ad oggetti convertendole nell'equivalente versione ad aspetti proposta.

Experiments towards a general implementation of some design patterns using aspect orientation / Giunta, ROSARIO GRAZIANO. - (2011 Dec 10).

Experiments towards a general implementation of some design patterns using aspect orientation

GIUNTA, ROSARIO GRAZIANO
2011-12-10

Abstract

This dissertation presents a novel technique to implement the behaviour of some widely used design patterns using a combination of aspect oriented programming and computational reflection. Object-oriented languages do not support design patterns as a language construct, instead these have to be specifically implemented by the programmer. As a result, their implementation ends up scattered over different classes and tangled with the domain code of such classes, leading to reusability, modularity and comprehensibility issues. The aspect-oriented implementations presented in this thesis get rid of such issues. A design pattern is implemented as an aspect which, by intercepting an annotation that marks an application class, enforces the role of the pattern on that class, thus making the pattern available for the system. Such implementations enjoy four properties, especially defined from from the analysis of the literature, considered useful and not found together in existing approaches. Efficient variants of the proposed approach are also described and compared with the standard object-oriented approach in terms of running times. The proposed implementations can be used in object-oriented legacy applications, applying specific refactoring steps to convert legacy code to make it use the aspect versions.
10-dic-2011
In questa tesi viene presentata una nuova tecnica per l'implementazione di alcuni design pattern facendo uso della programmazione orientata agli aspetti e della riflessione computazionale. I linguaggi di programmazione orientati agli oggetti non sono in grado di supportare i design pattern a livello di costrutti del linguaggio, per cui il programmatore è costretto ad implementarli espressamente. Il codice che implementa un design pattern risulta quindi disperso su diverse classi che finiscono per mescolare al proprio codice quello relativo al design pattern. Ciò comporta diversi problemi di riusabilità, modularità e comprensibilità del codice. L'implementazione basata sulla programmazione orientata agli aspetti proposta in questa tesi elimina tali problemi. Un design pattern viene implementato in un aspetto che, intercettando un'annotazione usata per identificare le classi che giocano un ruolo per il design pattern, inserisce nel sistema il comportamento atteso dal pattern. L'analisi della letteratura ha portato alla definizione di quattro utili proprietà verificate dalle implementazioni proposte, non tutte verificate insieme negli approcci già esistenti. Le implementazioni di base sono presentate in varianti che ne migliorano i tempi di esecuzione. Le versioni dei design pattern implementate sono confrontate con le equivalenti implementazioni orientate agli oggetti. Le implementazioni proposte possono essere usate anche in applicazioni esistenti scritte ad oggetti convertendole nell'equivalente versione ad aspetti proposta.
Aspect orientation, design pattern, modularity, computational reflection, annotations, refactoring
Experiments towards a general implementation of some design patterns using aspect orientation / Giunta, ROSARIO GRAZIANO. - (2011 Dec 10).
File in questo prodotto:
File Dimensione Formato  
PhDthesis.pdf

accesso aperto

Tipologia: Tesi di dottorato
Licenza: PUBBLICO - Pubblico con Copyright
Dimensione 1.5 MB
Formato Adobe PDF
1.5 MB Adobe PDF Visualizza/Apri

I documenti in IRIS sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/20.500.11769/585674
Citazioni
  • ???jsp.display-item.citation.pmc??? ND
  • Scopus ND
  • ???jsp.display-item.citation.isi??? ND
social impact