SlideShare ist ein Scribd-Unternehmen logo
1 von 20
PROGETTAZIONE DI UNO STRUMENTO PER LA
REINGEGNERIZZAZIONE DI APPLICAZIONI LEGACY
Tesi di laurea in Ingegneria del Software I
UNIVERSITÀ DEL SALENTO
FACOLTÀ DI INGEGNERIA
CDL IN INGEGNERIA DELL’INFORMAZIONE
ORIENTAMENTO INFORMATICA
Relatore: Chiar.mo Prof. Luca MAINETTI
Correlatore: Ing. Andrea PANDURINO
Laureando: Giacomo RUSSO
Matricola: 10041804
INTRODUZIONE
STATO DELL’ARTE
PROGETTAZIONE
REALIZZAZIONE
DELL’APPLICAZIONE
CONCLUSIONI
Legacy Information Systems
• Attualmente l’infrastruttura di moltissime organizzazioni
si basa su Legacy Information Systems (LIS).
• Definizione di LIS: “qualunque sistema informativo che si
opponga in maniera significativa alla modifica e
all’evoluzione” (Bisbal).
• Il costo di mantenimento di un LIS è alto: hardware
costoso, software costoso, scarsa interoperabilità con
altri sistemi software, la sua dismissione è costosa.
• L’approccio consigliato per ridurre i costi di gestione del
LIS è la migrazione, cioè spostare il sistema in un
ambiente più flessibile e moderno, mantenendo le
funzionalità ed i dati originali.
• Ambienti target ideali per questi sistemi sono le Service
Oriented Architecture (SOA), dotate di elevata
modularità e scalabilità.
2/20
INTRODUZIONE
STATO DELL’ARTE
PROGETTAZIONE
REALIZZAZIONE
DELL’APPLICAZIONE
CONCLUSIONI
Il processo di migrazione
3/20
INTRODUZIONE
STATO DELL’ARTE
PROGETTAZIONE
REALIZZAZIONE
DELL’APPLICAZIONE
CONCLUSIONI
Il processo di migrazione
4/20
INTRODUZIONE
STATO DELL’ARTE
PROGETTAZIONE
REALIZZAZIONE
DELL’APPLICAZIONE
CONCLUSIONI
Il processo di migrazione
5/20
Ambito del lavoro di tesi
INTRODUZIONE
STATO DELL’ARTE
PROGETTAZIONE
REALIZZAZIONE
DELL’APPLICAZIONE
CONCLUSIONI
Obiettivi
• Sarà sviluppata un’applicazione
basata su tecnologia Open Source che
assista lo sviluppatore nel processo di
decomposizione e traduzione del
codice COBOL CICS in classi Java
adatte al deploy su un’architettura di
tipo SOA.
• COBOL ed IBM CICS rappresentano un
ambiente comune nei LIS di molte
organizzazioni (l’80% del business
mondiale si affida al COBOL, Gartner
Group, 1997).
6/20
INTRODUZIONE
STATO
DELL’ARTE
PROGETTAZIONE
REALIZZAZIONE
DELL’APPLICAZIONE
CONCLUSIONI
Decomposizione del codice COBOL
CICS
• Per eseguire la decomposizione del codice legacy occorre
individuare le procedure di basso livello al suo interno
(paragrafi).
• A tal fine si useranno strumenti di parsing ed analisi semantica
del codice.
• Prodotti individuati:
– il generatore di parser JavaCC;
– il generatore di Abstract Syntax Trees Java Tree Builder.
• Sono corredati da una grammatica descrivente la struttura di un
programma COBOL.
7/20
INTRODUZIONE
STATO
DELL’ARTE
PROGETTAZIONE
REALIZZAZIONE
DELL’APPLICAZIONE
CONCLUSIONI
Traduzione del codice COBOL CICS
• Occorre ripercorrere l’AST ottenuto dal codice
legacy; per ogni costrutto incontrato si generano le
istruzioni nel linguaggio di destinazione
corrispondenti.
• Applicazione considerata: lo strumento NacaTrans
del progetto Naca (New Architecture for Core
Applications), che realizza una traduzione da COBOL
CICS a Java.
• Il codice tradotto richiede un ambiente che simuli i
costrutti forniti da COBOL CICS: il runtime NacaRT.
8/20
INTRODUZIONE
STATO
DELL’ARTE
PROGETTAZIONE
REALIZZAZIONE
DELL’APPLICAZIONE
CONCLUSIONI
Deploy dei moduli ed applicazione
di supporto
• Deploy delle Migration Unit tradotte:
Service Component Architecture:
– Alta modularità;
– Alta scalabilità;
– Indipendenza dal linguaggio dei componenti;
– Facilità di gestione del dominio.
• Sviluppo dell’applicazione di supporto allo
sviluppatore: plug-in per un ambiente di
sviluppo (Eclipse).
• Si integrano le funzionalità di migrazione
con gli strumenti già esistenti (creazione di
domini SCA, creazione di web applications,
ecc.).
9/20
INTRODUZIONE
STATO DELL’ARTE
PROGETTAZIONE
REALIZZAZIONE
DELL’APPLICAZIONE
CONCLUSIONI
Plug-in di migrazione
• È stata svolta l’analisi dei requisiti e sono stati definiti i casi d’uso.
• È stata progettata la User Interface.
• Sono state stabilite delle specifiche per il funzionamento ad alto livello di un
generico sottosistema di decomposizione del codice.
10/20
INTRODUZIONE
STATO DELL’ARTE
PROGETTAZIONE
REALIZZAZIONE
DELL’APPLICAZIONE
CONCLUSIONI
Plug-in di migrazione
• È stata svolta l’analisi dei requisiti e sono stati definiti i casi d’uso.
• È stata progettata la User Interface.
11/20
• Sono state stabilite delle specifiche per il funzionamento ad alto livello
di un generico sottosistema di decomposizione del codice.
INTRODUZIONE
STATO DELL’ARTE
PROGETTAZIONE
REALIZZAZIONE
DELL’APPLICAZIONE
CONCLUSIONI
Plug-in di migrazione
• È stata svolta l’analisi dei requisiti e sono stati definiti i casi d’uso.
• È stata progettata la User Interface.
12/20
• Sono state stabilite delle specifiche per il funzionamento ad alto livello
di un generico sottosistema di decomposizione del codice.
Pattern Strategy
INTRODUZIONE
STATO DELL’ARTE
PROGETTAZIONE
REALIZZAZIONE
DELL’APPLICAZIONE
CONCLUSIONI
Sottosistema di migrazione del
codice COBOL CICS
• Parte di analisi: attraversa l’AST generato
dal parser tramite il design pattern Visitor,
collezionando le informazioni necessarie.
• Parte di traduzione: utilizza una versione
modificata di NacaTrans, che genera:
– classi POJO (la rappresentazione in Java delle
MU COBOL CICS);
– files XML descriventi la struttura del
programma legacy;
– un file XML ed una classe Java per ogni
componente della view (mappe BMS),
descriventi la grafica e la semantica.
13/20
INTRODUZIONE
STATO DELL’ARTE
PROGETTAZIONE
REALIZZAZIONE
DELL’APPLICAZIONE
CONCLUSIONI
Ambiente di deploy delle Migration
Unit tradotte
• NacaRT offre supporto solo
all’esecuzione di programmi
completi.
• Si è adattato l’ambiente per
l’esecuzione di frammenti di codice
migrato.
14/20
INTRODUZIONE
STATO DELL’ARTE
PROGETTAZIONE
REALIZZAZIONE
DELL’APPLICAZIONE
CONCLUSIONI
Implementazione dei componenti
dell’applicazione
• Tecnologie utilizzate (tutte Java-based e Open
Source):
– Suite di supporto allo sviluppatore (32 classi):
Eclipse SDK 3.5.1, Eclipse Zest 3.5, SWT 3.5.1,
JFace 3.5.1 , SWTChart 0.6.0.
– Sottosistema di analisi del codice COBOL CICS (6
classi + 254 classi generate): JavaCC 5.0, Java
Tree Builder 1.3.2, Eclipse SDK 3.5.1.
– Sottosistema di traduzione del codice COBOL
CICS (oltre 750 classi già presenti + 41
aggiunte): Eclipse SDK 3.5.1, NacaTrans 1.2.0.2.
– Ambiente di deploy del codice migrato (oltre
750 classi già presenti di cui 10 modificate):
NacaRT 1.2.0.2.
15/20
INTRODUZIONE
STATO DELL’ARTE
PROGETTAZIONE
REALIZZAZIONE
DELL’APPLICAZIONE
CONCLUSIONI
Case study: migrazione di un’applicazione
COBOL CICS di gestione clienti
16/22
Segue un filmato del case study
INTRODUZIONE
STATO DELL’ARTE
PROGETTAZIONE
REALIZZAZIONE
DELL’APPLICAZIONE
CONCLUSIONI
Case study: migrazione di un’applicazione
COBOL CICS di gestione clienti
17/20
• Applicazione COBOL CICS di
partenza: 1400 linee di codice, 4
file COBOL, 3 copyfile, 4 mappe
BMS.
• Applicazione tradotta in Java: 39
classi e 35 interfaces orientate ai
componenti, 4 file RES (XML).
INTRODUZIONE
STATO DELL’ARTE
PROGETTAZIONE
REALIZZAZIONE
DELL’APPLICAZIONE
CONCLUSIONI
Case study: migrazione di un’applicazione
COBOL CICS di gestione clienti
18/20
COBOL CICS Java (basato su NacaRT)
1300-READ-CUSTOMER-RECORD.
*
EXEC CICS
READ FILE('CUSTMAS')
INTO(CUSTOMER-MASTER-
RECORD)
RIDFLD(CUSTNO1I)
END-EXEC.
MOVE EIBRESP TO RESPONSE-CODE.
*
IF RESPONSE-CODE NOT = 0
AND RESPONSE-CODE NOT = 13
PERFORM 9999-TERMINATE-PROGRAM
END-IF.
*
…
public class MU1300_READ_CUSTOMER_RECORDImpl
implements MU1300_READ_CUSTOMER_RECORD
{
…
protected void
businessLogic$1300_Read_Customer_Record(
boolean returnToCaller) {
customer_Master_Record.set(
dbFileComponent.read("CUSTMAS“,
getInput("MNTMAP1").getEdit("custno1").getString(
), DBFile.Mode.DIRECT));
migrationProgram.setConditionOccured(
dbFileComponent.getErrorCode());
}
…
}
INTRODUZIONE
STATO DELL’ARTE
PROGETTAZIONE
REALIZZAZIONE
DELL’APPLICAZIONE
CONCLUSIONI
Conclusioni
• Si è sviluppato con successo uno
strumento per l’analisi e la traduzione di
codice COBOL CICS in Java, generando
delle classi conformi ad una Service
Component Architecture e traducendo
anche gli elementi di presentazione.
• Indipendenza dal linguaggio legacy di
origine e da quello di destinazione,
supporto ai plug-in per l’estensione delle
funzionalità.
• Utilizzo esclusivo di tecnologie Open
Source.
19/20
GRAZIE DELLA
CORTESE ATTENZIONE

Weitere ähnliche Inhalte

Andere mochten auch

Мультимедийная выставка 24.03.2015
Мультимедийная выставка 24.03.2015Мультимедийная выставка 24.03.2015
Мультимедийная выставка 24.03.2015channa1971 Pronchewa
 
World climatezones 2
World climatezones 2World climatezones 2
World climatezones 2joselyn198
 
Palumbo auto hsct in multiple myeloma n engl j med 2014
Palumbo auto hsct in multiple myeloma n engl j med 2014Palumbo auto hsct in multiple myeloma n engl j med 2014
Palumbo auto hsct in multiple myeloma n engl j med 2014Chandan K Das
 
Sandblaster Experiment
Sandblaster ExperimentSandblaster Experiment
Sandblaster ExperimentVictoria Tran
 
Pitch Presentation - Skip Lines by Invierno Rosa
Pitch Presentation - Skip Lines by Invierno RosaPitch Presentation - Skip Lines by Invierno Rosa
Pitch Presentation - Skip Lines by Invierno Rosainviernorosa
 
Xavier john brazil 2014
Xavier john brazil 2014Xavier john brazil 2014
Xavier john brazil 2014xjd2
 
Wrapping it up final project ~Candice Wooten
Wrapping it up final project ~Candice WootenWrapping it up final project ~Candice Wooten
Wrapping it up final project ~Candice WootenCandice Miller-Wooten
 
Internship in-chennai-for-cse-android-application
Internship in-chennai-for-cse-android-applicationInternship in-chennai-for-cse-android-application
Internship in-chennai-for-cse-android-applicationroypooja
 
Efficient project delivery joc focus - 20141030
Efficient project delivery   joc focus - 20141030Efficient project delivery   joc focus - 20141030
Efficient project delivery joc focus - 20141030Peter Cholakis
 

Andere mochten auch (16)

Мультимедийная выставка 24.03.2015
Мультимедийная выставка 24.03.2015Мультимедийная выставка 24.03.2015
Мультимедийная выставка 24.03.2015
 
World climatezones 2
World climatezones 2World climatezones 2
World climatezones 2
 
현표현표
현표현표현표현표
현표현표
 
New york city
New york cityNew york city
New york city
 
Palumbo auto hsct in multiple myeloma n engl j med 2014
Palumbo auto hsct in multiple myeloma n engl j med 2014Palumbo auto hsct in multiple myeloma n engl j med 2014
Palumbo auto hsct in multiple myeloma n engl j med 2014
 
Sandblaster Experiment
Sandblaster ExperimentSandblaster Experiment
Sandblaster Experiment
 
Pitch Presentation - Skip Lines by Invierno Rosa
Pitch Presentation - Skip Lines by Invierno RosaPitch Presentation - Skip Lines by Invierno Rosa
Pitch Presentation - Skip Lines by Invierno Rosa
 
Ollie More, ADBA
Ollie More, ADBAOllie More, ADBA
Ollie More, ADBA
 
Xavier john brazil 2014
Xavier john brazil 2014Xavier john brazil 2014
Xavier john brazil 2014
 
Wrapping it up final project ~Candice Wooten
Wrapping it up final project ~Candice WootenWrapping it up final project ~Candice Wooten
Wrapping it up final project ~Candice Wooten
 
Rules and procedures
Rules and proceduresRules and procedures
Rules and procedures
 
Internship in-chennai-for-cse-android-application
Internship in-chennai-for-cse-android-applicationInternship in-chennai-for-cse-android-application
Internship in-chennai-for-cse-android-application
 
4
44
4
 
El Rol del Gerente
El Rol del GerenteEl Rol del Gerente
El Rol del Gerente
 
Efficient project delivery joc focus - 20141030
Efficient project delivery   joc focus - 20141030Efficient project delivery   joc focus - 20141030
Efficient project delivery joc focus - 20141030
 
David Styles
David StylesDavid Styles
David Styles
 

Ähnlich wie Progettazione di uno strumento per la reingegnerizzazione di applicazioni legacy

Webinar: "Il database: l’equipaggiamento su cui fare affidamento"
Webinar: "Il database: l’equipaggiamento su cui fare affidamento"Webinar: "Il database: l’equipaggiamento su cui fare affidamento"
Webinar: "Il database: l’equipaggiamento su cui fare affidamento"Emerasoft, solutions to collaborate
 
SIGNALR TO-THE-MAX: VERSO IL WEB ED OLTRE!
SIGNALR TO-THE-MAX: VERSO IL WEB ED OLTRE!SIGNALR TO-THE-MAX: VERSO IL WEB ED OLTRE!
SIGNALR TO-THE-MAX: VERSO IL WEB ED OLTRE!DotNetCampus
 
Signal r to the-max
Signal r to the-maxSignal r to the-max
Signal r to the-maxDotNetCampus
 
Del furia signalr-to-the-max
Del furia   signalr-to-the-maxDel furia   signalr-to-the-max
Del furia signalr-to-the-maxDotNetCampus
 
Continuous Integration e High Quality Code
Continuous Integration e High Quality CodeContinuous Integration e High Quality Code
Continuous Integration e High Quality CodeDaniele Mondello
 
Dal requisito all'implementazione @ CD2010
Dal requisito all'implementazione @ CD2010Dal requisito all'implementazione @ CD2010
Dal requisito all'implementazione @ CD2010Mauro Servienti
 
Virtualizzazione, cluster, J2EE: best practices tutte da rivedere?
Virtualizzazione, cluster, J2EE: best practices tutte da rivedere?Virtualizzazione, cluster, J2EE: best practices tutte da rivedere?
Virtualizzazione, cluster, J2EE: best practices tutte da rivedere?fcrippa
 
Analisi e realizzazione di uno strumento per la verifica di conformità su sis...
Analisi e realizzazione di uno strumento per la verifica di conformità su sis...Analisi e realizzazione di uno strumento per la verifica di conformità su sis...
Analisi e realizzazione di uno strumento per la verifica di conformità su sis...Davide Bravin
 
Hadoop [software architecture recovery]
Hadoop [software architecture recovery]Hadoop [software architecture recovery]
Hadoop [software architecture recovery]gioacchinolonardo
 
Lo stato dell' arte sulla documentazione dei progetti ICT
Lo stato dell' arte sulla documentazione dei progetti ICTLo stato dell' arte sulla documentazione dei progetti ICT
Lo stato dell' arte sulla documentazione dei progetti ICTMatteo Gentile
 
Architetture a Microservizi con Docker Container
Architetture a Microservizi con Docker ContainerArchitetture a Microservizi con Docker Container
Architetture a Microservizi con Docker ContainerRoberto Messora
 
Polyglot Persistance con PostgreSQL, CouchDB, MongoDB, Redis e OrientDB
Polyglot Persistance con PostgreSQL, CouchDB, MongoDB, Redis e OrientDBPolyglot Persistance con PostgreSQL, CouchDB, MongoDB, Redis e OrientDB
Polyglot Persistance con PostgreSQL, CouchDB, MongoDB, Redis e OrientDBSteve Maraspin
 
Open Source Day 2015 - DBaaS con Docker: un caso di studio
Open Source Day 2015 - DBaaS con Docker: un caso di studioOpen Source Day 2015 - DBaaS con Docker: un caso di studio
Open Source Day 2015 - DBaaS con Docker: un caso di studioPar-Tec S.p.A.
 
Designing with microservices - Daniele Mondello
Designing with microservices - Daniele MondelloDesigning with microservices - Daniele Mondello
Designing with microservices - Daniele MondelloDaniele Mondello
 
Kubernetes as HA time series server, a proposal
Kubernetes as HA time series server, a proposalKubernetes as HA time series server, a proposal
Kubernetes as HA time series server, a proposalGiuliano Latini
 
Tesi Discussione
Tesi DiscussioneTesi Discussione
Tesi DiscussioneYeser Rema
 
Progetto SOD Davide Sito
Progetto SOD Davide SitoProgetto SOD Davide Sito
Progetto SOD Davide SitoDavide Sito
 

Ähnlich wie Progettazione di uno strumento per la reingegnerizzazione di applicazioni legacy (20)

Webinar: "Il database: l’equipaggiamento su cui fare affidamento"
Webinar: "Il database: l’equipaggiamento su cui fare affidamento"Webinar: "Il database: l’equipaggiamento su cui fare affidamento"
Webinar: "Il database: l’equipaggiamento su cui fare affidamento"
 
SIGNALR TO-THE-MAX: VERSO IL WEB ED OLTRE!
SIGNALR TO-THE-MAX: VERSO IL WEB ED OLTRE!SIGNALR TO-THE-MAX: VERSO IL WEB ED OLTRE!
SIGNALR TO-THE-MAX: VERSO IL WEB ED OLTRE!
 
Signal r to the-max
Signal r to the-maxSignal r to the-max
Signal r to the-max
 
Del furia signalr-to-the-max
Del furia   signalr-to-the-maxDel furia   signalr-to-the-max
Del furia signalr-to-the-max
 
Continuous Integration e High Quality Code
Continuous Integration e High Quality CodeContinuous Integration e High Quality Code
Continuous Integration e High Quality Code
 
Hadoop SAR
Hadoop SARHadoop SAR
Hadoop SAR
 
Dal requisito all'implementazione @ CD2010
Dal requisito all'implementazione @ CD2010Dal requisito all'implementazione @ CD2010
Dal requisito all'implementazione @ CD2010
 
Virtualizzazione, cluster, J2EE: best practices tutte da rivedere?
Virtualizzazione, cluster, J2EE: best practices tutte da rivedere?Virtualizzazione, cluster, J2EE: best practices tutte da rivedere?
Virtualizzazione, cluster, J2EE: best practices tutte da rivedere?
 
Analisi e realizzazione di uno strumento per la verifica di conformità su sis...
Analisi e realizzazione di uno strumento per la verifica di conformità su sis...Analisi e realizzazione di uno strumento per la verifica di conformità su sis...
Analisi e realizzazione di uno strumento per la verifica di conformità su sis...
 
Hadoop [software architecture recovery]
Hadoop [software architecture recovery]Hadoop [software architecture recovery]
Hadoop [software architecture recovery]
 
Lo stato dell' arte sulla documentazione dei progetti ICT
Lo stato dell' arte sulla documentazione dei progetti ICTLo stato dell' arte sulla documentazione dei progetti ICT
Lo stato dell' arte sulla documentazione dei progetti ICT
 
Lezioni 2009
Lezioni 2009Lezioni 2009
Lezioni 2009
 
Architetture a Microservizi con Docker Container
Architetture a Microservizi con Docker ContainerArchitetture a Microservizi con Docker Container
Architetture a Microservizi con Docker Container
 
Polyglot Persistance con PostgreSQL, CouchDB, MongoDB, Redis e OrientDB
Polyglot Persistance con PostgreSQL, CouchDB, MongoDB, Redis e OrientDBPolyglot Persistance con PostgreSQL, CouchDB, MongoDB, Redis e OrientDB
Polyglot Persistance con PostgreSQL, CouchDB, MongoDB, Redis e OrientDB
 
Open Source Day 2015 - DBaaS con Docker: un caso di studio
Open Source Day 2015 - DBaaS con Docker: un caso di studioOpen Source Day 2015 - DBaaS con Docker: un caso di studio
Open Source Day 2015 - DBaaS con Docker: un caso di studio
 
Designing with microservices - Daniele Mondello
Designing with microservices - Daniele MondelloDesigning with microservices - Daniele Mondello
Designing with microservices - Daniele Mondello
 
Kubernetes as HA time series server, a proposal
Kubernetes as HA time series server, a proposalKubernetes as HA time series server, a proposal
Kubernetes as HA time series server, a proposal
 
Tesi Discussione
Tesi DiscussioneTesi Discussione
Tesi Discussione
 
Progetto SOD Davide Sito
Progetto SOD Davide SitoProgetto SOD Davide Sito
Progetto SOD Davide Sito
 
Docker & DevOps
Docker  & DevOpsDocker  & DevOps
Docker & DevOps
 

Progettazione di uno strumento per la reingegnerizzazione di applicazioni legacy