Specifying and executing behavioral requirements The play-in/play-out approach David Harel, Rami Marelly Weizmann Institute of Science, Israel An interpretation.

Slides:



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

Auto-Generation of Test Cases for Infinite States Reactive Systems Based on Symbolic Execution and Formula Rewriting Donghuo Chen School of Computer Science.
TP4: S TATE M ACHINE D ESIGN P ATTERN  Definition  Infrastructure  Transition Code  Conclusion.
1 Update on Learning By Observation Learning from Positive Examples Only Tolga Konik University of Michigan.
Introducing Formal Methods, Module 1, Version 1.1, Oct., Formal Specification and Analytical Verification L 5.
ARCH-05 Application Prophecy UML 101 Peter Varhol Principal Product Manager.
Scenario Based Resolution of Aspect Interactions with Aspect Interaction Charts Shubhanan Bakre, Tzilla Elrad Illinois Institute of Technology.
Systems Software.
Programming Types of Testing.
TTCN-3 Test Case Generation from arbitrary traces Capture & Replay Bogdan Stanca-Kaposta & Theofanis Vassiliou-Gioles (Testing Technologies)
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.
T-FLEX DOCs PLM, Document and Workflow Management.
Logic Based LSC Consistency Testing Presenter: Anup Niroula.
Live Sequence Charts and the Play-In/Play-Out Approach Hillel Kugler New York University Work by David Harel, Rami Marelly and others Software Engineering.
Uml and Use Cases CS 414, Software Engineering I Mark Ardis Rose-Hulman Institute January 9, 2003.
Software Engineering CSE470: Requirements Analysis 1 Requirements Analysis Defining the WHAT.
VRML for Kinematic and Physical Modeling and Simulations Benjamin Pugliese Mahesh Saptharishi.
February 21, 2008 Center for Hybrid and Embedded Software Systems Mapping A Timed Functional Specification to a Precision.
C++ Training Datascope Lawrence D’Antonio Lecture 11 UML.
Java Review 2 – Errors, Exceptions, Debugging Nelson Padua-Perez Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.
Program Development and Programming Languages
1 SWE Introduction to Software Engineering Lecture 11 - Requirements Engineering Processes.
1 Scenario-based Analysis of UML Design Class Models Lijun Yu October 4th, 2010 Oslo, Norway.
© 2008 IBM Corporation Behavioral Models for Software Development Andrei Kirshin, Dolev Dotan, Alan Hartman January 2008.
Meaningful Modeling: What’s the Semantics of “Semantics”? David Harel, Weizmann Institute of Science Bernhard Rumpe, Technische Universität Braunschweig.
1.3 Executing Programs. How is Computer Code Transformed into an Executable? Interpreters Compilers Hybrid systems.
- Chaitanya Krishna Pappala Enterprise Architect- a tool for Business process modelling.
Procgen Chaz Pratt 11/3/2009. overview What is procgen? What we tried? What worked? What didn’t? Try again?
Understanding Computers Ch. 131 Chapter 13 Program Development and Programming Languages.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 6 Slide 1 Chapter 6 Requirements Engineering Process.
CIS 895 – MSE Project KDD-Research Entity Search Tool (KREST) Presentation 2 Eric Davis
Michael Ernst, page 1 Collaborative Learning for Security and Repair in Application Communities Performers: MIT and Determina Michael Ernst MIT Computer.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 6 Slide 1 Requirements Engineering Processes l Processes used to discover, analyse and.
Software Component Technology and Component Tracing CSC532 Presentation Developed & Presented by Feifei Xu.
Introduction to J2EE Architecture Portions by Kunal Mehta.
Adventures in Mastering the Use of Performance Evaluation Tools Manuel Ríos Morales ICOM 5995 December 4, 2002.
Chapter 1 What is Programming? Lecture Slides to Accompany An Introduction to Computer Science Using Java (2nd Edition) by S.N. Kamin, D. Mickunas, E.
Python – Part 1 Python Programming Language 1. What is Python? High-level language Interpreted – easy to test and use interactively Object-oriented Open-source.
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 3: Operating-System Structures System Components Operating System Services.
1 Chapter 13 Understanding Computers, 11 th Edition 13 Program Development and Programming Languages TODAY AND TOMORROW 11 th Edition CHAPTER.
11 CORE Architecture Mauro Bruno, Monica Scannapieco, Carlo Vaccari, Giulia Vaste Antonino Virgillito, Diego Zardetto (Istat)
Software Development Cycle What is Software? Instructions (computer programs) that when executed provide desired function and performance Data structures.
Unit-1 Introduction Prepared by: Prof. Harish I Rathod
Performance evaluation of component-based software systems Seminar of Component Engineering course Rofideh hadighi 7 Jan 2010.
© 2006 ITT Educational Services Inc. SE350 System Analysis for Software Engineers: Unit 10 Slide 1 Chapter 13 Finalizing Design Specifications.
Chapter 5 Information Systems in Business Software
1 A Steering Portal for Condor/DAGMAN Naoya Maruyama on behalf of Akiko Iino Hidemoto Nakada, Satoshi Matsuoka Tokyo Institute of Technology.
By: David Harel & Eran Grey Presenter: Elizabeth Antony CISC 836.
Interactive Workflows Branislav Šimo, Ondrej Habala, Ladislav Hluchý Institute of Informatics, Slovak Academy of Sciences.
Debuggers in Python. The Debugger Every programming IDE has a tool called a debugger. This application does NOT locate or fix your bugs for you! It slows.
Network Protocols Network Systems Security Mort Anvari.
David Streader Computer Science Victoria University of Wellington Copyright: David Streader, Victoria University of Wellington Debugging COMP T1.
Full and Para Virtualization
Winter 2011SEG Chapter 11 Chapter 1 (Part 1) Review from previous courses Subject 1: The Software Development Process.
Winter 2007SEG2101 Chapter 31 Chapter 3 Requirements Specifications.
USING MODEL CHECKING TO DISCOVER AUTOMATION SURPRISES Java class User: - getExpectation() - checkExpectation() FAULTY EXECUTION start incrMCPAlt pullAltKnob.
Chapter 13 Finalizing Design Specifications
Correlator GUI Sonja Vrcic Socorro, April 3, 2006.
Requirement Analysis SOFTWARE ENGINEERING. What are Requirements? Expression of desired behavior Deals with objects or entities, the states they can be.
Chapter – 8 Software Tools.
T EST T OOLS U NIT VI This unit contains the overview of the test tools. Also prerequisites for applying these tools, tools selection and implementation.
Reachability Testing of Concurrent Programs1 Reachability Testing of Concurrent Programs Richard Carver, GMU Yu Lei, UTA.
© 2009 Artisan Software Tools. All rights reserved. Testing Solutions with UML/SysML Andrew Stuart, Matthew Hause.
Dillon: CSE470: ANALYSIS1 Requirements l Specify functionality »model objects and resources »model behavior l Specify data interfaces »type, quantity,
Definition CASE tools are software systems that are intended to provide automated support for routine activities in the software process such as editing.
Unified Modeling Language
Jeliot 3 Spring 2004 Andrés Moreno García Niko Myller
Distributive Collaborative play-out of Live Sequence Charts
Engineering Quality Software
A Politically incorrect Christmas Carol
Presentation transcript:

Specifying and executing behavioral requirements The play-in/play-out approach David Harel, Rami Marelly Weizmann Institute of Science, Israel An interpretation by Eric Bodden

Outline  Problem statement: How to specify requirements? Easily and Consistently  Background (LSCs)  Play-in  Play-out  Prototype tool, challenges  Conclusion

Requirements specification  Usually start from informal use case specification by domain experts  Then manual mapping to formal spec Error prone Tedious  No direct link between original spec and the actual implementation!  Can we do any better?

Play-in / play-out  Has similarities to machine learning and…  Actually also to the way one teaches people! Philosophy: “I’ll show you how it works and then you try yourself! Play-in Play-out

Workflow 1.Prototype a GUI or object model of you app. – dummy only! 2.Play-in behavior into this prototype. “Play engine” connects and automatically generates Live Sequence Charts 3.Replay (play-out) behavior, modify and generalize; verify 4.Give the debugged spec to developers

Live Sequence Charts (LSCs)  Similar to Message Sequence Charts and Sequence Diagrams but more powerful…  Universal charts: Specify behavior w.r.t. a given “prechart” (preamble).  Existential charts: Specify test cases that must hold in the universal LSCs.

An example – quick dialing

The play engine  Backend which communicates with the prototype via Microsoft’s Component Object Model (COM)  Generates LSCs in play-in mode  Can then be generalized / modified  Are verified in play-out mode.  Also: Recording, modification and replay of traces.

Play-in – an example n1 “+” n2 “=” (n1+n2) Pre-chart Body

Specifying the pre-chart

.. and the body

Final result

Another one – show number

A test case (existential LSC)

Play-out “Now that I have shown you how it works, try on your own!” (and I will watch you meanwhile and record what goes wrong)

Play-out by example

Situation after hit on plus

Situation at the end

… watch the test case!

Replaying recorded violations

Playing in internal objects

… and playing them out.

How does it work  “Execution manager” schedules “live copies” of universal LSCs -> behavior  At the same times evaluates existential LSCs -> testing  “Run manager” records/replays traces

Life cycle of a “live copy”

Challenges and problems  Need for symbolic evaluation  Nondeterminism (?) SELECT function  Scalability (?)  Performance (?)  Deadlocks/livelocks (?)  Support for multiple platforms (?)

Conclusion  Easy way to derive a “debugged” requirements specification.  Immediate link between use cases, specs and implementation.  Performance and scalability issues not discussed.