Abstraction and Dynamic Analysis for the Reconstruction of Scenario Diagrams Bas Cornelissen Leon Moonen Arie van Deursen.

Slides:



Advertisements
Similar presentations
Software Architecture Reconstruction By Elizabeth Griffith Derived from a report done by Vijaya Datta Mayyuri.
Advertisements

Automated Evaluation of Runtime Object States Against Model-Level States for State-Based Test Execution Frank(Weifeng) Xu, Gannon University Dianxiang.
PRESENTATION 3 Sri Raguraman CIS 895 Kansas State University.
Component Interaction in Distributed Systems Nat Pryce Imperial College
Unified Modeling Language
Copyright W. Howden1 Lecture 8: O/O Programming. Copyright W. Howden2 Topics OO Programming Languages Developing programs from Designs –Class and method.
UML and the Software Lifecycle
Component and Deployment Diagrams
1 Program Comprehension through Dynamic Analysis Visualization, evaluation, and a survey Bas Cornelissen (et al.) Delft University of Technology IPA Herfstdagen,
System-Level Types for Component-Based Design Paper by: Edward A. Lee and Yuhong Xiong Presentation by: Dan Patterson.
Introduction to Software Design Chapter 1. Chapter 1: Introduction to Software Design2 Chapter Objectives To become familiar with the software challenge.
1 Exception and Event Handling (Based on:Concepts of Programming Languages, 8 th edition, by Robert W. Sebesta, 2007)
UML Sequence Diagrams Michael L. Collard, Ph.D. Department of Computer Science Kent State University.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
1 Introduction to UML DIAGRAMS & CLASS DIAGRAM Chapter 7,8 主講人 : 許勝杰
Object-oriented Design CSCI 5801: Software Engineering.
Practical Object-Oriented Design with UML 2e Slide 1/1 ©The McGraw-Hill Companies, 2004 PRACTICAL OBJECT-ORIENTED DESIGN WITH UML 2e Chapter 2: Modelling.
Database Systems Group Department for Mathematics and Computer Science Lars Hamann, Martin Gogolla, Mirco Kuhlmann OCL-based Runtime Monitoring of JVM.
Object-Oriented Software Testing. C-S 5462 Object-Oriented Software Testing Research confirms that testing methods proposed for procedural approach are.
PRESENTATION 2 Sri Raguraman CIS 895 Kansas State University.
1 3. Implementing Web Services 1.Create SOAP proxy interfaces and WSDL based service descriptions 2.Register/publish services 3.Stores service descriptions.
(C) 2010 Pearson Education, Inc. All rights reserved. Java™ How to Program, 8/e.
Lecture 9 Polymorphism Richard Gesick.
Introductory Software Engineering with a Focus on Dependency Management Christine Hofmeister.
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 20 Object-Oriented.
Modularizing Web Services Management with AOP María Agustina Cibrán, Bart Verheecke { Maria.Cibran, System and Software Engineering.
Software Engineering Research paper presentation Ali Ahmad Formal Approaches to Software Testing Hierarchal GUI Test Case Generation Using Automated Planning.
Aspect Oriented Programming Sumathie Sundaresan CS590 :: Summer 2007 June 30, 2007.
OOP Class Lawrence D’Antonio Lecture 3 An Overview of C++
Modeling Shari L. Pfleeger and Joanne M. Atlee, Software Engineering: Theory and Practice, 4 th edition, Prentice Hall, Hans Van Vliet, Software.
Summarizing the Content of Large Traces to Facilitate the Understanding of the Behaviour of a Software System Abdelwahab Hamou-Lhadj Timothy Lethbridge.
Team Think For You. Outline  Introduction  Process  Requirements Engineering  Architecture  Detailed Design  Testing  Demo  Extensibility  Conclusions.
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
SWE 316: Software Design and Architecture Objectives Lecture # 18 Introduction to Components SWE 316: Software Design and Architecture To learn:  benefits.
1/26 On-demand Learning Series Software Engineering of Web Application - Object-Oriented Development & UML Hunan University, Software School.
Logical view –show classes and objects Process view –models the executables Implementation view –Files, configuration and versions Deployment view –Physical.
DynaRIA: a Tool for Ajax Web Application Comprehension Dipartimento di Informatica e Sistemistica University of Naples “Federico II”, Italy Domenico Amalfitano.
PRESENTATION 2 Sri Raguraman CIS 895 Kansas State University.
Understanding the Behavior of Java Programs Tarja Systa Software Systems Lab. Tampere Univ. Sookmyung Women’s Univ. PSLAB Choi, yoon jeong.
Software Engineering Emphasis for Engineering Computing Courses William Hankley Computing & Information Sciences Kansas State University.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Testing OO software. State Based Testing State machine: implementation-independent specification (model) of the dynamic behaviour of the system State:
Generating Software Documentation in Use Case Maps from Filtered Execution Traces Edna Braun, Daniel Amyot, Timothy Lethbridge University of Ottawa, Canada.
1 CSE 331 Model/View Separation and Observer Pattern slides created by Marty Stepp based on materials by M. Ernst, S. Reges, D. Notkin, R. Mercer, Wikipedia.
DØ Offline Reconstruction and Analysis Control Framework J.Kowalkowski, H.Greenlee, Q.Li, S.Protopopescu, G.Watts, V.White, J.Yu.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 1 Extracting Sequence.
Class Relationships Lecture Oo08 Polymorphism. References n Booch, et al, The Unified Modeling Language User Guide, Chapt 10 p.125 n Fowler & Scott, UML.
Modeling Shari L. Pfleeger and Joanne M. Atlee, Software Engineering: Theory and Practice, 4 th edition, Prentice Hall, Hans Van Vliet, Software.
Maikel Leemans Wil M.P. van der Aalst. Process Mining in Software Systems 2 System under Study (SUS) Functional perspective Focus: User requests Functional.
WELCOME TO OUR PRESENTATION UNIFIED MODELING LANGUAGE (UML)
Java Programming: Guided Learning with Early Objects Chapter 9 Inheritance and Polymorphism.
Slide 1 Unified Modeling Language, Version 2.0 Object-Oriented SAD.
SWE 434 SOFTWARE TESTING AND VALIDATION LAB2 – INTRODUCTION TO JUNIT 1 SWE 434 Lab.
Appendix 3 Object-Oriented Analysis and Design
Object-Oriented Analysis and Design
Introduction to JUnit CS 4501 / 6501 Software Testing
Lecture 23 Polymorphism Richard Gesick.
Names, Binding, and Scope
Unified Modeling Language
Modeling Shari L. Pfleeger and Joanne M. Atlee, Software Engineering: Theory and Practice, 4th edition, Prentice Hall, Hans Van Vliet, Software Engineering:
Chapter 20 Object-Oriented Analysis and Design
Java – Inheritance.
Polymorphism CT1513.
Review CSE116 2/21/2019 B.Ramamurthy.
Decentralized Model-Based Testing of Distributed Systems
Interactive Exploration of Reverse-Engineered UML Sequence Diagrams
Inheritance and Polymorphism
Identification of Variation Points Using Dynamic Analysis
From Use Cases to Implementation
Introduction to Methods and Interfaces
Presentation transcript:

Abstraction and Dynamic Analysis for the Reconstruction of Scenario Diagrams Bas Cornelissen Leon Moonen Arie van Deursen

2 Introduction Scenario –event from the user’s perspective Scenario diagram –UML sequence diagram at the scenario level Long-term goal –e.g., conformance checking, design pattern detection, architecture reconstruction (?)

3 Challenges Static analysis –source code –independent of input –potentially covers all object interactions Dynamic analysis –execution traces –scenario- and input-driven –polymorphism: detection of late binding –merely applicable in “complete”, executable systems

4 Challenges Abstraction –typically, initial diagrams: are too large show too many details contain uninteresting interactions –this calls for abstraction mechanisms omit irrelevant messages and/or objects allow user to choose the level of detail

5 Method Reconstruction of scenario diagrams using JUnit and AspectJ 1.Scenario determination 2.Producing an execution trace 3.Abstraction 4.Visualization

6 Running example Pacman –25 Java classes –GUI –Large traces –Polymorphism

7 1. Scenario determination JUnit testcase –basically a use case –contains one or more scenarios public class PacmanTest extends TestCase { public PacmanTest(String arg0) { super(arg0); } public void testTopLevelAlphaOmega() throws InterruptedException { Pacman p = new Pacman(); p.start(); System.out.println("SCENARIO START"); p.up(); System.out.println("SCENARIO END"); p.quit(); p.exit(); }

8 2. Producing a trace Aspect for tracing methods and constructors –exclusion of certain classes and/or methods –distinction between run-time objects –at call sites, log: method/constructor ID caller + object ID callee + object ID method/constructor signature actual parameters METH 533: Pacman [1] :: Engine [2] :: public synchronized void Engine.movePlayer(int, int) :: 0, -1

9 3. Abstraction Compression –summarize recurring messages and patterns –requires pattern recognition –post-mortem Pruning –hide uninteresting interactions (and objects) –define minimum and maximum stack depths –both at the tracing and the visualization stage

10 4. Visualization GNU plotutils package –pic2plot –library containing pic macros for seq. diagrams –Perl script to create pic programs from traces object(Pacman1,"Pacman1"); object(Engine2,"Engine2"); object(Game3,"Game3");... step(); active(Pacman1); message(Pacman1,Engine2,"movePlayer(int, int)"); active(Engine2); message(Engine2,Engine2,"inPlayingState()"); message(Engine2,Game3,"initialized()");...

11 Example (1) Compression

12 Example (2) Pruning

13 Example (3)

14 Example (4)

15 Conclusions (1) JUnit testcases –enable scenario diagram reconstruction for both complete systems and incomplete systems/modules AspectJ –flexible: allows for (not) tracing specific components and/or messages –distinguishes between run-time objects

16 Conclusions (2) Effective abstraction mechanisms –human-readable, high-level model is easily obtained –though omission of messages at deep stacklevels may be infeasible Better visualization is needed –interactive –e.g., zooming, expanding

17 Questions Fire at will!