Behavioral Models for Software Development

Slides:



Advertisements
Similar presentations
TPF/Eclipse: A New TPF Application Test Tool for the Eclipse and WebSphere ® Environments Presenter: Thiru Thirupuvanam TPF Users Group May 2003 New Orleans,
Advertisements

DEV-2: Getting Started with OpenEdge® Architect – Part I
© 2006 ITT Educational Services Inc. SE350 System Analysis for Software Engineers: Unit 9 Slide 1 Appendix 3 Object-Oriented Analysis and Design.
WebRatio BPM: a Tool for Design and Deployment of Business Processes on the Web Stefano Butti, Marco Brambilla, Piero Fraternali Web Models Srl, Italy.
Topcased 5.3 Simulation of models Tutorial Topcased Simulation - Tutorial Page 1.
® IBM Software Group © 2006 IBM Corporation Rational Software France Object-Oriented Analysis and Design with UML2 and Rational Software Modeler 04. Other.
Object-Oriented Analysis and Design
Unified Modeling (Part I) Overview of UML & Modeling
WebRatio BPM: a Tool for Design and Deployment of Business Processes on the Web Stefano Butti, Marco Brambilla, Piero Fraternali Web Models Srl, Italy.
Advanced Behavioral Modeling
© 2008 IBM Corporation Behavioral Models for Software Development Andrei Kirshin, Dolev Dotan, Alan Hartman January 2008.
An Introduction to Rational Rose Real-Time
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
© 2009 IBM Corporation Verification of embedded system specifications using collaborative simulation of SysML and Simulink models Ryo Kawahara*, Hiroaki.
Debugging. 2 © 2003, Espirity Inc. Module Road Map 1.Eclipse Debugging  Debug Perspective  Debug Session  Breakpoint  Debug Views  Breakpoint Types.
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
Modeling Component-based Software Systems with UML 2.0 George T. Edwards Jaiganesh Balasubramanian Arvind S. Krishna Vanderbilt University Nashville, TN.
Performance evaluation of component-based software systems Seminar of Component Engineering course Rofideh hadighi 7 Jan 2010.
TAL7011 – Lecture 4 UML for Architecture Modeling.
2 2009/10 Object Oriented Technology 1 Topic 2: Introduction to Object-Oriented Approach Reference: u Ch.16 Current Trends in System Development (Satzinger:
UML as a Specification Language for Embedded Systems. By, Mir Ahmed Ali, Asst. Professor, ECM department, SNIST. By, Prof. Narsiah sir, Director of School.
By: David Harel & Eran Grey Presenter: Elizabeth Antony CISC 836.
12 Chapter 12: Advanced Topics in Object-Oriented Design Systems Analysis and Design in a Changing World, 3 rd Edition.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Slide 1 What we'll cover here l Using the debugger: Starting the debugger Setting.
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
Week 04 Object Oriented Analysis and Designing. What is a model? A model is quicker and easier to build A model can be used in simulations, to learn more.
CSC 520 – Advanced Object Oriented Programming, Fall, 2010 Thursday, October 14 Week 7, UML Diagrams
® IBM Software Group © 2007 IBM Corporation Module 3: Creating UML Diagrams Essentials of Modeling with IBM Rational Software Architect, V7.5.
Andrey Karaulov, Alexander Strabykin Institute for System Programming Russian Academy of Sciences SYRCoSE: Spring Young Researchers Colloquium on Software.
15 Copyright © 2004, Oracle. All rights reserved. Debugging Triggers.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 14 Slide 1 Object-Oriented Design.
UML (Unified Modeling Language)
Rhapsody 2003년 3월 12일 배대호.
Slide 1 Unified Modeling Language, Version 2.0 Object-Oriented SAD.
Introduction to Algorithm. What is Algorithm? an algorithm is any well-defined computational procedure that takes some value, or set of values, as input.
Chapter Goals Describe the application development process and the role of methodologies, models, and tools Compare and contrast programming language generations.
Introducing IBM Rational Software Architect
CompSci 280 S Introduction to Software Development
UML Diagrams By Daniel Damaris Novarianto S..
Chapter 1: Introduction to Systems Analysis and Design
UNIT 1.
Key Ideas from day 1 slides
Object-Oriented Analysis and Design
Software Tools and Environments
Systems Analysis and Design With UML 2
Debugging Dwight Deugo
Unified Modeling Language
University of Central Florida COP 3330 Object Oriented Programming
State Machine Diagrams
CS 153: Concepts of Compiler Design November 30 Class Meeting
Business System Development
Using Visual Studio with C#
Important terms Black-box testing White-box testing Regression testing
UML: Unified modeling language
Software Architecture & Design Pattern
Important terms Black-box testing White-box testing Regression testing
UML Activity Diagrams & State Charts
CS/CPE 426 Senior Projects
Chapter 20 Object-Oriented Analysis and Design
CS310 Software Engineering Dr.Doaa Sami
Chapter 1 Introduction(1.1)
Software Design Lecture : 15.
CS/CPE 426 Senior Projects
Debugging Dwight Deugo
Java IDE Dwight Deugo Nesa Matic Portions of the notes for this lecture include excerpts from.
CS 791Z State Machines & Advanced State Machines
Appendix 3 Object-Oriented Analysis and Design
Chapter 1: Introduction to Systems Analysis and Design
Ponder policy toolkit Jovana Balkoski, Rashid Mijumbi
Presentation transcript:

Behavioral Models for Software Development Andrei Kirshin, Dolev Dotan, Alan Hartman January 2008

Abstract MDD  raising the level of abstraction, increasing the automation Models and model transformations  increased productivity, quality, effective way of adapting to changes in requirements This talk focuses on models which describe the behavior of the system, and the tools for executing at the model level Platform independent action language Model driven development is a game-changing new paradigm for software development. Modeling raises the level of abstraction and increases the automation of the production of software development artifacts. Models and model transformations provide the key to increased productivity, higher levels of software quality, and a more effective way of adapting to changes in requirements. This talk focuses on models which describe the behavior of the system, and the tools for executing at the model level. This allows for early debugging of incompletely specified models of a system. We also discuss the proposals for a platform independent action language to describe behavior in UML models.

Outline Introduction UML Model Debugger Testing Motivation UML Behavioral Modeling Action Language UML Model Debugger Debugging capabilities Debugging perspective Diagram animation Testing Model testing Model-based testing (test generation)

Outline – Introduction Motivation UML Behavioral Modeling Action Language UML Model Debugger Debugging capabilities Debugging perspective Diagram animation Testing Model testing Model-based testing (test generation)

Introduction – Vision Time Developers Abstraction Tools Variety & versatility of users: business analysts, architects, developers, testers Components, services, features, behaviors, actions, patterns Model level debugging Model level testing Support for AL Static model analysis MDD Code Generation MD Many highly qualified developers Structures, operations, statements, expressions, classes, interfaces, packages 3GL level debugging, 3GL testing tools, OOD Compiler RE Few experts Registers, low level commands Assembler, Assembly debugger PD PD – Procedural Development, RE – Reverse Engineering, MD – Model Discovery

Behavioral Modeling Toolset Traditional Software Development Model Driven Development IDE Modeling Tool Code Debugger Model Debugger Compiler Model Transformation

Executable Specification MDD and Model Debugger Model Debugger Executable Specification (e.g. code) Executable Model Runtime Transformation Execution Identify defects at a much higher level of abstraction, earlier in the development cycle

Modeling with UML Structure Behavior Class (Class diagram) Component (Composite structure diagram) Behavior State machine (state machine diagram) Activity (activity diagram) Interaction (sequence/communication diagram) Action language (snippets of code in model)

State Machines Features include: Behaviors for: transition effects, state entry, do, exit Composite states Nested state machines Concurrency (orthogonal states) Transition guards Conditionals (choice, junction) Integration with the Object Oriented Model: Effect/entry/do/exit behaviors… Guards… …can access class attributes, call class operations, etc. Triggers: Operation calls Attribute changes

Activity Diagrams – “Sophisticated Flowcharts” Features include: Control flow Data flow Conditionals (choice node, guards) Concurrency (fork & join) Nested behavior calls Data stores Integration with the Object Oriented Model: (“Opaque”) actions – code snippets… Guard expressions… …can access class attributes, call class operations, etc. Actions for: Calling operations Reading and modifying attributes Sending signals and more…

UML Behavioral Modeling Structure: protocol, classes (capsules), ports and connectors Behaviors (state machines, activities, interactions) Stand-alone Specify the implementation of operations Specify the lifecycle of objects (capsules) Specify state entry/do/exit behavior and transition effect Code snippets (target language or platform independent) Activity actions Guards (activity edge, state machine transition)  Flexible  Very complex (almost as complex as code)

Action Language Snippets of Code in the Model Target language (Java, C++, C#) or its subset  Error prone, bound to specific target platform and compiler  Already known language Platform independent  New language to learn  Makes the model retargetable, less error prone

Outline – UML Model Debugger Introduction Motivation UML Behavioral Modeling Action Language UML Model Debugger Debugging capabilities Debugging perspective Diagram animation Testing Model testing Model-based testing (test generation)

Interactive Debugging Traditional debugging Running a main function Hitting a breakpoint Stepping Observing values Interactive debugging (model “exerciser”) Creating instances Invoking operations and behaviors, send signals

Model Debugging Perspective Variables Breakpoints Event Pools Instances Diagram Animation Console Snippet Signals I/O

Double-click to Invoke Operation Instances View Create New Instance Destroy Instance Dynamic debugging Object creation and destruction Method invocation Instance Attribute Double-click to Invoke Operation

Debug View Control and display granularity – model elements Execution Stack Step (into, over, out) Stop Pause Resume Send Signal Broadcast Signal Control and display granularity – model elements State, Transition, Action, Edge, etc. Supports concurrency in behaviors – stack trace is a tree

Behavior attributes, local variables and parameters Variables View Self Object Behavior attributes, local variables and parameters Similar to Eclipse debugging framework view

Breakpoints View Similar to Eclipse debugging framework view “Do” Behavior State Transition Similar to Eclipse debugging framework view Breakpoints Statemachine: State, Transition, Entry, Do, Exit, Effect Activity: Action

Event Pools View Shows pending events in event the pools of active objects Pending Events

Send and Broadcast Signal Buttons Double-click to send signal Signals and I/O Views Send and Broadcast Signal Buttons Double-click to send signal Signals History

Diagram Animation – State Machine Running Transition Execution Pending Current State Breakpoint

Diagram Animation – Activity Execution Pending Token Provider Offer Path

Outline – Testing Introduction UML Model Debugger Testing Motivation UML Behavioral Modeling Action Language UML Model Debugger Debugging capabilities Debugging perspective Diagram animation Testing Model testing Model-based testing (test generation)

Debugging – Model Interpretation UML Model Application Code Generation Test Generator Model Debugger Test Execution Environment Test / Trace Simulation / Emulation (for debugging and understanding) Recording of execution traces (assisted test generation)

Debugging – Generated Code UML Model Application Code Generation Test Generator Model Debugger Test Execution Environment Test / Trace Execution monitoring and control Execution trace animation Trace analysis results visualization

Automatic Test Generation UML Model Application Code Generation Test Generator Model Debugger Test Execution Environment Test / Trace Test is a sequence of stimuli and observations Model is used as the oracle to predict the expected results A bunch of tests is generated automatically according to provided criteria

Test Execution Environment Test Editing UML Model Application Code Generation Test Generator Model Debugger Test Execution Environment Test / Trace Manual test creation using model-level terms Editing of tests generated using the Test Generator or Model Debugger traces

Test Execution Environment Model Testing UML Model Application Code Generation Test Generator Model Debugger Test Execution Environment Test / Trace Execution of tests on the model Used for model regression testing and test-first modeling approach

Model Driven Testing of Applications UML Model Application Code Generation Test Generator Model Debugger Test Execution Environment Test / Trace Execution of tests on the application Transformation to concrete test execution environment

Testing Summary Test creation Model Testing Manual (test editor) Assisted (execution trace recording) Automatic test generation Model Testing Execution of tests on the model Used for model regression testing and test-first modeling approach Model-Based Testing of Systems Transformation to concrete test execution environment Execution of tests on the application

Summary MDD is a practical option for improving SW production and capitalizing on existing SW assets through: Abstraction Automation Legacy modernization UML Behavioral Modeling Action Language UML Model Debugger Model testing Model-based testing of applications

References IBM Haifa Research Lab – Model Driven Engineering Technologies group http://www.research.ibm.com/haifa/dept/services/mdet.html Model Debugger http://www.research.ibm.com/haifa/projects/software/ple/mex/index.html Model Grokking http://www.research.ibm.com/haifa/projects/software/ple/grokking/index.html UML http://www.uml.org/ Contacts: Andrei Kirshin, Dolev Dotan, Alan Hartman {kirshin,dotan,hartman}@il.ibm.com