HOME
PROGETTI
Software
QUESTA PAGINA
oop extensions
AOP syntax
download

Introduction

L'Aspect Oriented Programming può essere definita come una tecnologia di sviluppo del software ulteriore, dopo la programmazione orientata agli oggetti. Il concetto chiave attorno a cui si basa l'AOP è la "separazione dei compiti" (SOC, separation of concerns). Nei progetti software realizzati in OOP, a prescindere dal linguaggio utilizzato, ci si trova spesso nell'avere delle strutture e/o gerarchie di classi molto complesse. Se si analizza poi l'applicazione da un punto di vista dei "compiti", spesso si scopre che essi coinvolgono, a vario titolo, diverse classi se non tutte. Obiettivo dell'AOP e' quello di permettere di scrivere, in modo chiaro e concentrato in un unico punto, tutto il codice che le varie classi coinvolte dovranno includere e/o eseguire per l'espletamento di un determinato compito. Per esempio, la gestione di una semplice "Button Bar", può dipendere da vari pezzi di codice, dallo stato di diversi oggetti (il documento corrente, il suo stato, la presenza di uno o più dispositivi, i parametri di configurazione correnti) Ogni oggetto coinvolto dovrà quindi contribuire esponendo metodi e membri specifici per gestire la "button bar". Lo scrivere questi metodi e l'aggiungere i necessari membri alle varie classi significa in qualche modo sparpagliare il "compito" dell'aggiornamento della Button Bar su tutto il codice dell'applicativo, rendendo difficile poi la sua lettura e la sua manutenzione. Il codice strettamente legato alla ButtonBar sarà quindi "concentrato" sotto la classe, supponiamo "CButtonBar", ma il codice necessario a far sì che la button bar si "aggiorni" a seconda dello stato corrente dell'applicativo non potrà che essere incluso nelle varie classi di competenza. L'AOP propone quindi una soluzione: il codice dell'attività "Aggiorna ButtonBar", viene scritto in un'unico punto del codice, ovvero in un "Aspetto" scritto all'uopo. Questo permette, a prescindere dal tipo di button bar e di applicativo realizzato, di avere tutto il codice relativo all'aggiornamento della Button Bar "concentrato" e quindi facilmente manuntenibile e modificabile secondo esigenze. Detto in altri termini, se gli oggetti permettono la definizione di un'entità, gli aspetti definiscono le azioni collaborative che le entità (oggetti) possono compiere. Per ulteriori informazioni sull'AOP vi consiglio di visitare il sito AOSD.NET che è la home page per tutti i lavori relativi all'AOP. Da qui è possibile trovare un bel po' di informazioni e documenti utili. Un'altro sito sicuramente interessante è il sito relativo al progetto aspectj, ovvero i tools necessari per usare l'AOP in Java. Così come il aspectc, per quanto riguarda il C++.




AMBIENTE DI SVILUPPO AOP dtclaop!!!!

Se vi interessa, ho in sviluppo un'applicazione IDE in sviluppo, per utilizzare al meglio il DTclaop. Se vi interessa, ecco alcune pagine dedicate al "DevTcl" :)






Copyright © 2002, by eriskouma.com. All rights reserved. last modified on: Tue, 08 July 2003


write me!

AOP home

AOP for Java

AOP for C++