26
© 2012 TELEBIG Tous droits réservés / All Rights Reserved. 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. PACStudio, PAC2COBOL and PAC2Java Continuity and modernization of Pacbase applications July

Embed Size (px)

Citation preview

Page 1: © 2012 TELEBIG Tous droits réservés / All Rights Reserved. PACStudio, PAC2COBOL and PAC2Java Continuity and modernization of Pacbase applications July

© 2012 TELEBIG Tous droits réservés / All Rights Reserved.

PACStudio, PAC2COBOL and PAC2JavaContinuity and modernization of Pacbase

applications

July 2012

Patricia PASTORELLIBernard ZISERMANN

Page 2: © 2012 TELEBIG Tous droits réservés / All Rights Reserved. PACStudio, PAC2COBOL and PAC2Java Continuity and modernization of Pacbase applications July

© 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.comNiche actor in Third Party Maintenance: TMA+

Page 3: © 2012 TELEBIG Tous droits réservés / All Rights Reserved. PACStudio, PAC2COBOL and PAC2Java Continuity and modernization of Pacbase applications July

© 2012 TELEBIG Tous droits réservés / All Rights Reserved.

PACStudio overview

Page 4: © 2012 TELEBIG Tous droits réservés / All Rights Reserved. PACStudio, PAC2COBOL and PAC2Java Continuity and modernization of Pacbase applications July

© 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

Page 5: © 2012 TELEBIG Tous droits réservés / All Rights Reserved. PACStudio, PAC2COBOL and PAC2Java Continuity and modernization of Pacbase applications July

© 2012 TELEBIG Tous droits réservés / All Rights Reserved.

PACStudio: Repository

Integrated with EclipseAccessed by the universal interface JPA: Java Persistance APIData 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 workstationReplacement of highly used VAP « sessions » via a sophisticated implementation, using CVS or SubVersion

Page 6: © 2012 TELEBIG Tous droits réservés / All Rights Reserved. PACStudio, PAC2COBOL and PAC2Java Continuity and modernization of Pacbase applications July

© 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 entitiesManagement 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

Page 7: © 2012 TELEBIG Tous droits réservés / All Rights Reserved. PACStudio, PAC2COBOL and PAC2Java Continuity and modernization of Pacbase applications July

© 2012 TELEBIG Tous droits réservés / All Rights Reserved.

PACStudio: Supported entities

LibraryKeywordData Element• Definition• Description

Logical View• Definition• Description

Segment• Definition• Details

Report• Definition• Preview• Structural details• List of categories

Program and Macro• Definition• Macro call• Logical View call• Start lines• Specific handling• List of working storage

Screen• Definition• Segement call• Macro call• Appel de segment• Appel de macro• Start lines• Specific handling• Dialog complements

Page 8: © 2012 TELEBIG Tous droits réservés / All Rights Reserved. PACStudio, PAC2COBOL and PAC2Java Continuity and modernization of Pacbase applications July

© 2012 TELEBIG Tous droits réservés / All Rights Reserved.

PACStudio: Supported entities (continued)

DialogueText DocumentFormat GuideDatabase blockMethodMeta EntityUser RelationUser EntityUser Entity Extension

Page 9: © 2012 TELEBIG Tous droits réservés / All Rights Reserved. PACStudio, PAC2COBOL and PAC2Java Continuity and modernization of Pacbase applications July

© 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)

Page 10: © 2012 TELEBIG Tous droits réservés / All Rights Reserved. PACStudio, PAC2COBOL and PAC2Java Continuity and modernization of Pacbase applications July

© 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

Page 11: © 2012 TELEBIG Tous droits réservés / All Rights Reserved. PACStudio, PAC2COBOL and PAC2Java Continuity and modernization of Pacbase applications July

© 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

Page 12: © 2012 TELEBIG Tous droits réservés / All Rights Reserved. PACStudio, PAC2COBOL and PAC2Java Continuity and modernization of Pacbase applications July

© 2012 TELEBIG Tous droits réservés / All Rights Reserved.

PACStudio: some differentating points

Maximum continuity versus VisualAge PacbaseFull import of open repositoryElimination of regression testingNo dependancy of propriatory software: all PACStudio components are open source or « made in TELEBIG » with source code delivered to our subscribed customersCOBOL modernization as an optionJava native deploymentFull Java plug-in (no C code, DLLs, …)Repository in SQL database and/or XML filesLocal COBOL compile and test with the COBOL compiler of your choiceSupports continuity of pre 3.5 VAP versionsFull accesss to repository via standard SQL (replaces much simply PAF)Possible simulation (Re-hosting) of z/OS

Page 13: © 2012 TELEBIG Tous droits réservés / All Rights Reserved. PACStudio, PAC2COBOL and PAC2Java Continuity and modernization of Pacbase applications July

© 2012 TELEBIG Tous droits réservés / All Rights Reserved.

PACStudio live demonstration

Page 14: © 2012 TELEBIG Tous droits réservés / All Rights Reserved. PACStudio, PAC2COBOL and PAC2Java Continuity and modernization of Pacbase applications July

© 2012 TELEBIG Tous droits réservés / All Rights Reserved.

PACStudio differentiating points

Page 15: © 2012 TELEBIG Tous droits réservés / All Rights Reserved. PACStudio, PAC2COBOL and PAC2Java Continuity and modernization of Pacbase applications July

© 2012 TELEBIG Tous droits réservés / All Rights Reserved.

PACStudio: some differentating points

Maximum continuity versus VisualAge PacbaseFull import of open repositoryEiimination of regression testingNo dependancy of propriatory software: all PACStudio components are open source or « made in TELEBIG » with source code delivered to our subscribed customersCOBOL modernization as an optionJava native deploymentFull Java plug-in (no C code, DLLs, …)Repository in SQL database and/or XML filesLocal COBOL compile and test with the COBOL compiler of your choiceSupports continuity of pre 3.5 VAP versionsFull accesss to repository via standard SQL (replaces much simply PAF)Possible simulation (Re-hosting) of z/OS

Page 16: © 2012 TELEBIG Tous droits réservés / All Rights Reserved. PACStudio, PAC2COBOL and PAC2Java Continuity and modernization of Pacbase applications July

© 2012 TELEBIG Tous droits réservés / All Rights Reserved.

PAC2COBOL overview

Page 17: © 2012 TELEBIG Tous droits réservés / All Rights Reserved. PACStudio, PAC2COBOL and PAC2Java Continuity and modernization of Pacbase applications July

© 2012 TELEBIG Tous droits réservés / All Rights Reserved.

PAC2COBOL: Restructuration Level 1

Normalization of text according to ANSI COBOL 85Elimination 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 limitsReduction of COBOL mines• Example: normalization of Perform Thru into Perform Section

Page 18: © 2012 TELEBIG Tous droits réservés / All Rights Reserved. PACStudio, PAC2COBOL and PAC2Java Continuity and modernization of Pacbase applications July

© 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 insertExternalisation of declaratives of article areas of files into copybooks and Copy clause insertExternalization of data declaration of screen mapsNormalisation des Noms de ces nouveaux Copybooks (et Clause Copy) according to repository thesaurusElimination of clones (redondant Copybooks factorized)

Page 19: © 2012 TELEBIG Tous droits réservés / All Rights Reserved. PACStudio, PAC2COBOL and PAC2Java Continuity and modernization of Pacbase applications July

© 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 levelsComponentization" of codeExternalisation of data access servicesExternalisation of transactionnal resources accessConstitution of a library of reusable programs, via re-integration of existing Pacbase macros with their functionnalitiesOther optimizations according to customers requirements/needs90% of source code restructured automatically.Non-regression tests on all the portfolioSetting up of a tests cases repository that will be reusable during futher maintenance activities==> A Progressive progress

Page 20: © 2012 TELEBIG Tous droits réservés / All Rights Reserved. PACStudio, PAC2COBOL and PAC2Java Continuity and modernization of Pacbase applications July

© 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

Page 21: © 2012 TELEBIG Tous droits réservés / All Rights Reserved. PACStudio, PAC2COBOL and PAC2Java Continuity and modernization of Pacbase applications July

© 2012 TELEBIG Tous droits réservés / All Rights Reserved.

Example of Cobol optimization rules 1 COBOL Maintainability Backward GOTO

2 COBOL Maintainability Control can fall through to the next paragraph

3 COBOL Maintainability Data element declared in a copy file is neither set nor used

4 COBOL Maintainability Data element declared in a copy file is set but not used

5 COBOL Maintainability Data element declared in main program file neither set nor used

6 COBOL Maintainability Data element declared in main program file set but not used

7 COBOL Maintainability Dead code detected

8 COBOL Maintainability Declared condition name in a copy file is not used

9 COBOL Maintainability Declared condition name in main program file is not used

10 COBOL Maintainability Forward GOTO

11 COBOL Maintainability GOTO jumps into perform range

12 COBOL Maintainability GOTO jumps out of perform range

13 COBOL Maintainability Initialized linkage section data element declared in copy file

14 COBOL Maintainability Initialized linkage section data element declared in main progra

15 COBOL Maintainability Literal in procedure division

16 COBOL Maintainability Overlapping perform ranges

17 COBOL Maintainability Paragraph contains no statements

18 COBOL Maintainability Perform range end precedes beginning

19 COBOL Maintainability Perform range has beginning and ending paragraphs in different s

20 COBOL Maintainability Perform range uses inconsistent aliases

21 COBOL Maintainability Section contains no paragraphs

22 COBOL Maintainability Unreachable paragraph

23 COBOL Maintainability Unused Copy/Include detected

24 COBOL Maintainability Unused data item detected

25 COBOL Maintainability Unused file

Page 22: © 2012 TELEBIG Tous droits réservés / All Rights Reserved. PACStudio, PAC2COBOL and PAC2Java Continuity and modernization of Pacbase applications July

© 2012 TELEBIG Tous droits réservés / All Rights Reserved.

Example of CICS, SQL optimization rules 1 CICS Optimization REPORT WRITER must not be used

2 CICS Optimization SEGMENTATION must not be used

3 CICS Optimization SORT/MERGE must not be used

4 CICS Optimization The verb is not allowed

5 CICS Optimization TRACE must not be used

6 COBOL Optimization Binary variables should be declared with PIC S9(4), PIC S9(9) or PIC S9(18)

7 COBOL Optimization Dynamic CALLs are forbidden

8 COBOL Optimization Host variables must imperatively be defined as they are produced by the DCLGEN

9 COBOL Optimization Index should be declared binary: PIC S9(4) COMP

10 COBOL Optimization Paragraphs must be coded in the same order as they are called

11 COBOL Optimization The clause BLOCK CONTAINS 0 RECORDS must be used

12 COBOL Optimization The GO TO statement is forbidden

13 COBOL Optimization The INITIALIZE statement should be avoided

14 COBOL Optimization The PERFORM ... THRU statement is forbidden

15 COBOL Optimization The variable must be declared S9(n) COMP-3

16 COBOL Optimization Use SPACE for initialization

17 COBOL Optimization Use ZERO for initialization

18 DB2 Optimization Any DELETE or UPDATE statement must have a WHERE clause

19 DB2 Optimization Any SQL request "SELECT *" is forbidden

20 DB2 Optimization For a cursor access at least one column must be an index

21 DB2 Optimization The columns of joint predicates must be indexes

22 DB2 Optimization The DISTINCT clause is only allowed in batch programs

23 DB2 Optimization The GROUP BY clause is only allowed in batch programs

24 DB2 Optimization The ORDER BY clause is only allowed in batch programs

25 IMS Optimization EXEC SQL COMMIT is forbidden in CICS and IMS programs

Page 23: © 2012 TELEBIG Tous droits réservés / All Rights Reserved. PACStudio, PAC2COBOL and PAC2Java Continuity and modernization of Pacbase applications July

© 2012 TELEBIG Tous droits réservés / All Rights Reserved.

Exemple of measures used to optimize1 Quality index indicator Defects frequency per program or per application (sum of QII of its programs)2 Portability indicator Portability of a program or of an application3 Reliability indicator Reliability of a program or of an application4 Maintainability indicator Maintainability of a program or of an application5 Anomalies indicator Anomalies in a program or in an application6 Dead Components Dead Components7 Dead statements Dead statements8 Dead data Dead data9 Dead copybooks Dead copybooks

10 Complexity Indicator Cyclomatic Complexity (Mc Cabe specification)11 ccp Cyclomatic Complexity (for each procedure)12 acc Average Cyclomatic Complexity (for each Program)13 Software Science : Halstead The following measures are those specified by Halstead14 Number of Distinct operators Number of different Cobol operators used in statements, named n115 Number of operators Number of occurrences of the operators used, N116 Number of disctinct operands Number of different Cobol operands used in statements, n217 Number of operands Number of occurrences of the operands used, N218 Program vocabulary Sum of disctincts operators and operands, n1+n2 = n19 Prog Length Sum of occurrences of operators and operands, N1+N2 = N

20 Prog Volume A Halstead metrics dependending on Vocabulary and Length, Volume = N log2 n

21 Prog Difficulty A Halstead metrics of the difficulty to code an algorithm (Difficulty=( n1 / 2)*(N2 / n2))

22 Progr Effort A Halstead metrics of the effort to evolve a program (Effort = Difficulty*Volume)

23 Prog Halstead complexity A Halstead metrics depending on Vocabulary and Length of the complexity 24 Prog Halstead Estimated bugs A Halstead metrics estimating the number of bugs in the program25 Lines Lines in a program (expanded with referenced copybooks)26 nlos number of line of statements 27 nloc number of line of comments

28-47 Code Quality measures Certain inspection rules (defaults) are counted. Used to compute the indicators above.

Page 24: © 2012 TELEBIG Tous droits réservés / All Rights Reserved. PACStudio, PAC2COBOL and PAC2Java Continuity and modernization of Pacbase applications July

© 2012 TELEBIG Tous droits réservés / All Rights Reserved.

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

Page 25: © 2012 TELEBIG Tous droits réservés / All Rights Reserved. PACStudio, PAC2COBOL and PAC2Java Continuity and modernization of Pacbase applications July

© 2012 TELEBIG Tous droits réservés / All Rights Reserved.

PACStudio delivery model

Page 26: © 2012 TELEBIG Tous droits réservés / All Rights Reserved. PACStudio, PAC2COBOL and PAC2Java Continuity and modernization of Pacbase applications July

© 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

RepositoryBatch On-line:E-Business (specific)

Services: PoC, Pilot, training,…