C2O2: COBOL to Object Oriented
Object-Oriented Analysis of COBOL
 
A. Fantechi P. Nesi E. Somma
Department of Systems and Informatics, Faculty of Engineering,
University of Florence, Via S. Marta 3, 50139 Florence, Italy
Department of Information Engineering, Faculty of Engineering,
University of Pisa, ViaDiotisalvi 2, 56126 Pisa, Italy
fantechi@dsi.ing.unifi.it, nesi@ingfi1.ing.unifi.it
 
 

Summary
 


Process of Reengineering
Caratterization of the application Application Analysis Definition of the Object Oriented Model Adoption of the OO Model Identified  

 

2) Application Analysis
10 CODICE-FISCALE

20 NOME PIC AAA

20 COGNOME PIC AAA

20 GIORNO PIC 99

20 MESE PIC A

20 ANNO PIC 99

20 CITTA' PIC X999

20 CONTROLLO PIC A

 
 
 
Format
1
AAA
A
2
99
N
3
X999
A
4
A
A
 
...
 

 
 
 
 
Basic Data
1
Name
1
2
Surname
1
3
Day
2
4
Month
4
 
...
 
 

Definition of the Object Oriented Model
 
  1. ABSTRACTION: organization of data structures identified in classes. Definition of class relationships: specialization (is-a) and aggregation (is-part-of).
  3.2) Elimination of redundant classes

  3.3) Identification of generalized classes

 

4.2) Adoption of the OO Model Identified
    

C2O2- a TOOL: From COBOL to
to object-oriented

C2O2 a tool which supports the re-engineer

2) Application Analysis (directly from COBOL)

3) Building the Object Oriented Model

4.2) Exploitation of the experience performed

 


A Case Study
  Analysis of the problems due to Dates
 1.376 moduls with definition of dates
 
484
Classes for formats
36.189 
"Variables" 
10.314
Composite classes
 


Example: The Dates

Conclusions

Con il metodo proposto e l'applicazione del programma C2O2 è possibile produrre un modello ad oggetti contenente le astrazioni chiave e le relazioni di aggregazione, specializzazione e generalizzazione, che rispecchia la fase di analisi e si spinge nelle prime fasi di progetto di un sistema ad oggetti.
 
Per completare la fase di progetto è necessario considerare gli aspetti funzionali in modo da individuare i metodi delle classi identificate

Per ottenere una implementazione è necessario anche occuparsi delle interazioni tra le astrazioni identificate nei loro vari casi d'uso all'interno del sistema COBOL