Strumenti di analisi statica per rilevare schemi architettonici

5

Attualmente a scuola stiamo lavorando a un progetto di ricerca. La questione centrale di questo progetto è la seguente: quali schemi architettonici possono essere rilevati utilizzando l'analisi statica del codice? Con il modello architettonico si intendono i modelli architettonici del libro: Patterns of Enterprise Application Architecture, scritto da Martin Fowler.

Durante la nostra ricerca bibliografica non abbiamo trovato studi / articoli / riviste che affrontano questo problema. Quindi, per il nostro approccio per questo obiettivo, abbiamo pensato di creare un prototipo di questo tipo di strumento. Ma prima dobbiamo sapere se esistono strumenti (open-source) con la stessa funzionalità? (Rileva modelli architettonici con un'analisi del codice statico)

Quindi la mia domanda è: conosci uno strumento che rileva gli schemi architettonici? Sappiamo dell'esistenza di strumenti in grado di rilevare i modelli di progettazione della Banda dei quattro. E hai qualche suggerimento per il nostro approccio?

Grazie in anticipo

    
posta mrtentje 15.02.2012 - 18:32
fonte

2 risposte

4

Tutto ciò che è un modello misurabile e ben definito può essere analizzato.

Una domanda più profonda è perché questo sarebbe importante (e abbastanza importante da misurarlo e valutarlo con uno strumento)? Come vorresti significativamente "segnare" o quantificare i risultati, e come useresti questi punteggi? La risposta a queste domande ti dirà perché non ci sono molti strumenti con quel tipo di capacità, e quelli che sono là fuori con una serie di funzionalità pubblicitarie di questo tipo di capacità sono limitati: costoso, fragile o un po 'mescolato combinazione dei due.

In passato, almeno sei o otto anni fa, ho visto queste funzionalità nelle edizioni di strumenti UML di alto livello, come Rational e Sparx Systems (edizioni orientate all'architettura e alle imprese di ciascuna rispettiva versione). Da quello che posso ricordare, questi prodotti potevano talvolta "vedere" i pattern EAA nei modelli di origine importata / analizzata. Suggerirebbero di integrare schemi e nomi per altri aspetti che partecipavano in qualche modo. Oppure ti lascerebbero "scheletri" di questi schemi (un po 'utili, ma in contrasto con il modo in cui i modelli sono supposti molto spesso, emergono organicamente).

Individuare pattern di qualsiasi tipo era un concetto molto nuovo al momento e in uno dei primi set di strumenti che incorporavano questo tipo di funzionalità incorporata, trovando pattern di qualsiasi tipo, ma includendo anche pattern EAA. Da allora non li ho più guardati, quindi forse ora sono più raffinati, stabili ed economicamente fattibili.

Forse sono disponibili anche da qualcuno in cui gli strumenti operano direttamente sull'origine (anziché su un modello), ma non ne sono a conoscenza.

    
risposta data 16.02.2012 - 00:51
fonte
2

Alcune veloci ricerche su Google hanno trovato un documento intitolato Un plug-in Eclipse per il rilevamento del modello di progettazione istanze attraverso analisi statiche e dinamiche presentate alla conferenza internazionale IEEE 2010 sulla manutenzione del software. Sfortunatamente, non ho accesso a questa particolare pubblicazione con il mio attuale abbonamento IEEE. Tuttavia, l'abstract menziona il nome del progetto come ePAD . Questo strumento utilizza sia l'analisi statica che il monitoraggio dinamico di un'applicazione in esecuzione per rilevare i modelli di progettazione. Il plugin è disponibile e apparentemente gira su Eclipse 3.6.0 e meglio, ma non l'ho provato. Potrebbe essere un inizio interessante, però, e ci sono informazioni di contatto per i creatori disponibili.

La ricerca in Eclipse Marketplace ha prodotto anche uno strumento chiamato Design Pattern Recognizer , che identifica solo una manciata di Gang of Four patterns. Il loro hompage indica che il progetto non è più attivo, ma potresti essere in grado di vedere come hanno affrontato il problema come un altro possibile punto di partenza.

Qualcosa da tenere a mente, tuttavia, è che la maggior parte dei modelli definiti nel libro PoEa di Fowler non sono in realtà modelli architettonici. Invece, sono modelli di progettazione spesso presenti in applicazioni "enterprise" basate sui dati. È passato un po 'di tempo, ma gli unici due che riesco a ricordare a livello di architettura sono Service Layer e < a href="http://www.martinfowler.com/eaaCatalog/modelViewController.html"> Model-View-Controller . Gli altri pattern sono definiti a livello di classe e metodo - il livello di progettazione dettagliato - non a livello di architettura del sistema software che si occupa di moduli o pacchetti e nodi più astratti.

    
risposta data 16.02.2012 - 14:20
fonte