Testing Extensible Design Patterns in OO Frameworks through Scenario Templates D.S. Sanders Software Verification & Validation.

Slides:



Advertisements
Similar presentations
Welcome to. Who am I? A better way to code Design Patterns ???  What are design patterns?  How many are there?  How do I use them?  When do I use.
Advertisements

18-1 Verifying Object Behavior and Collaboration Role playing – the act of simulating object behavior and collaboration by acting out an object’s behaviors.
CS590L - Lecture 6 1 CS590L Distributed Component Architecture References: - E. Gamma, R. Helm, R. Johnson, J. Vlissides, Design Patterns: Elements of.
DESIGN PATTERNS OZGUR RAHMI DONMEZ.
Design Patterns for Object Oriented systems CSC 515 Ashwin Dandwate.
Design Patterns Yes, they are important Robert Cotton April 23, 2009.
Patterns Reusable solutions to common object-oriented programming problems When given a programming problem, re-use an existing solution. Gang of Four.
05/26/2004www.indyjug.net1 Indy Java User’s Group June Knowledge Services, Inc.
IEG3080 Tutorial 7 Prepared by Ryan.
Design Patterns CS is not simply about programming
Design Patterns. What are design patterns? A general reusable solution to a commonly occurring problem. A description or template for how to solve a problem.
Visual Basic: An Object Oriented Approach 11 – Patterns in object oriented programming.
Design Patterns Elements of Reusable Object-Oriented Software by Erich Gamma, Richard Helm, Ralph Johnson,Ralph Johnson and John Vlissides (The Gang of.
Design Patterns William A. Hoffman NYU OOP Class.
PRESENTED BY SANGEETA MEHTA EECS810 UNIVERSITY OF KANSAS OCTOBER 2008 Design Patterns.
CERN – European Organization for Nuclear Research GS Department – Administrative Information Services Design Patterns in Groovy Nicolas Décrevel Advanced.
Design Patterns Trends and Case Study John Hurst June 2005.
Design Patterns Standardized Recurring model Fits in many location Opposite of customization Fundamental types of pattern Choose and use as desired and.
Software Waterfall Life Cycle Requirements Construction Design Testing Delivery and Installation Operations and Maintenance Concept Exploration Prototype.
樣式導向設計 (Pattern-Oriented Design) 課程簡介 Ku-Yaw Chang Assistant Professor, Department of Computer Science and Information Engineering.
05 - Patterns Intro.CSC4071 Design Patterns Designing good and reusable OO software is hard. –Mix of specific + general –Impossible to get it right the.
CSSE 374: Introduction to Gang of Four Design Patterns
SOEN 6011 Software Engineering Processes Section SS Fall 2007 Dr Greg Butler
January 12, Introduction to Design Patterns Tim Burke References: –Gamma, Erich, et. al. (AKA, The Gang of Four). Design Patterns: Elements of Reusable.
Design Patterns CSCI 5801: Software Engineering. Design Patterns.
DESIGN PATTERNS CSC532 Adv. Topics in Software Engineering Shirin A. Lakhani.
18 April 2005CSci 210 Spring Design Patterns 1 CSci 210.
Software Design Patterns (1) Introduction. patterns do … & do not … Patterns do... provide common vocabulary provide “shorthand” for effectively communicating.
Object Oriented Software Engineering Chapter 16 and 17 review 2014/06/03.
CSE 403 Lecture 14 Design Patterns. Today’s educational objective Understand the basics of design patterns Be able to distinguish them from design approaches.
CSE 403, Spring 2008, Alverson Software Design “There are two ways of constructing a software design: one way is to make it so simple that there are obviously.
Methods: Deciding What to Design In-Young Ko iko.AT. icu.ac.kr Information and Communications University (ICU) iko.AT. icu.ac.kr Fall 2005 ICE0575 Lecture.
ECE450S – Software Engineering II
Design Patterns CSIS 3701: Advanced Object Oriented Programming.
Introduction to Design Patterns. Questions What is a design pattern? Who needs design patterns? How different are classes and objects in APL compared.
1 Design Patterns Object-Oriented Design. 2 Design Patterns 4Reuse of design knowledge and experience 4Common in many engineering disciplines 4Avoids.
Creational Patterns
What to know for the exam. Smalltalk will be used for questions, but there will not be questions about the grammar. Questions might ask – how particular.
Proxy.
Behavioral Patterns CSE301 University of Sunderland Harry R Erwin, PhD.
Software Design Patterns Curtsy: Fahad Hassan (TxLabs)
Stephenson College DP 98 1 Design Patterns by Derek Peacock.
Design Patterns. 1 Paradigm4 Concepts 9 Principles23 Patterns.
Introduction to Patterns. Introduction to Patterns Pattern: Webster definition of Pattern: Something regarded as a normative example to be copied.
Java Design Patterns Java Design Patterns. What are design patterns? the best solution for a recurring problem a technique for making code more flexible.
CS251 – Software Engineering Lectures 18: Intro to DP Slides by Rick Mercer, Christian Ratliff, Oscar Nierstrasz and others 1 و ابتغ فيما آتاك الله الدار.
Five Minute Design Patterns Doug Marttila Forest and the Trees May 30, 2009 Template Factory Singleton Iterator Adapter Façade Observer Command Strategy.
7 April 2004CSci 210 Spring Design Patterns 2 CSci 210.
CLASSIFICATION OF DESIGN PATTERNS Hladchuk Maksym.
Design Patterns CSCE 315 – Programming Studio Spring 2013.
The Object-Oriented Thought Process Chapter 15
Chapter 10 Design Patterns.
樣式導向設計 (Pattern-Oriented Design) 課程簡介
Software Design Patterns
MPCS – Advanced java Programming
Introduction to Design Patterns
Design Patterns Lecture part 2.
Introduction to Design Patterns
Structure We saw early on the importance of algorithms, but what about structuring our code? What's the best way to structure a larger project made of.
object oriented Principles of software design
Design Patterns.
SOEN 343 Software Design Computer Science and Software Engineering Department Concordia University Fall 2005 Instructor: Patrice Chalin.
Software Engineering Lecture 7 - Design Patterns
Design Patterns in Game Design
Informatics 122 Software Design II
CSE 403 Software Design.
DESIGN PATTERNS : Introduction
Informatics 122 Software Design II
CIS 644 Tues. Nov. 30, 1999 W15A … patterns.
Presentation transcript:

Testing Extensible Design Patterns in OO Frameworks through Scenario Templates D.S. Sanders Software Verification & Validation

Design Patterns Proven architectures for constructing flexible and maintainable software Promotes design reuse Language independent Neither classes nor objects

Origins & Progenitors The “Gang of Four”  Eric Gamma  Richard Helm  Ralph Johnson  John Vlissides Collectively penned “Design Patterns”: Elements of Reusable OO Software Written between ; released ‘95

Creational Patterns Abstract Factory* Factory Method* Builder Prototype Singleton

Structural Patterns Adapter Bridge Composite Decorator Façade Flyweight Visitor

Behavioral Patterns Chain of Responsibility Command Interpreter Iterator Mediator Momento Observer State Strategy* Template Method Visitor*

Post Gang of Four Patterns Architectural Patterns  Model – View – Controller Concurrency Patterns  Single Threaded Execution  Guarded Suspension  Balking  Read / Write Lock  Two Phase Termination

Memory Lane – Comp 110 Dynamic Typing  Some or all type checking done at runtime

More memory lane – Comp 110 Dynamic Binding  Determining at runtime the appropriate method to call

Pattern Categorization - Redux Static  Does not allow for easy extension  Behavior does not change after compile time  Easier to test Extensible  Allows functionality of the app to change  Adds new classes to the system  Some of the classes loaded at runtime

Factory Method Pattern

Factory Method Example

Strategy Pattern

Strategy Pattern Example

So much testing…so little time Scenario Based Testing Method Sequence Specification (MtSS) Message Sequence Specification (MgSS) Message Framework Specification (MfSS)

The Bank

MtSS of Account Class and MgSS of Method Withdraw

Message Framework Sequence Specs

Test Cases MfSS Slicing Partition Testing  Object Types  Number of / Groups of Objects  Object Input Space

More Memory Lane – Comp 380 Stress Testing Boundary Testing Negative Testing Random Testing

Compensating for Extensibility Testing Dynamic Typing Testing Dynamic Binding Testing Extensibility

Testing Results

Conclusion Testing Extensible Design Patterns is difficult MfSS will generate scenario templates which lead to test cases Use in Industry seems limited Source Code Credit  Kathy Sierra, Bert Bates (Factory, Strategy)  Collegeboard.org (GridWorld Case Study)