PDA

View Full Version : [Aspect Oriented Programming] Qualcuno ha esperienze?


TorpedoBlu
01-11-2006, 11:44
Nella discussione in Sign descrivo la tesi di laurea affidatami, qui vorrei sapere se qualcuno di voi si è ritrovato a che fare con la AOP, per ora non è molto diffusa come tecnica di programmazione, ma sembra davvero interessante.

Non trovo esempi in rete (parlo di esempi concreti) e non so precisamente che tool usare e come (ho visto jaspect, ma non sono pratico di eclipse)

Vorrei sapere da chiunque uncommento o un giudizio sulla propria esperienza, e se sa dove trovare esempi concreti, visto che in rete trovo vagonate di documentazioni ma tutto teorico.

In un secondo momento dovrei trovare il modo di applicare/potenziare questo paradigma al web...

cionci
01-11-2006, 12:29
E' una tesi specialistica o triennale ?
L'unica cosa che ti posso consigliare è di comprare i libri che trovi su Amazon... Ce ne sono diversi e sembrano molto completi...

TorpedoBlu
01-11-2006, 12:57
E' una tesi specialistica o triennale ?
L'unica cosa che ti posso consigliare è di comprare i libri che trovi su Amazon... Ce ne sono diversi e sembrano molto completi...

è una tesina.

MA il mio problema è che sono abbastanza estraneo a Eclipse e simili.. l'ho installato, ma capire come farlo andare e come installare i plugin...(ad esempio qual'è il plug-in per l'UML?? )


il materiale che ho trovato (tutto in inglese) è tanto, ma sostanzialmente nella pratica c'è davvero poco e applicazioni da analizzare non ne trovo..

Aspects on Web

obiettivo: stato dell'arte della AOP sul Web

parte teorica:
o panoramica sulla AOP in OO e dettagli su ASPECTJ (con esempi)
o panoramica su AOP e Web (letteratura e software) in particolare per PHP

parte pratica:
o applicazione dei software esistenti (verifica delle varie implementazioni)
o e confronto tra implementazioni
o (se si trova una implementazione funzionante) provarla su una applicazione specifica
 es. il calcolo di metriche software (tipo: codice eseguito, classi, funzioni, parametri, files, etc.-dipende da implementazione-)
o (se vale la precedente) si possono implementare le metriche in due sistemi: tradizionale e AOP e confrontarli


ho trovato un po' di roba
· Francesco Merlo, Matteo Miraz (studenti di un corso di laurea) "Aspect Oriented Programming"
www.elet.polimi.it/upload/ghezzi/_PRIVATE/AOP.pdf
· ObjectWay “Aspect-Oriented Programming ed AspectJ - Un nuovo modello di programmazione.
supportato da Java e dall’Open-Source”
http://it.sun.com/eventi/jc04/presentazioni/parallela2/objectway.pdf
· Rebora, Federico http://www.disi.unige.it/person/CazzolaW/seminari-2003/AOP
ASPECTJ
· http://www.eclipse.org/aspectj/ sito ufficiale con molta documentazione ed esempi
· http://it.wikipedia.org/wiki/Aspectj una introduzione
ASPETTI e WEB
Implementazioni per il PHP analizzabili per il nostro stato dell’arte possono essere:
aoPHP http://www.aophp.net/
PHPaspect http://phpaspect.org/wiki/doku.php
e slide http://phpaspect.org/conferences/poa_epfl.pdf
aspectPHP http://www.cs.toronto.edu/~yijun/aspectPHP
poi ci sarebbe da analizzare il software ad aspectti per perl, Java servlet, .NET, ed altri linguaggi Web

prodigy
02-11-2006, 01:35
Può darsi che ti dico una ovvietà... ma tempo fa mi consigliarono questo:

Pan-Wei Ng, Ivar Jacobson. Aspect-Oriented Software Development with Use Cases. Addison Wesley Professional (Dec 30, 2004)

Volevo comprarlo per capirci un pò di piu perchè mi interessava sapere questo approccio diverso all'ingegneria del software che alla fine sicuramente ognuno di noi in parte ha utilizzato almeno una volta in vita sua senza saperlo :D

thebol
03-11-2006, 08:28
ho letto un po di articoli sull'aspect programing(sopratutto aspectJ) e ho letto che viene a volte implementato tramite weaving

AspectJ has been designed to be implemented in many ways, including source- or bytecode-weaving and directly in the VM

che roba è il bytecode-weaving?

TorpedoBlu
04-05-2007, 09:35
dopo mesi e mesi di problematiche varie, ho ripreso in mano il lavoro della tesi, e scriverò qui quello che trovo, se qualcuno vorrà partecipare.. ben venga

tglman
04-05-2007, 13:54
Spesso aspect fa affianco a spring che penso che adesso sia l'unica cosa di aspect oriented che venga veramente utilizzata!!

Io la sto utilizzando spring per un'applicazione web, anche se con approcci nn molto aspect....

TorpedoBlu
04-05-2007, 15:04
Spesso aspect fa affianco a spring che penso che adesso sia l'unica cosa di aspect oriented che venga veramente utilizzata!!

Io la sto utilizzando spring per un'applicazione web, anche se con approcci nn molto aspect....

mhmm che dovessi imparare uno di questi framework era abbastanza ovvio... aime... ma da dove inizio? io non so manco cosa sia in realtà un framework, le mie esperienze di programmazione sono in C e Java da linea di comando a scopo didattico, non ho mai fatto neanche una applet, ho solo programmato algoritmi e visto piccoli pezzi di UML.

Esiste una guida per iniziare? e magari una comparazione tra i vari framework Java per capirne le differenze (dopo aver capito cosa sono)

TorpedoBlu
12-10-2007, 13:48
Attualmente ho comprato e sto leggendo il libro “Java Enterprise editino 5, progettazione e sviluppo applicazioni web”.
Sinceramente ho iniziato a leggere il libro solo da pochi giorni (sono al capitolo 5) e quando avrò finito sicuramente avrò le idee più chiare, ma mi sembra che il mondo java EE sia davvero… un casino..

Framework come Spring2 e JbossAOP dovrebbero oramai supportare AOP come suggeritomi dal mio relatore.
E così abbiamo scelto di confrontare queste 2 tecnologie per capire 2 scelte (diverse?) di implementazione AOP.
Alla fine del lavoro dovrei stilare genericamente le somme del rapporto AOP / JEE e confrontare del codice OO e AOP per le mie conclusioni.

Secondo voi in linee generali dove potrebbe essere utile AOP (oltre ai noti esempi semplici come il logging) all’interno di una applicazione web? Che tipo di esempi potrei portare a vantaggio/svantaggio di AOP e applicazioni Web?

Ho trovato i link della documentazione di JbossAOP e Spring2, ho installato AspectJ su Eclipse e sto cercando di capire tutto su AOP (pointcut, join point, weaving ecc...). Poi non ho capito i framework che parte di J2EE sostituisce o cmq aiuta a sviluppare??


il discorso è questo:
Principalmente devo studiare lo stato dell'arte su questo paradigma di programmazione e le web.appl java, se poi durante lo studio affermo e confermo una certa teoria ben venga, ed in ogni caso poi nelle conclusioni finisco l'analisi sullo stato attuale, sui pro/contro e i possibili risvolti futuri.

Per questo (ripeto) non voglio discutere sulla bontà di questo paradigma o su quanto si usi, ma semplicemente raccogliere esperienze e punti di vista di voi che siete esperti del settore (se poi qualcuno vuole comparire con nome e cognome con un intervento nella tesi me lo dica) magari portando esempi di come si può applicare o di come invece ha deluso. L'analisi va fatta sia all'interno della tecnologia in esame (quando parlavate di come un framework la usa senza che noi ce ne accorgiamo immediatamente) sia sulla sua applicazione nella stesura del codice, ad esempio nella modifica di qualche pattern (ho trovato
le versioni AOP di alcuni patterns GoF... ma non so se calza)

Poi googolando mi esce questo

"Create Web services in two clicks thanks to Apache CXF and AOP"
http://www.theserverside.com/patterns/thread.tss?thread_id=47194


(si basa su un framework chiamato Azuki..se è una cacchiata non prendetemi in giro)

E poi ho trovato del materiale che forse è davvero buono: delle slide dove viene spiegato come far interagire AOP in un esempio (cretino ma utile) di problematica per applicazione enterprise

"code & slides discussing two business aspects: metering and account suspension"
http://www.newaspects.com/enterpriseAOP.ppt

Qualcuno quando ha tempo ci dia uno sguardo perchè allo stato delle cose non sono in grado di dire se è materiale interessante per me (in caso contatto l'autore)

grazie mille