Database Systems Group Department for Mathematics and Computer Science Lars Hamann, Martin Gogolla, Mirco Kuhlmann OCL-based Runtime Monitoring of JVM.

Slides:



Advertisements
Similar presentations
Model-Based Testing with Smartesting Jean-Pierre Schoch Sogetis Second Testing Academy 29 April 2009.
Advertisements

DIGIDOC A web based tool to Manage Documents. System Overview DigiDoc is a web-based customizable, integrated solution for Business Process Management.
Debugging Natural Semantics Specifications Adrian Pop and Peter Fritzson Programming Environment Laboratory Department of Computer and Information Science.
Object-oriented Software Change Dynamic Impact Analysis Lulu Huang and Yeong-Tae Song Dept. of Computer and Information Sciences Towson University Towson,
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Case Tools Trisha Cummings. Our Definition of CASE  CASE is the use of computer-based support in the software development process.  A CASE tool is a.
Verification/Simulati on –GUI for simulation and formal verification –Simulator: Exploration of dynamic behavior Checking.
ISBN Chapter 3 Describing Syntax and Semantics.
October - December 2013CSC5021: The Problem With Aspects (J P Gibson)1 The Problem With Aspects (AOP) A style of programming that attempts to abstract.
1 Evaluation of OCL for Large-Scale Modelling A Different View of the Mondex Smart Card Application Emine G. Aydal, Richard F. Paige, Jim Woodcock University.
Presenter : Shih-Tung Huang Tsung-Cheng Lin Kuan-Fu Kuo 2015/6/15 EICE team Model-Level Debugging of Embedded Real-Time Systems Wolfgang Haberl, Markus.
What’s That? : A Location Based Service Department of Computer Science and Engineering University of Minnesota Presented by: Don Eagan Chintan Patel
1 Introduction to CS Agenda Syllabus Schedule Lecture: the management of complexity.
11 3 / 12 CHAPTER Databases MIS105 Lec14 Irfan Ahmed Ilyas.
Automatically Extracting and Verifying Design Patterns in Java Code James Norris Ruchika Agrawal Computer Science Department Stanford University {jcn,
 Copyright 2005 Digital Enterprise Research Institute. All rights reserved. WSMX Data Mediation Adrian Mocan
Describing Syntax and Semantics
1 Scenario-based Analysis of UML Design Class Models Lijun Yu October 4th, 2010 Oslo, Norway.
Stimulating reuse with an automated active code search tool Júlio Lins – André Santos (Advisor) –
Ranga Rodrigo. Class is central to object oriented programming.
Rainbow Facilitating Restorative Functionality Within Distributed Autonomic Systems Philip Miseldine, Prof. Taleb-Bendiab Liverpool John Moores University.
M1G Introduction to Programming 2 4. Enhancing a class:Room.
Advanced Java Programming Lecture 5 Reflection dr hab. Szymon Grabowski dr inż. Wojciech Bieniecki
Zhonghua Qu and Ovidiu Daescu December 24, 2009 University of Texas at Dallas.
Implementation Yaodong Bi. Introduction to Implementation Purposes of Implementation – Plan the system integrations required in each iteration – Distribute.
MDA and QVT  Tom Gullion, Director of Product Management, Together Products.
1 Abstraction  Identify important aspects and ignore the details  Permeates software development programming languages are abstractions built on hardware.
Model transformation with a dedicated imperative language IRISA Rennes (France) - Triskell team Jean-Marc Jézéquel Didier Vojtisek Jean-Philippe Thibault.
Introduction to MDA (Model Driven Architecture) CYT.
Formal Analysis of Problem Domain Workflows Uldis Donins Riga Technical University Baltic DB & IS 2012, July 8-11, Vilnius, Lithuania This work.
Building Tools by Model Transformations in Eclipse Oskars Vilitis, Audris Kalnins, Edgars Celms, Elina Kalnina, Agris Sostaks, Janis Barzdins Institute.
Formalizing the Asynchronous Evolution of Architecture Patterns Workshop on Self-Organizing Software Architectures (SOAR’09) September 14 th 2009 – Cambrige.
Programming in Java Unit 3. Learning outcome:  LO2:Be able to design Java solutions  LO3:Be able to implement Java solutions Assessment criteria: 
11 CORE Architecture Mauro Bruno, Monica Scannapieco, Carlo Vaccari, Giulia Vaste Antonino Virgillito, Diego Zardetto (Istat)
Systems Analysis and Design in a Changing World, 3rd Edition
A Static Approach to Consistency Verification of UML Models Andrea Baruzzo Department of Computer Science University of Udine MoDeV.
Developing software and hardware in parallel Vladimir Rubanov ISP RAS.
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
DATABASE MANAGEMENT SYSTEM ARCHITECTURE
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 2 Database System Concepts and Architecture.
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.
REDUX – automatic capture, efficient storage Roger S. Barga Microsoft Research (MSR) Luciano Digiampietri University of Campinas, Sao Paolo, Brazil.
Web Information Systems Modeling Luxembourg, June VisAVis: An Approach to an Intermediate Layer between Ontologies and Relational Database Contents.
Weaving a Debugging Aspect into Domain-Specific Language Grammars SAC ’05 PSC Track Santa Fe, New Mexico USA March 17, 2005 Hui Wu, Jeff Gray, Marjan Mernik,
Ch- 8. Class Diagrams Class diagrams are the most common diagram found in modeling object- oriented systems. Class diagrams are important not only for.
Software testing techniques Software testing techniques Object-oriented software testing Presentation on the seminar Kaunas University of Technology.
Testing OO software. State Based Testing State machine: implementation-independent specification (model) of the dynamic behaviour of the system State:
Semantic web Bootstrapping & Annotation Hassan Sayyadi Semantic web research laboratory Computer department Sharif university of.
Generating Software Documentation in Use Case Maps from Filtered Execution Traces Edna Braun, Daniel Amyot, Timothy Lethbridge University of Ottawa, Canada.
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
Chapter 5 System Modeling. What is System modeling? System modeling is the process of developing abstract models of a system, with each model presenting.
Chapter 18 Object Database Management Systems. Outline Motivation for object database management Object-oriented principles Architectures for object database.
Study 1 Purpose of the tool. Test architecture.. Testing Target system Test system Testing results results affecting.
WELCOME TO OUR PRESENTATION UNIFIED MODELING LANGUAGE (UML)
Slide 1 © 2016, Lera Technologies. All Rights Reserved. Oracle Data Integrator By Lera Technologies.
Databases and DBMSs Todd S. Bacastow January 2005.
Working in the Forms Developer Environment
Software Design and Development
Database System Concepts and Architecture
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 2 Database System Concepts and Architecture.
Chapter 2 Database Environment Pearson Education © 2009.
Data, Databases, and DBMSs
Test Case Test case Describes an input Description and an expected output Description. Test case ID Section 1: Before execution Section 2: After execution.
Software Verification and Validation
Software Verification and Validation
Towards an Open Meta Modeling Environment
Software Verification and Validation
Chapter 2 Database Environment Pearson Education © 2009.
Chapter 2 Database Environment Pearson Education © 2009.
Software Architecture & Design
Presentation transcript:

Database Systems Group Department for Mathematics and Computer Science Lars Hamann, Martin Gogolla, Mirco Kuhlmann OCL-based Runtime Monitoring of JVM hosted Applications OCL Workshop 2011 Lars Hamann, Martin Gogolla, Mirco Kuhlmann

Database Systems Group Department for Mathematics and Computer Science Lars Hamann, Martin Gogolla, Mirco Kuhlmann Overview Motivation Related approaches OCL-based Runtime Monitoring – Overview – Platform aligned model – Snapshots – Dynamic monitoring Conclusion / Future Work

Database Systems Group Department for Mathematics and Computer Science Lars Hamann, Martin Gogolla, Mirco Kuhlmann Motivation MDD in an optimal way: Current practice: PIM PSM 1 PSM n... Defined model transformations Executable program PIM PSM1 PSM n... Defined model transformations Handwritten code

Database Systems Group Department for Mathematics and Computer Science Lars Hamann, Martin Gogolla, Mirco Kuhlmann Motivation Possible other scenario: – No executable code is produced “in house” – PIM/PSM Models are used as the specification for components – Implementation is “outsourced” – Component is delivered as a black box – Also: Assumptions about existing components

Database Systems Group Department for Mathematics and Computer Science Lars Hamann, Martin Gogolla, Mirco Kuhlmann Motivation Assumption: Models are enriched with constraints, e. g., invariants, pre-/postconditions. Question: Does the resulting system satisfy them at runtime?

Database Systems Group Department for Mathematics and Computer Science Lars Hamann, Martin Gogolla, Mirco Kuhlmann Related approaches Weaving (mainly done with AOP) Drawbacks: – The implementation is modified: Weaving into the source code On the fly integration into VMs – Is the runtime behaviour still the same? – Difference between debug and release version when weaving into the source code – Monitoring needs to begin at start up time

Database Systems Group Department for Mathematics and Computer Science Lars Hamann, Martin Gogolla, Mirco Kuhlmann Related approaches Unit Tests Drawbacks: – Only simulate execution of parts of the application – The test writer needs deep knowledge about the system: Setup of the system core The right sequence of operation calls

Database Systems Group Department for Mathematics and Computer Science Lars Hamann, Martin Gogolla, Mirco Kuhlmann OCL-based Runtime Monitoring Benefits – Source and byte code is untouched – Monitoring can start at any time – Monitored application can be paused and explored Requirements: – A platform aligned model – Convenient runtime environment, e. g., the JVM

Database Systems Group Department for Mathematics and Computer Science Lars Hamann, Martin Gogolla, Mirco Kuhlmann Runtime Monitoring Overview

Database Systems Group Department for Mathematics and Computer Science Lars Hamann, Martin Gogolla, Mirco Kuhlmann Platform aligned model Model between the runtime layer (byte code) and the modelling layer (PIM, PSM) As abstract as possible: – No technical classes, e. g., persistence – Central aspects (core business logic) – Associations when useful Specific enough to be able to monitor: – Identification of classes, attributes, operations,...

Database Systems Group Department for Mathematics and Computer Science Lars Hamann, Martin Gogolla, Mirco Kuhlmann Platform aligned model in USE Example: Existing open source game Validation of central aspects (game rules) – “A unit can build a colony if it has moves left” – “After a colony has been built, the unit has no more moves left” The PAM has been manually aligned to the PSM

Database Systems Group Department for Mathematics and Computer Science Lars Hamann, Martin Gogolla, Mirco Kuhlmann Platform aligned model in "net.sf.freecol.common.model") class Unit < Location attributes movesLeft : Integer operations buildColony(colony:Colony) pre movesLeft: self.movesLeft > 0 post noMovesLeft: self.movesLeft = 0 end package net.sf.freecol.common.model; public class Unit extends FreeColGameObject implements Locatable, Location, … { … private int movesLeft; … public void buildColony(Colony colony){ if (!canBuildColony()) { throw new IllegalStateException(…); } … } }

Database Systems Group Department for Mathematics and Computer Science Lars Hamann, Martin Gogolla, Mirco Kuhlmann Snapshot Instance of a PAM that conforms to the current program state: – Objects are mapped to instances – Field values are mapped to corresponding attribute values or links Can be taken at any time by suspending the running system and examining its state – In Java: ReferenceType.instances()

Database Systems Group Department for Mathematics and Computer Science Lars Hamann, Martin Gogolla, Mirco Kuhlmann Example program state

Database Systems Group Department for Mathematics and Computer Science Lars Hamann, Martin Gogolla, Mirco Kuhlmann Example snapshot 3???

Database Systems Group Department for Mathematics and Computer Science Lars Hamann, Martin Gogolla, Mirco Kuhlmann Dynamic monitoring Monitor execution of the system Synchronize snapshot with program state – Breakpoints at important locations: Class initialization Constructor, Operation start / end Field modifications Validate constraints at Operations start /end Optional: Trace execution for visualization

Database Systems Group Department for Mathematics and Computer Science Lars Hamann, Martin Gogolla, Mirco Kuhlmann Dynamic monitoring sample Only buildColony() is monitored But all atomic operations Create Insert Delete Set

Database Systems Group Department for Mathematics and Computer Science Lars Hamann, Martin Gogolla, Mirco Kuhlmann Dynamic monitoring sample A more detailed PAM (to see what’s happening )

Database Systems Group Department for Mathematics and Computer Science Lars Hamann, Martin Gogolla, Mirco Kuhlmann Conclusion Complete external approach However, knowledge about interfaces and parts of the structure is required Start of monitoring at any time (initial snapshot) – Abstract analysis of program state – OCL as query language, can be combined with visual techniques Automatic synchronization of snapshot and program state

Database Systems Group Department for Mathematics and Computer Science Lars Hamann, Martin Gogolla, Mirco Kuhlmann Conclusion Runtime validation of dynamic constraints – monitor can pause execution on failure – “abstract debugging” Approach makes use of powerful VM features Can be used to generate sample call sequences for documentation purposes

Database Systems Group Department for Mathematics and Computer Science Lars Hamann, Martin Gogolla, Mirco Kuhlmann Future work Monitor as a JVM agent Many-to-many relationships When to validate invariants? (Semi-)automatic detection of constraints Generation / retrieval of the PAM

Database Systems Group Department for Mathematics and Computer Science Lars Hamann, Martin Gogolla, Mirco Kuhlmann Thank‘s for your attention! Questions?