SlideShare una empresa de Scribd logo
1 de 26
Descargar para leer sin conexión
Precise Detection of Un-Initialized Variables
    In Large, Real-life Cobol Programs
    In Presence Of Unrealizable Paths

                              Adnan Contractor
                                  Ravindra Naik
                                   Rahul Jiresal
                                             1
Agenda

Motivation
Un-Initialized Variables
Results
Unrealizable Paths
Solution
Heuristics




                           2
Typical Maintenance Scenario

   Failure                                              Change
                                                        Request
• Re-produce                    Code Changes
• Analysis                                                     • Understand
                                   • Testing                   • Impact
                                                                 Analysis
                                   • Production

Conjecture

              Analysis
                                                                    Changes
                                                                    Delivered

      Code
     Change
                                                  Failures &
                                                   Efforts
                    Automated
                      Tools



                                                                                3
Case Study


            Background                                    Concerns

• Core banking product                       • Repeated failure of transactions
• Stable back-office COBOL                   • Not so-easily-reproducible failures
  applications                               • Longer turn-around time
• Over 1 million transactions daily

 Examples…
   Transaction for                                      Recurring Deposit account
   change of base           A Forex transaction           closure fails whenever
     branch fails          failing only after 6PM     triggered at the same time at
      randomly                                             two different branches


      Not yet                     5 days                     8 months
       fixed                      1 day                       10 days

                                                                                     4
Case Study
           Branch A            Request for RD
                                acct closure


                               Check Balance


                               Notify balance
                                to customer

Customer              Banker              Request for RD
                                           acct closure
           Branch B

                                          Check Balance

                                           Notify balance
                                            to customer

                               Fire Close acct
                                  command
Customer              Banker
                                          Fire Close acct   5
                                             command
Un-Initialized Variables

double calculatePoints
                                     1
(char cardType, double amt)

                                     2
1 float rate;
  double points;
                                         4
2 if (cardType == ‘G’)
                                 3
3      rate = 0.005;
4 elseif (cardType == ‘S’)                   5

5      rate = 0.001;
                                     6
6 points = amt * rate;
7 return points;
                                     7
                                                 6
Results

                           Un-Initialized
           Program
                        Variables Instances
           AB0000         1317        6090
           CR0000         1173        4313
           CR0025          336         871
           CR7070          74          253
           AB0024          59          120

          Context-insensitive Analysis Results




                                                 7
Results

                     Un-Initialized Variables
7000
6000
5000
4000
3000                                                Context-insensitive
2000
                                                    Context-sensitive
1000
  0
       AB0000   CR0000   CR0025   CR7070   AB0024

                         Program

                                                                    8
Context-Insensitive Analysis

          Paragraph            • Paragraph - A set of statements
 1. A.                         represented by a label. Can be executed
 2. MOVE 0 TO VA               as a unit.
 3. PERFORM P.
 4.
 5. B.
 6. MOVE 1 TO VB               • Perform - Using PERFORM statement
 7. MOVE 1 TO VA     Perform   one can execute a paragraph.
 8. PERFORM P
 9. MOVE VB TO MV.
10.
11. P.
12. MOVE 5 TO VF.




                                                                         9
Context-Insensitive Analysis


 1. A.
                                        E
 2. MOVE 0 TO VA
                           E
 3. PERFORM P.
                                   E
 4.                                     6
 5. B.                     2
 6. MOVE 1 TO VB
                      VA           12   7
 7. MOVE 1 TO VA
 8. PERFORM P              3                VA,
                                            VB
 9. MOVE VB TO MV.
                                        8
10.                                X
11. P.
12. MOVE 5 TO VF.          X            9



                                        X

                                                  10
Context-Insensitive Analysis


 1. A.
                                   VA   E
 2. MOVE 0 TO VA
                           E
 3. PERFORM P.
                                   E
 4.                                     6
 5. B.                     2
 6. MOVE 1 TO VB
                      VA           12   7
 7. MOVE 1 TO VA
 8. PERFORM P              3                VA,
                                            VB
 9. MOVE VB TO MV.
                                        8
10.                                X
11. P.
12. MOVE 5 TO VF.          X            9



                                        X

                                                  11
Context-Insensitive Analysis


 1. A.
                                   VA    E
 2. MOVE 0 TO VA
                           E
 3. PERFORM P.
                                   E
 4.                                      6
 5. B.                     2
 6. MOVE 1 TO VB
                      VA           12    7
 7. MOVE 1 TO VA
 8. PERFORM P              3                 VA,
                                             VB
 9. MOVE VB TO MV.
                                         8
10.                                X
11. P.
12. MOVE 5 TO VF.          X             9
                                   VA,
                                   VF

                                         X

                                                   12
Context-Insensitive Analysis


 1. A.
                                   VA    E
 2. MOVE 0 TO VA
                           E
 3. PERFORM P.
                                   E
 4.                                      6
 5. B.                     2
 6. MOVE 1 TO VB
                      VA           12    7
 7. MOVE 1 TO VA
 8. PERFORM P              3                 VA,
                                             VB
 9. MOVE VB TO MV.   VA,                 8
10.                  VF            X         VA,
11. P.                                       VF
12. MOVE 5 TO VF.          X             9
                                   VA,
                                   VF

                                         X

                                                   13
Context-Insensitive Analysis


1. A.
                                   VA    E
2. MOVE 0 TO VA
                            E
3. PERFORM P.
                                   E
4.                                       6
5. B.                       2
6. MOVE 1 TO VB
                      VA           12    7
7. MOVE 1 TO VA
8. PERFORM P                3                VA,
                                             VB
9.   MOVE VB TO MV.   VA,                8
10.                   VF           X         VA,
11. P.                                       VF
12. MOVE 5 TO VF.           X            9
                                   VA,
                                   VF

                                         X

                                                   14
Unrealizable Paths



                          E
        E
                     E
                          6
        2
                     12
                          7
        3

                          8
                     X

        X                 9



                          X
                              15
Design Challenges

Perform Chain
Paragraph level information
Paragraph range level information
Data flow equations:
    NBottom = [ Ntop – KillSump ] ∪ GenSump
    GenSump = Defined (p)
    KillSump = Ø




                                              16
Context-Insensitive Analysis


 1. A.
                                        E
 2. MOVE 0 TO VA
                           E
 3. PERFORM P.
                                   E
 4.                                     6
 5. B.                     2
 6. MOVE 1 TO VB
                      VA           12   7
 7. MOVE 1 TO VA
 8. PERFORM P              3                VA,
                                            VB
 9. MOVE VB TO MV.
                                        8
10.                                X
11. P.
12. MOVE 5 TO VF.          X            9



                                        X

                                                  17
Context-Insensitive Analysis


 1. A.
                                        E
 2. MOVE 0 TO VA
                           E
 3. PERFORM P.
                                   E
 4.                                     6
 5. B.                     2
 6. MOVE 1 TO VB
                      VA           12   7
 7. MOVE 1 TO VA
 8. PERFORM P              3                VA,
                                            VB
 9. MOVE VB TO MV.
                                        8
10.                                X
11. P.
12. MOVE 5 TO VF.          X            9



                                        X

                                                  18
Context-Insensitive Analysis


 1. A.
                                        E
 2. MOVE 0 TO VA
                           E
 3. PERFORM P.
                                   E
 4.                                     6
 5. B.                     2
 6. MOVE 1 TO VB
                      VA           12   7
 7. MOVE 1 TO VA
 8. PERFORM P              3                VA,
                                            VB
 9. MOVE VB TO MV.
                                        8
10.                                X
11. P.
12. MOVE 5 TO VF.          X            9
                                   VF

                                        X

                                                  19
Context-Insensitive Analysis


 1. A.
                                        E
 2. MOVE 0 TO VA
                           E
 3. PERFORM P.
                                   E
 4.                                     6
 5. B.                     2
 6. MOVE 1 TO VB
                      VA           12   7
 7. MOVE 1 TO VA
 8. PERFORM P              3                VA,
                                            VB
 9. MOVE VB TO MV.   VA,                8
10.                  VF            X
                                             VA,
11. P.
12. MOVE 5 TO VF.          X            9   VB
                                   VF        ,VF


                                        X

                                                   20
Results

                         Un-Initialized
          Program
                     Variables Instances
          AB0000        737         2945
          CR0000        838         3001
          CR0025        187          437
          CR7070         30          60
          AB0024         48          103

          Context-sensitive Analysis Results



                                               21
Heuristics

Bad Code Smells Removal
Utility-Parameter based Prioritization
Fan-in based Prioritization




                                         22
Heuristics Results


3500

3000

2500
                                           Context Sensitive
2000                                       Analysis
                                           Code Smell Removal
1500

1000                                       Utility Parameter
                                           removal
500

  0
       AB0000   CR0000   CR0025   CR7070


                                                                23
Future Work

Heuristics
– Error-path pruning
– Output-variable based
Dynamic Analysis
Un-Initialized path detection




                                24
Key Learning

Precise detection of un-initialized variables
Heuristics
Realizable data-flow analysis across Paragraphs for COBOL
Technique can be extended to other analyses – defect
detection, program understanding, code architecture discovery




                                                                25
Thank You


            26

Más contenido relacionado

Destacado

Traceability - Structural Conformance Checking with Design Tests: An Evaluati...
Traceability - Structural Conformance Checking with Design Tests: An Evaluati...Traceability - Structural Conformance Checking with Design Tests: An Evaluati...
Traceability - Structural Conformance Checking with Design Tests: An Evaluati...ICSM 2011
 
Richard Kemmerer Keynote icsm11
Richard Kemmerer Keynote icsm11Richard Kemmerer Keynote icsm11
Richard Kemmerer Keynote icsm11ICSM 2011
 
Faults and Regression testing - Localizing Failure-Inducing Program Edits Bas...
Faults and Regression testing - Localizing Failure-Inducing Program Edits Bas...Faults and Regression testing - Localizing Failure-Inducing Program Edits Bas...
Faults and Regression testing - Localizing Failure-Inducing Program Edits Bas...ICSM 2011
 
Reliability and Quality - Predicting post-release defects using pre-release f...
Reliability and Quality - Predicting post-release defects using pre-release f...Reliability and Quality - Predicting post-release defects using pre-release f...
Reliability and Quality - Predicting post-release defects using pre-release f...ICSM 2011
 
Impact analysis - A Seismology-inspired Approach to Study Change Propagation
Impact analysis - A Seismology-inspired Approach to Study Change PropagationImpact analysis - A Seismology-inspired Approach to Study Change Propagation
Impact analysis - A Seismology-inspired Approach to Study Change PropagationICSM 2011
 
ERA - Clustering and Recommending Collections of Code Relevant to Task
ERA - Clustering and Recommending Collections of Code Relevant to TaskERA - Clustering and Recommending Collections of Code Relevant to Task
ERA - Clustering and Recommending Collections of Code Relevant to TaskICSM 2011
 
ICSM'01 Most Influential Paper - Rainer Koschke
ICSM'01 Most Influential Paper - Rainer KoschkeICSM'01 Most Influential Paper - Rainer Koschke
ICSM'01 Most Influential Paper - Rainer KoschkeICSM 2011
 
Lionel Briand ICSM 2011 Keynote
Lionel Briand ICSM 2011 KeynoteLionel Briand ICSM 2011 Keynote
Lionel Briand ICSM 2011 KeynoteICSM 2011
 
ERA - A Comparison of Stemmers on Source Code Identifiers for Software Search
ERA - A Comparison of Stemmers on Source Code Identifiers for Software SearchERA - A Comparison of Stemmers on Source Code Identifiers for Software Search
ERA - A Comparison of Stemmers on Source Code Identifiers for Software SearchICSM 2011
 
Postdoc symposium - A Logic Meta-Programming Foundation for Example-Driven Pa...
Postdoc symposium - A Logic Meta-Programming Foundation for Example-Driven Pa...Postdoc symposium - A Logic Meta-Programming Foundation for Example-Driven Pa...
Postdoc symposium - A Logic Meta-Programming Foundation for Example-Driven Pa...ICSM 2011
 
Industry - Estimating software maintenance effort from use cases an indu...
Industry - Estimating software maintenance effort from use cases an      indu...Industry - Estimating software maintenance effort from use cases an      indu...
Industry - Estimating software maintenance effort from use cases an indu...ICSM 2011
 
Metrics - Using Source Code Metrics to Predict Change-Prone Java Interfaces
Metrics - Using Source Code Metrics to Predict Change-Prone Java InterfacesMetrics - Using Source Code Metrics to Predict Change-Prone Java Interfaces
Metrics - Using Source Code Metrics to Predict Change-Prone Java InterfacesICSM 2011
 
ERA - Measuring Maintainability of Spreadsheets in the Wild
ERA - Measuring Maintainability of Spreadsheets in the Wild ERA - Measuring Maintainability of Spreadsheets in the Wild
ERA - Measuring Maintainability of Spreadsheets in the Wild ICSM 2011
 
Postdoc Symposium - Abram Hindle
Postdoc Symposium - Abram HindlePostdoc Symposium - Abram Hindle
Postdoc Symposium - Abram HindleICSM 2011
 
Dynamic Analysis - SCOTCH: Improving Test-to-Code Traceability using Slicing ...
Dynamic Analysis - SCOTCH: Improving Test-to-Code Traceability using Slicing ...Dynamic Analysis - SCOTCH: Improving Test-to-Code Traceability using Slicing ...
Dynamic Analysis - SCOTCH: Improving Test-to-Code Traceability using Slicing ...ICSM 2011
 
Impact Analysis - ImpactScale: Quantifying Change Impact to Predict Faults in...
Impact Analysis - ImpactScale: Quantifying Change Impact to Predict Faults in...Impact Analysis - ImpactScale: Quantifying Change Impact to Predict Faults in...
Impact Analysis - ImpactScale: Quantifying Change Impact to Predict Faults in...ICSM 2011
 
Components - Crossing the Boundaries while Analyzing Heterogeneous Component-...
Components - Crossing the Boundaries while Analyzing Heterogeneous Component-...Components - Crossing the Boundaries while Analyzing Heterogeneous Component-...
Components - Crossing the Boundaries while Analyzing Heterogeneous Component-...ICSM 2011
 
Metrics - You can't control the unfamiliar
Metrics - You can't control the unfamiliarMetrics - You can't control the unfamiliar
Metrics - You can't control the unfamiliarICSM 2011
 
Tutorial 2 - Practical Combinatorial (t-way) Methods for Detecting Complex Fa...
Tutorial 2 - Practical Combinatorial (t-way) Methods for Detecting Complex Fa...Tutorial 2 - Practical Combinatorial (t-way) Methods for Detecting Complex Fa...
Tutorial 2 - Practical Combinatorial (t-way) Methods for Detecting Complex Fa...ICSM 2011
 
Industry - The Evolution of Information Systems. A Case Study on Document Man...
Industry - The Evolution of Information Systems. A Case Study on Document Man...Industry - The Evolution of Information Systems. A Case Study on Document Man...
Industry - The Evolution of Information Systems. A Case Study on Document Man...ICSM 2011
 

Destacado (20)

Traceability - Structural Conformance Checking with Design Tests: An Evaluati...
Traceability - Structural Conformance Checking with Design Tests: An Evaluati...Traceability - Structural Conformance Checking with Design Tests: An Evaluati...
Traceability - Structural Conformance Checking with Design Tests: An Evaluati...
 
Richard Kemmerer Keynote icsm11
Richard Kemmerer Keynote icsm11Richard Kemmerer Keynote icsm11
Richard Kemmerer Keynote icsm11
 
Faults and Regression testing - Localizing Failure-Inducing Program Edits Bas...
Faults and Regression testing - Localizing Failure-Inducing Program Edits Bas...Faults and Regression testing - Localizing Failure-Inducing Program Edits Bas...
Faults and Regression testing - Localizing Failure-Inducing Program Edits Bas...
 
Reliability and Quality - Predicting post-release defects using pre-release f...
Reliability and Quality - Predicting post-release defects using pre-release f...Reliability and Quality - Predicting post-release defects using pre-release f...
Reliability and Quality - Predicting post-release defects using pre-release f...
 
Impact analysis - A Seismology-inspired Approach to Study Change Propagation
Impact analysis - A Seismology-inspired Approach to Study Change PropagationImpact analysis - A Seismology-inspired Approach to Study Change Propagation
Impact analysis - A Seismology-inspired Approach to Study Change Propagation
 
ERA - Clustering and Recommending Collections of Code Relevant to Task
ERA - Clustering and Recommending Collections of Code Relevant to TaskERA - Clustering and Recommending Collections of Code Relevant to Task
ERA - Clustering and Recommending Collections of Code Relevant to Task
 
ICSM'01 Most Influential Paper - Rainer Koschke
ICSM'01 Most Influential Paper - Rainer KoschkeICSM'01 Most Influential Paper - Rainer Koschke
ICSM'01 Most Influential Paper - Rainer Koschke
 
Lionel Briand ICSM 2011 Keynote
Lionel Briand ICSM 2011 KeynoteLionel Briand ICSM 2011 Keynote
Lionel Briand ICSM 2011 Keynote
 
ERA - A Comparison of Stemmers on Source Code Identifiers for Software Search
ERA - A Comparison of Stemmers on Source Code Identifiers for Software SearchERA - A Comparison of Stemmers on Source Code Identifiers for Software Search
ERA - A Comparison of Stemmers on Source Code Identifiers for Software Search
 
Postdoc symposium - A Logic Meta-Programming Foundation for Example-Driven Pa...
Postdoc symposium - A Logic Meta-Programming Foundation for Example-Driven Pa...Postdoc symposium - A Logic Meta-Programming Foundation for Example-Driven Pa...
Postdoc symposium - A Logic Meta-Programming Foundation for Example-Driven Pa...
 
Industry - Estimating software maintenance effort from use cases an indu...
Industry - Estimating software maintenance effort from use cases an      indu...Industry - Estimating software maintenance effort from use cases an      indu...
Industry - Estimating software maintenance effort from use cases an indu...
 
Metrics - Using Source Code Metrics to Predict Change-Prone Java Interfaces
Metrics - Using Source Code Metrics to Predict Change-Prone Java InterfacesMetrics - Using Source Code Metrics to Predict Change-Prone Java Interfaces
Metrics - Using Source Code Metrics to Predict Change-Prone Java Interfaces
 
ERA - Measuring Maintainability of Spreadsheets in the Wild
ERA - Measuring Maintainability of Spreadsheets in the Wild ERA - Measuring Maintainability of Spreadsheets in the Wild
ERA - Measuring Maintainability of Spreadsheets in the Wild
 
Postdoc Symposium - Abram Hindle
Postdoc Symposium - Abram HindlePostdoc Symposium - Abram Hindle
Postdoc Symposium - Abram Hindle
 
Dynamic Analysis - SCOTCH: Improving Test-to-Code Traceability using Slicing ...
Dynamic Analysis - SCOTCH: Improving Test-to-Code Traceability using Slicing ...Dynamic Analysis - SCOTCH: Improving Test-to-Code Traceability using Slicing ...
Dynamic Analysis - SCOTCH: Improving Test-to-Code Traceability using Slicing ...
 
Impact Analysis - ImpactScale: Quantifying Change Impact to Predict Faults in...
Impact Analysis - ImpactScale: Quantifying Change Impact to Predict Faults in...Impact Analysis - ImpactScale: Quantifying Change Impact to Predict Faults in...
Impact Analysis - ImpactScale: Quantifying Change Impact to Predict Faults in...
 
Components - Crossing the Boundaries while Analyzing Heterogeneous Component-...
Components - Crossing the Boundaries while Analyzing Heterogeneous Component-...Components - Crossing the Boundaries while Analyzing Heterogeneous Component-...
Components - Crossing the Boundaries while Analyzing Heterogeneous Component-...
 
Metrics - You can't control the unfamiliar
Metrics - You can't control the unfamiliarMetrics - You can't control the unfamiliar
Metrics - You can't control the unfamiliar
 
Tutorial 2 - Practical Combinatorial (t-way) Methods for Detecting Complex Fa...
Tutorial 2 - Practical Combinatorial (t-way) Methods for Detecting Complex Fa...Tutorial 2 - Practical Combinatorial (t-way) Methods for Detecting Complex Fa...
Tutorial 2 - Practical Combinatorial (t-way) Methods for Detecting Complex Fa...
 
Industry - The Evolution of Information Systems. A Case Study on Document Man...
Industry - The Evolution of Information Systems. A Case Study on Document Man...Industry - The Evolution of Information Systems. A Case Study on Document Man...
Industry - The Evolution of Information Systems. A Case Study on Document Man...
 

Similar a Industry - Precise Detection of Un-Initialized Variables in Large, Real-life COBOL Programs in Presence of Un-realizable Paths

Developing and Visualizing Live Model Queries
Developing and Visualizing Live Model QueriesDeveloping and Visualizing Live Model Queries
Developing and Visualizing Live Model QueriesZoltán Ujhelyi
 
Nanometer Testing: Challenges and Solutions
Nanometer Testing: Challenges and SolutionsNanometer Testing: Challenges and Solutions
Nanometer Testing: Challenges and SolutionsDVClub
 
Behavioral Constraints for Services
Behavioral Constraints for ServicesBehavioral Constraints for Services
Behavioral Constraints for ServicesUniversität Rostock
 
How to live with agile - Aware in BugDay Bangkok 2012
How to live with agile - Aware in BugDay Bangkok 2012How to live with agile - Aware in BugDay Bangkok 2012
How to live with agile - Aware in BugDay Bangkok 2012Prathan Dansakulcharoenkit
 
Business considerations for node.js applications
Business considerations for node.js applicationsBusiness considerations for node.js applications
Business considerations for node.js applicationsAspenware
 
A Second Look at Unit Testing by Roy Osherove
A Second Look at Unit Testing by Roy OsheroveA Second Look at Unit Testing by Roy Osherove
A Second Look at Unit Testing by Roy OsheroveRoy Osherove
 
Deependra pal, amul ppt , factor analysis
Deependra pal, amul ppt , factor analysis Deependra pal, amul ppt , factor analysis
Deependra pal, amul ppt , factor analysis Deependra Pal
 
Numerical assignment
Numerical assignmentNumerical assignment
Numerical assignmentAnupam Kumar
 
Pmi project cost managment
Pmi project cost managmentPmi project cost managment
Pmi project cost managmentAhmed Zein
 
Easing Reconciling Oracle Inventory and General Ledger with Simplified Proced...
Easing Reconciling Oracle Inventory and General Ledger with Simplified Proced...Easing Reconciling Oracle Inventory and General Ledger with Simplified Proced...
Easing Reconciling Oracle Inventory and General Ledger with Simplified Proced...KPIT
 
[Ashish tewari] modern_control_design_with_matlab_(book_fi.org)
[Ashish tewari] modern_control_design_with_matlab_(book_fi.org)[Ashish tewari] modern_control_design_with_matlab_(book_fi.org)
[Ashish tewari] modern_control_design_with_matlab_(book_fi.org)☁ Sourabh Kumar
 
Path Spss Amos (1)
Path Spss Amos (1)Path Spss Amos (1)
Path Spss Amos (1)OUM SAOKOSAL
 
Bank Fee Audit Services Power Point.2012
Bank Fee Audit Services Power Point.2012Bank Fee Audit Services Power Point.2012
Bank Fee Audit Services Power Point.2012Chiladan
 

Similar a Industry - Precise Detection of Un-Initialized Variables in Large, Real-life COBOL Programs in Presence of Un-realizable Paths (20)

Developing and Visualizing Live Model Queries
Developing and Visualizing Live Model QueriesDeveloping and Visualizing Live Model Queries
Developing and Visualizing Live Model Queries
 
How to Introduce Continuous Delivery
How to Introduce Continuous DeliveryHow to Introduce Continuous Delivery
How to Introduce Continuous Delivery
 
Nanometer Testing: Challenges and Solutions
Nanometer Testing: Challenges and SolutionsNanometer Testing: Challenges and Solutions
Nanometer Testing: Challenges and Solutions
 
Abraham q3 2008
Abraham q3 2008Abraham q3 2008
Abraham q3 2008
 
Behavioral Constraints for Services
Behavioral Constraints for ServicesBehavioral Constraints for Services
Behavioral Constraints for Services
 
How to live with agile - Aware in BugDay Bangkok 2012
How to live with agile - Aware in BugDay Bangkok 2012How to live with agile - Aware in BugDay Bangkok 2012
How to live with agile - Aware in BugDay Bangkok 2012
 
Business considerations for node.js applications
Business considerations for node.js applicationsBusiness considerations for node.js applications
Business considerations for node.js applications
 
Agile metrics and quality
Agile metrics and qualityAgile metrics and quality
Agile metrics and quality
 
A Second Look at Unit Testing by Roy Osherove
A Second Look at Unit Testing by Roy OsheroveA Second Look at Unit Testing by Roy Osherove
A Second Look at Unit Testing by Roy Osherove
 
Deependra pal, amul ppt , factor analysis
Deependra pal, amul ppt , factor analysis Deependra pal, amul ppt , factor analysis
Deependra pal, amul ppt , factor analysis
 
CA&M AP at MIT 06152012
CA&M AP at MIT 06152012CA&M AP at MIT 06152012
CA&M AP at MIT 06152012
 
Numerical assignment
Numerical assignmentNumerical assignment
Numerical assignment
 
MOINC Agent
MOINC AgentMOINC Agent
MOINC Agent
 
Pmi project cost managment
Pmi project cost managmentPmi project cost managment
Pmi project cost managment
 
Zab dsn-2011
Zab dsn-2011Zab dsn-2011
Zab dsn-2011
 
Easing Reconciling Oracle Inventory and General Ledger with Simplified Proced...
Easing Reconciling Oracle Inventory and General Ledger with Simplified Proced...Easing Reconciling Oracle Inventory and General Ledger with Simplified Proced...
Easing Reconciling Oracle Inventory and General Ledger with Simplified Proced...
 
FASTEST: Test Case Generation from Z Specifications
FASTEST: Test Case Generation from Z SpecificationsFASTEST: Test Case Generation from Z Specifications
FASTEST: Test Case Generation from Z Specifications
 
[Ashish tewari] modern_control_design_with_matlab_(book_fi.org)
[Ashish tewari] modern_control_design_with_matlab_(book_fi.org)[Ashish tewari] modern_control_design_with_matlab_(book_fi.org)
[Ashish tewari] modern_control_design_with_matlab_(book_fi.org)
 
Path Spss Amos (1)
Path Spss Amos (1)Path Spss Amos (1)
Path Spss Amos (1)
 
Bank Fee Audit Services Power Point.2012
Bank Fee Audit Services Power Point.2012Bank Fee Audit Services Power Point.2012
Bank Fee Audit Services Power Point.2012
 

Último

Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Neo4j
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 

Último (20)

Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 

Industry - Precise Detection of Un-Initialized Variables in Large, Real-life COBOL Programs in Presence of Un-realizable Paths

  • 1. Precise Detection of Un-Initialized Variables In Large, Real-life Cobol Programs In Presence Of Unrealizable Paths Adnan Contractor Ravindra Naik Rahul Jiresal 1
  • 3. Typical Maintenance Scenario Failure Change Request • Re-produce Code Changes • Analysis • Understand • Testing • Impact Analysis • Production Conjecture Analysis Changes Delivered Code Change Failures & Efforts Automated Tools 3
  • 4. Case Study Background Concerns • Core banking product • Repeated failure of transactions • Stable back-office COBOL • Not so-easily-reproducible failures applications • Longer turn-around time • Over 1 million transactions daily Examples… Transaction for Recurring Deposit account change of base A Forex transaction closure fails whenever branch fails failing only after 6PM triggered at the same time at randomly two different branches Not yet 5 days 8 months fixed 1 day 10 days 4
  • 5. Case Study Branch A Request for RD acct closure Check Balance Notify balance to customer Customer Banker Request for RD acct closure Branch B Check Balance Notify balance to customer Fire Close acct command Customer Banker Fire Close acct 5 command
  • 6. Un-Initialized Variables double calculatePoints 1 (char cardType, double amt) 2 1 float rate; double points; 4 2 if (cardType == ‘G’) 3 3 rate = 0.005; 4 elseif (cardType == ‘S’) 5 5 rate = 0.001; 6 6 points = amt * rate; 7 return points; 7 6
  • 7. Results Un-Initialized Program Variables Instances AB0000 1317 6090 CR0000 1173 4313 CR0025 336 871 CR7070 74 253 AB0024 59 120 Context-insensitive Analysis Results 7
  • 8. Results Un-Initialized Variables 7000 6000 5000 4000 3000 Context-insensitive 2000 Context-sensitive 1000 0 AB0000 CR0000 CR0025 CR7070 AB0024 Program 8
  • 9. Context-Insensitive Analysis Paragraph • Paragraph - A set of statements 1. A. represented by a label. Can be executed 2. MOVE 0 TO VA as a unit. 3. PERFORM P. 4. 5. B. 6. MOVE 1 TO VB • Perform - Using PERFORM statement 7. MOVE 1 TO VA Perform one can execute a paragraph. 8. PERFORM P 9. MOVE VB TO MV. 10. 11. P. 12. MOVE 5 TO VF. 9
  • 10. Context-Insensitive Analysis 1. A. E 2. MOVE 0 TO VA E 3. PERFORM P. E 4. 6 5. B. 2 6. MOVE 1 TO VB VA 12 7 7. MOVE 1 TO VA 8. PERFORM P 3 VA, VB 9. MOVE VB TO MV. 8 10. X 11. P. 12. MOVE 5 TO VF. X 9 X 10
  • 11. Context-Insensitive Analysis 1. A. VA E 2. MOVE 0 TO VA E 3. PERFORM P. E 4. 6 5. B. 2 6. MOVE 1 TO VB VA 12 7 7. MOVE 1 TO VA 8. PERFORM P 3 VA, VB 9. MOVE VB TO MV. 8 10. X 11. P. 12. MOVE 5 TO VF. X 9 X 11
  • 12. Context-Insensitive Analysis 1. A. VA E 2. MOVE 0 TO VA E 3. PERFORM P. E 4. 6 5. B. 2 6. MOVE 1 TO VB VA 12 7 7. MOVE 1 TO VA 8. PERFORM P 3 VA, VB 9. MOVE VB TO MV. 8 10. X 11. P. 12. MOVE 5 TO VF. X 9 VA, VF X 12
  • 13. Context-Insensitive Analysis 1. A. VA E 2. MOVE 0 TO VA E 3. PERFORM P. E 4. 6 5. B. 2 6. MOVE 1 TO VB VA 12 7 7. MOVE 1 TO VA 8. PERFORM P 3 VA, VB 9. MOVE VB TO MV. VA, 8 10. VF X VA, 11. P. VF 12. MOVE 5 TO VF. X 9 VA, VF X 13
  • 14. Context-Insensitive Analysis 1. A. VA E 2. MOVE 0 TO VA E 3. PERFORM P. E 4. 6 5. B. 2 6. MOVE 1 TO VB VA 12 7 7. MOVE 1 TO VA 8. PERFORM P 3 VA, VB 9. MOVE VB TO MV. VA, 8 10. VF X VA, 11. P. VF 12. MOVE 5 TO VF. X 9 VA, VF X 14
  • 15. Unrealizable Paths E E E 6 2 12 7 3 8 X X 9 X 15
  • 16. Design Challenges Perform Chain Paragraph level information Paragraph range level information Data flow equations: NBottom = [ Ntop – KillSump ] ∪ GenSump GenSump = Defined (p) KillSump = Ø 16
  • 17. Context-Insensitive Analysis 1. A. E 2. MOVE 0 TO VA E 3. PERFORM P. E 4. 6 5. B. 2 6. MOVE 1 TO VB VA 12 7 7. MOVE 1 TO VA 8. PERFORM P 3 VA, VB 9. MOVE VB TO MV. 8 10. X 11. P. 12. MOVE 5 TO VF. X 9 X 17
  • 18. Context-Insensitive Analysis 1. A. E 2. MOVE 0 TO VA E 3. PERFORM P. E 4. 6 5. B. 2 6. MOVE 1 TO VB VA 12 7 7. MOVE 1 TO VA 8. PERFORM P 3 VA, VB 9. MOVE VB TO MV. 8 10. X 11. P. 12. MOVE 5 TO VF. X 9 X 18
  • 19. Context-Insensitive Analysis 1. A. E 2. MOVE 0 TO VA E 3. PERFORM P. E 4. 6 5. B. 2 6. MOVE 1 TO VB VA 12 7 7. MOVE 1 TO VA 8. PERFORM P 3 VA, VB 9. MOVE VB TO MV. 8 10. X 11. P. 12. MOVE 5 TO VF. X 9 VF X 19
  • 20. Context-Insensitive Analysis 1. A. E 2. MOVE 0 TO VA E 3. PERFORM P. E 4. 6 5. B. 2 6. MOVE 1 TO VB VA 12 7 7. MOVE 1 TO VA 8. PERFORM P 3 VA, VB 9. MOVE VB TO MV. VA, 8 10. VF X VA, 11. P. 12. MOVE 5 TO VF. X 9 VB VF ,VF X 20
  • 21. Results Un-Initialized Program Variables Instances AB0000 737 2945 CR0000 838 3001 CR0025 187 437 CR7070 30 60 AB0024 48 103 Context-sensitive Analysis Results 21
  • 22. Heuristics Bad Code Smells Removal Utility-Parameter based Prioritization Fan-in based Prioritization 22
  • 23. Heuristics Results 3500 3000 2500 Context Sensitive 2000 Analysis Code Smell Removal 1500 1000 Utility Parameter removal 500 0 AB0000 CR0000 CR0025 CR7070 23
  • 24. Future Work Heuristics – Error-path pruning – Output-variable based Dynamic Analysis Un-Initialized path detection 24
  • 25. Key Learning Precise detection of un-initialized variables Heuristics Realizable data-flow analysis across Paragraphs for COBOL Technique can be extended to other analyses – defect detection, program understanding, code architecture discovery 25
  • 26. Thank You 26