Subtopics: 1. Frameworks :Reusable systems 2. Design Patterns 1.

Slides:



Advertisements
Similar presentations
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
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.
Design Patterns Introduction What is a Design Pattern? Why were they developed? Why should we use them? How important are they?
SERL - Software Engineering Research Labslide1 Frameworks and Hooks by Garry Froehlich Paul Sorenson SERL (Software Engineering Research Lab)
Basic Concepts in Component-Based Software Engineering
Chapter 6: Using Design Patterns
Dept. of Computer Engineering, Amirkabir University of Tech. 1 Design Patterns Dr. Noorhosseini Introduction.
Satzinger, Jackson, and Burd Object-Orieneted Analysis & Design
CS350/550 Software Engineering Lecture 1. Class Work The main part of the class is a practical software engineering project, in teams of 3-5 people There.
Adapters Presented By Zachary Dea. Definition A pattern found in class diagrams in which you are able to reuse an ‘adaptee’ class by providing a class,
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 3: Basing Software Development on Reusable Technology.
ECE 355 Design Patterns Tutorial Part 2 (based on slides by Ali Razavi) Presented by Igor Ivković
Reuse Activities Selecting Design Patterns and Components
Chapter 22 Object-Oriented Design
PRESENTED BY SANGEETA MEHTA EECS810 UNIVERSITY OF KANSAS OCTOBER 2008 Design Patterns.
Systems Design. Analysis involves understanding and documenting user requirements in a clear and unambiguous way. It focuses on the business side and.
Design Patterns academy.zariba.com 1. Lecture Content 1.What are Design Patterns? 2.Creational 3.Structural 4.Behavioral 5.Architectural 6.Design Patterns.
1 An introduction to design patterns Based on material produced by John Vlissides and Douglas C. Schmidt.
CSCI-383 Object-Oriented Programming & Design Lecture 15.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse 2.
Introduction to software design patterns For CSE 3902 By: Matt Boggus.
Design Patterns.
Draw a small class diagram (2 or 3 classes) for each of the following examples: For Netflixs, you have to keep track of the movie details AND the copies.
An Introduction to Software Architecture
Design patterns. What is a design pattern? Christopher Alexander: «The pattern describes a problem which again and again occurs in the work, as well as.
An Introduction to Design Patterns. Introduction Promote reuse. Use the experiences of software developers. A shared library/lingo used by developers.
Design Patterns Part two. Structural Patterns Concerned with how classes and objects are composed to form larger structures Concerned with how classes.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 6: Using Design Patterns 1.
Introduction To System Analysis and Design
Odyssey A Reuse Environment based on Domain Models Prepared By: Mahmud Gabareen Eliad Cohen.
Design Patterns Introduction What is a Design Pattern? Why were they developed? Why should we use them? How important are they?
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 3: Basing Software Development on Reusable Technology.
Software Engineering, Lecture 4 Mohamed Elshaikh.
L11-12: Design Patterns Definition Iterator (L4: Inheritance)‏ Factory (L4: Inheritance)‏ Strategy (L5: Multiple Inheritance)‏ Composite (L6: Implementation.
Software Design Patterns (1) Introduction. patterns do … & do not … Patterns do... provide common vocabulary provide “shorthand” for effectively communicating.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 6: Using Design Patterns.
Structural Design Patterns
Introduction to Design Patterns Part 1. © Lethbridge/Laganière 2001 Chapter 6: Using design patterns2 Patterns - Architectural Architectural Patterns:
Title Carolina First Steering Committee October 9, 2010 Online Voting System Design Yinpeng Li and Tian Cao May 3, 2011.
FacadeDesign Pattern Provide a unified interface to a set of interfaces in a subsystem. Defines a high level interface that makes the subsystem easier.
DESIGN PATTERNS COMMONLY USED PATTERNS What is a design pattern ? Defining certain rules to tackle a particular kind of problem in software development.
Design Pattern. Definition: A design pattern is a general reusable solution to a commonly occurring problem within a given context in software design.
1 OO Analysis & Design - Introduction to main ideas in OO Analysis & design - Practical experience in applying ideas.
Software Design Patterns Curtsy: Fahad Hassan (TxLabs)
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 6: Using Design Patterns.
Design Patterns Software Engineering CS 561. Last Time Introduced design patterns Abstraction-Occurrence General Hierarchy Player-Role.
1 Chapter 5:Design Patterns. 2 What are design pattern?  Schematic description of design solution to recurring problems in software design and,  Reusable.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 3: Basing Software Development on Reusable Technology.
Design Patterns in Context ©SoftMoore ConsultingSlide 1.
Watching the movie the hard way…. Page 256 – Head First Design Patterns.
Chapter 8 Object Design Reuse and Patterns. More Patterns Abstract Factory: Provide manufacturer independence Builder: Hide a complex creation process.
COP 3331 Object-Oriented Analysis and Design 1 Design Overview  Design Overview (Ch 6)  Review of RAD  System Design  System Design Concepts  System.
CLASSIFICATION OF DESIGN PATTERNS Hladchuk Maksym.
Design Patterns: MORE Examples
Design Patterns (Chapter 6 of Text Book – Study just 8)
Chapter 10 Design Patterns.
Chapter 5:Design Patterns
Design Patterns Lecture part 2.
Introduction to Design Patterns
Presented by Igor Ivković
Chapter 6: Using Design Patterns
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
Introduction to Design Patterns Part 1
Frameworks And Patterns
Object Oriented Design Patterns - Structural Patterns
Patterns.
An Introduction to Software Architecture
CMPE 135 Object-Oriented Analysis and Design March 21 Class Meeting
Presented by Igor Ivković
Presentation transcript:

Subtopics: 1. Frameworks :Reusable systems 2. Design Patterns 1

F RAMEWORKS : REUSABLE SYSTEMS What are re-use able systems?  Reuse: Reuse can be defined as adapting to an existing system.  It facilitates software development.  Frameworks are a software technology, that promotes reuse. 2

W HAT IS S OFTWARE R EUSE ?  It is the process of implementing or updating software systems using existing software assets.  Software assets, include all software products, from requirements to specifications & designs.  Anything that is produced from a software development effort can be reused. 3

W HY R EUSE S OFTWARE ?  Reusable means developing software that is understandable & flexible enough to be used in a variety of systems.  It avoids redeveloping software.  Facilitates the increase of productivity, quality, and reliability, and the decrease of costs and implementation time. 4

Types Of Reuse Standard Designs Expertise Complete Applications Frameworks Classes & Procedures 5

P ROS & C ONS OF SOFTWARE REUSE : Efficiency Standardization Debugging Profit earning Mismatch: Design may not completely match your system. Expense: Some components maybe too expensive for the project’s budget. PROS:CONS: 6

1. F RAMEWORKS :  Introduction to frameworks  Components of a framework  Types of frameworks  Object-Oriented frameworks  Example 7

I NTRODUCTION :  Framework :  Frameworks promote re-usability.  Provides common facilities which can be applied to various application programs. 8 A framework is a reusable software that provides a generic solution to a generalized problem.

P RINCIPLE BEHIND A FRAMEWORK :  They are different from other subsystems, since they are intrinsically incomplete.  This means they comprise of classes & methods which are either undeveloped or missing. 9 “identify the common design elements & develop software that implements these design elements in a useful way.”

10 Elements of a Framework SLOTS: Missing parts Filled in by developer to suit the system. Increases complexity. HOOKS: Similar to slots Optional for the developer. API: Set of services provided by frameworks. Consists of useful methods (functions).

T YPES OF FRAMEWORKS : 1. Provides general application facilities to be used by large no. of applications. 2. It is a single API. 3. Larger no. of slots and hooks, since implementation is more general &not specific. 4. Produces complexity in the development process. 1. Provides general application facilities to be used by specific classes only. 2. Comprised of several horizontal frameworks. 3. Fewer slots &hooks since implementation is specific. 4. Allows easy development. HORI ZONTA L VERTICA L 11

12 application Horizontal framework Vertical framework Services offered by the framework Code to be provided to adapt the framework to the needs of the application slot hook Fig: Horizontal & Vertical Framework

E XAMPLE : L IBRARY M ANAGEMENT  Problem Definition: Design a framework, so that different libraries would be able to adapt to, meet their needs. List the kind of facilities you want to provide, if you were to design such a framework. In what way do libraries differ such that they would want to use a framework rather than a complete application.? 13

S OLUTION : 1. User interface for standard searches(browsing). 2. Basic classes for books, clients, &their common operations. 3. Methods that store the user info. Like address etc..i.e. common data. 1. Kind of info kept about each member. 2. Rules of issuing book & fine schemes. 3. Specialized items that can be issued from the library. 4. Security mechanisms. 5. Integration of the system with other online libraries or books database. Common FactorsDifferentiating Factors 14

15 O BJECT - ORIENTED FRAMEWORKS : Developer Concrete Class Abstract Classes Subclass: Method1(); Method2(); creates inheritance Method1(); Method2(); Only SLOTS Actual methods

2:- I NTRODUCTION TO D ESIGN PATTERNS 16

P ATTERNS :  Patterns are recurring aspects of designs.  Used to create hierarchies of instances, i.e. General hierarchy. 17 “ A pattern is the outline or a reusable solution to a general problem encountered in a particular context.”

18 Anti patterns References Related Patterns Context Forces Problem Solution A good Pattern

A GOOD PATTERN SHOULD …….  Have a name.  Simple diagram, described in a narrative style.  The general situation.  Acknowledgements of contributors.  Recommended solution to the problem.  Issues to be considered while solving.  Main difficulty to be tackled. 19

20 TYPES Singleton Observer Adapter Facade Proxy

T HANK YOU 21 L.L.Britto,XIE,TE-I.T