Summarizing the Content of Large Traces to Facilitate the Understanding of the Behaviour of a Software System Abdelwahab Hamou-Lhadj Timothy Lethbridge.

Slides:



Advertisements
Similar presentations
Pseudo-Relevance Feedback For Multimedia Retrieval By Rong Yan, Alexander G. and Rong Jin Mwangi S. Kariuki
Advertisements

Team Skill 5: Refining the Use Cases Lecture 11. Advantages of Use Cases They are easy to write Written in users language Provide cohesive, related threads.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12Slide 1 Software Design l Objectives To explain how a software design may be represented.
IT Requirements Capture Process. Motivation for this seminar Discovering system requirements is hard. Formally testing use case conformance is hard. We.
Chapter 7 – Object-Oriented Design
Ch 12: Object-Oriented Analysis
© S. Demeyer, S. Ducasse, O. Nierstrasz Reverse Engineering.1 2. Reverse Engineering What and Why Setting Direction  Most Valuable First First Contact.
4.1 Blended approaches: Information Engineering IMS Information Systems Development Practices.
Use Case Diagram © copyright 2001 SNU OOPSLA Lab..
Software Testing and Quality Assurance
1 Static Testing: defect prevention SIM objectives Able to list various type of structured group examinations (manual checking) Able to statically.
Semantic Web and Web Mining: Networking with Industry and Academia İsmail Hakkı Toroslu IST EVENT 2006.
Development Processes UML just is a modeling technique, yet for using it we need to know: »what do we model in an analysis model? »what do we model in.
Information Retrieval February 24, 2004
The Architecture Design Process
Discrete-Event Simulation: A First Course Steve Park and Larry Leemis College of William and Mary.
© 2005 Prentice Hall4-1 Stumpf and Teague Object-Oriented Systems Analysis and Design with UML.
Computers: Tools for an Information Age
1 Objectives To introduces the concept of software Design. To introduce the concept of Object- Oriented Design (OOD). To Define various aspects about object.
Software Requirements
Java Programming, 3e Concepts and Techniques Chapter 1 An Introduction to Java and Program Design.
© Copyright Eliyahu Brutman Programming Techniques Course.
Chapter 1 Software Engineering. Homework ► Read Section 2.2 (pages 79-98) ► Answer questions: ► 7, 8, 11, 12, & 13 on page 134. ► Answer on paper, hand.
Software Architecture Quality. Outline Importance of assessing software architecture Better predict the quality of the system to be built How to improve.
Course Instructor: Aisha Azeem
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development.
1 An introduction to design patterns Based on material produced by John Vlissides and Douglas C. Schmidt.
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Use Cases Descriptions and Use Case Models.
1 BTEC HNC Systems Support Castle College 2007/8 Systems Analysis Lecture 9 Introduction to Design.
IMSS005 Computer Science Seminar
Team Skill 6: Building the Right System From Use Cases to Implementation (25)
1 Abstracting the Content of System Call Traces Waseem Fadel Abdelwahab Hamou-Lhadj Department of Electrical and Computer Engineering Concordia University.
An Introduction to Design Patterns. Introduction Promote reuse. Use the experiences of software developers. A shared library/lingo used by developers.
1 ECE 453 – CS 447 – SE 465 Software Testing & Quality Assurance Instructor Kostas Kontogiannis.
1 Knowledge & Knowledge Management “Knowledge is power” to “Sharing K is power” Yaseen Hayajneh, PhD.
Requirements as Usecases Capturing the REQUIREMENT ANALYSIS DESIGN IMPLEMENTATION TEST.
Quality Software Project Management Software Size and Reuse Estimating.
Sept Tracing Status Update - Sept Montreal - Timothy Lethbridge Trace-Directed Modelling Status Update Timothy C. Lethbridge University.
Hassen Grati, Houari Sahraoui, Pierre Poulin DIRO, Université de Montréal Extracting Sequence Diagrams from Execution Traces using Interactive Visualization.
PROC-1 1. Software Development Process. PROC-2 A Process Software Development Process User’s Requirements Software System Unified Process: Component Based.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University July 21, 2008WODA.
The Software Development Process
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.
Chapter 5: Software Re-Engineering Omar Meqdadi SE 3860 Lecture 5 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Toulouse, September 2003 Page 1 JOURNEE ALTARICA Airbus ESACS  ISAAC.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Generating Software Documentation in Use Case Maps from Filtered Execution Traces Edna Braun, Daniel Amyot, Timothy Lethbridge University of Ottawa, Canada.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
M1G Introduction to Programming 2 3. Creating Classes: Room and Item.
® IBM Software Group © 2009 IBM Corporation Essentials of Modeling with the IBM Rational Software Architect, V7.5 Module 15: Traceability and Static Analysis.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 7: Focusing on Users and Their Tasks.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 1 Extracting Sequence.
11 Software Design CSCU 411 Software Engineering.
Chapter 1 Software Engineering Principles. Problem analysis Requirements elicitation Software specification High- and low-level design Implementation.
Of An Expert System.  Introduction  What is AI?  Intelligent in Human & Machine? What is Expert System? How are Expert System used? Elements of ES.
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
Object-Oriented Software Engineering Practical Software Development using UML and Java Modelling with Classes.
1 Budapest University of Technology and Economics Department of Measurement and Information Systems Budapest University of Technology and Economics Fault.
© SERG Reverse Engineering (Software Maintenance & Reengineering) Software Maintenance Managing the processes of system change.
OBJECT ORIENTED VS STRUCTURED WHICH ONE IS YOUR CHOICE.
1 Software Requirements Descriptions and specifications of a system.
 System Requirement Specification and System Planning.
Engineering Quality Software Week02 J.N.Kotuba1 SYST Engineering Quality Software.
WP4 Models and Contents Quality Assessment
Use Case Analysis Chapter 6.
Architecture Concept Documents
Unified Modeling Language
Requirements Analysis and Specification
Test Case Test case Describes an input Description and an expected output Description. Test case ID Section 1: Before execution Section 2: After execution.
Presentation transcript:

Summarizing the Content of Large Traces to Facilitate the Understanding of the Behaviour of a Software System Abdelwahab Hamou-Lhadj Timothy Lethbridge ICPC 2006 Athens, Greece

2 Motivation Software engineers need to explore traces  To understand an unexpected behaviour  For general understanding Traces tend to be excessively large and complex   Hard to understand Tools are needed  Studies conducted at QNX and Mitel confirm this

3 Limitations of Existing Techniques Existing tools have key limitations: 1. Manual exploration has to be done bottom-up:  Start from a full, complex trace  Apply filters and searches to uncover needed information  Often difficult to perform 2. They do not interoperate well  Limiting sharing of data and techniques

4 Trace Summarization Goal: Permit top-down or middle-out exploration of traces  Top-down: start with small summary, then selectively expand  Middle-out: start with a much simplified trace, then selectively contract and expand  Initial higher-level trace view enables quicker comprehension  Searching in hidden details could still be available

5 What is a Trace Summary? Definition of a text summary (S. K. Jones)  “a derivative of a source text condensed by selection and/or generalization on important content” Summarizing traces is analogous to summarizing text  Select the most important information or removing information of least importance  Generalize by treating similar things as the same Showing only one instance of an iteration or recursion Treating similar elements and patterns as if they were the same

6 Content Selection in Traces Find implementation details and remove them  Calls to well-known libraries, classes and functions of little interest to the abstract Math functions, string comparison, user interface calls (perhaps), etc.  Automatically-detected utilities discussed later

7 Content Generalization in Traces Replace specific content with more abstract information  Show only one instance of an iteration or recursion  Treat similar sequences of events as if they were the same by varying a similarity function used to compare sequences of calls E.g. ABC, ABBC, ABABABC --> ABC  Identify patterns found in many traces A library of these can be built, so each time one works with a similar trace, known patterns can be flagged Can be replaced with a user-defined label

8 Trace Summarization Process  Step 1: Set the parameters for the summarization process oWhen to stop the process - How much detail is desired oKnown implementation details (libraries etc.) oKnown patterns oSimilarity function to use oOther algorithm parameters  Step 2: Run the selection and generalization  Step 3: Output the result in a format that can be manipulated by the analyst

9 Trace Summarization Process (Cont.) After Step 3, the maintainer can evaluate the result, and if not satisfied:  Adjust the parameters and run the process again, or  Manually manipulate the output Contract the trace further Expand various branches

10 A Key Step: Detecting Utilities A utility:  Is something called from several places  Can be packaged in a non-utility module  Is used to facilitate implementation rather than being a core part of the architecture

11 Utilityhood Metric N: size of the static call graph built from the system under study U(r) ranges from  0 not a utility)  1 (most likely to be a utility) U(r) = N Fanin(r) x Log(N) Log() Fanout(r) + 1 N

12 Automatic Detection of Utilities RoutinesFaninFanout U r r r r r r r r3 r4 r2 r6 r5 r7 r1 Utilities at narrower scopes r5

13 Some Considerations To detect utilities, it is important to have available the static call graph  Instead of the dynamic call graph The dynamic graph will give a false impression of the extent to which something is a utility  Polymorphic calls can be resolved using various approaches in the literature Hard to determine the scope of a utility if the system architecture is not clear  Architecture recovery techniques can be a useful adjunct

14 Case Study Target System:  Weka System: Machine learning algorithms  Object-oriented, written in Java  10 packages, 147 classes, 1642 public methods, and 95 KLOC. Process Description:  Instrument the system  Run the system by selecting a software feature  Generate a static call graph from the Weka structure  Apply the trace summarization algorithm

15 Setting the Algorithm Parameters Exit condition:  The number of distinct subtrees of the summary is 10% of the number of subtrees of the initial Implementation Details:  Accessing methods, constructors, methods of inner classes, user-defined utilities

16 Quantitative Results Initial Trace Step 2: Removal of implementation Details Step 3: Automatic Removal of Utilities Manual Manipulation Number of calls %32193%4530.5% Number of distinct subtrees %6724%2610% Number of distinct methods %5128%2614% Manual manipulation was performed using a trace analysis tool called SEAT

17 Validation The summary was converted into a UML sequence diagram Participants: Nine software engineers with good to excellent knowledge of Weka Evaluation focused on the ability of the summary to represent the main events of the trace in the subjective view of the participants

18 Main Questions Asked Q1. How would you rank the quality of the summary with respect to whether it captures the main interactions of the traced scenario? Q2. If you designed or had to design a sequence diagram (or any other behavioural model) for the traced feature while you were designing the Weka system, how similar do you think that your sequence diagram would be to the extracted summary? Q3. In your opinion, how effective can a summary of a trace be in software maintenance?

19 Feedback of the Participants QuestionsP1P2P3P4P5P6P7P8P9Average Q1 (Quality) Q2 (Diagram) Q3 (Effectiveness) ‘Very poor’ (score of 1) and ‘Excellent’ (score of 5)

20 Observations Participants agreed that  The summary is a good high-level representation of the traced feature  Summaries can help understand the dynamics of a poorly documented system The level of details needed varies from one participant to another  E.g. P3 (an expert) commented that more details might be needed  A tool that must allow manipulation of the level of details displayed

21 Conclusions Summarizing large traces can help understand the features of a system and causes of problems The approach  Uses a mix of selection and generalization  Facilitates quick iteration to arrive at the most useful summary in the eyes of the uer Detecting utilities with a utilityhood metric is important Case study results show that method is promising

22 Future Directions Experiments with many other traces to further validate the approach Improve tools to speed iteration and interactivity Explore variants on the approach to utility detection