STRUMENTI PER LA MISURA SU CODICE ACTIONSCRIPT SVILUPPATI CON JAVACC

Documenti analoghi
Testing di applicazioni flex: uso dello strumento FlexUnit

Uno Strumento per la ricerca di campi Output e Etichetta in pagine Client

Trasformazione di modelli di progetto : soluzioni basate su XSLT

Uno strumento a supporto del Reverse Engineering di applicazioni Flash

Sviluppo e integrazione di strumenti a supporto del reverse engineering di applicazioni flash

Realizzazione di un sistema a supporto del testing automatico di Rich Internet Applications

A. Ferrari. informatica. introduzione a Java. Alberto Ferrari Informatica

Lez. 5 La Programmazione. Prof. Salvatore CUOMO

Un sistema per il Crawling di Rich Internet Applications Anno Accademico 2008/2009

Esempio. Le istruzioni corrispondono a quelle di sopra, ma sono scritte in modo simbolico. E indipendente dalla machina

Introduzione a Java A. FERRARI

Traduzione e interpretazione

Fasi di un Compilatore

Linguaggi e Ambienti di Programmazione

Agent#: un linguaggio di programmazione per lo sviluppo di agenti su piattaforma.net

Analisi e comparazione dei Framework OpenSwing e Google Web Toolkit per lo sviluppo di interfacce utente con paradigma MVC.

Metodi e Tecniche per il Riuso di componenti in Applicazioni Android

Modelli per il Reverse Engineering delle applicazioni Flash

Linguaggi di Programmazione

Corso di Fondamenti di Informatica Linguaggi di Programmazione

Informatica 1. 4 Programmazione e Sviluppo del software. ing. Luigi Puzone

Lez. 8 La Programmazione. Prof. Pasquale De Michele (Gruppo 2) e Raffaele Farina (Gruppo 1) 1

Tesi di Laurea: Uno strumento per l estrazione di sessioni utente per applicazioni web JavaScript-based Anno Accademico: 2005/2006

Strumento e tecnica a supporto del crash testing automatico di applicazioni mobili basato sul sistema operativo Android Anno Accademico 2010/2011

Automi e Linguaggi Formali

LINGUAGGI DI ALTO LIVELLO. Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware

LINGUAGGI DI ALTO LIVELLO

Informatica Problema Algoritmo Programma

Corso di Fondamenti di Informatica Linguaggi di Programmazione

Realizzazione di uno strumento software per la compilazione assistita di piani di qualità (richiesta ed offerta) per un Servizio Web

Informatica. Progettazione ed implementazione di un tool per il supporto al debug nella pratica di sviluppo Test Driven

Metodologie per la generazione automatica di codice: extreme Non Programming

Progetto e realizzazione di una libreria per la comunicazione sicura di. dati sui fallimenti in ambiente Android. Anno Accademico 2011/2012

Analisi di strumenti e tecniche per lo sviluppo di applicazioni Ajax.

Impiego della concept analisys nella classificazione di pagine web ai fini del reverse engineering

Linguaggi e traduttori

Tecniche per la ricerca di test suite minimali per RIA

Perfezionamento e sperimentazione di uno strumento per la

Traduzione ed Interpretazione

Traduzione ed Interpretazione. Queste sconosciute

ANALISI SINTATTICA LUCIDI DI F. D'AMORE E A. MARCHETTI SPACCAMELA

Strumenti per l automazione del testing di applicazioni web Javascript-based

Introduzione al Linguaggio C ed all IDE DEV-C++

Riconoscitori e analizzatori sintattici. Scanning e parsing. Funzionamento di un parser: la tecnica Shift/Reduce. Esempio

Tesi di laurea: Realizzazione di Strumenti per la valutazione di accessibilità di pagine Web

Corso di Fondamenti di Informatica Linguaggi di Programmazione

Java: un linguaggio per applicazioni di rete

Testing black box di web service: sperimentazione su di un servizio senza stato

Introduzione al Linguaggio C ed all IDE DEV-C++

Yet Another Compiler-Compiler. Generazione automatica di analizzatori sintattici

Sommario Linguaggi, messaggi e comunicazione. Introduzione ai Linguaggi di Programmazione. Linguaggio (1) Linguaggio (2)

Programmazione. Andrea Passerini Informatica. Programmazione

MATRICE TUNING competenze versus unità didattiche, Corso di Laurea in Informatica (classe L-31), Università degli Studi di Cagliari

con ANTLR tesi di laurea Anno Accademico Relatore Ch.mo prof. Porfirio Tramontana Candidato Fabio Canova Matr

Analizzatore lessicale o scanner. Lo scanner rappresenta un'interfaccia fra il programma sorgente e l'analizzatore sintattico o parser.

Informatica 3. Informatica 3. Lezione 1- Modulo 1. LEZIONE 1: Introduzione. Concetti di linguaggi di programmazione. Introduzione

Il linguaggio di programmazione Python

Algoritmi, Strutture Dati e Programmi. UD 2.d: Linguaggi Procedurali

Programmazione. Andrea Passerini Informatica. Programmazione

Linguaggi e Traduttori: Analisi lessicale

Linguaggi di alto livello, compilatori e interpreti

Fondamenti d Informatica: linguaggi formali. Barbara Re, Phd

Prof. Pagani corrado JAVA

Linguaggi di Programmazione

permette di utilizzare lo stesso programma su CPU diverse (con opportuni traduttori)

Cosa è un programma. Informatica di Base -- R.Gaeta 18

Introduzione alla Programmazione. Giselda De Vita

Confronto tra strumenti e tecniche per il Reverse Engineering in Macromedia Flash e Microsoft Silverlight

Programmazione II. Lezione 2. Daniele Sgandurra 22/10/2010.

Informatica 3. LEZIONE 1: Introduzione. Modulo 1: Introduzione al corso Modulo 2: Introduzione ai linguaggi di programmazione

Linguaggi di alto livello, compilatori e interpreti

Espressioni regolari in UNIX p.1/19

Politecnico di Milano Facoltà del Design Bovisa. Ing. Marco Funaro Dipartimento di Elettronica e Informazione.

Architettura di un linguaggio dinamico

Dichiarazione di una classe. Dichiarazione ereditarietà

Studio di buffer overflow in ambiente Win32

TESI DI LAUREA IN INFORMATICA

Unità di apprendimento 6. Il software: dal linguaggio alla applicazione

IL PROCESSO di PROGETTAZIONE

Gui testing automatico di applicazioni Android tramite emulazione di input ed eventi provenienti da sensori

Corso di Laurea Ingegneria Informatica Laboratorio di Informatica

Analizzatori Lessicali con JLex. Giuseppe Morelli

Macchine Astratte. Nicola Fanizzi Dipartimento di Informatica Università degli Studi di Bari. Linguaggi di Programmazione feb, 2016

UNIVERSITA' DEGLI STUDI DI PERUGIA FACOLTA' DI SCIENZE MATEMATICHE, FISICHE E NATURALI

Un'applicazione per lo scambio di contenuti multimediali in ambiente Android

Università degli studi di Pisa Facoltà di ingegneria

Sommario Linguaggi, messaggi e comunicazione. Introduzione ai Linguaggi di Programmazione. Linguaggio. Messaggio

Dispensa 2. Data una grammatica context free esistono tre metodi diversi per costruirne la parsing table per un parser LR:

PROGRAMMAZIONE DIDATTICA DI DIPARTIMENTO A.S. 2017/2018

Stato dell arte sulle tecniche di testing di Sistemi Embedded

Analisi e sviluppo di un client per l accesso a dati su server remoto da dispositivi embedded

AMBIENTI DI PROGRAMMAZIONE

la traduzione dei programmi ed introduzione a Java

Linguaggi e Traduttori: Analisi sintattica

Studio del linguaggio TROPOS per la modellazione dei requisiti orientata agli agenti

Transcript:

tesi di laurea STRUMENTI PER LA MISURA SU CODICE ACTIONSCRIPT SVILUPPATI CON JAVACC Anno Accademico 2005/2006 relatore Ch.mo prof. Porfirio Tramontana candidato Matteo Luongo Matr. 534/802

IL REVERSE ENGINEERING Un insieme di teorie,modelli,metodi,tecniche e tecnologie per: Il progetto e l implementazione di processi di estrazione ed astrazione di informazioni da componenti di un sistema software esistente e la produzione di nuovi componenti ad un livello di astrazione maggiore e consistenti con quelli di partenza; L aggiunta ai componenti prodotti di conoscenza ed esperienza che non può essere ricostruita direttamente ed automaticamente dai componenti analizzati.

La maggior parte delle aziende occupa tempo,materiale,risorse per il reverse engineering. Le applicazioni che presentano più alti benefici sono le prime che devono essere sottoposte a reingegnerizzazione. E quindi fondamentale sviluppare teoricamente e praticamente delle metriche che permettono di valutare un sistema software a vantaggio della riusabilità e del reverse engineering. Aiuta a rimuovere i difetti presenti in un sistema software.

LE METRICHE Una metrica software è la misura di alcune proprietà del software e o delle sue specifiche. Sono usate per: stimare il budget per il progetto e la codifica stimare la produttività individuale e la qualità stimare la produttività del progetto e la qualità stimare la qualità del software

LE NUOVE METRICHE Le nuove metriche introdotte definiscono un modello delle informazioni contenute in un ActionScript. Le nuove metriche,che sono state sviluppate, prendono in esame: variabili,strutture di controllo,metodi,classi. Ossia la base della programmazione. Vengono aggiunte queste nuove metriche per ampliare il set di metriche già analizzate e descritte precedentemente.

LE NUOVE METRICHE METRICHE SULLE VARIABILI: 1. ACCOPPIAMENTO GLOBALE. METRICHE SULLE STRUTTURE DI CONTROLLO: 1. COMPLESSITA CICLOMATICA. METRICHE SULLE CLASSI: 1. PROFONDITA DELL ALBERO DI EREDITA. 2. NUMERO DI FIGLI (NOC). 3. DIMENSIONE DELLA CLASSE (C.S.)..). METRICHE SUI METODI: 1. DIMENSIONE MEDIA DELL OPERAZIONE. 2. COMPLESSITA DELLE OPERAZIONI. 3. NUMERO MEDIO DI PARAMETRI. 4. METODI PESATI PER CLASSE. 5. MANCANZA DI COESIONE TRA METODI(LCOM).

IL CONTESTO OPERATIVO ActionScript (A.S.).) è un linguaggio di scripting di Macromedia Flash,software di grafica utilizzato per realizzare siti web e piccole p animazioni;permette di rendere dinamici e far interagire tra loro o gli oggetti di un filmato Flash. Actionscript si basa su ECMAScript e la sua sintassi è molto simile a JavaScript. ActionScript è un linguaggio di alto livello (al contrario di assembly),è inoltre un linguaggio interpretato e non compilato (al contrario del C++). La sua esecuzione è affidata difatti al compilatore nativo di Flash Player, l Actionscript Virtual Machine (AVM).

IL PARSING In informatica, il parsing è il processo atto ad analizzare uno stream continuo in input (letto per esempio da un file o una tastiera) in modo da determinare la sua struttura grammaticale grazie ad una data grammatica formale. Un parser è un programma che esegue questo compito. Il termine parsabile (in inglese parseable) ) è genericamente applicato al testo o ai dati che possono essere parsati. Il parsing trasforma il testo in input in una struttura dati, genericamente un albero, il quale è visitabile per ulteriori operazioni e che cattura tura la gerarchia implicita dell'input. Genericamente, i parsers operano in due fasi, prima identificano i token presenti nell'input (l analisi lessicale, compito genericamente svolto dall analizzatore lessicale), ed infine costruiscono un albero di parser dai tokens ricavati.

JavaCC Nel 1996,, la Sun Microsystems rilasciò un generatore di parser chiamato Jack,, gli sviluppatori responsabili di Jack crearono una loro compagnia chiamata Metamata e cambiarono il nome di Jack in JavaCC. JavaCC (Java Compiler Compiler) ) è un generatore di parser per il linguaggio di programmazione Java. a. JavaCC è simile a JavaCup solo che al contrario di JavaCup non rilascia il codice sorgente. E un parser top-down,ossia può partire con il simbolo iniziale e cercare di trasformarlo nell'input, e produce codice Java puro.

SVILUPPI FUTURI Creazione e sviluppo di nuove metriche,estendendo quelle già presenti. L obiettivo finale a cui bisognerà puntare in futuro è la creazione di strumenti automatici,in grado di aiutare gli utenti nella progettazione e sviluppo di nuovi Parser che permettano di effettuare l estrazione di informazioni ancor più specifiche e significative per un A.S. Tutto ciò ci porta a pensare di aggiungere gere degli strumenti automatici che siano in grado di realizzare procedure di trattamento delle nuove informazioni,ponendo come scopo lo studio delle informazioni complesse.