Henrik Brbak Christensen1 Roles, Responsibilities and Behaviour What is an object? What is...
-
Upload
karin-cook -
Category
Documents
-
view
219 -
download
0
description
Transcript of Henrik Brbak Christensen1 Roles, Responsibilities and Behaviour What is an object? What is...
![Page 1: Henrik Brbak Christensen1 Roles, Responsibilities and Behaviour What is an object? What is object-orientation?](https://reader034.fdocuments.in/reader034/viewer/2022052420/5a4d1b7b7f8b9ab0599b9360/html5/thumbnails/1.jpg)
Henrik Bærbak Christensen 1
Roles, Responsibilities and Behaviour
What is an object?What is object-orientation?
![Page 2: Henrik Brbak Christensen1 Roles, Responsibilities and Behaviour What is an object? What is object-orientation?](https://reader034.fdocuments.in/reader034/viewer/2022052420/5a4d1b7b7f8b9ab0599b9360/html5/thumbnails/2.jpg)
Henrik Bærbak Christensen 2
More than a decade of OO teaching
I was deeply rooted in Scandinavian tradition of Object-Orientation:– Kristen Nygaard & Ole-Johan Dahl: Simula– Ole Lehrmann Madsen et al.: BETA
“A program execution is viewed as a physical model simulating the behaviour of
either a real or imaginary part of the world.”
But something was missing...– Design patterns and frameworks are not simulating
the world...– My designs tended to cluster “Blobs” and was hard
to maintain.– How does it help me structure the GUI?
![Page 3: Henrik Brbak Christensen1 Roles, Responsibilities and Behaviour What is an object? What is object-orientation?](https://reader034.fdocuments.in/reader034/viewer/2022052420/5a4d1b7b7f8b9ab0599b9360/html5/thumbnails/3.jpg)
Henrik Bærbak Christensen 3
What do people say about objects?
![Page 4: Henrik Brbak Christensen1 Roles, Responsibilities and Behaviour What is an object? What is object-orientation?](https://reader034.fdocuments.in/reader034/viewer/2022052420/5a4d1b7b7f8b9ab0599b9360/html5/thumbnails/4.jpg)
Henrik Bærbak Christensen 4
Perspectives
Language centric perspective: Object = Data + Actions
Model centric perspective: Object = Model element in domain
Responsibility centric perspective: Object = Responsible for providing service in
community of interacting objects
![Page 5: Henrik Brbak Christensen1 Roles, Responsibilities and Behaviour What is an object? What is object-orientation?](https://reader034.fdocuments.in/reader034/viewer/2022052420/5a4d1b7b7f8b9ab0599b9360/html5/thumbnails/5.jpg)
Henrik Bærbak Christensen 5
Language-centric
![Page 6: Henrik Brbak Christensen1 Roles, Responsibilities and Behaviour What is an object? What is object-orientation?](https://reader034.fdocuments.in/reader034/viewer/2022052420/5a4d1b7b7f8b9ab0599b9360/html5/thumbnails/6.jpg)
Henrik Bærbak Christensen 6
Focus
Language centric focus– object = fields + methods– looking at the concrete “building blocks”– language features are emphasized– editor view / static
![Page 7: Henrik Brbak Christensen1 Roles, Responsibilities and Behaviour What is an object? What is object-orientation?](https://reader034.fdocuments.in/reader034/viewer/2022052420/5a4d1b7b7f8b9ab0599b9360/html5/thumbnails/7.jpg)
Henrik Bærbak Christensen 7
Model-centric
![Page 8: Henrik Brbak Christensen1 Roles, Responsibilities and Behaviour What is an object? What is object-orientation?](https://reader034.fdocuments.in/reader034/viewer/2022052420/5a4d1b7b7f8b9ab0599b9360/html5/thumbnails/8.jpg)
Henrik Bærbak Christensen 8
Focus
Model centric focus– focus on concepts and relations (static!)
• generalization, association, composition
– problem domain modeling– object = part of model– simulation (Kay/Nygaard)
![Page 9: Henrik Brbak Christensen1 Roles, Responsibilities and Behaviour What is an object? What is object-orientation?](https://reader034.fdocuments.in/reader034/viewer/2022052420/5a4d1b7b7f8b9ab0599b9360/html5/thumbnails/9.jpg)
Henrik Bærbak Christensen 9
One definition of OO
Object Orientation– A program execution is viewed as a physical model
simulating the behaviour of either a real or imaginary part of the world.
– [Madsen, Møller-Pedersen, Nygaaard 1993]
Computation as simulation.
Kristen Nygaard and Ove Johan-Dahl workedindeed in writing simulation software !
![Page 10: Henrik Brbak Christensen1 Roles, Responsibilities and Behaviour What is an object? What is object-orientation?](https://reader034.fdocuments.in/reader034/viewer/2022052420/5a4d1b7b7f8b9ab0599b9360/html5/thumbnails/10.jpg)
Henrik Bærbak Christensen 10
Consequences
This model-centric perspective results in– Strong emphasis on “modelling real world”– Strong emphasis on model elements and relations
Element
Relation
Bass’ definition:The software architecture of a computing system is the structures of the system, which comprise software elements, the externally visible properties of those elements, and the relationships among them.
![Page 11: Henrik Brbak Christensen1 Roles, Responsibilities and Behaviour What is an object? What is object-orientation?](https://reader034.fdocuments.in/reader034/viewer/2022052420/5a4d1b7b7f8b9ab0599b9360/html5/thumbnails/11.jpg)
Henrik Bærbak Christensen 11
Examples
Real world
– Examples:• My particular Dell laptop computer (phenomena)• The concept “laptop”
IT world
– Examples:• The PayStationImpl class (concept)• The PayStationImpl object that ran last week (phenomena)
Phenomena Concepts
object class
![Page 12: Henrik Brbak Christensen1 Roles, Responsibilities and Behaviour What is an object? What is object-orientation?](https://reader034.fdocuments.in/reader034/viewer/2022052420/5a4d1b7b7f8b9ab0599b9360/html5/thumbnails/12.jpg)
Henrik Bærbak Christensen 12
System design as translation
Problem specificconcepts
PhenomenaRelations
Realized conceptsand relations
Objects
abstraction abstraction
translation(modellering)
Domain(”real world”)
Model(IT system)
![Page 13: Henrik Brbak Christensen1 Roles, Responsibilities and Behaviour What is an object? What is object-orientation?](https://reader034.fdocuments.in/reader034/viewer/2022052420/5a4d1b7b7f8b9ab0599b9360/html5/thumbnails/13.jpg)
Henrik Bærbak Christensen 13
Translation support
The strong point in OO is the language support for these aspects of human every day life.
– phenomena object– concept class– generalization superclass– association object reference– aggregation object reference (or inner class)
![Page 14: Henrik Brbak Christensen1 Roles, Responsibilities and Behaviour What is an object? What is object-orientation?](https://reader034.fdocuments.in/reader034/viewer/2022052420/5a4d1b7b7f8b9ab0599b9360/html5/thumbnails/14.jpg)
Henrik Bærbak Christensen 14
Simulation
The definition mentions simulation– A program execution is viewed as a physical model
simulating the behaviour of either a real or imaginary part of the world.
Simulation means “do something” – Objects have methods– Objects interact by invoking methods on each other.
– But – where do the inspiration for methods come from?
![Page 15: Henrik Brbak Christensen1 Roles, Responsibilities and Behaviour What is an object? What is object-orientation?](https://reader034.fdocuments.in/reader034/viewer/2022052420/5a4d1b7b7f8b9ab0599b9360/html5/thumbnails/15.jpg)
Henrik Bærbak Christensen 15
Simulation
Most real world objects do not exhibit any interesting behaviour– a seat in a plane does not know who reserved it– a backgammon checker does not know how to move
nor which position it has on the board
Here we usually assign extra meaning– Animistic: attribution of conscious life to objects in
and phenomena of nature or to inanimate objects
![Page 16: Henrik Brbak Christensen1 Roles, Responsibilities and Behaviour What is an object? What is object-orientation?](https://reader034.fdocuments.in/reader034/viewer/2022052420/5a4d1b7b7f8b9ab0599b9360/html5/thumbnails/16.jpg)
Henrik Bærbak Christensen 16
Example
The well worn example of an Account class. Before IT an account was simply lines in a book and an
understanding in the head of the banker.
An account could not add interest ! A human banker had to do that using his mathematical
and business skills.
But – the IT account could be smarter ! The computerized account acts like in a Disney movie – account.addInterest();
![Page 17: Henrik Brbak Christensen1 Roles, Responsibilities and Behaviour What is an object? What is object-orientation?](https://reader034.fdocuments.in/reader034/viewer/2022052420/5a4d1b7b7f8b9ab0599b9360/html5/thumbnails/17.jpg)
Henrik Bærbak Christensen 17
Implications
(Language) Model perspective:– A) Identify landscape of concepts – B) Distribute behavior over this landscape
Guidelines:– A) Problem domain concepts Objects– B) “Animate” objects / “Expert pattern”
• Keep behavior with the data– But - an account that can add interest to itself ???
Analysis– Problem domain concepts only fraction of full system
• database issues, architectural issues, GUI, networking, ...– Behavior that does not belong to a domain concept?
![Page 18: Henrik Brbak Christensen1 Roles, Responsibilities and Behaviour What is an object? What is object-orientation?](https://reader034.fdocuments.in/reader034/viewer/2022052420/5a4d1b7b7f8b9ab0599b9360/html5/thumbnails/18.jpg)
Henrik Bærbak Christensen 18
Who/What
In other words: Who / What cycle
– Who: the objects comes first
– What: the behaviour comes second
Define the classes, next define their methods
![Page 19: Henrik Brbak Christensen1 Roles, Responsibilities and Behaviour What is an object? What is object-orientation?](https://reader034.fdocuments.in/reader034/viewer/2022052420/5a4d1b7b7f8b9ab0599b9360/html5/thumbnails/19.jpg)
Henrik Bærbak Christensen 19
Responsibility-centric
![Page 20: Henrik Brbak Christensen1 Roles, Responsibilities and Behaviour What is an object? What is object-orientation?](https://reader034.fdocuments.in/reader034/viewer/2022052420/5a4d1b7b7f8b9ab0599b9360/html5/thumbnails/20.jpg)
Henrik Bærbak Christensen 20
Focus
Responsibility centric focus– Role, responsibility, and collaboration– Object = provider of service in community– Leads to strong behavioral focus– CRC cards (Beck, Wirfs-Brock)
![Page 21: Henrik Brbak Christensen1 Roles, Responsibilities and Behaviour What is an object? What is object-orientation?](https://reader034.fdocuments.in/reader034/viewer/2022052420/5a4d1b7b7f8b9ab0599b9360/html5/thumbnails/21.jpg)
Henrik Bærbak Christensen 21
Another Definition
Another definition: An object-oriented program is structured as a
community of interacting agents called objects. Each object has a role to play. Each
object provides a service or performs an action that is used by other members of the community.– Budd 2002
Shifting focus– away from “model of real world”– towards “community”, “interaction”, and “service”
![Page 22: Henrik Brbak Christensen1 Roles, Responsibilities and Behaviour What is an object? What is object-orientation?](https://reader034.fdocuments.in/reader034/viewer/2022052420/5a4d1b7b7f8b9ab0599b9360/html5/thumbnails/22.jpg)
Henrik Bærbak Christensen 22
Service
Budd’s definition is more skewed towards the functionality of the system.
At the end of the day, software pays the bill by providing functionality that the users
need, not by being a nice model of the world!
Services are what developers get paid to create!
![Page 23: Henrik Brbak Christensen1 Roles, Responsibilities and Behaviour What is an object? What is object-orientation?](https://reader034.fdocuments.in/reader034/viewer/2022052420/5a4d1b7b7f8b9ab0599b9360/html5/thumbnails/23.jpg)
The Central Concepts
A strong mind-set for designing flexible software
Henrik Bærbak Christensen 23
![Page 24: Henrik Brbak Christensen1 Roles, Responsibilities and Behaviour What is an object? What is object-orientation?](https://reader034.fdocuments.in/reader034/viewer/2022052420/5a4d1b7b7f8b9ab0599b9360/html5/thumbnails/24.jpg)
How people organize work!
The central concepts:– Behaviour: What actually is being done
• ”Henrik sits Sunday morning and writes these slides”
– Responsibility: Being accountable for answering request
• ”Henrik is responsible for teaching responsibility-centric design”
– Role: A function/part performed in particular process• ”Henrik is the course teacher”
– Protocol: Convention detailing the expected sequence of interactions by a set of roles
• ”Teacher: ‘Welcome’ => Students: stops talking and starts listening”
Henrik Bærbak Christensen 24
![Page 25: Henrik Brbak Christensen1 Roles, Responsibilities and Behaviour What is an object? What is object-orientation?](https://reader034.fdocuments.in/reader034/viewer/2022052420/5a4d1b7b7f8b9ab0599b9360/html5/thumbnails/25.jpg)
It is all Roles and Protocol
Any complex human organization relies completely on each person understanding roles and protocols– If I get hospitalized, I understand the roles of patient,
nurses, and physicians– CEOs, managers, software developers, architects,
testers, sales people, …– Hardship of marriage: finding the proper roles and
protocols
– Cultural clashes: Hindu programmer and lunch story
Henrik Bærbak Christensen 25
![Page 26: Henrik Brbak Christensen1 Roles, Responsibilities and Behaviour What is an object? What is object-orientation?](https://reader034.fdocuments.in/reader034/viewer/2022052420/5a4d1b7b7f8b9ab0599b9360/html5/thumbnails/26.jpg)
Roles decouples
The primary point of roles: It provides a higher abstraction than that of
the individual person
I know my responsibilities and the protocol once I am assigned a known role
I can collaborate efficiently with others once I know their roles
Henrik Bærbak Christensen 26
![Page 27: Henrik Brbak Christensen1 Roles, Responsibilities and Behaviour What is an object? What is object-orientation?](https://reader034.fdocuments.in/reader034/viewer/2022052420/5a4d1b7b7f8b9ab0599b9360/html5/thumbnails/27.jpg)
Many-to-many relation
Big company– One person is manager, one software architect, two
lead developers, and ten software developers Small company
– Same person is manager, software architect, lead and software programmer
That is: One individual may server many roles
Henrik: Teacher, researcher, tax payer, company owner, tourist, father, husband, …
Henrik Bærbak Christensen 27
![Page 28: Henrik Brbak Christensen1 Roles, Responsibilities and Behaviour What is an object? What is object-orientation?](https://reader034.fdocuments.in/reader034/viewer/2022052420/5a4d1b7b7f8b9ab0599b9360/html5/thumbnails/28.jpg)
Many-to-many relation
Hospital– Nurses attend the patients– And different persons serve the role during shifts
That is: One role may be served by many persons
Henrik Bærbak Christensen 28
![Page 29: Henrik Brbak Christensen1 Roles, Responsibilities and Behaviour What is an object? What is object-orientation?](https://reader034.fdocuments.in/reader034/viewer/2022052420/5a4d1b7b7f8b9ab0599b9360/html5/thumbnails/29.jpg)
Henrik Bærbak Christensen 29
Role concept
The role concept allows us to use either approach (who/what or what/who) because “what” can be expressed as roles.
Element
Relation
Role
Role makes service a first-class citizen of our design vocabulary
![Page 30: Henrik Brbak Christensen1 Roles, Responsibilities and Behaviour What is an object? What is object-orientation?](https://reader034.fdocuments.in/reader034/viewer/2022052420/5a4d1b7b7f8b9ab0599b9360/html5/thumbnails/30.jpg)
Roles are invented
Roles are invented by need.
A pre-school kindergarten invented a Flyer role whose responsibility it was to ‘catch’ all interruptions to make the daily work more fluent for the ‘non.-flyer’ pedagogues.
Henrik Bærbak Christensen 30
![Page 31: Henrik Brbak Christensen1 Roles, Responsibilities and Behaviour What is an object? What is object-orientation?](https://reader034.fdocuments.in/reader034/viewer/2022052420/5a4d1b7b7f8b9ab0599b9360/html5/thumbnails/31.jpg)
Enough Academic B…….
What should I do when designing???
Henrik Bærbak Christensen 31
![Page 32: Henrik Brbak Christensen1 Roles, Responsibilities and Behaviour What is an object? What is object-orientation?](https://reader034.fdocuments.in/reader034/viewer/2022052420/5a4d1b7b7f8b9ab0599b9360/html5/thumbnails/32.jpg)
Software as Organizations
The proposal– Think software design in terms of
• The reponsibilities to be served• Group then into cohesive roles• And define their protocols, how are they going to collaborate
That is:
Design software as an Organization
Henrik Bærbak Christensen 32
![Page 33: Henrik Brbak Christensen1 Roles, Responsibilities and Behaviour What is an object? What is object-orientation?](https://reader034.fdocuments.in/reader034/viewer/2022052420/5a4d1b7b7f8b9ab0599b9360/html5/thumbnails/33.jpg)
Super simple example
The Pay station
Now, one responsibility has been put into another role: the RateStrategy.
Henrik Bærbak Christensen 33
![Page 34: Henrik Brbak Christensen1 Roles, Responsibilities and Behaviour What is an object? What is object-orientation?](https://reader034.fdocuments.in/reader034/viewer/2022052420/5a4d1b7b7f8b9ab0599b9360/html5/thumbnails/34.jpg)
Another Example
HotCiv– Game:
• Role: Is responsible for overall game mechanics– Aging, production, turn-taking, …
• Collaborates with lots of other roles– Unit, City
• Role: Primary state holders + simple, local, state changes– Owner, changeOwner, …
– (World)• Role: Primary state holder of game world + simple state changes
– WinnerStrategy• Role: Is responsible for calculating who has won
– Access information from other roles to do the calculation
– WorldLayoutStrategy• Role: Is responsible for creating a world
Henrik Bærbak Christensen 34
![Page 35: Henrik Brbak Christensen1 Roles, Responsibilities and Behaviour What is an object? What is object-orientation?](https://reader034.fdocuments.in/reader034/viewer/2022052420/5a4d1b7b7f8b9ab0599b9360/html5/thumbnails/35.jpg)
Yet Another Example
SkyCave / mandatory project in Cloud Computing and Architecture– Massive multiplayer on-line exploration experience
(Some of the many) Roles:– Cave, Player, Room
• Domain abstractions– Player with name may move in rooms in cave, and create new rooms to
share with other players– Reactor
• Responsible for accepting incoming network calls– Invoker
• Responsible for executing incoming requests– CaveStorage
• Responsible for persisting rooms and players– SubscriptionService
• Responsible for authenicating player login
Henrik Bærbak Christensen 35
![Page 36: Henrik Brbak Christensen1 Roles, Responsibilities and Behaviour What is an object? What is object-orientation?](https://reader034.fdocuments.in/reader034/viewer/2022052420/5a4d1b7b7f8b9ab0599b9360/html5/thumbnails/36.jpg)
Henrik Bærbak Christensen 36
What/Who
Timothy Budd: “Why begin the design process with an analysis
of behaviour? The simple answer is that the behaviour of a system is usually understood
long before any other aspects.”
What / Who cycle– What: identify behaviour / responsibility roles– Who: identify objects that may play the roles
• or even invent objects to serve roles only– Larman “Pure fabrication”; example: Flyer role
![Page 37: Henrik Brbak Christensen1 Roles, Responsibilities and Behaviour What is an object? What is object-orientation?](https://reader034.fdocuments.in/reader034/viewer/2022052420/5a4d1b7b7f8b9ab0599b9360/html5/thumbnails/37.jpg)
Henrik Bærbak Christensen 37
Implications
Responsibility perspective:– A) Analyze behavior (what?) – B) Assign objects (who?)
Guidelines:– A) Behavior abstracted landscape of
responsibilities– B) Implement responsibilities in objects
Analysis– Resemble human organizations – “Flyer” role– Still need to define the objects
![Page 38: Henrik Brbak Christensen1 Roles, Responsibilities and Behaviour What is an object? What is object-orientation?](https://reader034.fdocuments.in/reader034/viewer/2022052420/5a4d1b7b7f8b9ab0599b9360/html5/thumbnails/38.jpg)
Programming Mechanics
Use interface to define a role– Methods embody the responsibilities– (the protocol must be understood in the design)
• Still lack programming constructs to describe these
Classes implementing an interface allow objects to be instantiated to play the roles
(Simple roles with no need for variability – just use a class)– Typical example is ”records” = dump data containers
Henrik Bærbak Christensen 38
![Page 39: Henrik Brbak Christensen1 Roles, Responsibilities and Behaviour What is an object? What is object-orientation?](https://reader034.fdocuments.in/reader034/viewer/2022052420/5a4d1b7b7f8b9ab0599b9360/html5/thumbnails/39.jpg)
Henrik Bærbak Christensen 39
Role – ObjectWhy difference does it make?
![Page 40: Henrik Brbak Christensen1 Roles, Responsibilities and Behaviour What is an object? What is object-orientation?](https://reader034.fdocuments.in/reader034/viewer/2022052420/5a4d1b7b7f8b9ab0599b9360/html5/thumbnails/40.jpg)
Henrik Bærbak Christensen 40
Where is the difference?
What is the point?– I associate responsibilities with roles?– I associate responsibilities with concepts (classes)?
At first sight there seems to be none...
Shalloway and Trott has a nice example of the difference...
![Page 41: Henrik Brbak Christensen1 Roles, Responsibilities and Behaviour What is an object? What is object-orientation?](https://reader034.fdocuments.in/reader034/viewer/2022052420/5a4d1b7b7f8b9ab0599b9360/html5/thumbnails/41.jpg)
Henrik Bærbak Christensen 41
The difference
Umbrella concept– metal rod aggregate spikes associated with linen
Umbrella role– keeps me dry when it is raining
?
![Page 42: Henrik Brbak Christensen1 Roles, Responsibilities and Behaviour What is an object? What is object-orientation?](https://reader034.fdocuments.in/reader034/viewer/2022052420/5a4d1b7b7f8b9ab0599b9360/html5/thumbnails/42.jpg)
Henrik Bærbak Christensen 42
Umbrella again...
class Car extends Umbrella ? class Umbrella extends Car ?
class Car implements Umbrella
NONSENSE!
More sensible
![Page 43: Henrik Brbak Christensen1 Roles, Responsibilities and Behaviour What is an object? What is object-orientation?](https://reader034.fdocuments.in/reader034/viewer/2022052420/5a4d1b7b7f8b9ab0599b9360/html5/thumbnails/43.jpg)
Henrik Bærbak Christensen 43
Another Example
![Page 44: Henrik Brbak Christensen1 Roles, Responsibilities and Behaviour What is an object? What is object-orientation?](https://reader034.fdocuments.in/reader034/viewer/2022052420/5a4d1b7b7f8b9ab0599b9360/html5/thumbnails/44.jpg)
Henrik Bærbak Christensen 44
A Case Study
Backgammon requirements:– Offer GUI for two players– Guaranty proper play
Variants– new rules for which moves
are legal– how many moves you can
make per turn– how the board is initially set
up
![Page 45: Henrik Brbak Christensen1 Roles, Responsibilities and Behaviour What is an object? What is object-orientation?](https://reader034.fdocuments.in/reader034/viewer/2022052420/5a4d1b7b7f8b9ab0599b9360/html5/thumbnails/45.jpg)
Henrik Bærbak Christensen 45
Same challenge – different designs
Model perspective: Responsibility perspective:
Objects from domain
Objects from domain
Objects providing services
Objects providing services
![Page 46: Henrik Brbak Christensen1 Roles, Responsibilities and Behaviour What is an object? What is object-orientation?](https://reader034.fdocuments.in/reader034/viewer/2022052420/5a4d1b7b7f8b9ab0599b9360/html5/thumbnails/46.jpg)
Henrik Bærbak Christensen 46
Who is responsible for validating moves?
Model perspective: Responsibility perspective:
What is the cost of altering validation strategy?How to change it at run-time?
![Page 47: Henrik Brbak Christensen1 Roles, Responsibilities and Behaviour What is an object? What is object-orientation?](https://reader034.fdocuments.in/reader034/viewer/2022052420/5a4d1b7b7f8b9ab0599b9360/html5/thumbnails/47.jpg)
Henrik Bærbak Christensen 47
Summary
![Page 48: Henrik Brbak Christensen1 Roles, Responsibilities and Behaviour What is an object? What is object-orientation?](https://reader034.fdocuments.in/reader034/viewer/2022052420/5a4d1b7b7f8b9ab0599b9360/html5/thumbnails/48.jpg)
Summary
The central concepts:– Behaviour: What actually is being done
• ”Henrik sits Sunday morning and writes these slides”
– Responsibility: Being accountable for answering request
• ”Henrik is responsible for teaching responsibility-centric design”
– Role: A function/part performed in particular process• ”Henrik is the course teacher”
– Protocol: Convention detailing the expected sequence of interactions by a set of roles
• ”Teacher: ‘Welcome’ => Students: stops talking and starts listening”
Henrik Bærbak Christensen 48
![Page 49: Henrik Brbak Christensen1 Roles, Responsibilities and Behaviour What is an object? What is object-orientation?](https://reader034.fdocuments.in/reader034/viewer/2022052420/5a4d1b7b7f8b9ab0599b9360/html5/thumbnails/49.jpg)
Perspectives
Three different perspectives on OO– Language: Important because code is basically only
understandable in this perspective– Model: Important because it gives us good inspiration
for organizing the domain code– Responsibility: Important because it allows us to
build highly flexible software with low coupling and high cohesion
They do not have to be in conflict –they build upon each other...
Henrik Bærbak Christensen 49
![Page 50: Henrik Brbak Christensen1 Roles, Responsibilities and Behaviour What is an object? What is object-orientation?](https://reader034.fdocuments.in/reader034/viewer/2022052420/5a4d1b7b7f8b9ab0599b9360/html5/thumbnails/50.jpg)
Henrik Bærbak Christensen 50
Summary
Design in terms of what roles and responsibilities there are in a system.
Express these as interfaces with appropriate additional documentation.
Implement the roles by concrete classes.
Roles may define points of variability in programs…