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.