SlideShare a Scribd company logo
My predictions interface
                                                                                                                getF ix!
        FanBook
                                                                                       BP (update)?◦      3                     5

                                                                                                                                    rtnF ix?
                                                             open?◦                        dUI
                                                                                                               dUI
              60          5                                                                                                 4
                      5                              0                         1                      2
                                                                                                                     BP (sob)?◦

                                       rtnf ocus!                                                         noMatch
                   30                                                                                                       6
                                                                                                BP (close)?◦
                                                         9                                                addP red!             getMatch
                                                                                   8
                                                             closeApp
              Zippy                                                                                                     7


                                      Fixture server : FS1
                                                getF ix?◦
                                                                 1
                                            0
                                                                         τ

                                            rtnF ix!◦            2


                                      Prediction Server : PS
                                            addData!                     getP red?◦
                                        1
                                                                                            2
                                                             0
                                        addP red?◦                                                getData!

                                                rtnP red!◦
                                                                                            3
                                                                     4
                                                                             rtnData?




A Population Approach to Ubicomp                                                       1




          System Design
                   Matthew Chalmers
Ubiquitous computing

More than just mobile devices...


Systems that fit with context, interaction and activity
   ...which are varied and dynamic in ways difficult to predict



The system is part of the user’s context
   System interactions, and how users are modelled and presented to
   others in them, are resources for new user activity
Ubiquitous computing



A holistic view spanning technology, use and users
   Mark Weiser: The unit of design should be social people, in their
   environment, plus your device

   Robin Milner: Here we look for synergy between the societal vision on
   the one hand, and the development of scientific models and engineering
   principles on the other.
SUMgroup: Social / Ubiquitous / Mobile



Matthew Chalmers, Alistair Morrison, Marek Bell, Scott
Sherwood, Don McMillan
Theory, user experience and system design
Use ‘in the wild’ rather than usability in the lab
A Short History: Treasure
A Short History: Feeding Yoshi
A Short History: EyeSpy
A Short History: Replayer
A Short History: Replayer
A Short History: Replayer
A Short History: Replayer
A Short History: shifting to iPhones
A Short History: shifting to iPhones
Mass participation

‘App Store’ model of distribution a huge success
   More than 10 billion downloads in first 3 years

Ubicomp field trials generally focus on small numbers
of users
Now there’s a potential to reach huge numbers of
users relatively easily
What are the challenges:
   Methodological? Technical? Ethical?
Hungry Yoshi



Our first study exploring app store recruitment model
Comparison with ‘traditional’ ubicomp field trial
Took 2005 Windows Mobile application, reimplemented it
on iOS in 2009
Yoshi (2005)

Scans of WiFi APs

‘Carry’ fruit to Yoshis

Mainly qualitative methods, to study
integration of game into everyday life

Original study was “long-term, wide-
area”

Played over a week, with16 players in
Glasgow, Nottingham and Derby
Yoshi (2009)
Quantitative evaluation
Qualitative evaluation



Qualitative evaluation at a
distance

Task mechanism
   Many types of ‘task’
   Real-time updates
Qualitative evaluation


Over 28,000 responses

Tokens as motivation
      Unrewarded: 11% of
      players
      Rewarded: 19% of players

Players vs. participants
Qualitative evaluation




Facebook integration

Use Facebook mail, forums...
Qualitative evaluation



Telephone interviews
  Offered payment
  A few very keen participants at start, but struggled to get >10

  Self-selection biases, language issues
Quantitative evaluation: SGLog


A generic logging framework with phone and server parts
Log user interactions (button taps, screen changes), and
device/sensor data (accelerometer, WiFi connections)
Write to locally-stored files on device, but opportunistic
uploading to SGLog server over Internet
‘Real-time’ evaluation/monitoring of trial in progress
SGVis: complementary visualisation / analysis desktop tool
Quantitative evaluation: SGVis
Quantitative evaluation


How do we count user numbers for Yoshi?


In Windows Mobile trial : 16 users paid for participation
In iOS trial:
   Download?
   Register for account?
   Play for > x minutes/hours/days?
Quantitative evaluation


How do we count user numbers for Yoshi?
  Downloads: 182,714

  Unique users launching: 98,556
  Users registered: 36,169

  Score points: 4,134

  Played on 5 or more days: 3,080
Quantitative evaluation: SGVis
Quantitative evaluation: SGVis
SGVis: Categorising users
SGVis: Categorising users
SGVis: Categorising users
SGVis: Categorising users




Calculate centroids of each identified cluster
4 categories of users: top players, commuters,
static players, beginners
Categorising users


Targeting evaluation to specific categories
   More effective or efficient evaluation?

Users’ reactions to categorisation
   User feedback may let us understand whether or how it is
   meaningful

   Users may change their behaviour as a result of being categorised?
Categorising users as part of iterative design



Release initial version of app and then loop:
   Use tools to observe usage, analyse patterns and categorise users
   Release optional modules to support observed and requested usage
   of users in specific categories

   Sets of modules may be bundled and named as separate apps to
   support different observed categories of use
The software engineering revolution



Conventional models of the software development process
all claim that “at some point, a product is delivered to a
user community, at which point, for that revision of the
software, the design process is over.”
Paul Dourish
The software engineering revolution



“When we look at an interactive system as an evolving
artifact in use, it follows that the process of design does
not end with the delivery of the system to some
community of users. Instead, it continues as they use and
adapt the system.”
Concept Demonstrator/Evaluation



Initial evaluation via a simple mobile game called Castles
Game chosen because
   Keeps users motivated

   In-depth and intense use stresses system
   Provides an infrastructure suitable for modular architecture
Game Overview


Players construct kingdoms
   Inhabitants
   Resources

   Buildings

   Soldiers

Players may choose to battle
when they are in wi-fi range
Game Overview


Players start with a set of
common modules and a set
unique to them
When players battle:
   histories are exchanged
   recommendations are made

   modules are transferred
Game Overview




After a battle, a player will
be informed if there are
recommendations
Game Overview


Module recommendations
integrated into the building
list
Stars show
recommendation rank
Gray buildings are newly
received modules
Findings


Players progressed more
  rapidly with
  recommendations
Nearly all followed
 recommendations
Modules were spread to
 and used by others
FlexBook
  Mobile social networking app
  Dynamic integration of
  software modules at runtime
   Shared via our “module store”
   server, or ad hoc peer-to-peer

  Reviewing and user feedback
   Implicit logging of use
   Explicit comments and rating
   Shown in app and Facebook
My predictions interface
                                                              getF ix!
                                         BP (update)?◦   3                    5

                                                                                  rtnF ix?
                      open?◦              dUI
                                                             dUI
                                                                          4
              0                  1                  2
                                                                   BP (sob)?◦

 rtnf ocus!                                              noMatch          6
                                              BP (close)?◦


                  9                                      addP red!            getMatch
                                     8
                      closeApp
                                                                      7


Fixture server : FS1
         getF ix?◦
                       1
     0
                           τ
A population approach to ubicomp
system design

Based on mass participation & dynamic software structures


Redefining a fundamental computer science concept: class


A new project, officially starting today
   Two universities, four million pounds, five years, nine people
The population approach



Multiple representations of a software class (or type)


Tools to use, create or adapt these representations


Social interactions and practices involving those tools
The traditional representation



A class is a structure, and all instances conform to it
   Data structure: variables or state

   Code structure: methods, procedures or functions

   These form a structural description of potential behaviour and use
   Assumption: exact match between the structure of the class
   definition, and the structure of each instance
The traditional representation


Tests and changes need only be done on one thing at one time:
the class structure
What’s true for the class is true for the deployed instances


Poor fit with trends such as plug-ins, add-ins, e.g. what is Firefox?
Phones often user-adapted, via App Store, Cydia, Android
Market...
Borrowing from biology: population thinking


A species is a varied and changing population of individuals
   A species may be described by unifying and defining characteristics

   A species is also continually changing and evolving
   Each individual member may differ from others, and variation among
   individuals is natural and vital to adaptation
   The species can also be described by the set of current (or recently
   recorded) members: the aggregate of each individual’s DNA, size,
   colour, shape, etc.
A new representation: population


A class is a varied and changing population of instances
   A class may be described by unifying and defining characteristics

   A class is also continually changing and evolving
   Each individual instance may differ from others, and variation among
   individuals is natural and vital to adaptation
   The class can also be described by the set of current (or recently
   recorded) members: the aggregate of each instance’s structure,
   context, use, etc.
A new representation: a population


Match between class and each instance may vary
  The value of a variable may vary... but also which variables, methods and
  functions make up internal structure



Variation and dynamism mean complexity of design and
analysis
  Probabilistic statements and models instead of simpler discrete ones
Populations: variation and dynamism

What’s true for one instance may not be for another
   90% of unmodified instances crash, but those with module A added
   don’t crash. Overall, 75% of instances crash

Analysis results may be different at different times
   We advertise A and the percentages; a week later only 50% crash

Results for different contexts may differ
   News of module A spreads faster in one country than another, so in
   Spain 25% crash while in the US 60% crash
New tools and new interactions


Analysis of modules, configurations and contexts
  Which configurations and contexts are popular? Which are
  problematic? How are they used? Are there clusters that should be
  separately managed and designed for?

  How does my setup compare to my friends’? Are there configurations
  like my own that doesn’t crash so much? How are they used?

Access to modules and usage data
  May support free dissemination (P2P) or retain a degree of control
  ‘Lead users’ keen to try out new or specially instrumented versions
A third representation: ostension


One or more population members are pointed out as
examples


Many potential ways to make an ostension
  e.g. a category or cluster selected from a population of instances
SGVis: Categorising users
From observed use patterns to software
structure

MapTool is usually run along with DGPSLocationStream
UKTrainSchedule is frequently logged as being used in UK
locations tagged as train station
FestivalEvents and FestivalVenues modules are frequently used
with an unofficial module AlternativeGuideToTheFringe when
the user is in Edinburgh Fringe Festival venues
System design and structure

“An ontology is a formal specification of a shared
conceptualization” Gruber, via SemanticWeb.org


Traditionally, design is about the perfect hierarchical
structure
   One structure for all known uses, contexts and people

   Adaptation is the problem of changing it
System design and structure

Population approach couples process and structure
  Design process in which structure is a resource for use, and in
  which use creates or adapts structure

  Giddens’ duality of structure, Heidegger’s hermeneutic circle

  Adaptation of a structure to new contexts and uses is part of the
  process



A design requirement for ubicomp
Designing for duality of structure

Moving from structure to use is commonplace
   That’s what happens when you compile code and users run it

The trick is how to move back again
   Making code for a class from a set of instances and usage histories



A process that allows for gradual adaptation of a class
   Moving between complementary forms of class definition

   Each move is (or should be) a social interaction
Intension
   A class, compiled to create an executable shared among users

Extension
   the deployed instances, that are adapted by users and which create
   log data shared with evaluators and developers (and other users)

Ostension
   a subset of instances selected by one of these people as particularly
   interesting or useful, and shared among them for comment and use

   analysis to a class signature reflecting ‘family resemblances’ among
   the configurations and logs of that subset
Scenario: FanPhoto

FanPhoto: two core components,
for text and photo sharing
We give it out to 100 people
  and they start using it

We start developing new
modules
  one for sharing data via Facebook
  one for fast compression and sharing of
  text, photos and video via MANETs
Scenario: FanPhoto


A few participants are
interested in new modules              97
   download them and show off      3
   that they are trying them out

Analysts keep track via log
data streaming back
   start to see a new subcluster
   forming
Scenario: FanPhoto

                                   FanPhoto
                                   TextSharing
In the IDE, developers can         PhotoSharing
see the FanPhoto class             FacebookSharing
   Modules used by a minority of   MANETmodule
   users are shown in grey
Scenario: FanPhoto



                                97
After some time,            3
developers and evaluators
meet to play back several
weeks’ use
Scenario: FanPhoto



                                91
After some time,            9
developers and evaluators
meet to play back several
weeks’ use
Scenario: FanPhoto



                            26    51
After some time,             23
developers and evaluators
meet to play back several
weeks’ use
Scenario: FanPhoto
                            FanBook

                                60         5
                                      5
After some time,
developers and evaluators             30
meet to play back several
weeks’ use
Scenario: FanPhoto
                            FanBook

                                60         5
                                      5
After some time,
developers and evaluators             30
meet to play back several
weeks’ use
                                Zippy
Scenario: FanPhoto

A developer sets his
IDE to do automatic
updates
Code defining each                   FanPhoto
new subclass appears
   labelled with users’ and
   analysts’ names
                                FanBook   Zippy
   linked to tools to analyse
   the ostensions that made
   them
Ostension revisited


Most forms of ‘analysis’ afford ostensive definition
   A way to focus on a subset of structures, contexts, uses and users
   e.g. an evaluator’s video of particular users from a system trial, a
   user’s list of friends on Facebook, a developer choosing a name of a
   city to customise design for

Log data allow us to link to the software used
   Extend previous work that links from video to log data
A Population Approach to Ubicomp Systems Design
Iterative design at a large scale

1. Development and refinement of tools,
   infrastructure, statistical methods, formal analysis
   methods and theoretical frameworks
2. Initial apps deployed by us to significant numbers of
   people: social networking and games
3. Larger-scale deployments developed/distributed with
   partners: Edinburgh Festivals, Rangers FC and other
   football clubs, Glasgow museums...
4. Go back to step 1 and do it better
A population approach

A combination of theory, design, evaluation and use
   Advances in all four needed for success

A circular process designed for duality of structure
   Change and human agency as essential elements of the process
   Multiple ways of representing a software class

   Tools to use, create or adapt these representations
   Users’, evaluators’ and developers’ social interactions and practices
   involving those tools... that feed back into low-level representations
My predictions interface
                                                                                                      getF ix!
     FanBook
                                                                             BP (update)?◦      3                     5

                                                                                                                          rtnF ix?
                                                   open?◦                        dUI
                                                                                                     dUI
           60          5                                                                                          4
                   5                       0                         1                      2
                                                                                                           BP (sob)?◦

                             rtnf ocus!                                                         noMatch
                30                                                                                                6
                                                                                      BP (close)?◦
                                               9                                                addP red!             getMatch
                                                                         8
                                                   closeApp
           Zippy                                                                                              7


                            Fixture server : FS1
                                      getF ix?◦
                                                       1
                                  0
                                                               τ

                                  rtnF ix!◦            2


                            Prediction Server : PS
                                  addData!                     getP red?◦
                              1
                                                                                  2
                                                   0
                              addP red?◦                                                getData!

                                      rtnP red!◦
                                                                                  3
                                                           4
                                                                   rtnData?




matthew.chalmers@glasgow.ac.uk                                               1




  www.dcs.gla.ac.uk/~matthew

More Related Content

DOCX
Borang item objektif (k1 bahagian a)
DOCX
Pengurusan kelas
DOCX
Senarai nama 3 a, 2014
KEY
Invisible Artists - 2011
PPTX
Jsu ldp 2012
PPTX
Tugas metoda perancangan01 disa rudy tirza
DOC
Rekod eviden matematik_thn_2 2012
PPTX
Jsu ldp 2012
Borang item objektif (k1 bahagian a)
Pengurusan kelas
Senarai nama 3 a, 2014
Invisible Artists - 2011
Jsu ldp 2012
Tugas metoda perancangan01 disa rudy tirza
Rekod eviden matematik_thn_2 2012
Jsu ldp 2012

Similar to A Population Approach to Ubicomp Systems Design (20)

PDF
Crowdsourcing for Multimedia Retrieval
PDF
Data Structures 2007
PDF
A graphic library and an application for simple curve manipolation
PDF
22期.百度彭滔 搜索引擎评估与用户行为分析
PDF
Botbeans CISTI 2011
PDF
Invent your own computer games with python
PDF
Wiamis2010 poster
PDF
Wiamis2010 poster
KEY
Gordon Research Conference 2011
PPTX
Standards for statistical data dissemination: a wish list
PDF
Model-based Testing: Today And Tomorrow
PDF
CSTalks-Visualizing Software Behavior-14Sep
PDF
Scilab beginners
PDF
Scilab for beginners
PDF
Scilab beginners
PDF
Automatically Defined Functions for Learning Classifier Systems
PDF
Exemplar: Designing Sensor-based interactions by demonstration... (a CHI2007 ...
PDF
Real-time Systems Design (part II)
PDF
Software Evolution Visualization
PDF
RapidMRC
Crowdsourcing for Multimedia Retrieval
Data Structures 2007
A graphic library and an application for simple curve manipolation
22期.百度彭滔 搜索引擎评估与用户行为分析
Botbeans CISTI 2011
Invent your own computer games with python
Wiamis2010 poster
Wiamis2010 poster
Gordon Research Conference 2011
Standards for statistical data dissemination: a wish list
Model-based Testing: Today And Tomorrow
CSTalks-Visualizing Software Behavior-14Sep
Scilab beginners
Scilab for beginners
Scilab beginners
Automatically Defined Functions for Learning Classifier Systems
Exemplar: Designing Sensor-based interactions by demonstration... (a CHI2007 ...
Real-time Systems Design (part II)
Software Evolution Visualization
RapidMRC
Ad

Recently uploaded (20)

PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PPTX
SOPHOS-XG Firewall Administrator PPT.pptx
PPTX
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
PPTX
1. Introduction to Computer Programming.pptx
PDF
Heart disease approach using modified random forest and particle swarm optimi...
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
A comparative study of natural language inference in Swahili using monolingua...
PDF
Encapsulation theory and applications.pdf
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Empathic Computing: Creating Shared Understanding
PPTX
OMC Textile Division Presentation 2021.pptx
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PPT
Teaching material agriculture food technology
PDF
Accuracy of neural networks in brain wave diagnosis of schizophrenia
PDF
Getting Started with Data Integration: FME Form 101
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Network Security Unit 5.pdf for BCA BBA.
Reach Out and Touch Someone: Haptics and Empathic Computing
SOPHOS-XG Firewall Administrator PPT.pptx
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
1. Introduction to Computer Programming.pptx
Heart disease approach using modified random forest and particle swarm optimi...
Advanced methodologies resolving dimensionality complications for autism neur...
A comparative study of natural language inference in Swahili using monolingua...
Encapsulation theory and applications.pdf
MIND Revenue Release Quarter 2 2025 Press Release
Assigned Numbers - 2025 - Bluetooth® Document
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Empathic Computing: Creating Shared Understanding
OMC Textile Division Presentation 2021.pptx
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Teaching material agriculture food technology
Accuracy of neural networks in brain wave diagnosis of schizophrenia
Getting Started with Data Integration: FME Form 101
Spectral efficient network and resource selection model in 5G networks
Building Integrated photovoltaic BIPV_UPV.pdf
Network Security Unit 5.pdf for BCA BBA.
Ad

A Population Approach to Ubicomp Systems Design

  • 1. My predictions interface getF ix! FanBook BP (update)?◦ 3 5 rtnF ix? open?◦ dUI dUI 60 5 4 5 0 1 2 BP (sob)?◦ rtnf ocus! noMatch 30 6 BP (close)?◦ 9 addP red! getMatch 8 closeApp Zippy 7 Fixture server : FS1 getF ix?◦ 1 0 τ rtnF ix!◦ 2 Prediction Server : PS addData! getP red?◦ 1 2 0 addP red?◦ getData! rtnP red!◦ 3 4 rtnData? A Population Approach to Ubicomp 1 System Design Matthew Chalmers
  • 2. Ubiquitous computing More than just mobile devices... Systems that fit with context, interaction and activity ...which are varied and dynamic in ways difficult to predict The system is part of the user’s context System interactions, and how users are modelled and presented to others in them, are resources for new user activity
  • 3. Ubiquitous computing A holistic view spanning technology, use and users Mark Weiser: The unit of design should be social people, in their environment, plus your device Robin Milner: Here we look for synergy between the societal vision on the one hand, and the development of scientific models and engineering principles on the other.
  • 4. SUMgroup: Social / Ubiquitous / Mobile Matthew Chalmers, Alistair Morrison, Marek Bell, Scott Sherwood, Don McMillan Theory, user experience and system design Use ‘in the wild’ rather than usability in the lab
  • 5. A Short History: Treasure
  • 6. A Short History: Feeding Yoshi
  • 8. A Short History: Replayer
  • 9. A Short History: Replayer
  • 10. A Short History: Replayer
  • 11. A Short History: Replayer
  • 12. A Short History: shifting to iPhones
  • 13. A Short History: shifting to iPhones
  • 14. Mass participation ‘App Store’ model of distribution a huge success More than 10 billion downloads in first 3 years Ubicomp field trials generally focus on small numbers of users Now there’s a potential to reach huge numbers of users relatively easily What are the challenges: Methodological? Technical? Ethical?
  • 15. Hungry Yoshi Our first study exploring app store recruitment model Comparison with ‘traditional’ ubicomp field trial Took 2005 Windows Mobile application, reimplemented it on iOS in 2009
  • 16. Yoshi (2005) Scans of WiFi APs ‘Carry’ fruit to Yoshis Mainly qualitative methods, to study integration of game into everyday life Original study was “long-term, wide- area” Played over a week, with16 players in Glasgow, Nottingham and Derby
  • 19. Qualitative evaluation Qualitative evaluation at a distance Task mechanism Many types of ‘task’ Real-time updates
  • 20. Qualitative evaluation Over 28,000 responses Tokens as motivation Unrewarded: 11% of players Rewarded: 19% of players Players vs. participants
  • 22. Qualitative evaluation Telephone interviews Offered payment A few very keen participants at start, but struggled to get >10 Self-selection biases, language issues
  • 23. Quantitative evaluation: SGLog A generic logging framework with phone and server parts Log user interactions (button taps, screen changes), and device/sensor data (accelerometer, WiFi connections) Write to locally-stored files on device, but opportunistic uploading to SGLog server over Internet ‘Real-time’ evaluation/monitoring of trial in progress SGVis: complementary visualisation / analysis desktop tool
  • 25. Quantitative evaluation How do we count user numbers for Yoshi? In Windows Mobile trial : 16 users paid for participation In iOS trial: Download? Register for account? Play for > x minutes/hours/days?
  • 26. Quantitative evaluation How do we count user numbers for Yoshi? Downloads: 182,714 Unique users launching: 98,556 Users registered: 36,169 Score points: 4,134 Played on 5 or more days: 3,080
  • 32. SGVis: Categorising users Calculate centroids of each identified cluster 4 categories of users: top players, commuters, static players, beginners
  • 33. Categorising users Targeting evaluation to specific categories More effective or efficient evaluation? Users’ reactions to categorisation User feedback may let us understand whether or how it is meaningful Users may change their behaviour as a result of being categorised?
  • 34. Categorising users as part of iterative design Release initial version of app and then loop: Use tools to observe usage, analyse patterns and categorise users Release optional modules to support observed and requested usage of users in specific categories Sets of modules may be bundled and named as separate apps to support different observed categories of use
  • 35. The software engineering revolution Conventional models of the software development process all claim that “at some point, a product is delivered to a user community, at which point, for that revision of the software, the design process is over.” Paul Dourish
  • 36. The software engineering revolution “When we look at an interactive system as an evolving artifact in use, it follows that the process of design does not end with the delivery of the system to some community of users. Instead, it continues as they use and adapt the system.”
  • 37. Concept Demonstrator/Evaluation Initial evaluation via a simple mobile game called Castles Game chosen because Keeps users motivated In-depth and intense use stresses system Provides an infrastructure suitable for modular architecture
  • 38. Game Overview Players construct kingdoms Inhabitants Resources Buildings Soldiers Players may choose to battle when they are in wi-fi range
  • 39. Game Overview Players start with a set of common modules and a set unique to them When players battle: histories are exchanged recommendations are made modules are transferred
  • 40. Game Overview After a battle, a player will be informed if there are recommendations
  • 41. Game Overview Module recommendations integrated into the building list Stars show recommendation rank Gray buildings are newly received modules
  • 42. Findings Players progressed more rapidly with recommendations Nearly all followed recommendations Modules were spread to and used by others
  • 43. FlexBook Mobile social networking app Dynamic integration of software modules at runtime Shared via our “module store” server, or ad hoc peer-to-peer Reviewing and user feedback Implicit logging of use Explicit comments and rating Shown in app and Facebook
  • 44. My predictions interface getF ix! BP (update)?◦ 3 5 rtnF ix? open?◦ dUI dUI 4 0 1 2 BP (sob)?◦ rtnf ocus! noMatch 6 BP (close)?◦ 9 addP red! getMatch 8 closeApp 7 Fixture server : FS1 getF ix?◦ 1 0 τ
  • 45. A population approach to ubicomp system design Based on mass participation & dynamic software structures Redefining a fundamental computer science concept: class A new project, officially starting today Two universities, four million pounds, five years, nine people
  • 46. The population approach Multiple representations of a software class (or type) Tools to use, create or adapt these representations Social interactions and practices involving those tools
  • 47. The traditional representation A class is a structure, and all instances conform to it Data structure: variables or state Code structure: methods, procedures or functions These form a structural description of potential behaviour and use Assumption: exact match between the structure of the class definition, and the structure of each instance
  • 48. The traditional representation Tests and changes need only be done on one thing at one time: the class structure What’s true for the class is true for the deployed instances Poor fit with trends such as plug-ins, add-ins, e.g. what is Firefox? Phones often user-adapted, via App Store, Cydia, Android Market...
  • 49. Borrowing from biology: population thinking A species is a varied and changing population of individuals A species may be described by unifying and defining characteristics A species is also continually changing and evolving Each individual member may differ from others, and variation among individuals is natural and vital to adaptation The species can also be described by the set of current (or recently recorded) members: the aggregate of each individual’s DNA, size, colour, shape, etc.
  • 50. A new representation: population A class is a varied and changing population of instances A class may be described by unifying and defining characteristics A class is also continually changing and evolving Each individual instance may differ from others, and variation among individuals is natural and vital to adaptation The class can also be described by the set of current (or recently recorded) members: the aggregate of each instance’s structure, context, use, etc.
  • 51. A new representation: a population Match between class and each instance may vary The value of a variable may vary... but also which variables, methods and functions make up internal structure Variation and dynamism mean complexity of design and analysis Probabilistic statements and models instead of simpler discrete ones
  • 52. Populations: variation and dynamism What’s true for one instance may not be for another 90% of unmodified instances crash, but those with module A added don’t crash. Overall, 75% of instances crash Analysis results may be different at different times We advertise A and the percentages; a week later only 50% crash Results for different contexts may differ News of module A spreads faster in one country than another, so in Spain 25% crash while in the US 60% crash
  • 53. New tools and new interactions Analysis of modules, configurations and contexts Which configurations and contexts are popular? Which are problematic? How are they used? Are there clusters that should be separately managed and designed for? How does my setup compare to my friends’? Are there configurations like my own that doesn’t crash so much? How are they used? Access to modules and usage data May support free dissemination (P2P) or retain a degree of control ‘Lead users’ keen to try out new or specially instrumented versions
  • 54. A third representation: ostension One or more population members are pointed out as examples Many potential ways to make an ostension e.g. a category or cluster selected from a population of instances
  • 56. From observed use patterns to software structure MapTool is usually run along with DGPSLocationStream UKTrainSchedule is frequently logged as being used in UK locations tagged as train station FestivalEvents and FestivalVenues modules are frequently used with an unofficial module AlternativeGuideToTheFringe when the user is in Edinburgh Fringe Festival venues
  • 57. System design and structure “An ontology is a formal specification of a shared conceptualization” Gruber, via SemanticWeb.org Traditionally, design is about the perfect hierarchical structure One structure for all known uses, contexts and people Adaptation is the problem of changing it
  • 58. System design and structure Population approach couples process and structure Design process in which structure is a resource for use, and in which use creates or adapts structure Giddens’ duality of structure, Heidegger’s hermeneutic circle Adaptation of a structure to new contexts and uses is part of the process A design requirement for ubicomp
  • 59. Designing for duality of structure Moving from structure to use is commonplace That’s what happens when you compile code and users run it The trick is how to move back again Making code for a class from a set of instances and usage histories A process that allows for gradual adaptation of a class Moving between complementary forms of class definition Each move is (or should be) a social interaction
  • 60. Intension A class, compiled to create an executable shared among users Extension the deployed instances, that are adapted by users and which create log data shared with evaluators and developers (and other users) Ostension a subset of instances selected by one of these people as particularly interesting or useful, and shared among them for comment and use analysis to a class signature reflecting ‘family resemblances’ among the configurations and logs of that subset
  • 61. Scenario: FanPhoto FanPhoto: two core components, for text and photo sharing We give it out to 100 people and they start using it We start developing new modules one for sharing data via Facebook one for fast compression and sharing of text, photos and video via MANETs
  • 62. Scenario: FanPhoto A few participants are interested in new modules 97 download them and show off 3 that they are trying them out Analysts keep track via log data streaming back start to see a new subcluster forming
  • 63. Scenario: FanPhoto FanPhoto TextSharing In the IDE, developers can PhotoSharing see the FanPhoto class FacebookSharing Modules used by a minority of MANETmodule users are shown in grey
  • 64. Scenario: FanPhoto 97 After some time, 3 developers and evaluators meet to play back several weeks’ use
  • 65. Scenario: FanPhoto 91 After some time, 9 developers and evaluators meet to play back several weeks’ use
  • 66. Scenario: FanPhoto 26 51 After some time, 23 developers and evaluators meet to play back several weeks’ use
  • 67. Scenario: FanPhoto FanBook 60 5 5 After some time, developers and evaluators 30 meet to play back several weeks’ use
  • 68. Scenario: FanPhoto FanBook 60 5 5 After some time, developers and evaluators 30 meet to play back several weeks’ use Zippy
  • 69. Scenario: FanPhoto A developer sets his IDE to do automatic updates Code defining each FanPhoto new subclass appears labelled with users’ and analysts’ names FanBook Zippy linked to tools to analyse the ostensions that made them
  • 70. Ostension revisited Most forms of ‘analysis’ afford ostensive definition A way to focus on a subset of structures, contexts, uses and users e.g. an evaluator’s video of particular users from a system trial, a user’s list of friends on Facebook, a developer choosing a name of a city to customise design for Log data allow us to link to the software used Extend previous work that links from video to log data
  • 72. Iterative design at a large scale 1. Development and refinement of tools, infrastructure, statistical methods, formal analysis methods and theoretical frameworks 2. Initial apps deployed by us to significant numbers of people: social networking and games 3. Larger-scale deployments developed/distributed with partners: Edinburgh Festivals, Rangers FC and other football clubs, Glasgow museums... 4. Go back to step 1 and do it better
  • 73. A population approach A combination of theory, design, evaluation and use Advances in all four needed for success A circular process designed for duality of structure Change and human agency as essential elements of the process Multiple ways of representing a software class Tools to use, create or adapt these representations Users’, evaluators’ and developers’ social interactions and practices involving those tools... that feed back into low-level representations
  • 74. My predictions interface getF ix! FanBook BP (update)?◦ 3 5 rtnF ix? open?◦ dUI dUI 60 5 4 5 0 1 2 BP (sob)?◦ rtnf ocus! noMatch 30 6 BP (close)?◦ 9 addP red! getMatch 8 closeApp Zippy 7 Fixture server : FS1 getF ix?◦ 1 0 τ rtnF ix!◦ 2 Prediction Server : PS addData! getP red?◦ 1 2 0 addP red?◦ getData! rtnP red!◦ 3 4 rtnData? matthew.chalmers@glasgow.ac.uk 1 www.dcs.gla.ac.uk/~matthew