Computer Science Automated Software Engineering Research (http://ase.csc.ncsu.edu)‏ Mining Exception-Handling Rules as Conditional Association.

Slides:



Advertisements
Similar presentations
Seyedehmehrnaz Mireslami, Mohammad Moshirpour, Behrouz H. Far Department of Electrical and Computer Engineering University of Calgary, Canada {smiresla,
Advertisements

Mining Specifications Glenn Ammons, Dept. Computer Science University of Wisconsin Rastislav Bodik, Computer Science Division University of California,
Software Construction
Formal Specification of Topological Relations Erika Asnina, Janis Osis and Asnate Jansone Riga Technical University The 10th International Baltic Conference.
Automated creation of verification models for C-programs Yury Yusupov Saint-Petersburg State Polytechnic University The Second Spring Young Researchers.
SEERE, Neum 2009 Runtime verification of Java programs using ITL Vladimir Valkanov, Damyan Mitev Plovdiv, Bulgaria.
SE 450 Software Processes & Product Metrics Reliability: An Introduction.
Software engineering for real-time systems
1 SWE Introduction to Software Engineering Lecture 22 – Architectural Design (Chapter 13)
Winter Retreat Connecting the Dots: Using Runtime Paths for Macro Analysis Mike Chen, Emre Kıcıman, Anthony Accardi, Armando Fox, Eric Brewer
Swami NatarajanJuly 14, 2015 RIT Software Engineering Reliability: Introduction.
Stimulating reuse with an automated active code search tool Júlio Lins – André Santos (Advisor) –
Complex Security Policies Dave Andersen Advanced Operating Systems Georgia State University.
Application architectures
LÊ QU Ố C HUY ID: QLU OUTLINE  What is data mining ?  Major issues in data mining 2.
Software Reliability Categorising and specifying the reliability of software systems.
CSC2108 Lazy Abstraction on Software Model Checking Wai Sum Mong.
Software Testing Verification and validation planning Software inspections Software Inspection vs. Testing Automated static analysis Cleanroom software.
2012 National BDPA Technology Conference Creating Rich Data Visualizations using the Google API Yolanda M. Davis Senior Software Engineer AdvancED August.
272: Software Engineering Fall 2012 Instructor: Tevfik Bultan Lecture 17: Code Mining.
OpenAlea An OpenSource platform for plant modeling C. Pradal, S. Dufour-Kowalski, F. Boudon, C. Fournier, C. Godin.
Chapter 2 The process Process, Methods, and Tools
Dependency Tracking in software systems Presented by: Ashgan Fararooy.
Software Engineering Chapter 23 Software Testing Ku-Yaw Chang Assistant Professor Department of Computer Science and Information.
1 How to Apply Static and Dynamic Analysis in Practice © Software Quality Week ‘97 How to Apply Static and Dynamic Analysis in Practice - Otto Vinter Manager.
VeriFlow: Verifying Network-Wide Invariants in Real Time
Tao Xie Automated Software Engineering Group Department of Computer Science North Carolina State University
Graph Data Management Lab, School of Computer Science gdm.fudan.edu.cn XMLSnippet: A Coding Assistant for XML Configuration Snippet.
1 PARSEWeb: A Programmer Assistant for Reusing Open Source Code on the Web Suresh Thummalapenta and Tao Xie Department of Computer Science North Carolina.
Project Coordinators: Eduardo Santana de Almeida Silvio Romero de Lemos Meira Federal University of Pernambuco Informatics Center Recife Center for Advanced.
1 A Static Analysis Approach for Automatically Generating Test Cases for Web Applications Presented by: Beverly Leung Fahim Rahman.
1 ECE 453 – CS 447 – SE 465 Software Testing & Quality Assurance Instructor Kostas Kontogiannis.
COP 3530 PROGRAM, FILE & DATA STRUCTURES Syllabus Syllabus Lab Information Lab Information Overrides Overrides Questions? Questions?
CSC-682 Cryptography & Computer Security Sound and Precise Analysis of Web Applications for Injection Vulnerabilities Pompi Rotaru Based on an article.
Framework for the Development and Testing of Dependable and Safety-Critical Systems IKTA 065/ Supported by the Information and Communication.
Dynamic Analysis of Multithreaded Java Programs Dr. Abhik Roychoudhury National University of Singapore.
Mining Software Data: Code Tao Xie University of Illinois at Urbana-Champaign
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Software Verification, Validation and Testing.
Yazd University, Electrical and Computer Engineering Department Course Title: Advanced Software Engineering By: Mohammad Ali Zare Chahooki 1 Machine Learning.
Debug Concern Navigator Masaru Shiozuka(Kyushu Institute of Technology, Japan) Naoyasu Ubayashi(Kyushu University, Japan) Yasutaka Kamei(Kyushu University,
UHD::3320::CH121 DESIGN PHASE Chapter 12. UHD::3320::CH122 Design Phase Two Aspects –Actions which operate on data –Data on which actions operate Two.
1 Qualitative Reasoning of Distributed Object Design Nima Kaveh & Wolfgang Emmerich Software Systems Engineering Dept. Computer Science University College.
Alattin: Mining Alternative Patterns for Detecting Neglected Conditions Suresh Thummalapenta and Tao Xie Department of Computer Science North Carolina.
1 Yield Analysis and Increasing Engineering Efficiency Spotfire Users Conference 10/15/2003 William Pressnall, Scott Lacey.
Page 1 5/2/2007  Kestrel Technology LLC A Tutorial on Abstract Interpretation as the Theoretical Foundation of CodeHawk  Arnaud Venet Kestrel Technology.
Exploiting Code Search Engines to Improve Programmer Productivity and Quality Suresh Thummalapenta Advisor: Dr. Tao Xie Department of Computer Science.
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University IWPSE 2003 Program.
Software Development Problem Analysis and Specification Design Implementation (Coding) Testing, Execution and Debugging Maintenance.
1 Exposing Behavioral Differences in Cross-Language API Mapping Relations Hao Zhong Suresh Thummalapenta Tao Xie Institute of Software, CAS, China IBM.
Services of the Formal Digital Library (FDL) NA-MKM 2004 January 6, 2004 Lori Lorigo, Cornell University.
MNP1163/MANP1163 (Software Construction).  Minimizing complexity  Anticipating change  Constructing for verification  Reuse  Standards in software.
ESG-CET Meeting, Boulder, CO, April 2008 Gateway Implementation 4/30/2008.
Karlstad University Computer Science Design Contracts and Error Management External and internal errors and their contracts.
Bin Xin, Patrick Eugster, Xiangyu Zhang Dept. of Computer Science Purdue University {xinb, peugster, Lightweight Task Graph Inference.
CS223: Software Engineering
MOPS: an Infrastructure for Examining Security Properties of Software Authors Hao Chen and David Wagner Appears in ACM Conference on Computer and Communications.
2000 Research Overview Dr. Kim Mens Programming Technology Lab Vrije Universiteit Brussel.
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
CAR-Miner: Mining Exception-Handling Rules as Sequence Association Rules Suresh Thummalapenta and Tao Xie Department of Computer Science North Carolina.
Implementation of Classifier Tool in Twister Magesh khanna Vadivelu Shivaraman Janakiraman.
Experience Report: System Log Analysis for Anomaly Detection
Mapping Artificial Intelligence
Unit Test Pattern.
Software testing strategies 2
Cross-library API Recommendation Using Web Search Engines
Test Case Test case Describes an input Description and an expected output Description. Test case ID Section 1: Before execution Section 2: After execution.
Overview Activities from additional UP disciplines are needed to bring a system into being Implementation Testing Deployment Configuration and change management.
MAPO: Mining and Recommending API Usage Patterns
Transactions, Properties of Transactions
Presentation transcript:

Computer Science Automated Software Engineering Research ( Mining Exception-Handling Rules as Conditional Association Rules  Programmers often reuse APIs of existing frameworks or libraries to achieve high efficiency APIs throw exceptions during runtime errors Example: Session API of Hibernate framework throws HibernateException APIs expect client applications to implement recovery actions after exceptions occur Example: Session API expect client application to rollback uncommitted transactions after HibernateException occurs  Failure to handle exceptions results in Fatal issues: Example: Database lock won't be released if the transaction is not rolled back Approach Suresh Thummalapenta Challenges  Lack of Specifications: Automatic static or runtime verification tools require the knowledge of specifications that must be obeyed while reusing the API methods. These specifications are often not available due to lack of documentation Approach Problem Open Source Repositories Code Search Engine Code Analyzer VIOLATIONS Input Application Scanner Class 1 Class 2 … Code Downloader Local Source Code Repository Exception Flow Graphs Trace Generator Static Traces Trace Miner Conditional Association Rules Anomaly Detector  Code Downloader: Leverage a code search engine to gather relevant code examples for all classes of the input application  Code Analyser: Analyse code examples using heuristics as code examples are often partial and construct exception flow graphs  Trace Generator: static traces from flow graphs  Trace Miner: Generate conditional association rules by mining static traces  Anomaly Detector: Detect violations of rules in the input application Evaluation Tao Xie Example  Defect : No rollback done when SQLException occurs  Simple Specification: Connection Creation => Connection Rollback  Formal specification: FCc1 FCc2 FCa => FCe1 FCc1 -> OracleDataSource.getConnection FCc2 -> Connection.createStatement FCa -> Statement.executeUpdate FCe1 -> Connection.rollback  “ 4 -> 5 “ : Normal edge  “ 5 -> 13 “ : Exception edge  A trace for Node 7 4 -> 5 -> 6 -> 7 -> 15 -> 16 -> 17  Trace includes 3 parts Normal: 4 -> 5 -> 6 Function Call: 7 Exception: 15 -> 16 -> 17  Filtered trace 6 -> 7 -> 15 -> 16 Trace Miner  Input: Two sequence databases SDB1 and SDB2 with 1- to-1 mapping  Objective: Get association rules  Annotate sequences to get a single combined database  Apply frequent sequence mining algorithm [Wang and Han ICDE04]  Transform mined sequences into association rules Real Rules Distribution of Rules for Axion Detected Violations  HsqlDB developers responded on the first 10 reported defects Accepted 7 defects Accepted 3 defects  Reason given by HsqlDB developers for rejected defects “Although it can throw exceptions in general, it should not throw with HsqlDB, So it is fine” To appear In Proceedings of 31 st International Conference on Software Engineering (ICSE), Vancouver, Canada, May 16 – 24, 2009 This work is supported in part by NSF grant CCF and ARO grant W911NF