Transcript Slide 1

PACStudio, PAC2COBOL and PAC2Java
Continuity and modernization of Pacbase
applications
July 2012
Patricia PASTORELLI
Bernard ZISERMANN
© 2012 TELEBIG Tous droits réservés / All Rights Reserved.
TELEBIG in a nutshell
Since 1983, TELEBIG specializes in the Modernization, Migration,
Replatforming, COBOL-Java transition and the SOA Integration of Legacy
systems to Open systems:
•
•
•
•
•
81 very successful migration projects
Worldwide customers
Experts team
Own methodoloy and tools (Migration+, Legacy2Java, PACStudio,…)
Integration of state of the art third party tools (XFRAME, Forms2Java,…)
Close partnership with industry leaders:
•
•
•
•
System Integrators - Atos, Bull, CapGemini, HP, IBM, Logica, Sopra
Global technology leaders - HP, IBM, Micro Focus, Microsoft, Oracle
Specialists of modernization/migration - ATX Software, HTWC, Most Technologies,
SoftwareMining
Oracle OPN Silver partner, Microsoft PMA member
Founder of bonede Alliance: www.bonede.com
Niche actor in Third Party Maintenance: TMA+
© 2012 TELEBIG Tous droits réservés / All Rights Reserved.
PACStudio overview
© 2012 TELEBIG Tous droits réservés / All Rights Reserved.
PACStudio: continuity and opening
PACStudio arises out of the needs of a significant number of very
satisfied VisualAge Pacbase (VAP) users, who are at the crossroad after
the annoucement of IBM to terminate the support of Pacbase in 2015
PACStudio provides development and code generation capabilities
which are exactly the same as VAP, built on modern Eclipse and
relational database infrastructure
The generated COBOL code is strictly the same as the one issued from
VAP for all supported platforms (cf z/OS, Bull GCOS, UNIX, ...)
It also allows to elaborate modernized maintainable COBOL and also
deployment in Java via options PAC2COBOL and PAC2Java.
PACStudio is totally developped with purely standard and Open source
components and has no dependency on any other commercial tool
© 2012 TELEBIG Tous droits réservés / All Rights Reserved.
PACStudio: Repository
Integrated with Eclipse
Accessed by the universal interface JPA: Java Persistance API
Data is stored and shared in any open source or commercial
relational database :
•
•
•
•
•
Oracle
MySQL
PostgreSQL
DB2 UDB
…
Or in XML files that can be temporarily stored inside the
developer’s workstation
Replacement of highly used VAP « sessions » via a sophisticated
implementation, using CVS or SubVersion
© 2012 TELEBIG Tous droits réservés / All Rights Reserved.
PACStudio: Repository (continued)
Import of an exported VAP repository produced by EXLI (full or by
selected libraries with related components)
Handling of all types of VAP entities
Management of useds
•
•
Users and Groups rights
Access to libraries
Small footprint, allowing easy and fast partial global backups in
today’s commodity workstations and servers
•
•
Example dictionnary of:
2000 programs,19000 elements, 27000 segments et 5000 dialogs=> 1,5
Gigabytes
Organisation per libraries with cross references
© 2012 TELEBIG Tous droits réservés / All Rights Reserved.
PACStudio: Supported entities
Library
Keyword
Data Element
•
•

•
•
•
Definition
Description
•
•
Logical View
•
•
Definition
Description
Segment
•
•
Definition
Details
Program and Macro
•

Screen
•
•
•
•
Report
•
•
•
•
•
•
Definition
Preview
Structural details
List of categories
© 2012 TELEBIG Tous droits réservés / All Rights Reserved.
Definition
Macro call
Logical View call
Start lines
Specific handling
List of working storage
•
•
Definition
Segement call
Macro call
Appel de segment
Appel de macro
Start lines
Specific handling
Dialog complements
PACStudio: Supported entities
(continued)
Dialogue
Text
Document
Format Guide
Database block
Method
Meta Entity
User Relation
User Entity
User Entity Extension
© 2012 TELEBIG Tous droits réservés / All Rights Reserved.
PACStudio: Plug-in
Full integration in Eclipse (3.5 or superior)
Works under Windows but also under any Eclipse supported
platform (ie Linux)
Creation and Import of Repository
Manipulation of entity with a nice look and feel
Generation (s) of target (s) code
Sophisticated generated code comparator
Local COBOL compiler (for immediate validation)
Full local mainframe simulation (option)
© 2012 TELEBIG Tous droits réservés / All Rights Reserved.
PACStudio: Local compilation
PACStudio generates COBOL code to be compiled in the target
environment
We provide a first compile and check capability
Associated COBOL compiler can be:
•
•
•
•
•
•
•
Heirloom Computing Elastic COBOL (generates Java, IBM/zOS compatible, Cloud)
Micro Focus COBOL
Veryant vCOBOL (generates Java)
IBM AIX COBOL
Fujitsu NetCOBOL
Open COBOL (Open source)
COBOL-IT (Open source avec professional support)
Additionnaly, we propose, in the case of IBM Mainframe platforms , a
development and local testing infrastructure with the XFRAME Rehosting
platform
© 2012 TELEBIG Tous droits réservés / All Rights Reserved.
PACStudio: Management fonctions
Via Eclipse « administrator » perspective
Management of users and roles
•
•
•
Users, groups
Role and privileges per library
Locking and unlocking of entities
Management of sessions
•
•
•
Current
Historical
Shared and or/local
Save and restore
•
•
Base
CVS/Subversion referential
© 2012 TELEBIG Tous droits réservés / All Rights Reserved.
PACStudio: some differentating points
Maximum continuity versus VisualAge Pacbase
Full import of open repository
Elimination of regression testing
No dependancy of propriatory software: all PACStudio components are
open source or « made in TELEBIG » with source code delivered to our
subscribed customers
COBOL modernization as an option
Java native deployment
Full Java plug-in (no C code, DLLs, …)
Repository in SQL database and/or XML files
Local COBOL compile and test with the COBOL compiler of your choice
Supports continuity of pre 3.5 VAP versions
Full accesss to repository via standard SQL (replaces much simply PAF)
Possible simulation (Re-hosting) of z/OS
© 2012 TELEBIG Tous droits réservés / All Rights Reserved.
PACStudio live demonstration
© 2012 TELEBIG Tous droits réservés / All Rights Reserved.
PACStudio differentiating
points
© 2012 TELEBIG Tous droits réservés / All Rights Reserved.
PACStudio: some differentating points
Maximum continuity versus VisualAge Pacbase
Full import of open repository
Eiimination of regression testing
No dependancy of propriatory software: all PACStudio components are
open source or « made in TELEBIG » with source code delivered to our
subscribed customers
COBOL modernization as an option
Java native deployment
Full Java plug-in (no C code, DLLs, …)
Repository in SQL database and/or XML files
Local COBOL compile and test with the COBOL compiler of your choice
Supports continuity of pre 3.5 VAP versions
Full accesss to repository via standard SQL (replaces much simply PAF)
Possible simulation (Re-hosting) of z/OS
© 2012 TELEBIG Tous droits réservés / All Rights Reserved.
PAC2COBOL overview
© 2012 TELEBIG Tous droits réservés / All Rights Reserved.
PAC2COBOL: Restructuration Level 1
Normalization of text according to ANSI COBOL 85
Elimination of dead code (average 8% of code)
Elimitaiton on unused labels
•
Example : empty paragraph; we observe up to 25% of this type lines
Normalization of names
•
•
•
•
•
•
Constants
Host Vars
Tables, Vues
Counters
Booleans
Table indexes
Normalization of table indexes limits
Reduction of COBOL mines
•
Example: normalization of Perform Thru into Perform Section
© 2012 TELEBIG Tous droits réservés / All Rights Reserved.
PAC2COBOL: Restructuration Level 2
Externalisation of tables and views declaration into copybooks
and Copy clause insert
Externalisation of declaratives of article areas of files into
copybooks and Copy clause insert
Externalization of data declaration of screen maps
Normalisation des Noms de ces nouveaux Copybooks (et Clause
Copy) according to repository thesaurus
Elimination of clones (redondant Copybooks factorized)
© 2012 TELEBIG Tous droits réservés / All Rights Reserved.
PAC2COBOL: Restructuration Level 3
This level corresponds to a “tool based service” with a large
implication of the customer at the specification and qualification
levels
Componentization" of code
Externalisation of data access services
Externalisation of transactionnal resources access
Constitution of a library of reusable programs, via re-integration of
existing Pacbase macros with their functionnalities
Other optimizations according to customers requirements/needs
90% of source code restructured automatically.
Non-regression tests on all the portfolio
Setting up of a tests cases repository that will be reusable during
futher maintenance activities
==> A Progressive progress
© 2012 TELEBIG Tous droits réservés / All Rights Reserved.
PAC2COBOL: Restructuration Level 4
Code inspection
•
•
•
•
Automatic
+120 Cobol/CICS/Sql inspection rules checked
See examples following slides
Normalizations as required
Code quality measurement
•
Audit
Audit of quality repository built during restructuration Level [1-4]
Interpretation of measurement results => set of optimizations recommendations
•
Automatic optimization of this set as required
This level 4 activity requires Expert Interpretation to get the most
of automatisms
© 2012 TELEBIG Tous droits réservés / All Rights Reserved.
Example of Cobol optimization rules
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
COBOL
COBOL
COBOL
COBOL
COBOL
COBOL
COBOL
COBOL
COBOL
COBOL
COBOL
COBOL
COBOL
COBOL
COBOL
COBOL
COBOL
Maintainability
Maintainability
Maintainability
Maintainability
Maintainability
Maintainability
Maintainability
Maintainability
Maintainability
Maintainability
Maintainability
Maintainability
Maintainability
Maintainability
Maintainability
Maintainability
Maintainability
Backward GOTO
Control can fall through to the next paragraph
Data element declared in a copy file is neither set nor used
Data element declared in a copy file is set but not used
Data element declared in main program file neither set nor used
Data element declared in main program file set but not used
Dead code detected
Declared condition name in a copy file is not used
Declared condition name in main program file is not used
Forward GOTO
GOTO jumps into perform range
GOTO jumps out of perform range
Initialized linkage section data element declared in copy file
Initialized linkage section data element declared in main progra
Literal in procedure division
Overlapping perform ranges
Paragraph contains no statements
18
19
20
21
22
23
24
25
COBOL
COBOL
COBOL
COBOL
COBOL
COBOL
COBOL
COBOL
Maintainability
Maintainability
Maintainability
Maintainability
Maintainability
Maintainability
Maintainability
Maintainability
Perform range end precedes beginning
Perform range has beginning and ending paragraphs in different s
Perform range uses inconsistent aliases
Section contains no paragraphs
Unreachable paragraph
Unused Copy/Include detected
Unused data item detected
Unused file
© 2012 TELEBIG Tous droits réservés / All Rights Reserved.
Example of CICS, SQL optimization rules
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
CICS
Optimization
REPORT WRITER must not be used
CICS
Optimization
SEGMENTATION must not be used
CICS
Optimization
SORT/MERGE must not be used
CICS
Optimization
The verb is not allowed
CICS
Optimization
TRACE must not be used
COBOL
Optimization
Binary variables should be declared with PIC S9(4), PIC S9(9) or PIC S9(18)
COBOL
Optimization
COBOL
Optimization
COBOL
Optimization
Index should be declared binary: PIC S9(4) COMP
COBOL
Optimization
Paragraphs must be coded in the same order as they are called
COBOL
Optimization
The clause BLOCK CONTAINS 0 RECORDS must be used
COBOL
Optimization
The GO TO statement is forbidden
COBOL
Optimization
The INITIALIZE statement should be avoided
COBOL
Optimization
The PERFORM ... THRU statement is forbidden
COBOL
Optimization
The variable must be declared S9(n) COMP-3
COBOL
Optimization
Use SPACE for initialization
COBOL
Optimization
Use ZERO for initialization
DB2
Optimization
Any DELETE or UPDATE statement must have a WHERE clause
DB2
Optimization
Any SQL request "SELECT *" is forbidden
DB2
Optimization
For a cursor access at least one column must be an index
DB2
Optimization
The columns of joint predicates must be indexes
DB2
Optimization
The DISTINCT clause is only allowed in batch programs
DB2
Optimization
The GROUP BY clause is only allowed in batch programs
DB2
Optimization
The ORDER BY clause is only allowed in batch programs
IMS
Optimization
EXEC SQL COMMIT is forbidden in CICS and IMS programs
© 2012 TELEBIG Tous droits réservés / All Rights Reserved.
Dynamic CALLs are forbidden
Host variables must imperatively be defined as they are produced by the
DCLGEN
Exemple of measures used to optimize
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Quality index indicator
Portability indicator
Reliability indicator
Maintainability indicator
Anomalies indicator
Dead Components
Dead statements
Dead data
Dead copybooks
Complexity Indicator
ccp
acc
Software Science : Halstead
Number of Distinct operators
Number of operators
Number of disctinct operands
Number of operands
Program vocabulary
Prog Length
Prog Volume
Prog Difficulty
21
Progr Effort
22
Prog Halstead complexity
23
24
Prog Halstead Estimated bugs
25
Lines
26
nlos
27
nloc
28-47 Code Quality measures
© 2012 TELEBIG Tous droits réservés / All Rights Reserved.
Defects frequency per program or per application (sum of QII of its programs)
Portability of a program or of an application
Reliability of a program or of an application
Maintainability of a program or of an application
Anomalies in a program or in an application
Dead Components
Dead statements
Dead data
Dead copybooks
Cyclomatic Complexity (Mc Cabe specification)
Cyclomatic Complexity (for each procedure)
Average Cyclomatic Complexity (for each Program)
The following measures are those specified by Halstead
Number of different Cobol operators used in statements, named n1
Number of occurrences of the operators used, N1
Number of different Cobol operands used in statements, n2
Number of occurrences of the operands used, N2
Sum of disctincts operators and operands, n1+n2 = n
Sum of occurrences of operators and operands, N1+N2 = N
A Halstead metrics dependending on Vocabulary and Length, Volume = N log2 n
A Halstead metrics of the difficulty to code an algorithm (Difficulty=( n1 / 2)*(N2 / n2))
A Halstead metrics of the effort to evolve a program (Effort = Difficulty*Volume)
A Halstead metrics depending on Vocabulary and Length of the complexity
A Halstead metrics estimating the number of bugs in the program
Lines in a program (expanded with referenced copybooks)
number of line of statements
number of line of comments
Certain inspection rules (defaults) are counted. Used to compute the indicators above.
PAC2Java: Continuity and
modernization
Based on COBOL to Java compile
Integrated process in the PACSudio generating phase while
keeping all functionnalities
Generation of Java source then Java bytecode applies thus to
« non errored » code and does not require Regression testing
© 2012 TELEBIG Tous droits réservés / All Rights Reserved.
PACStudio delivery model
© 2012 TELEBIG Tous droits réservés / All Rights Reserved.
PACStudio: Delivery model
TELEBIG group, through its subsidiary France COBOL, is building a
strong , transparent and long term partnership with its PACStudio
customers based on a contnuous support scheme
Annual subscribtion (including usage, corrective and evolutionary
maintenance, hotline in English)
•
•
Per concurrent developer seat , minimum applies
Per module
Repository
Batch
On-line:
E-Business (specific)
Services: PoC, Pilot, training,…
© 2012 TELEBIG Tous droits réservés / All Rights Reserved.