SlideShare uma empresa Scribd logo
1 de 38
Submitted To: 
Submitted by: 
Fizza Durrani 
11073 
7th Semester UET(A) 
October 15, 2014 
Lahore Garrison University 1
“The critical design tool for software 
development is a mind well educated in 
design principles. It is not the UML or any 
other technology.“ 
Craig Larman 
Thus, GRASP is really a mental toolset, a learning 
aid to help in the design of object-oriented 
software. 
Lahore Garrison University 2
It stands for: 
 General 
 Responsibilities 
 Assignment 
 Software 
 Patterns (Principles) 
Lahore Garrison University 3
Responsibility 
A contract / obligation that a class / module / 
component must accomplish 
 Knowledge 
 Private state 
 Computed state 
 
 
 Behavior 
 Send messages itself and modify its private 
state 
 Instantiate another objects 
 Send messages to another objects 
Lahore Garrison University 4
 “doing” responsibilities 
 Doing something itself, such as creation an 
object or doing a calculation. 
 Initiating action in other objects 
 Controlling and coordinating activities in other 
objects. 
 “knowing” responsibilities 
 Knowing about encapsulated data. 
 Knowing about related objects. 
 Knowing about things it can derive or 
calculate. 
Lahore Garrison University 5
Lahore Garrison University 6
 Informational Expert 
 Creator 
 Low Coupling 
 High Cohesion 
 Controller 
 Polymorphism 
 Pure Fabrication 
 Indirection 
 Controlled Variation 
Lahore Garrison University 7
Lahore Garrison University 8
Problem: Which class possesses information 
about object A? 
More common question: What is a general 
principle of assigning responsibilities to 
objects? 
Assign the responsibility to the class that 
knows the necessary information for 
performing required action and fulfill the 
responsibility. 
Lahore Garrison University 9
A B C D 
DO 
GetDataX() 
GetDataY() 
GetDataZ() 
return Z 
return Y 
return X 
Lahore Garrison University 10
A B C D 
DO 
DoAction() 
DoAction(X) 
DoAction(Y) 
Lahore Garrison University 11
Lahore Garrison University 12
Problem: Who should be responsible for creating 
object 
A? 
 Class B must have that responsibility if: 
 B is composed by A (composition) 
 B knows the necessary information in order to 
instantiate A objects 
 B depends heavily on A 
Lahore Garrison University 13
• The goal is to define creator-object, which will be 
related to all created objects. 
64 
Board Square 
Square 
Board 
create 
create 
Lahore Garrison University 14
Lahore Garrison University 15
Problem: How to minimize dependencies between 
classes ? 
Coupling is the degree, defines how tightly one 
component linked to other components, or how 
much 
information it knows about other components. 
Examples 
 Inheritance 
 Composition / aggregation / association 
 A send messages to B 
Lahore Garrison University 16
 Assign a responsibility so that coupling remains 
low. 
Low Coupling is an evaluative pattern, which 
dictates how to assign responsibilities to support: 
 lower dependency between the classes, 
 change in one class having lower impact on 
other classes, 
 higher reuse potential. 
Lahore Garrison University 17
Lahore Garrison University 18
Problem: How to keep objects focused, 
understandable, manageable, and support low 
coupling? 
Cohesion is a measure of how strongly related 
or focused the responsibilities of a single module 
are. 
High Cohesion is an evaluative pattern that 
attempts to keep objects appropriately focused, 
manageable and understandable. 
Lahore Garrison University 19
 Alternatively, low cohesion is a situation in 
which a given element has too many unrelated 
responsibilities (“God Object”) 
Low Cohesion implies: 
 Hard to reuse 
 Hard to maintain 
 Constantly changing 
Lahore Garrison University 20
A A ?? ?? 
DoA() 
DoB() 
DoC() 
DoA() 
DoB() 
DoC() 
Lahore Garrison University 21
Lahore Garrison University 22
Problem: Who should be responsible for 
handling events and messages from external 
actors (UI, …)? 
 Assign the responsibility to a class, such as: 
A class that represents the overall system, 
device, or subsystem. 
Façade Controller Pattern 
A class that represent a use case, whereby 
performs handling particular system operation. 
Use Case Controller Pattern 
 Generally does not perform operation by itself, but delegate 
responsibility to component objects. 
Lahore Garrison University 23
Lahore Garrison University 24
Problem: How to act different depending in 
object’s 
class, or how to design pluggable components? 
 In case of class behavior might changes, 
responsibilities segregates to different behavior 
specific classes, using polymorphic operations 
for this class. 
 Advise: Do not use type checking, but 
conditional logic for implementation different 
variations based on object type. 
Lahore Garrison University 25
Player 
 There are (roughly) 3 types a polymorphism: 
 Ad hoc Polymorphism 
 Parametric Polymorphism 
 Subtype Polymorphism 
Square 
landedOn 
RegularSquare 
landedOn 
GoSquare 
landedOn 
OtherSquare 
landedOn 
Lahore Garrison University 26
Lahore Garrison University 27
 Problem: How to assign responsibilities if applying the 
Informational Expert principle decreases cohesion and 
increases coupling? 
 Assign the responsibility to an artificial class that does 
not belongs to the domain model. 
 Pure Fabrication is a class that does not reflect any 
business domain object, but required only for increase 
cohesion and decrease coupling. 
Lahore Garrison University 28
Lahore Garrison University 29
 Problem: How to assign responsibilities in order to avoid 
direct coupling between two components, and keep 
ability for reuse. 
 Assign responsibility to intermediate class for providing 
linking between objects not linking directly. 
 Related design patterns: Adapter, Bridge, Mediator. 
Lahore Garrison University 30
Lahore Garrison University 31
 Problem: How to design system and subsystems, 
that changes in these components does not affects 
on other components. 
 Identify points of possible variations and instability; 
create stable interfaces upon instable components. 
Open-Closed Principle almost equivalent to CV 
pattern. 
Lahore Garrison University 32
 There are 2 types of points: 
 Variation point – branching point on existing system or 
in requirements. For example we need to support 
several types of interfaces for tax payment system 
 Evolution point – supposed branching point, which 
might occur in future, but does not declared by existing 
requirements. 
 Protected variation pattern applying for both variation 
and evolution points. 
Lahore Garrison University 33
Informational Expert Assign a responsibility to the class that has the 
information needed to fulfill it. 
Creator Assign class B the responsibility to create an instance 
of class A if one of these is true (the more the better): 
• B "contains" or compositely aggregates A. 
• B records A. 
• B closely uses A. 
• B has the initializing data for A that will be passed 
to A when it is crated. Thus B is an Expert with 
respect to creating A. 
Controller Assign the responsibility to a class representing one 
of the following choices: 
• Major subsystem classes 
• A use case scenario classes within which the 
system event occurs 
Low Coupling Assign a responsibility so that coupling remains low. 
High Cohesion Lahore GarArissons Uingivners iaty responsibility so that coh3e4 sion remains high.
Polymorphism The same name operations (methods) in the 
difference classes is defined. And assign a 
responsibility to the class the class that the behavior 
is changed. 
Pure Fabrication Define a class for convenience' sake that doesn't 
express the concept of the problem area at all. 
Indirection Assign the responsibility to an intermediate object to 
mediate between other components or services, so 
that they are not directly coupled. 
Protected Variations Assign responsibility to create a stable interface 
around an unstable or predictably variable subsystem 
or component. 
Lahore Garrison University 35
 http://en.wikipedia.org/wiki/GRASP_%28object-oriented_ 
design%29 
 http://www.slideshare.net/snmgian/grasp-principles 
 http://www.slideshare.net/eduardo_diederichsen/d 
esign-talk-grasp-patterns?related=1 
 http://www.slideshare.net/eduardo_diederichsen/d 
esign-talk-grasp-patterns?related=1 
Lahore Garrison University 36
Any Question 
Lahore Garrison University 37
Lahore Garrison University 38

Mais conteúdo relacionado

Mais procurados

Introduction to Design Pattern
Introduction to Design  PatternIntroduction to Design  Pattern
Introduction to Design PatternSanae BEKKAR
 
Classes and Objects
Classes and Objects  Classes and Objects
Classes and Objects yndaravind
 
Design patterns ppt
Design patterns pptDesign patterns ppt
Design patterns pptAman Jain
 
Component and Deployment Diagram - Brief Overview
Component and Deployment Diagram - Brief OverviewComponent and Deployment Diagram - Brief Overview
Component and Deployment Diagram - Brief OverviewRajiv Kumar
 
Grasp patterns and its types
Grasp patterns and its typesGrasp patterns and its types
Grasp patterns and its typesSyed Hassan Ali
 
Object oriented methodologies
Object oriented methodologiesObject oriented methodologies
Object oriented methodologiesnaina-rani
 
Sequence diagram- UML diagram
Sequence diagram- UML diagramSequence diagram- UML diagram
Sequence diagram- UML diagramRamakant Soni
 
SRS(software requirement specification)
SRS(software requirement specification)SRS(software requirement specification)
SRS(software requirement specification)Akash Kumar Dhameja
 
Object oriented software engineering concepts
Object oriented software engineering conceptsObject oriented software engineering concepts
Object oriented software engineering conceptsKomal Singh
 
Unit 3(advanced state modeling & interaction meodelling)
Unit  3(advanced state modeling & interaction meodelling)Unit  3(advanced state modeling & interaction meodelling)
Unit 3(advanced state modeling & interaction meodelling)Manoj Reddy
 
Design Concept software engineering
Design Concept software engineeringDesign Concept software engineering
Design Concept software engineeringDarshit Metaliya
 
The Object Model
The Object Model  The Object Model
The Object Model yndaravind
 
INTRODUCTION TO UML DIAGRAMS
INTRODUCTION TO UML DIAGRAMSINTRODUCTION TO UML DIAGRAMS
INTRODUCTION TO UML DIAGRAMSAshita Agrawal
 
SE_Lec 09_ UML Behaviour Diagrams
SE_Lec 09_ UML Behaviour DiagramsSE_Lec 09_ UML Behaviour Diagrams
SE_Lec 09_ UML Behaviour DiagramsAmr E. Mohamed
 
Object Modeling Techniques
Object Modeling TechniquesObject Modeling Techniques
Object Modeling TechniquesShilpa Wadhwani
 

Mais procurados (20)

Introduction to Design Pattern
Introduction to Design  PatternIntroduction to Design  Pattern
Introduction to Design Pattern
 
Classes and Objects
Classes and Objects  Classes and Objects
Classes and Objects
 
Uml
UmlUml
Uml
 
Design patterns ppt
Design patterns pptDesign patterns ppt
Design patterns ppt
 
Use Case Modeling
Use Case ModelingUse Case Modeling
Use Case Modeling
 
Component and Deployment Diagram - Brief Overview
Component and Deployment Diagram - Brief OverviewComponent and Deployment Diagram - Brief Overview
Component and Deployment Diagram - Brief Overview
 
Grasp patterns and its types
Grasp patterns and its typesGrasp patterns and its types
Grasp patterns and its types
 
Object oriented methodologies
Object oriented methodologiesObject oriented methodologies
Object oriented methodologies
 
Sequence diagram- UML diagram
Sequence diagram- UML diagramSequence diagram- UML diagram
Sequence diagram- UML diagram
 
SRS(software requirement specification)
SRS(software requirement specification)SRS(software requirement specification)
SRS(software requirement specification)
 
Object oriented software engineering concepts
Object oriented software engineering conceptsObject oriented software engineering concepts
Object oriented software engineering concepts
 
Unit 3(advanced state modeling & interaction meodelling)
Unit  3(advanced state modeling & interaction meodelling)Unit  3(advanced state modeling & interaction meodelling)
Unit 3(advanced state modeling & interaction meodelling)
 
CS8592-OOAD Lecture Notes Unit-3
CS8592-OOAD Lecture Notes Unit-3CS8592-OOAD Lecture Notes Unit-3
CS8592-OOAD Lecture Notes Unit-3
 
Design Concept software engineering
Design Concept software engineeringDesign Concept software engineering
Design Concept software engineering
 
Object Oriented Design
Object Oriented DesignObject Oriented Design
Object Oriented Design
 
The Object Model
The Object Model  The Object Model
The Object Model
 
Software design
Software designSoftware design
Software design
 
INTRODUCTION TO UML DIAGRAMS
INTRODUCTION TO UML DIAGRAMSINTRODUCTION TO UML DIAGRAMS
INTRODUCTION TO UML DIAGRAMS
 
SE_Lec 09_ UML Behaviour Diagrams
SE_Lec 09_ UML Behaviour DiagramsSE_Lec 09_ UML Behaviour Diagrams
SE_Lec 09_ UML Behaviour Diagrams
 
Object Modeling Techniques
Object Modeling TechniquesObject Modeling Techniques
Object Modeling Techniques
 

Destaque (20)

GRASP Principles
GRASP PrinciplesGRASP Principles
GRASP Principles
 
GRASP Principles
GRASP PrinciplesGRASP Principles
GRASP Principles
 
Grasp principles
Grasp principlesGrasp principles
Grasp principles
 
09 grasp
09 grasp09 grasp
09 grasp
 
14 grasp-1
14 grasp-114 grasp-1
14 grasp-1
 
Gof design patterns
Gof design patternsGof design patterns
Gof design patterns
 
BIS 08a - Application Development - II Version 2
BIS 08a - Application Development - II Version 2BIS 08a - Application Development - II Version 2
BIS 08a - Application Development - II Version 2
 
Chapter03
Chapter03Chapter03
Chapter03
 
Chapter04
Chapter04Chapter04
Chapter04
 
8. operation contracts
8. operation contracts8. operation contracts
8. operation contracts
 
OOA&D Lecture1
OOA&D Lecture1OOA&D Lecture1
OOA&D Lecture1
 
Refactoring to SOLID Code
Refactoring to SOLID CodeRefactoring to SOLID Code
Refactoring to SOLID Code
 
OOA&D Lecture 2 uml notations
OOA&D Lecture 2 uml notations OOA&D Lecture 2 uml notations
OOA&D Lecture 2 uml notations
 
Lecture 4
Lecture 4Lecture 4
Lecture 4
 
Silva assessment
Silva assessmentSilva assessment
Silva assessment
 
Performance based project jessica allen 2
Performance based project jessica allen 2Performance based project jessica allen 2
Performance based project jessica allen 2
 
Whitney Backwards Assessment April 2008
Whitney Backwards Assessment April 2008Whitney Backwards Assessment April 2008
Whitney Backwards Assessment April 2008
 
Chapter02
Chapter02Chapter02
Chapter02
 
The six facets of understanding
The six facets of understandingThe six facets of understanding
The six facets of understanding
 
Craig Larman - Scaling Lean & Agile Development
Craig Larman - Scaling Lean & Agile Development Craig Larman - Scaling Lean & Agile Development
Craig Larman - Scaling Lean & Agile Development
 

Semelhante a Grasp

Introduction to UML
Introduction to UMLIntroduction to UML
Introduction to UMLyndaravind
 
Object oriented software engineering
Object oriented software engineeringObject oriented software engineering
Object oriented software engineeringVarsha Ajith
 
CS8592 Object Oriented Analysis & Design - UNIT IV
CS8592 Object Oriented Analysis & Design - UNIT IV CS8592 Object Oriented Analysis & Design - UNIT IV
CS8592 Object Oriented Analysis & Design - UNIT IV pkaviya
 
SE18_Lec 06_Object Oriented Analysis and Design
SE18_Lec 06_Object Oriented Analysis and DesignSE18_Lec 06_Object Oriented Analysis and Design
SE18_Lec 06_Object Oriented Analysis and DesignAmr E. Mohamed
 
SE_Lec 06_Object Oriented Analysis and Design
SE_Lec 06_Object Oriented Analysis and DesignSE_Lec 06_Object Oriented Analysis and Design
SE_Lec 06_Object Oriented Analysis and DesignAmr E. Mohamed
 
Object Interconnections
Object InterconnectionsObject Interconnections
Object Interconnectionsadil raja
 
An Empirical Study on How Developers Reason about Module Cohesion
An Empirical Study on How Developers Reason about Module CohesionAn Empirical Study on How Developers Reason about Module Cohesion
An Empirical Study on How Developers Reason about Module CohesionBruno C. da Silva
 
Object Oriented Design
Object Oriented DesignObject Oriented Design
Object Oriented DesignAravinth NSP
 
M03_1_Structur alDiagrams.ppt
M03_1_Structur                         alDiagrams.pptM03_1_Structur                         alDiagrams.ppt
M03_1_Structur alDiagrams.pptnesarahmad37
 
CSE333 project initial spec: Learning agents
CSE333 project initial spec: Learning agentsCSE333 project initial spec: Learning agents
CSE333 project initial spec: Learning agentsbutest
 
CSE333 project initial spec: Learning agents
CSE333 project initial spec: Learning agentsCSE333 project initial spec: Learning agents
CSE333 project initial spec: Learning agentsbutest
 
Ooad 2marks
Ooad 2marksOoad 2marks
Ooad 2marksAsh Wini
 
CS8592-OOAD-UNIT II-STATIC UML DIAGRAMS PPT
CS8592-OOAD-UNIT II-STATIC UML DIAGRAMS PPTCS8592-OOAD-UNIT II-STATIC UML DIAGRAMS PPT
CS8592-OOAD-UNIT II-STATIC UML DIAGRAMS PPTleela rani
 
Patterns of Assigning Responsibilities
Patterns of Assigning ResponsibilitiesPatterns of Assigning Responsibilities
Patterns of Assigning Responsibilitiesguest2a92cd9
 
M03 1 Structuraldiagrams
M03 1 StructuraldiagramsM03 1 Structuraldiagrams
M03 1 StructuraldiagramsDang Tuan
 

Semelhante a Grasp (20)

Introduction to UML
Introduction to UMLIntroduction to UML
Introduction to UML
 
Object oriented software engineering
Object oriented software engineeringObject oriented software engineering
Object oriented software engineering
 
CS8592 Object Oriented Analysis & Design - UNIT IV
CS8592 Object Oriented Analysis & Design - UNIT IV CS8592 Object Oriented Analysis & Design - UNIT IV
CS8592 Object Oriented Analysis & Design - UNIT IV
 
SE18_Lec 06_Object Oriented Analysis and Design
SE18_Lec 06_Object Oriented Analysis and DesignSE18_Lec 06_Object Oriented Analysis and Design
SE18_Lec 06_Object Oriented Analysis and Design
 
Mvc grasp
Mvc graspMvc grasp
Mvc grasp
 
SE_Lec 06_Object Oriented Analysis and Design
SE_Lec 06_Object Oriented Analysis and DesignSE_Lec 06_Object Oriented Analysis and Design
SE_Lec 06_Object Oriented Analysis and Design
 
Object Interconnections
Object InterconnectionsObject Interconnections
Object Interconnections
 
An Empirical Study on How Developers Reason about Module Cohesion
An Empirical Study on How Developers Reason about Module CohesionAn Empirical Study on How Developers Reason about Module Cohesion
An Empirical Study on How Developers Reason about Module Cohesion
 
Object Oriented Design
Object Oriented DesignObject Oriented Design
Object Oriented Design
 
M03_1_Structur alDiagrams.ppt
M03_1_Structur                         alDiagrams.pptM03_1_Structur                         alDiagrams.ppt
M03_1_Structur alDiagrams.ppt
 
CSE333 project initial spec: Learning agents
CSE333 project initial spec: Learning agentsCSE333 project initial spec: Learning agents
CSE333 project initial spec: Learning agents
 
CSE333 project initial spec: Learning agents
CSE333 project initial spec: Learning agentsCSE333 project initial spec: Learning agents
CSE333 project initial spec: Learning agents
 
Framing the Problem
Framing the ProblemFraming the Problem
Framing the Problem
 
Ooad 2marks
Ooad 2marksOoad 2marks
Ooad 2marks
 
TEST PPT
TEST PPTTEST PPT
TEST PPT
 
CS8592-OOAD-UNIT II-STATIC UML DIAGRAMS PPT
CS8592-OOAD-UNIT II-STATIC UML DIAGRAMS PPTCS8592-OOAD-UNIT II-STATIC UML DIAGRAMS PPT
CS8592-OOAD-UNIT II-STATIC UML DIAGRAMS PPT
 
Patterns of Assigning Responsibilities
Patterns of Assigning ResponsibilitiesPatterns of Assigning Responsibilities
Patterns of Assigning Responsibilities
 
CS8592-OOAD Lecture Notes Unit-4
CS8592-OOAD Lecture Notes Unit-4CS8592-OOAD Lecture Notes Unit-4
CS8592-OOAD Lecture Notes Unit-4
 
Advance oops concepts
Advance oops conceptsAdvance oops concepts
Advance oops concepts
 
M03 1 Structuraldiagrams
M03 1 StructuraldiagramsM03 1 Structuraldiagrams
M03 1 Structuraldiagrams
 

Último

Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceanilsa9823
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 

Último (20)

Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 

Grasp

  • 1. Submitted To: Submitted by: Fizza Durrani 11073 7th Semester UET(A) October 15, 2014 Lahore Garrison University 1
  • 2. “The critical design tool for software development is a mind well educated in design principles. It is not the UML or any other technology.“ Craig Larman Thus, GRASP is really a mental toolset, a learning aid to help in the design of object-oriented software. Lahore Garrison University 2
  • 3. It stands for:  General  Responsibilities  Assignment  Software  Patterns (Principles) Lahore Garrison University 3
  • 4. Responsibility A contract / obligation that a class / module / component must accomplish  Knowledge  Private state  Computed state    Behavior  Send messages itself and modify its private state  Instantiate another objects  Send messages to another objects Lahore Garrison University 4
  • 5.  “doing” responsibilities  Doing something itself, such as creation an object or doing a calculation.  Initiating action in other objects  Controlling and coordinating activities in other objects.  “knowing” responsibilities  Knowing about encapsulated data.  Knowing about related objects.  Knowing about things it can derive or calculate. Lahore Garrison University 5
  • 7.  Informational Expert  Creator  Low Coupling  High Cohesion  Controller  Polymorphism  Pure Fabrication  Indirection  Controlled Variation Lahore Garrison University 7
  • 9. Problem: Which class possesses information about object A? More common question: What is a general principle of assigning responsibilities to objects? Assign the responsibility to the class that knows the necessary information for performing required action and fulfill the responsibility. Lahore Garrison University 9
  • 10. A B C D DO GetDataX() GetDataY() GetDataZ() return Z return Y return X Lahore Garrison University 10
  • 11. A B C D DO DoAction() DoAction(X) DoAction(Y) Lahore Garrison University 11
  • 13. Problem: Who should be responsible for creating object A?  Class B must have that responsibility if:  B is composed by A (composition)  B knows the necessary information in order to instantiate A objects  B depends heavily on A Lahore Garrison University 13
  • 14. • The goal is to define creator-object, which will be related to all created objects. 64 Board Square Square Board create create Lahore Garrison University 14
  • 16. Problem: How to minimize dependencies between classes ? Coupling is the degree, defines how tightly one component linked to other components, or how much information it knows about other components. Examples  Inheritance  Composition / aggregation / association  A send messages to B Lahore Garrison University 16
  • 17.  Assign a responsibility so that coupling remains low. Low Coupling is an evaluative pattern, which dictates how to assign responsibilities to support:  lower dependency between the classes,  change in one class having lower impact on other classes,  higher reuse potential. Lahore Garrison University 17
  • 19. Problem: How to keep objects focused, understandable, manageable, and support low coupling? Cohesion is a measure of how strongly related or focused the responsibilities of a single module are. High Cohesion is an evaluative pattern that attempts to keep objects appropriately focused, manageable and understandable. Lahore Garrison University 19
  • 20.  Alternatively, low cohesion is a situation in which a given element has too many unrelated responsibilities (“God Object”) Low Cohesion implies:  Hard to reuse  Hard to maintain  Constantly changing Lahore Garrison University 20
  • 21. A A ?? ?? DoA() DoB() DoC() DoA() DoB() DoC() Lahore Garrison University 21
  • 23. Problem: Who should be responsible for handling events and messages from external actors (UI, …)?  Assign the responsibility to a class, such as: A class that represents the overall system, device, or subsystem. Façade Controller Pattern A class that represent a use case, whereby performs handling particular system operation. Use Case Controller Pattern  Generally does not perform operation by itself, but delegate responsibility to component objects. Lahore Garrison University 23
  • 25. Problem: How to act different depending in object’s class, or how to design pluggable components?  In case of class behavior might changes, responsibilities segregates to different behavior specific classes, using polymorphic operations for this class.  Advise: Do not use type checking, but conditional logic for implementation different variations based on object type. Lahore Garrison University 25
  • 26. Player  There are (roughly) 3 types a polymorphism:  Ad hoc Polymorphism  Parametric Polymorphism  Subtype Polymorphism Square landedOn RegularSquare landedOn GoSquare landedOn OtherSquare landedOn Lahore Garrison University 26
  • 28.  Problem: How to assign responsibilities if applying the Informational Expert principle decreases cohesion and increases coupling?  Assign the responsibility to an artificial class that does not belongs to the domain model.  Pure Fabrication is a class that does not reflect any business domain object, but required only for increase cohesion and decrease coupling. Lahore Garrison University 28
  • 30.  Problem: How to assign responsibilities in order to avoid direct coupling between two components, and keep ability for reuse.  Assign responsibility to intermediate class for providing linking between objects not linking directly.  Related design patterns: Adapter, Bridge, Mediator. Lahore Garrison University 30
  • 32.  Problem: How to design system and subsystems, that changes in these components does not affects on other components.  Identify points of possible variations and instability; create stable interfaces upon instable components. Open-Closed Principle almost equivalent to CV pattern. Lahore Garrison University 32
  • 33.  There are 2 types of points:  Variation point – branching point on existing system or in requirements. For example we need to support several types of interfaces for tax payment system  Evolution point – supposed branching point, which might occur in future, but does not declared by existing requirements.  Protected variation pattern applying for both variation and evolution points. Lahore Garrison University 33
  • 34. Informational Expert Assign a responsibility to the class that has the information needed to fulfill it. Creator Assign class B the responsibility to create an instance of class A if one of these is true (the more the better): • B "contains" or compositely aggregates A. • B records A. • B closely uses A. • B has the initializing data for A that will be passed to A when it is crated. Thus B is an Expert with respect to creating A. Controller Assign the responsibility to a class representing one of the following choices: • Major subsystem classes • A use case scenario classes within which the system event occurs Low Coupling Assign a responsibility so that coupling remains low. High Cohesion Lahore GarArissons Uingivners iaty responsibility so that coh3e4 sion remains high.
  • 35. Polymorphism The same name operations (methods) in the difference classes is defined. And assign a responsibility to the class the class that the behavior is changed. Pure Fabrication Define a class for convenience' sake that doesn't express the concept of the problem area at all. Indirection Assign the responsibility to an intermediate object to mediate between other components or services, so that they are not directly coupled. Protected Variations Assign responsibility to create a stable interface around an unstable or predictably variable subsystem or component. Lahore Garrison University 35
  • 36.  http://en.wikipedia.org/wiki/GRASP_%28object-oriented_ design%29  http://www.slideshare.net/snmgian/grasp-principles  http://www.slideshare.net/eduardo_diederichsen/d esign-talk-grasp-patterns?related=1  http://www.slideshare.net/eduardo_diederichsen/d esign-talk-grasp-patterns?related=1 Lahore Garrison University 36
  • 37. Any Question Lahore Garrison University 37