U4J2RSF
Upcoming SlideShare
Loading in...5
×
 

U4J2RSF

on

  • 848 views

Presentazione tenuta nel corso della professoressa Arcelli su u4j2rsf, progetto Open Source nell'ambito della SAR, Software Architecture Reconstruction.

Presentazione tenuta nel corso della professoressa Arcelli su u4j2rsf, progetto Open Source nell'ambito della SAR, Software Architecture Reconstruction.

Statistics

Views

Total Views
848
Views on SlideShare
636
Embed Views
212

Actions

Likes
0
Downloads
2
Comments
0

2 Embeds 212

http://coderwall.com 211
http://www.slideshare.net 1

Accessibility

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

U4J2RSF U4J2RSF Presentation Transcript

  • Introduzione Understand for Java ARMIN u4j2rsf Progetto u4j2rsf: da Understand for Java ad ARMIN http://sourceforge.net/projects/u4j2rsf Michele Zonca Università di Milano Bicocca 17 Aprile 2008 Michele Zonca u4j2rsf
  • Introduzione Understand for Java Software Architecture Reconstruction ARMIN Passaggi fondamentali u4j2rsf Outline Introduzione 1 Software Architecture Reconstruction Passaggi fondamentali Understand for Java 2 Introduzione Caratteristiche ARMIN 3 Introduzione Caratteristiche u4j2rsf 4 Introduzione HOWTO Architettura u4j2rsf TODO e sviluppi futuri Michele Zonca u4j2rsf
  • Introduzione Understand for Java Software Architecture Reconstruction ARMIN Passaggi fondamentali u4j2rsf Premessa Da una ricerca del 2005 di Forrester Research risulta che una grossa percentuale (circa 75%) dei fondi investiti in un progetto è destinata alla manutenzione del software Michele Zonca u4j2rsf
  • Introduzione Understand for Java Software Architecture Reconstruction ARMIN Passaggi fondamentali u4j2rsf Software Architecture Reconstruction Ricostruire un’architettura software è un processo di Reverse Engineering che punta a visualizzare le decisioni prese dagli sviluppatori riguardo l’architettura di un sistema. necessario in caso di documentazione insufficiente chiarisce quali sono le dipendenze tra i componenti serve a visualizzare come è stato implementato il progetto aiuta a capire dove andare a “mettere le mani” Michele Zonca u4j2rsf
  • Introduzione Understand for Java Software Architecture Reconstruction ARMIN Passaggi fondamentali u4j2rsf Passaggi fondamentali Cercare di comprendere il funzionamento ed il design di un software è un procedimento molto lungo e complesso che richiede diversi step: Source Information Extraction (Understand for Java) Information Formatting (u4j2rsf) Architectural View Composition (ARMIN) Architectural Analysis (ARMIN) Michele Zonca u4j2rsf
  • Introduzione Understand for Java Introduzione ARMIN Caratteristiche u4j2rsf Outline Introduzione 1 Software Architecture Reconstruction Passaggi fondamentali Understand for Java 2 Introduzione Caratteristiche ARMIN 3 Introduzione Caratteristiche u4j2rsf 4 Introduzione HOWTO Architettura u4j2rsf TODO e sviluppi futuri Michele Zonca u4j2rsf
  • Introduzione Understand for Java Introduzione ARMIN Caratteristiche u4j2rsf Cos’è Understand for Java Understand for Java is a reverse engineering, documentation, code exploration and metrics tool for Java source code Understand for Java is an interactive development environment (IDE) designed to help maintain and understand large amounts of Java code. Michele Zonca u4j2rsf
  • Introduzione Understand for Java Introduzione ARMIN Caratteristiche u4j2rsf Caratteristiche Software commerciale sviluppato da SciTools In grado di caricare sorgenti di grandi progetti Individua i componenti e le relazioni definite tra essi Genera report di queste relazioni in formato HTML o testuale (in un unico file o in diversi) Disponibile per diverse piattaforme Evaluation Version disponibile gratuitamente Michele Zonca u4j2rsf
  • Introduzione Understand for Java Introduzione ARMIN Caratteristiche u4j2rsf Report testuali U4J Serie di file di testo generati secondo il pattern nome_progetto.ext dove ext è: dic per Data Dictionary pux per Program Unit Cross Reference obx per Object Cross Reference ... Contengono tutte le informazioni relative al sistema: classi, oggetti, metodi, variabili, alberi delle chiamate a funzione .. Identificano quindi gli elementi e le relazioni Michele Zonca u4j2rsf
  • Introduzione Understand for Java Introduzione ARMIN Caratteristiche u4j2rsf Report testuale U4J: .dic Generated on: 18 May 2008 16:14:43 Data Dictionary Summary Report ================================================ args (Parameter) [HelloWorld.java, 5] ex (Variable) [HelloWorld.java, 9] Michele Zonca u4j2rsf
  • Introduzione Understand for Java Introduzione ARMIN Caratteristiche u4j2rsf Outline Introduzione 1 Software Architecture Reconstruction Passaggi fondamentali Understand for Java 2 Introduzione Caratteristiche ARMIN 3 Introduzione Caratteristiche u4j2rsf 4 Introduzione HOWTO Architettura u4j2rsf TODO e sviluppi futuri Michele Zonca u4j2rsf
  • Introduzione Understand for Java Introduzione ARMIN Caratteristiche u4j2rsf Introduzione Architecture Reconstruction and MINing Sviluppato dall’università privata Carnegie Mellon http://www.cmu.edu dal Software Engineering Institute (SEI) sponsorizzato dal dipartimento della difesa USA Necessita di un file testuale detto schema che definisce le relazioni in forma ternaria Prende in input file in formato RIGI (.rsf, Rigi Standard Format) in cui vengono applicate le relazioni Michele Zonca u4j2rsf
  • Introduzione Understand for Java Introduzione ARMIN Caratteristiche u4j2rsf Caratteristiche Una volta caricate le informazioni in ARMIN, si possono eseguire gli ultimi due step di SAR: Architectural View Composition viene preparata la visualizzazione delle relazioni definite e descritte dai file di input Architectural Analysis analisi e navigazione dell’architettura generata da ARMIN da parte dell’utente Michele Zonca u4j2rsf
  • Introduzione Understand for Java Introduzione ARMIN Caratteristiche u4j2rsf File di input Come detto, i file di input necessari ad ARMIN sono due: Schema Descrive le relazioni attraverso triple: defines_class, package, class defines_fn, class, function contains_class, file, class RSF Usa le relazioni definite nello schema per descrivere il sistema: defines_class org.zonca.u4j2rsf.example HelloWorld defines_fn HelloWorld.java HelloWorld.main contains_class HelloWorld.java HelloWorld Michele Zonca u4j2rsf
  • Introduzione Introduzione Understand for Java HOWTO ARMIN Architettura u4j2rsf u4j2rsf TODO e sviluppi futuri Outline Introduzione 1 Software Architecture Reconstruction Passaggi fondamentali Understand for Java 2 Introduzione Caratteristiche ARMIN 3 Introduzione Caratteristiche u4j2rsf 4 Introduzione HOWTO Architettura u4j2rsf TODO e sviluppi futuri Michele Zonca u4j2rsf
  • Introduzione Introduzione Understand for Java HOWTO ARMIN Architettura u4j2rsf u4j2rsf TODO e sviluppi futuri Introduzione Le caratteristiche di u4j2rsf sono: Software Open Source (Licenza GPL) disponibile su SourceForge all’indirizzo http://sourceforge.net/projects/u4j2rsf Scritto in Java Facilmente estendibile Prende in input i report testuali di Understand for Java Crea file per ARMIN (schema e rsf) Michele Zonca u4j2rsf
  • Introduzione Introduzione Understand for Java HOWTO ARMIN Architettura u4j2rsf u4j2rsf TODO e sviluppi futuri Scaricare il progetto Per scaricare il tool basta andare sulla homepage http://sourceforge.net/projects/u4j2rsf e scaricare l’archivio contenente eseguibile e documentazione. Lanciarlo con il comando: java -jar u4j2rsf-X.X.jar prefisso_report_u4j Michele Zonca u4j2rsf
  • Introduzione Introduzione Understand for Java HOWTO ARMIN Architettura u4j2rsf u4j2rsf TODO e sviluppi futuri Compilare i sorgenti Per avere la versione più aggiornata: Checkout del progetto dal repository svn: svn co https://u4j2rsf.svn.sourceforge.net/svnroot/u4j2rsf/trunk u4j2rsf esecuzione di ant ( http://ant.apache.org ) nella root del progetto entrare nella directory dist e lanciare java -jar u4j2rsf-X.X.jar prefisso_report_u4j Michele Zonca u4j2rsf
  • Introduzione Introduzione Understand for Java HOWTO ARMIN Architettura u4j2rsf u4j2rsf TODO e sviluppi futuri Importare i sorgenti Creare un nuovo progetto u4j ed importare i sorgenti Java. Michele Zonca u4j2rsf
  • Introduzione Introduzione Understand for Java HOWTO ARMIN Architettura u4j2rsf u4j2rsf TODO e sviluppi futuri Generare report Generare i report testuali di Understand for Java (in diversi file) Michele Zonca u4j2rsf
  • Introduzione Introduzione Understand for Java HOWTO ARMIN Architettura u4j2rsf u4j2rsf TODO e sviluppi futuri Eseguire u4j2rsf Lanciare u4j2rsf sui report generati passando come parametro il percorso ed il prefisso dei report. Esso creerà nella stessa directory due file: nome_progetto.txt, il file che descrive le relazioni utilizzate nome_progetto.rsf il file RSF che mette in relazione le entità definite nel progetto Michele Zonca u4j2rsf
  • Introduzione Introduzione Understand for Java HOWTO ARMIN Architettura u4j2rsf u4j2rsf TODO e sviluppi futuri ARMIN Dopo aver avviato ARMIN: creare un nuovo progetto importando il file dello schema importare il file rsf Michele Zonca u4j2rsf
  • Introduzione Introduzione Understand for Java HOWTO ARMIN Architettura u4j2rsf u4j2rsf TODO e sviluppi futuri ARMIN:Importare schema Michele Zonca u4j2rsf
  • Introduzione Introduzione Understand for Java HOWTO ARMIN Architettura u4j2rsf u4j2rsf TODO e sviluppi futuri ARMIN:Importare rsf Michele Zonca u4j2rsf
  • Introduzione Introduzione Understand for Java HOWTO ARMIN Architettura u4j2rsf u4j2rsf TODO e sviluppi futuri Caratteristiche tecniche del software Le caratteristiche principali dell’implementazione di u4j2rsf: Java 6 Flessibilità: possibilità di sviluppare rapidamente plugin che vengono caricate ed usate automaticamente in base ad un elenco in un file di properties Documentazione: API Javadoc, diversi file di esempio e manuale pdf Logging: utilizzo del package JUL (java.util.logging) configurabile da file di properties Test: JUnit 4 per testare automaticamente il comportamento dei vari componenti Supporto ad ant per compilazione (simile a Makefile) Michele Zonca u4j2rsf
  • Introduzione Introduzione Understand for Java HOWTO ARMIN Architettura u4j2rsf u4j2rsf TODO e sviluppi futuri TODO e sviluppi futuri aggiungere nuove relazioni per descrivere al meglio il software completare documentazione con la versione in inglese preparare la release migliorare gestione della memoria Michele Zonca u4j2rsf