Date post: | 30-Dec-2015 |
Category: |
Documents |
Upload: | edith-gilbert |
View: | 217 times |
Download: | 1 times |
1
Rilla Khaled, Pippin Barr James Noble
Victoria University of Wellington
New Zealand
Robert BiddleCarleton University
Canada
ExtremeSystem
ProgrammingMetaphor
2XP System Metaphor
Outline
• XP & System Metaphor
• Peircian Semiotics:– Modeling Metaphor
• XP Practice:– Choosing a Metaphor– Evaluating a Metaphor
3XP System Metaphor
Agile Software Development
• Individuals and interactionsover processes and tools
• Working software over comprehensive documentation
• Customer collaboration over contract negotiation
• Responding to changeover following a plan
4XP System Metaphor
BeckXP: eXtreme Programming
• Fine scale feedback– TestDrivenDevelopment (were UnitTests & AcceptanceTests)– PlanningGame– WholeTeam (was OnsiteCustomer)– PairProgramming
• Continuous process rather than batch– ContinuousIntegration– DesignImprovement (was RefactorMercilessly)– SmallReleases
• Shared understanding– SimpleDesign – SystemMetaphor– CollectiveCodeOwnership– CodingStandard or CodingConventions
• Programmer welfare– SustainablePace (original name: FortyHourWeek)
5XP System Metaphor
XP System Metaphor• A story that everyone - customers, programmers and manager -
can tell about how the system work. Beck• The metaphor just helps everyone on the project understand
the basic elements and their relationships. Words chosen to identify technical entities should be consistently taken from the chosen metaphor. As development proceeds and the metaphor matures, the whole team will find new inspiration from examining the metaphor. Beck
• The team had the benefit of a very rich domain model developed by members of the team in the project's first iteration. It gave the members of the project an edge in understanding an extremely complex domain. C3 Team
• I still haven't got the hang of this metaphor thing. I saw it work, and work well, on the C3 project, but it doesn't mean I have any idea how to do it, let alone how to explain how to do it. Fowler
6XP System Metaphor
Basic Peircean Semiotics
• Semiotics is the study of signs.
• Charles Sanders Peirce developed a triadic model of the sign:
– Object (or Referent):the concept or thing actually represented by the sign.
– Representamen: the sign itself.– Interpretant: the result of an
interpreter’s encounter with a sign.
7XP System Metaphor
Unlimited Semiosis
8XP System Metaphor
Eco’s Model Reader
To make his text communicative, the author has to assume that the ensemble of codes he relies upon is the same as that shared by his possible reader. The author has thus to foresee a model of the possible reader (hereafter Model Reader) supposedly able to deal interpretatively with the expressions in the same way as the author deals generatively with them.
Umberto Eco: The Role of the Reader, 1979
9XP System Metaphor
A Semiotic Model of Metaphor:Pierce, Lakoff & Johnson
10XP System Metaphor
Modeling MetaphorMetaphor Introduction
11XP System Metaphor
Modeling MetaphorMetaphorical Entailment
A Metaphor is a Sign Generator
12XP System Metaphor
Entailment Linkage
13XP System Metaphor
XP System Metaphor
14XP System Metaphor
OOP Signs
15XP System Metaphor
Modeling MetaphorProgram Code Signs
16XP System Metaphor
XP SystemMetaphorModel
MetaphorIntroduction
MetaphoricalEntailment
ProgramCode
17XP System Metaphor
Practice: Finding and EvaluatingMetaphorscape
18XP System Metaphor
A Bank Account is a Water Reservoir
19XP System Metaphor
Metaphorscape
Choosing a Metaphor• Brainstorming Potential Metaphors
– With referent, suggest representamen– Include team, customer, domain expert– Consider explaining system to non-expert– Consider surrounding metaphors– Select most promising n
Metaphor Introduction
20XP System Metaphor
Choosing a Metaphor II
• Brainstorming Metaphorical Entailments– Choose metaphor– Identify entailments: referent and interpretant– Begin individually and then merge
Metaphorical Entailments
21XP System Metaphor
Choosing a Metaphor III• Brainstorming Program Code Signs
– Identify implied objects/classes– Determine usefulness of objects/classes
• Correctness, consistency, coherence
– Select useful, discard others
ProgramCode
22XP System Metaphor
Conclusion
• Beck: A story that everyone - customers, programmers and manager - can tell about how the
system work. • Fowler: “This is a real gap in XP, and one that the
XPers need to sort out”.
• Our explorations:– Language: Vocabulary and Structure– Techniques: Based on OOD and HCI practice
23
Rilla Khaled, Pippin Barr James Noble
Victoria University of Wellington
New Zealand
Robert BiddleCarleton University
Canada
ExtremeSystem
ProgrammingMetaphor
24XP System Metaphor
25XP System Metaphor
System Ideas
• Web browser• Web server• E-commerce site• Email client• Space Invaders• GPS handheld• Blog software
• Payroll system• Compiler• Banking system• Library• Backup system• PDA software• CVS
26XP System Metaphor
27XP System Metaphor
User-Interface MetaphorYou can take advantage of people's knowledge of the world
around them by using metaphors to convey concepts and features of your application. Use metaphors involving
concrete, familiar ideas and make the metaphors plain, so that users have a set of expectations to apply to computer
environments. (Apple Computer Inc., 1992)
Familiar metaphors provide a direct and intuitive interface to user tasks. By allowing users to transfer their knowledge
and experience, metaphors make it easier to predict and learn the behaviors of software-based representations.
(Microsoft Corporation, 1995)
28XP System Metaphor
The Document Metaphor
29XP System Metaphor
Metaphor and Metaphorical Entailments
• The data is an object. • The data can be written on. • The data can be read. • The data contains text, and possibly images and graphs, etc. • The data can be ripped. • The data can be typed up. • The data is usually on white paper. • The data can be photocopied. • The data can be written in pencil or pen or ink. • The data can (sometimes) be edited using twink or an eraser. • The data contains information. • The data can be set on fire. • The data can be picked up and moved from place to place. • The data can be thrown in a trashcan. • The data can give you a paper-cut. • …
30XP System Metaphor
XP System Metaphor• A story that everyone - customers, programmers and manager - can tell
about how the system work. Beck• The metaphor just helps everyone on the project understand the basic
elements and their relationships. Words chosen to identify technical entities should be consistently taken from the chosen metaphor. As development proceeds and the metaphor matures, the whole team will find new inspiration from examining the metaphor. Beck
• The team had the benefit of a very rich domain model developed by members of the team in the project's first iteration. It gave the members of the project an edge in understanding an extremely complex domain. C3 Team
• I still haven't got the hang of this metaphor thing. I saw it work, and work well, on the C3 project, but it doesn't mean I have any idea how to do it, let alone how to explain how to do it. Fowler
31XP System Metaphor
Evaluating a Metaphor
• How is the Metaphor Good?– whether the entailments of the metaphor contain programmable
ideas– whether the metaphor addresses the major system components
and their known functionality.– whether the metaphor entailments provide a vocabulary with which
to describe the system
• Is the metaphor too poor?– which system components and interactions are left undescribed by
the metaphor
• Is the metaphor misleading?– whether the metaphorical entailments imply non-existent system
components or non-existent behaviour.