collaborative software engineering – awareness and concurrency agam

30
Collaborative Software Engineering – Awareness and Concurrency Agam

Post on 21-Dec-2015

217 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Collaborative Software Engineering – Awareness and Concurrency Agam

Collaborative Software Engineering – Awareness and ConcurrencyAgam

Page 2: Collaborative Software Engineering – Awareness and Concurrency Agam

Outline

Introduction to CSE

Brief overview of five recent papers

Synthesis with in-class discussion

Page 3: Collaborative Software Engineering – Awareness and Concurrency Agam

Introduction to CSE

Seamless, fine-grained, real-time collaboration between geographically distributed software engineers

Example: Pair programming Refactoring Working on any part of the software

design/analysis process as a distributed team

Page 4: Collaborative Software Engineering – Awareness and Concurrency Agam

Introduction to CSE (contd.)

Research Areas in CSE

Page 5: Collaborative Software Engineering – Awareness and Concurrency Agam

Introduction to CSE (contd.)

Design space of CSE tools lies between two extremes (optimistic, pessimistic)

Page 6: Collaborative Software Engineering – Awareness and Concurrency Agam

Brief overview of papers

“Interruptions on Software Teams: A Comparison of Paired and Solo Programmers” J. Chong, R. Siino CSCW 2006

“CVS Integration with Notification and Chat: Lightweight Software Team Collaboration” G. Fitzpatrick, P. Marshall, A. Phillips CSCW 2006

Page 7: Collaborative Software Engineering – Awareness and Concurrency Agam

Brief overview of papers (contd.) “A User Evaluation of Synchronous Collaborative

Software Engineering Tools” C. Cook, W. Irvin, N. Churcher APSEC 2005

“Towards Synchronous Collaborative Software Engineering” C. Cook, N. Churcher, W. Irvin APSEC 2004

“Modelling and Measuring Collaborative Software Engineering” C. Cook, N. Churcher ACSC 2005

Page 8: Collaborative Software Engineering – Awareness and Concurrency Agam

“Lightweight Software Team collaboration …”

Communication MediatedInformal

Idea: public awareness of CVS contents as a means of communication

Currently being performed (in a weak sense) by mailing lists

Page 9: Collaborative Software Engineering – Awareness and Concurrency Agam

“Lightweight Software Team collaboration …” (contd.)

Most prevalent form of CSE – version control !!

Idea – combine this with informal communication

Result – mediated communication

Page 10: Collaborative Software Engineering – Awareness and Concurrency Agam

“Lightweight Software Team collaboration …” (contd.)

Visualization of CVS a good idea ‘tickertape’ mechanism used to

broadcast recent CVS activity to team“publish/subscrive” system displays

<log entry/group/developer>Made users aware of “manipulation of

project artifacts” Studied interaction/discussion arising

from

Page 11: Collaborative Software Engineering – Awareness and Concurrency Agam

“Lightweight Software Team collaboration …” (contd.)

Results of studyStimulated developer discussionPromoted ‘awareness’CVS log had better context, more infoHelps document “flow”

(commentary !)

Page 12: Collaborative Software Engineering – Awareness and Concurrency Agam

“Lightweight Software Team collaboration …” (contd.)

Results of study (contd.)‘commit’ operation – public act (as it

should be, marking transition of code from private workspace to public workspace) – Awareness !

Knowing that other developers are ‘tracking’ makes a difference – interruptibility management !

Page 13: Collaborative Software Engineering – Awareness and Concurrency Agam

“Modelling and Measuring CSE …”

CSE demands a little more than typical CSCW (E.g. shared whiteboards)Longer lifetimesHigher conflict resolution costMore complexity

Currently rely on “social protocols”

Page 14: Collaborative Software Engineering – Awareness and Concurrency Agam

“Modelling and Measuring CSE …” (contd.)

CAISE architecture• Server based• Semantic model maintained• Requires parsers/analysers• Events – input/change/feedback

Supports visualization

Page 15: Collaborative Software Engineering – Awareness and Concurrency Agam

“Modelling and Measuring CSE …” (contd.)

Editor Panel User Tree Client Panel

Page 16: Collaborative Software Engineering – Awareness and Concurrency Agam

“Modelling and Measuring CSE …” (contd.)

Page 17: Collaborative Software Engineering – Awareness and Concurrency Agam

“Modelling and Measuring CSE …” (contd.)

ObjectivesBuilds at different temporal

granularitiesFine-grained integritySemantic-based awareness and

feedbackPrivate work and re-integration

Page 18: Collaborative Software Engineering – Awareness and Concurrency Agam

“Modelling and Measuring CSE …” (contd.)

CAISE and CSEProvides Taskwork-oriented features

(as do traditional systems)But also -- Teamwork-oriented

features

Different modes reflecting different approaches to conflict resolution

Page 19: Collaborative Software Engineering – Awareness and Concurrency Agam

“Modelling and Measuring CSE …” (contd.)

Private (traditional) mode – similar to cvs

Independent – simultaneos work (CAISE monitors semantic relationship)

Melee – active conflict resolution by developers (communicate using out-of-band channel)

WYSIWIS – “tour of the code”

Page 20: Collaborative Software Engineering – Awareness and Concurrency Agam

“Modelling and Measuring CSE …” (contd.)

Server allows awareness of Code dependenciesDeveloper relationships

Visualization – see changes to code base over time

Page 21: Collaborative Software Engineering – Awareness and Concurrency Agam

“User evaluation of synchronous CSE …” (contd.)

User StudyTwo modes

• Conventional• Collaborative

Two types of tasks• Inter-file• Intra-file

Measured task-completion times

Page 22: Collaborative Software Engineering – Awareness and Concurrency Agam

“User evaluation of synchronous CSE …” (contd.)

Results Collaborative

mode twice as fast

Subjective survey results approved (tools rated 14-15 on a scale of 1-20)

Page 23: Collaborative Software Engineering – Awareness and Concurrency Agam

“Interruptions on Software Teams …”

Studied interaction in the workplace, more specifically knowledge-intensive work

Developers take breaks from workSocial natureFunctional natureFrequently interrupt each other

Page 24: Collaborative Software Engineering – Awareness and Concurrency Agam

“Interruptions on Software Teams …” (contd.)

User study of two situationsProgrammers working as a “pair” (co-

located)Programmers working “solo”

(remotely)

Page 25: Collaborative Software Engineering – Awareness and Concurrency Agam

“Interruptions on Software Teams …” (contd.)

ObservationsInterruptions – both functional + social

for solo, largely functional for pairPair was harder to interrupt‘interruptibility’ for pair easier to

assessResumption of task/switching tasks

faster for pair

Page 26: Collaborative Software Engineering – Awareness and Concurrency Agam

“Interruptions on Software Teams …” (contd.)

ObservationsAwareness of interruptiblity => Can

handle interruptions better !‘Team pair’ – partner helps maintains

state

Page 27: Collaborative Software Engineering – Awareness and Concurrency Agam

“Interruptions on Software Teams …” (contd.)

ConclusionsDesign Implication – make

programmers ‘aware’ of multiple tasks to get same benefit for remote collaboration

Actively maintain context

Page 28: Collaborative Software Engineering – Awareness and Concurrency Agam

Awareness and Concurrency Awareness

Know what other users are doing• Helps avoid major conflicts

Awareness of interruptibility Similar to mailing lists Conflict Resolution

Concurrency Control Helps avoid developers making conflicting

changes

Page 29: Collaborative Software Engineering – Awareness and Concurrency Agam

Awareness and Concurrency (contd.)

ConclusionExplored three different areasIssue of ‘collaboration’ in software

engineeringAugmenting CVS with simple tool –

trasforms developer relationshipsCAISE – awareness of relationships -

> conflict resolutionAwareness related to interruptibility

Page 30: Collaborative Software Engineering – Awareness and Concurrency Agam

Thank you !

(Questions ?)