Upload
sawyer-blassingame
View
221
Download
2
Tags:
Embed Size (px)
Citation preview
© 2012 TELEBIG Tous droits réservés / All Rights Reserved.
PACStudio, PAC2COBOL and PAC2JavaContinuity and modernization of Pacbase
applications
July 2012
Patricia PASTORELLIBernard 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.comNiche 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 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
© 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
© 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
© 2012 TELEBIG Tous droits réservés / All Rights Reserved.
PACStudio: Supported entities (continued)
DialogueText DocumentFormat GuideDatabase blockMethodMeta EntityUser RelationUser EntityUser 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 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
© 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 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
© 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 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
© 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)
© 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
© 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 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
© 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
© 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.
© 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
© 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
RepositoryBatch On-line:E-Business (specific)
Services: PoC, Pilot, training,…