Applying Design Patterns to SCA Implementations

Similar documents
APPLYING DESIGN PATTERNS TO SCA IMPLEMENTATIONS

Design Pattern. CMPSC 487 Lecture 10 Topics: Design Patterns: Elements of Reusable Object-Oriented Software (Gamma, et al.)

Produced by. Design Patterns. MSc in Communications Software. Eamonn de Leastar

SDC Design patterns GoF

Design Patterns. Manuel Mastrofini. Systems Engineering and Web Services. University of Rome Tor Vergata June 2011

Software Design COSC 4353/6353 D R. R A J S I N G H

EPL 603 TOPICS IN SOFTWARE ENGINEERING. Lab 6: Design Patterns

UNIT I Introduction to Design Patterns

Ingegneria del Software Corso di Laurea in Informatica per il Management. Design Patterns part 1

The Strategy Pattern Design Principle: Design Principle: Design Principle:

Design Patterns: Structural and Behavioural

Using Design Patterns in Java Application Development

Object-oriented Software Design Patterns

Design Patterns. An introduction

DESIGN PATTERN - INTERVIEW QUESTIONS

Object Oriented Methods with UML. Introduction to Design Patterns- Lecture 8

UNIT I Introduction to Design Patterns

What is Design Patterns?

Object-Oriented Oriented Programming

Socket attaches to a Ratchet. 2) Bridge Decouple an abstraction from its implementation so that the two can vary independently.

A Reconnaissance on Design Patterns

CSCD01 Engineering Large Software Systems. Design Patterns. Joe Bettridge. Winter With thanks to Anya Tafliovich

Introduction to Software Engineering: Object Design I Reuse & Patterns

SYLLABUS CHAPTER - 1 [SOFTWARE REUSE SUCCESS FACTORS] Reuse Driven Software Engineering is a Business

Modellistica Medica. Maria Grazia Pia, INFN Genova. Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico

Design Patterns. SE3A04 Tutorial. Jason Jaskolka

Design Patterns. Observations. Electrical Engineering Patterns. Mechanical Engineering Patterns

Design Patterns. Dr. Rania Khairy. Software Engineering and Development Tool

Lecture 4: Observer Pattern, Event Library and Componentization

UP Requirements. Software Design - Dr Eitan Hadar (c) Activities of greater emphasis in this book. UP Workflows. Business Modeling.

Design Patterns. Hausi A. Müller University of Victoria. Software Architecture Course Spring 2000

Tuesday, October 4. Announcements

CSCI 253. Overview. The Elements of a Design Pattern. George Blankenship 1. Object Oriented Design: Iterator Pattern George Blankenship

Trusted Components. Reuse, Contracts and Patterns. Prof. Dr. Bertrand Meyer Dr. Karine Arnout

A Case Study of Gang of Four (GoF) Patterns: Part 3

Applying the Observer Design Pattern

Design patterns. Jef De Smedt Beta VZW

1 Software Architecture

Brief Note on Design Pattern

Keywords: Abstract Factory, Singleton, Factory Method, Prototype, Builder, Composite, Flyweight, Decorator.

A Primer on Design Patterns

CSCI Object Oriented Design: Frameworks and Design Patterns George Blankenship. Frameworks and Design George Blankenship 1

Topics. Software Process. Agile. Requirements. Basic Design. Modular Design. Design Patterns. Testing. Quality. Refactoring.

Object Oriented Paradigm

Ingegneria del Software Corso di Laurea in Informatica per il Management. Design Patterns part 1

Overview of Patterns: Introduction

Design Pattern What is a Design Pattern? Design Pattern Elements. Almas Ansari Page 1

Applying Design Patterns to accelerate development of reusable, configurable and portable UVCs. Accellera Systems Initiative 1

Produced by. Design Patterns. MSc in Communications Software. Eamonn de Leastar

Application Architectures, Design Patterns

Software Design Patterns. Background 1. Background 2. Jonathan I. Maletic, Ph.D.

Slide 1. Design Patterns. Prof. Mirco Tribastone, Ph.D

What is Design Patterns?

Software Development Project. Kazi Masudul Alam

CSCD01 Engineering Large Software Systems. Design Patterns. Joe Bettridge. Winter With thanks to Anya Tafliovich

A Rapid Overview of UML

Extensibility Design Patterns From The Initial Stage of Application Life-Cycle

Design Patterns #3. Reid Holmes. Material and some slide content from: - GoF Design Patterns Book - Head First Design Patterns

Applying the Decorator Design Pattern

Material and some slide content from: - GoF Design Patterns Book. Design Patterns #1. Reid Holmes. Lecture 11 - Tuesday October

DESIGN PATTERNS MOCK TEST DESIGN PATTERNS MOCK TEST II

Object-Oriented Design

CS/CE 2336 Computer Science II

Lectures 24 and 25 Introduction to Architectural Styles and Design Patterns

Design Patterns in Python (Part 2)

CSSE 374: More Object Design with Gang of Four Design Patterns

Modellistica Medica. Maria Grazia Pia, INFN Genova. Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico

CSCI 253. Overview. The Elements of a Design Pattern. George Blankenship 1. Object Oriented Design: Template Method Pattern. George Blankenship

CS251 Software Engineering Lectures 18: Intro to DP

Ownership in Design Patterns. Master's Thesis Final Presentation Stefan Nägeli

OODP Session 4. Web Page: Visiting Hours: Tuesday 17:00 to 19:00

What is Design Patterns?

Software Eningeering. Lecture 9 Design Patterns 2

MVC. Model-View-Controller. Design Patterns. Certain programs reuse the same basic structure or set of ideas

Patterns. Erich Gamma Richard Helm Ralph Johnson John Vlissides

be used for more than one use case (for instance, for use cases Create User and Delete User, one can have one UserController, instead of two separate

Design Patterns Lecture 2

C++ for System Developers with Design Pattern

A few important patterns and their connections

Plan. A few important patterns and their connections. Singleton. Singleton: class diagram. Singleton Factory method Facade

Review Software Engineering October, 7, Adrian Iftene

design patterns FOR B.tech (jntu - hyderabad & kakinada) (IV/I - CSE AND IV/II - IT) CONTENTS 1.1 INTRODUCTION TO DESIGN PATTERNS TTERNS... TTERN?...

Applying Some Gang of Four Design Patterns CSSE 574: Session 5, Part 3

Design Patterns. "Gang of Four"* Design Patterns. "Gang of Four" Design Patterns. Design Pattern. CS 247: Software Engineering Principles

CS 247: Software Engineering Principles. Design Patterns

INSTITUTE OF AERONAUTICAL ENGINEERING

Software Reengineering Refactoring To Patterns. Martin Pinzger Delft University of Technology

Design Patterns Reid Holmes

3 Product Management Anti-Patterns by Thomas Schranz

Lecture 20: Design Patterns II

Creational Design Patterns

TDDB84. Lecture 2. fredag 6 september 13

THOMAS LATOZA SWE 621 FALL 2018 DESIGN PATTERNS

I, J. Key-value observing (KVO), Label component, 32 text property, 39

SWEN425 DESIGN PATTERNS

A Metric of the Relative Abstraction Level of Software Patterns

Idioms and Design Patterns. Martin Skogevall IDE, Mälardalen University

Design Patterns. (and anti-patterns)

LECTURE NOTES ON DESIGN PATTERNS MCA III YEAR, V SEMESTER (JNTUA-R09)

WS01/02 - Design Pattern and Software Architecture

Transcription:

Applying Design Patterns to SCA Implementations Adem ZUMBUL (TUBITAK-UEKAE, ademz@uekae.tubitak.gov.tr) Tuna TUGCU (Bogazici University, tugcu@boun.edu.tr) SDR Forum Technical Conference, 26-30 October 2008, Washington, USA

HİZMETE 2 Outline Design Patterns Creational Structural Behavioral Applying Design Patterns to SCA Factory Method Chain of Responsibility Adapter Singleton Facade Conclusion

Design Patterns Design Patterns Optimum solutions to common software engineering problems Appying Design Patterns Speed up development process Provides tested and proven design paradigms Improves code readability Become famous after Design Patterns: Elements of Reusable Object- Oriented Software, Gang of Four (GoF) HİZMETE 3

HİZMETE 4 Design Patterns Design Patterns Creational Patterns Abstract Factory Builder Factory Prototype Singleton Deals with object instantiation problems Solves object creation problems

HİZMETE 5 Design Patterns Design Patterns Structural Patterns Adapter Bridge Composite Decorator Facade Flyweight Proxy Define ways to compose objects Can be applied Design from scratch Modify existing systems

Design Patterns HİZMETE 6 Design Patterns Behavioral Patterns Chain of Responsibility Command Interpreter Iterator Mediator Memento Observer State Strategy Template Visitor Solves object communication problems Depicts how objects act together

HİZMETE 7 Design Patterns General Rules about Design Patterns All client objects should always call the abstraction Future changes should not impact the existing systems Change always what is changing Have loose coupling between objects

HİZMETE 8 Design Patterns Factory Method Defines an interface for creating objects Lets subclasses to decide which class to instantiate

Design Patterns HİZMETE Applying Factory Method Solves portability problems Seperate OS and ORB specific codes with the rest of the systems Manages configuration specific issues Change only the configuration of the factory class Deals with future changes Allows insertion of new derived subclasses 9

HİZMETE 10 Design Patterns Chain of Responsibility Avoids coupling of the sender of a message to its receiver Allows more than one object to handle the request It chains the receiving objects and passes the request along the chaing until an object handles it

Design Patterns HİZMETE Applying CoR Can be applied in conjuction with Port concept Components can be chained to handle incoming data or not Each component decides by checking Permissions Capacity values Priorities Dependencies Performance reqs Props of incoming data Allows insertion or removal of new components without affecting existing codes. Can be life saving for applications where requirements frequently change. 11

HİZMETE 12 Design Patterns Adapter Converts the interface of a class to another interface Adapter lets classes to work together that otherwise can t It simply adapts old interface to the new one

HİZMETE 13 Design Patterns Applying Adapter Can be applied to adapt nonsca code to SCA classes Typically not used to design from scratch but rather applied to modify existing design

Design Patterns HİZMETE Singleton Ensures a class to have only one instance Provide a global point of access Relatively simple pattern to apply From SCA point of view Device classes that wraps a hardware should have only one instance To have only one capacity manager Device cannot be initialized more than once. ORB classes can implement Singleton pattern to ensure central policy manager Can be applied in conjuction with Factory Method pattern to ensure returned concrete classes has only one instance. 14

Design Patterns HİZMETE State Allows an object to alter its behaviour when it s internal state changes. Benefit of State pattern is specific code is localized in the class that represents that state. Reduces complexity by seperating state depending code with the rest of the system. Can be applied in conjuction with the SCA state variables ENABLED, DISABLED, SHUTTING_DOWN, LOCKED, UNLOCKED, IDLE, ACTIVE, BUSY 15

Design Patterns HİZMETE 16 Facade Provides a unique interface to a set of interfaces Makes the subsystem easier to use Beautifies an existing cumbersome class by behaving a door to its complex interface Facade classes can be used as a wrapper to nonsca classes to prevent re-implementing the existing codes It can also be used to collect seperate CORBA interfaces into a single interface

Conclusions HİZMETE We have summarized Design Pattern concept and provided example application areas to some of them SCA tells developers What to implement Not How to implement Appying OOP concepts is essential to maximize the benefits of SCA Portability Reconfigurability Reusability Applying Design Patterns helps developers to implement better SDR applications 17

HİZMETE 18 Questions