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

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

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

UNIT I Introduction to Design Patterns

UNIT I Introduction to Design Patterns

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

SDC Design patterns GoF

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

INSTITUTE OF AERONAUTICAL ENGINEERING

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

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

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

Introduction to Software Engineering: Object Design I Reuse & Patterns

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

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

Design Patterns. An introduction

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

Design Patterns: Structural and Behavioural

A Reconnaissance on Design Patterns

Overview of Patterns: Introduction

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

Design Patterns. SE3A04 Tutorial. Jason Jaskolka

Object-oriented Software Design Patterns

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

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

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

C++ for System Developers with Design Pattern

WS01/02 - Design Pattern and Software Architecture

DESIGN PATTERN - INTERVIEW QUESTIONS

Design Patterns. Gunnar Gotshalks A4-1

Pro Objective-C Design Patterns for ios

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

SWEN425 DESIGN PATTERNS

Applying Design Patterns to SCA Implementations

Lecture 4: Observer Pattern, Event Library and Componentization

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

R07. IV B.Tech. II Semester Supplementary Examinations, July, 2011

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

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

CS/CE 2336 Computer Science II

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

Object-Oriented Oriented Programming

A Metric of the Relative Abstraction Level of Software Patterns

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

A Metric for Measuring the Abstraction Level of Design Patterns

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

Produced by. Design Patterns. MSc in Computer Science. Eamonn de Leastar

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

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

Domain Engineering And Variability In The Reuse-Driven Software Engineering Business.

COPYRIGHTED MATERIAL. Table of Contents. Foreword... xv. About This Book... xvii. About The Authors... xxiii. Guide To The Reader...

Object Oriented Paradigm

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

Information systems modelling UML and service description languages

Design patterns. Jef De Smedt Beta VZW

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

Brief Note on Design Pattern

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

DESIGN PATTERNS SURESH BABU M ASST PROFESSOR VJIT

Using Design Patterns in Java Application Development

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

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

Lectures 24 and 25 Introduction to Architectural Styles and Design Patterns

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

Topics in Object-Oriented Design Patterns

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

What is Design Patterns?

TDDB84. Lecture 2. fredag 6 september 13

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

Tuesday, October 4. Announcements

Software Eningeering. Lecture 9 Design Patterns 2

CS 247: Software Engineering Principles. Design Patterns

Design Patterns Lecture 2

PATTERN-ORIENTED SOFTWARE ARCHITECTURE

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

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

Writing your own Java I/O Decorator p. 102 Tools for your Design Toolbox p. 105 Exercise Solutions p. 106 The Factory Pattern Baking with OO

CS251 Software Engineering Lectures 18: Intro to DP

A Rapid Overview of UML

TDDB84: Lecture 6. Adapter, Bridge, Observer, Chain of Responsibility, Memento, Command. fredag 4 oktober 13

Lecture 20: Design Patterns II

Composite Pattern. IV.4 Structural Pattern

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

Introduction to Patterns and Frameworks

Design Pattern and Software Architecture: IV. Design Pattern

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

Overview CS Kinds of Patterns. Design Pattern. Factory Pattern Rationale. Kinds of Factory Patterns

Software Development Project. Kazi Masudul Alam

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

Design Patterns Reid Holmes

APPLYING DESIGN PATTERNS TO SCA IMPLEMENTATIONS

Patterns. Erich Gamma Richard Helm Ralph Johnson John Vlissides

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

Chapter 1. OO e OO. (Pattern) Alexander) (context) (elements) k. (issue) Š. (name) (classification)

Review Software Engineering October, 7, Adrian Iftene

3 Product Management Anti-Patterns by Thomas Schranz

Unit Wise Questions. Unit-1 Concepts

CSC207H: Software Design Lecture 6

1 Software Architecture

Requirements and Design Overview

administrivia today UML start design patterns Tuesday, September 28, 2010

Transcription:

Contents i UNIT - I UNIT - II UNIT - III CHAPTER - 1 [SOFTWARE REUSE SUCCESS FACTORS] Software Reuse Success Factors. CHAPTER - 2 [REUSE-DRIVEN SOFTWARE ENGINEERING IS A BUSINESS] Reuse Driven Software Engineering is a Business CHAPTER - 3 [OBJECT-ORIENTED SOFTWARE ENGINEERING] Object Oriented Software Engineering. CHAPTER - 4 [APPLICA APPLICATIONS AND COMPONENT SYSTEMS] Applications and Component Subsystems. CHAPTER - 5 [USE CASE COMPONENTS] Use Case Components. CHAPTER - 6 [OBJECT COMPONENTS] Use Case Components. CHAPTER - 7 [DESIGN PATTERNS Introduction. SYLLABUS CHAPTER - 8 [CREA CREATIONAL PATTERNS Factory Method, Abstract Factory, Singleton, Builder, Prototype. CHAPTER - 9 [STRUCTURAL PATTERNS Adapter, Bridge, Composite, Decorator, Facade, Flyweight, Proxy. CHAPTER - 10 [BEHA BEHAVIOURAL PATTERNS Chain of Responsibility, Command, Interpreter.

ii Contents UNIT - IV CHAPTER - 11 [BEHA BEHAVIOURAL PATTERNS TTERNS-I -I] Iterator, Mediator, Memento, Observer, State, Strategy, Template, Visitor. CHAPTER - 12 [OTHER DESIGN PATTERNS Whole-Part, Master-Slave, View Handler, Forward-Receiver, Client Dispatcher-Server, Publisher-Subscriber. UNIT - V CHAPTER - 13 [ARCHITECTURAL PATTERNS Layers, Pipes and Filters, Black Board, Broker, Model-View Controller, Presentation - Abstraction - Control, Micro Kernel, Reflection.

Contents SOFTWARE REUSE TECHNIQUES iii CONTENTS UNIT - I [CH. H. - 1] ] [SOFTWARE REUSE SUCCESS FACTORS]... 1.1-1.22 1.1 INTRODUCTION... 1.1 1.2 SOFTWARE REUSE IN A SIMPLE IDEA... 1.2 1.3 COMPONENTS ARE FUELING A REVOLUTION IN APPLICATION DEVELOPMENT... 1.3 1.4 A SYSTEMATIC APPROACH MAKES PRAGMATIC REUSE WORK... 1.4 1.5 ERICSSON AND HEWLETT-PACKARD REUSE EXPERIENCE REVEALS COMMON PRINCIPLES... 1.5 1.6 REUSE REQUIRE CHANGES IN PROCESS... 1.11 1.6.1 Domain Engineering... 1.13 1.6.2 Application System Engineering... 1.14 1.7 REUSE REQUIRES CHANGES IN ORGANISATION... 1.15 1.8 ADOPT REUSE SYSTEMATICALLY AND INCREMENTALLY... 1.16 1.9 INPUT FROM OTHER REUSE PROGRAM... 1.19 1.10 IT TAKES A SET OF PRINCIPLES... 1.21 UNIT - I [CH. - 2] ] [REUSE-DRIVEN SOFTWARE ENGINEERING IS A BUSINESS]... 1.23-1.38 2.1 INTRODUCTION... 1.23 2.2 IT IS A BUSINESS FOR YOU?... 1.24 2.3 MAKE SURE COST-EFFECTIVE... 1.25 2.4 A REUSE BUSINESS HAS BUSINESS CHARACTERISTICS... 1.26 2.4.1 Reuse-Driven Characteristics... 1.28 2.4.2 Applied Engineering Discipline... 1.28 2.5 ARCHITECT COMPONENTS AND APPLICATIONS... 1.28 2.5.1 Components and Component Systems... 1.31 2.5.2 Layered Architecture... 1.31

iv Contents 2.6 SOFTWARE ENGINEERING PROCESSES... 1.32 2.6.1 People and Processes Interact... 1.33 2.6.2 Application Family Engineering... 1.34 2.6.3 Application System Engineering... 1.34 2.6.4 Component System Engineering... 1.35 2.7 ESTABLISHING AND MANAGING A REUSE BUSINESS... 1.36 2.7.1 Improving Internal Processes... 1.37 2.7.2 Embedded Software... 1.37 2.7.3 Software House... 1.38 2.7.4 Software Product Vendor... 1.38 UNIT - I [CH.. - 3] ] [OBJECT OBJECT-ORIENTED ORIENTED SOFTWARE ENGINEERING]... 1.39-1.52 3.1 INTRODUCTION... 1.39 3.2 SOFTWARE ENGINEERING TRANSFORMS REQUIREMENTS INTO CODE.. 1.40 3.3 SOFTWARE ENGINEERING IS A TEAM PROCESS... 1.40 3.4 SOFTWARE ENGINEERING IS SYSTEMATIC MODEL BUILDING... 1.41 3.4.1 The Incremental, Iterative Software Engineering Life Cycle... 1.43 3.5 OBJECTS UNIFY THE MODELING PROCESS... 1.43 3.5.1 Objects Contain both Behaviour and Data... 1.44 3.5.2 Stereotypes Define Different Kinds of Types, Classes other and Elements... 1.44 3.5.3 Relationship Among Objects... 1.45 3.5.4 Packages and Subsystems Group Classes, Types and Elements... 1.45 3.6 THE USECASE MODEL CAPTURES SYSTEM REQUIREMENTS... 1.46 3.6.1 Actor Model Roles... 1.47 3.6.2 Usecases and System Transactions... 1.47 3.6.3 Usecase Generalization... 1.48

Contents v 3.7 THE ANALYSIS MODEL SHAPES SYSTEM ARCHITECTURE... 1.49 3.7.1 Different Analysis Stereotypes Capture Standard System Structure... 1.49 3.7.2 Diagrams Show Relationships Between Analysis Types... 1.50 3.8 THE DESIGN MODEL DEFINES THE IMPLEMENTATION... 1.50 3.9 THE IMPLEMENTATION MODEL IS THE CODE... 1.52 3.10 The test model validates the system... 1.52 UNIT - I [CH. H. - 4] ] [APPLICATIONS AND COMPONENT SYSTEMS]... 1.53-1.68 4.1 APPLICATION DEVELOPERS CAN REUSE OOSE MODEL COMPONENTS... 1.53 4.2 APPLICATION FAMILIES ALLOW SIGNIFICANT REUSE... 1.55 4.3 APPLICATION SYSTEMS ARE BUILT FROM REUSABLE COMPONENTS... 1.55 4.4 GROUP COMPONENTS INTO COMPONENT SYSTEMS... 1.55 4.5 FACADES CONTROL ACCESS TO COMPONENT SYSTEM INTERNALS... 1.56 4.6 FACADES AND COMPONENT SYSTEMS ARE SPECIAL KINDS OF PACKAGES... 1.57 4.7 COMPONENT SYSTEMS EXPORT COMPONENTS VIA FACADES... 1.58 4.8 SPECIALIZE SOME COMPONENTS BEFORE REUSE... 1.59 4.9 VARIABILITY OCCURS AT VARIATION POINTS... 1.60 4.10 USE SEVERAL KINDS OF VARIABILITY MECHANISMS... 1.62 4.10.1 Using Inheritance... 1.63 4.10.2 Using Extensions... 1.63 4.10.3 Using Parameterization, Templates and Macrons... 1.65 4.11 REUSE VARIABLE COMPONENTS TO BUILD APPLICATION SYSTEMS... 1.66 4.12 PACKAGE AND DOCUMENT COMPONENT SYSTEMS FOR REUSE... 1.67

vi Contents UNIT - I [CH. H. - 5] ] [USE CASE COMPONENTS]... 1.69-1.78 5.1 STRUCTURE THE USE CASE MODEL TO ENSURE COMPONENT REUSE... 1.69 5.2 THE USE CASE MODEL SHAPES THE REST OF THE SYSTEM... 1.70 5.3 REUSING COMPONENTS TO BUILD THE USE CASE MODEL... 1.71 5.4 DESIGN THE USE CASE COMPONENTS FOR EFFECTIVE REUSE... 1.72 5.5 NOT ALL USE CASES SHOULD BE REUSABLE COMPONENTS... 1.73 5.6 REUSING CONCRETE (OR) ABSTRACT ACTOR AND USE CASE COMPONENTS... 1.74 5.7 EXPRESSING USE CASE VARIABILITY... 1.75 5.7.1 Using Use Case Parameter and Templates... 1.76 5.7.2 Using Use Case Inheritance... 1.77 5.7.3 Using Use Case Extensions... 1.77 5.7.4 Choosing Between Users and Extends for Variability... 1.77 5.8 PACKGING AND DOCUMENTING USE CASE COMPONENTS... 1.77 UNIT - I [CH. - 6] ] [OBJECT COMPONENTS]... 1.79-1.92 6.1 OBJECT MODELS DEFINE SYSTEM ARCHITECTURE AND DESIGN... 1.79 6.2 REUSING ANALYSIS AND DESIGN COMPONENTS... 1.81 6.3 EXPRESSING VARIABILITY IN OBJECT MODEL COMPONENTS... 1.82 6.4 TRACING USECASE VARIABILITY TO THE OBJECT MODELS... 1.83 6.4.1 Reusing Compatible Usecase and Object Components... 1.83 6.4.2 Designing a Component System to be Reusable... 1.84 6.4.3 Mapping Usecase Variability to an Appropriate Object Variability Mechanism... 1.84 6.5 REUSABLE ANALYSIS COMPONENTS... 1.85 6.5.1 Architecture and Design Patterns Correspond to Abstract Usecases... 1.86 6.6 SUBSYSTEM COMPONENTS GROUP RELATED TYPES AND CLASSES... 1.86 6.6.1 Frameworks are Abstract Subsystems... 1.87 6.6.2 Interfaces Constrain Interactions Between Systems... 1.87

Contents vii 6.7 REUSABLE DESIGN AND IMPLEMENTATION COMPONENTS... 1.87 6.7.1 Implications of Programming Language Features... 1.87 6.7.2 Using Inheritance... 1.88 6.7.3 Using Extensions... 1.89 6.7.4 Using Parameterization, Templates and Generation... 1.90 6.8 PACKAGING AND DOCUMENTING OBJECT COMPONENTS AND VARIANTS... 1.91 UNIT - II [CH.. - 7] ] [DESIGN PATTERNS... 2.1-2.30 7.1 INTRODUCTION... 2.2 7.2 WHAT IS A DESIGN PATTERN?... 2.2 7.2.1 Advantages of Design Patterns... 2.3 7.2.2 Essential Elements of a Design Pattern... 2.4 7.3 DESIGN PATTERNS IN SMALLTALK MVC... 2.4 7.4 DESCRIBING DESIGN PATTERNS... 2.6 7.5 THE CATALOG OF DESIGN PATTERNS... 2.7 7.6 ORGANIZING THE CATALOG... 2.9 7.6.1 Creational Patterns... 2.10 7.6.2 Structural Patterns... 2.10 7.6.3 Behavioural Patterns... 2.10 7.6.4 Various Ways of Organizing the Design Patterns... 2.11 7.7 HOW DESIGN PATTERNS SOLVE DESIGN PROBLEMS... 2.16 7.7.1 Finding Appropriate Objects... 2.16 7.7.2 Determining the Granularity of Objects... 2.17 7.7.3 Specifying Object Interfaces... 2.17 7.7.4 Specifying Object Implementations... 2.18 7.7.4.1 Class Vs Interface Inheritance... 2.19 7.7.4.2 Principle of Reusable Object-Oriented Design... 2.20

viii Contents 7.7.5 Using Reuse Mechanisms... 2.21 7.7.5.1 Inheritance Vs Composition... 2.21 7.7.5.2 Difference between White-box Reuse and Black-box Reuse... 2.22 7.7.5.3 Inheritance Vs Parametrized Types... 2.23 7.7.6 Relating Run-time and Compile-time Structures... 2.24 7.7.6.1 Aggregation Vs Acquaintance... 2.24 7.7.7 Designing for Change... 2.25 7.7.7.1 Tool kits... 2.27 7.7.7.2 Frameworks... 2.27 7.8 HOW TO SELECT A DESIGN PATTERN... 2.28 7.9 HOW TO USE A DESIGN PATTERN... 2.30 UNIT - II [CH.. - 8] ] [CREA CREATIONAL PATTERNS... 2.31-2.72 8.1 CREATIONAL PATTERNS... 2.31 8.2 ABSTRACT FACTORY... 2.36 8.3 BUILDER... 2.43 8.4 FACTORY METHOD... 2.50 8.5 PROTOTYPE... 2.59 8.6 SINGLETON... 2.65 UNIT - III [CH. - 9] ] [STRUCTURAL PA... 3.1-3.68 9.1 INTRODUCTION... 3.1 9.2 ADAPTER... 3.1 9.3 BRIDGE... 3.10 9.4 COMPOSITE... 3.20 9.5 DECORATOR... 3.27 9.6 FACADE... 3.36 9.7 FLYWEIGHT... 3.44 9.8 PROXY... 3.55

Contents ix UNIT - III [CH.. - 10] ] [BEHA BEHAVIOURAL PATTERNS... 3.69-3.102 10.1 INTRODUCTION... 3.69 10.2 CHAIN OF RESPONSIBILITY... 3.70 10.3 COMMAND... 3.80 10.4 INTERPRETER... 3.90 UNIT - IV [CH.. - 11] ] [BEHA BEHAVIOURAL PATTERNS TTERNS-I -I]... 4.1-4.76 11.1 ITERATOR... 4.1 11.2 MEDIATOR... 4.10 11.3 MEMENTO... 4.19 11.4 OBSERVER... 4.27 11.5 STATE... 4.38 11.6 STRATEGY... 4.45 11.7 TEMPLATE METHOD... 4.55 11.8 VISITOR... 4.62 UNIT - IV [CH.. - 12] ] [OTHER DESIGN PATTERNS... 4.77-4.100 12.1 INTRODUCTION... 4.77 12.2 WHOLE-PART... 4.78 12.3 MASTER-SLAVE... 4.81 12.4 VIEW HANDLER... 4.85 12.5 FORWARDER-RECEIVER... 4.90 12.6 CLIENT DISPATCHER-SERVER... 4.93 12.7 PUBLISHER-SUBSCRIBER... 4.99 UNIT - V [CH. - 13] ] [ARCHITECTURAL PA... 5.1-5.68 13.1 INTRODUCTION... 5.1 13.2 LAYERS... 5.2 13.3 PIPES AND FILTERS... 5.17 13.4 BLACK BOARD... 5.29

x Contents 13.5 BROKER... 5.35 13.6 MODEL-VIEW CONTROLLER... 5.44 13.7 PRESENTATION-ABSTRACTION-CONTROL... 5.51 13.8 MICROKERNEL... 5.57 13.9 REFLECTION... 5.63