Top Banner
Chapter 7 GRASP patterns Dr Seham Mostefai CAP 252
13

Chapter 7 GRASP patterns Dr Seham Mostefai CAP 252.

Dec 26, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Chapter 7 GRASP patterns Dr Seham Mostefai CAP 252.

Chapter 7

GRASP patterns

Dr Seham MostefaiCAP 252

Page 2: Chapter 7 GRASP patterns Dr Seham Mostefai CAP 252.

2

Outline

• Historical background• What is a pattern?• GRASP Patterns

Dr Seham Mostefai CAP 252

Page 3: Chapter 7 GRASP patterns Dr Seham Mostefai CAP 252.

3

Historical background (1)

ArchitectureChristopher Alexander, professor of architecture: “A pattern describes a problem which occurs over and over again in our environment, and then describes the core of the solution to that problem, in such a way that you can use this solution a million times over, without ever doing it

the same way twice.”

C.Larman Slides on GRASP: Designing objects with responsibilitiesDr Seham Mostefai CAP 252

Patterns were used far before software design like in:

Page 4: Chapter 7 GRASP patterns Dr Seham Mostefai CAP 252.

Dr Seham Mostefai CAP 252 4

Historical background (2)

Dress making

C.Larman Slides on GRASP: Designing objects with responsibilities

You can make a dress by specifying the route of a scissors through a piece of cloth Or, by following a pattern.

Page 5: Chapter 7 GRASP patterns Dr Seham Mostefai CAP 252.

Dr Seham Mostefai CAP 252 5

Historical background (3)

…and other fields– Mature engineering disciplines have handbooks

describing successful solutions to known problems– Automobile designers don't design cars from

scratch, they reuse standard designs learnt from experience

– Should software engineers make use of patterns? Why?

Page 6: Chapter 7 GRASP patterns Dr Seham Mostefai CAP 252.

Dr Seham Mostefai CAP 252 6

Patterns in Software design

Developing software from scratch is expensive Patterns support reuse of software design solutions– 1987: Beck & Cunningham: patterns for UI– 1990-200: Gamma, Helm, Johnson and Vlissides: Gof patterns– More recently: C. Larman: GRASP patterns.– UML is a language, how can we apply it?

Page 7: Chapter 7 GRASP patterns Dr Seham Mostefai CAP 252.

Dr Seham Mostefai CAP 252 7

What is a software pattern?

Alexander: “A pattern is a recurring solution to a standard problem, in a context.”

In Object technology

C. Larman: “ a pattern is a named problem/solution pair that can be applied in new contexts, with advice on how to apply it in novel situations”

Page 8: Chapter 7 GRASP patterns Dr Seham Mostefai CAP 252.

Dr Seham Mostefai CAP 252 8

Pattern main features

• Must have a significant and suggestive name

• Designed to solve a particular problem

• Facilitates communication and understanding

and furnishes a solution

Page 9: Chapter 7 GRASP patterns Dr Seham Mostefai CAP 252.

Dr Seham Mostefai CAP 252 9

GRASP Patterns

• GRASP= General Responsibility Assignment Software Pattern

• Name chosen to suggest the importance of grasping fundamental principles to successfully design object-oriented software

• Describe fundamental principles of object design and responsibility expressed as patterns

Page 10: Chapter 7 GRASP patterns Dr Seham Mostefai CAP 252.

Dr Seham Mostefai CAP 252 10

Five GRASP Patterns

• Information Expert• Creator• Controller• Low Coupling• High Cohesion

Page 11: Chapter 7 GRASP patterns Dr Seham Mostefai CAP 252.

Dr Seham Mostefai CAP 252 11

Information Expert Pattern(1)

Name: Information ExpertProblem: How to assign responsibilities to objects?Solution: Assign responsibility to the class that has the

information needed to fulfill it?Example: ordering a meal in a restaurantWhich classes have the responsibility to get the total of

an order?Order DishLine DishDescription

Page 12: Chapter 7 GRASP patterns Dr Seham Mostefai CAP 252.

Dr Seham Mostefai CAP 252 12

Information Expert Pattern (2)

Effect on collaboration diagram

:Invoice :Order :DishLineT:=total() 1*:LT:=LineTotal()

:DishDescription

2: P:=Price()

By Expert

By Expert

By Expert

Page 13: Chapter 7 GRASP patterns Dr Seham Mostefai CAP 252.

Dr Seham Mostefai CAP 252 13

Information Expert Pattern (3)

• Effect on class diagram