Understanding the Behavior of Java Programs Tarja Systa Software Systems Lab. Tampere Univ. Sookmyung Women’s Univ. PSLAB Choi, yoon jeong.

Slides:



Advertisements
Similar presentations
UML Diagrams Jung Woo. What is UML? Standard language for specifying, visualizing, constructing, and documenting the artifacts of software systems, business.
Advertisements

© 2006 ITT Educational Services Inc. SE350 System Analysis for Software Engineers: Unit 9 Slide 1 Appendix 3 Object-Oriented Analysis and Design.
A Brief Introduction. Acknowledgements  The material in this tutorial is based in part on: Concurrency: State Models & Java Programming, by Jeff Magee.
Chapter 22 Object-Oriented Systems Analysis and Design and UML Systems Analysis and Design Kendall and Kendall Fifth Edition.
The Path to Multi-core Tools Paul Petersen. Multi-coreToolsThePathTo 2 Outline Motivation Where are we now What is easy to do next What is missing.
Automated creation of verification models for C-programs Yury Yusupov Saint-Petersburg State Polytechnic University The Second Spring Young Researchers.
Introduction To System Analysis and Design
Use-case Modeling.
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 15 Finalizing.
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.
Chapter 2: Developing a Program Extended and Concise Prelude to Programming Concepts and Design Copyright © 2003 Scott/Jones, Inc.. All rights reserved.
© 2008 IBM Corporation Behavioral Models for Software Development Andrei Kirshin, Dolev Dotan, Alan Hartman January 2008.
Chapter 12: Simulation and Modeling Invitation to Computer Science, Java Version, Third Edition.
Strategies to relate the program and problem domains using code instrumentation Mario Marcelo Berón University of Minho Pedro Rangel Henriques University.
LECTURE 5 SEQUENCE DIAGRAM 1. INTRODUCTION – SYSTEM SEQUENCE DIAGRAM A system sequence diagram is a fast and easily created artifact that illustrates.
- Chaitanya Krishna Pappala Enterprise Architect- a tool for Business process modelling.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
CMPT 275 Software Engineering
Introduction To System Analysis and design
University of Palestine Department of Information Technology Done by: Montaser El sabea Supervisors: yassmen El Bobo Unified Modeling Language.
PRESENTATION 2 Sri Raguraman CIS 895 Kansas State University.
Software Construction and Evolution - CSSE 375 Reverse Engineering Tools and Techniques Shawn & Steve Left – Reengineering from the competition can be.
Chapter 7 Structuring System Process Requirements
Class Specification Implementation Graph By: Njume Njinimbam Chi-Chang Sun.
Magnetic Field Measurement System as Part of a Software Family Jerzy M. Nogiec Joe DiMarco Fermilab.
METACASE. WHAT THIS PRESENTATION IS ABOUT  What’s META MODELING?  What’s METACASE?  METAEDIT+ 5.1 EVALUTION PROGRAM  Diagram and its kinds.
Introduction To System Analysis and Design
Programming in Java Unit 3. Learning outcome:  LO2:Be able to design Java solutions  LO3:Be able to implement Java solutions Assessment criteria: 
CS266 Software Reverse Engineering (SRE) Reversing and Patching Java Bytecode Teodoro (Ted) Cipresso,
Software Engineering Research paper presentation Ali Ahmad Formal Approaches to Software Testing Hierarchal GUI Test Case Generation Using Automated Planning.
Debugging in Java. Common Bugs Compilation or syntactical errors are the first that you will encounter and the easiest to debug They are usually the result.
14004 L6 - © D. Deugo, 2003 – 2008 Lecture 6 Towards Testable Interaction Diagrams (A theoretical lecture with few examples…  )
Interaction Models (2): Sequence Diagrams Extracted from textbook: Object Oriented Modeling and Design with UML M. Blaha, J. Rumbaugh 1.
Generic API Test tool By Moshe Sapir Almog Masika.
1 Systems Analysis and Design in a Changing World, Thursday, January 18, 2007.
1 ISA&D7‏/8‏/ ISA&D7‏/8‏/2013 Methodologies of the SDLC Traditional Approach to SDLC Object-Oriented Approach to SDLC CASE Tools.
Object-Oriented Analysis and Design Fall 2009.
Chapter 5 Models and UML Notation for The Object-Oriented Approach.
UML diagrams What is UML UML diagrams –Static modeoing –Dynamic modeling 1.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
CIS 112 Exam Review. Exam Content 100 questions valued at 1 point each 100 questions valued at 1 point each 100 points total 100 points total 10 each.
CASE/Re-factoring and program slicing
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University IWPSE 2003 Program.
PRESENTATION 2 Sri Raguraman CIS 895 Kansas State University.
© 2006, National Research Council Canada © 2006, IBM Corporation Solving performance issues in OTS-based systems Erik Putrycz Software Engineering Group.
OMT Modeling 1. Object Model : presented by the object model and the data dictionary. 2. Dynamic Model: presented by the state diagrams and event flow.
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
Boris Milašinović Faculty of Electrical Engineering and Computing University of Zagreb, Croatia 15th Workshop on "Software Engineering Education and Reverse.
CIS 4910 Information Systems Development Project Project Documentation.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 1 Extracting Sequence.
Vertical Profiling : Understanding the Behavior of Object-Oriented Applications Sookmyung Women’s Univ. PsLab Sewon,Moon.
UML Course Instructor: Rizwana Noor. Overview  Modeling  What is UML?  Why UML?  UML Diagrams  Use Case  Components  Relationships  Notations.
Object Oriented Analysis & Design By Rashid Mahmood.
Unified Modeling Language. What is UML? Standard language for specifying, visualizing, constructing, and documenting the artifacts of software systems,
1 Use Cases Object-Oriented Modeling and Design with UML (Second Edition) Blaha & Rumbaugh Sections 7.1, 8.1.
UML Chapter 17.
UML Diagrams By Daniel Damaris Novarianto S..
Software Architecture ATAM Process Presentation
Object-Oriented Analysis and Design
Chapter 11: Collaboration Diagram - PART1
Unified Modeling Language
Introduction to Unified Modeling Language (UML)
Activity Diagram.
UML Diagrams Jung Woo.
Business System Development
UML dynamic Modeling (Behavior Diagram)
Behavioral Models for Software Development
Test Case Test case Describes an input Description and an expected output Description. Test case ID Section 1: Before execution Section 2: After execution.
Chapter 22 Object-Oriented Systems Analysis and Design and UML
Presentation transcript:

Understanding the Behavior of Java Programs Tarja Systa Software Systems Lab. Tampere Univ. Sookmyung Women’s Univ. PSLAB Choi, yoon jeong

Outline of the talk

Introduction Dynamic modeling using SCED Collecting information Managing the explosion of the event trace A case study

Intorduction

Introduction Dynamic reverse engineering techniques Experimental environment called Shimba SCED is a dynamic modeling tool Many dynamic reverse engineering tool  use variations of MSCs to visualize the run-time behavior of the target object-oriented sw systems In shimba, visualization has been taken one step further Demonstrates how Shimba aids understanding the behavior of java program

Dynamic modeling using SCED

SCED is a prototype environment  User interaction with SCED involves two independent editors  Scenario diagram editor  State diagram editor SCED scenario diagram notation extend basic MSC notation with new concept  New concept include action boxes, assertion boxes, state boxes, conditional constructs, repetition constructs, and subscenarios

Dynamic modeling using SCED

Collecting Information

Collecting information To collect event trace information  The target Java system is executed under a customized sdk debugger Event trace information is generated when methods are called and exceptions are thrown Reduce size of generated event trace dramatically while still containing the information of interest In Shimba, information is extracted from the byte code Java class files Information can be viewed and examined using the Rigi reverse engineering environment

Collecting information To capture the event trace information, breakpoints are set for the debugger  The dynamic control flow information is also generated using breakpoints Conditional statements indicate the branching points in the control flow

Managing the explosion of the event trace

Managing the explosion of the event trace Pattern matching algorithm In Shimba, the original scenario diagrams can be modified by applying Boyer-Moore string matching algorithm to them

A Case study

A case study FUJABA We use Shimba to analyze the behavior of specific objects and methods and to seek answers to questions of the following form  How dose a certain part of the software behave?  What are the methods that have call dependencies with this part?  What is the overall run-time usage of the method or the object?

A case study  What is the dynamic control flow of the method or the object?  Was the run-time usage diversified enough to produce information that covers all possible use cases?  How can a certain state in the object’s life be reached and how dose the execution continue?  To which messages has an object responded at a certain state during its lifetime?  Dose the run-time behavior contain regular behavioral pattern that are repeated? If it does, what are the patterns and in which circumstance do they occur?

Modeling the internal behavior of a method Figure 2 Show a dialog box used in FUJABA for defining and editing parameters of method By running few scripts in Rigi, the method modifiyButton_actionPerformed(ActionEvent) of class PEParameter, nodes that depend on it can be easily separated form the rest of the system.  This is depicted in Figure 3.

Modeling the internal behavior of a method

The debugger set breakpoints automatically for the methods and constructors visualized in Figure 3  Dialong in Figure 2 was used for times in the following way Figure 4 shows the scenario diagram resulting from the first case Figure 5 show the dynamic control flow of the method modifiyButton_actionPerformed(ActionEvent),of class PEParameter, synthesized from four scenario diagrams

Modeling the internal behavior of a method

A state diagram  It is a powerful and natural graphical representation to examine the dynamic control flow and the internal behavior of the method Dynamic control flows are useful for detecting decision making, for profiling, for investigating code usage, etc. Information is generated automatically based on the usage of the target software, the user can get only those pieces of information

Modeling the internal behavior of a method When generating information about the object interaction only, a smaller and slightly more abstract state diagram diagram shown in Figure 6 resultied.

Modeling the internal behavior of a method

Structuring scenarios with behavioral pattrens In Shimba, SCED scenario diagrams provide a view and an editor to browse the exact sequential event trace information Figure 7 shows one of the scenario diagrams after it has been modified by the scenario structuring algorithms

Modeling the internal behavior of a method

Figure 8 shows the contents of the subscenario box subsc_7.sc.

Modeling the internal behavior of a method

Modeling the behavior of a thread