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

How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Nikki Chapple
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024TopCSSGallery
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkPixlogix Infotech
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observabilityitnewsafrica
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integrationmarketing932765
 

Último (20)

How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App Framework
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
 

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