117
Final Report on Collaborative Software Engineering Tools Workshop and Follow-Up Project NAG2-1555 Edited by David F. Redmiles, PhD Institute for Software Research and Department of Informatics University of California, Irvine Irvine, CA 92697-3425 USA [email protected] ISR Technical Report # UCI-ISR-03-14 December 2003 Abstract: This report documents the project “Collaborative Software Engineering Tools Workshop and Follow-Up.” Under this project, a workshop was held at NASA/Ames on August 5 and 6, 2002. Additional research followed up on the workshop. Hence, the report contains these two components: materials from the workshop and a series of research papers that document our follow-up activities. The workshop brought together technical staff of NASA/Ames and faculty and staff researchers from University of California's Institute for Software Research (ISR). The goal of the workshop was to generate a joint understanding of collaborative software engineering tools informed from four perspectives: 1) technology, 2) theory, 3) field studies, and 4) specific NASA problems. The follow-up work included an intern working at NASA and providing some analysis of observations during the course of that work. The analysis was carried out collaboratively between personnel at NASA/Ames and UCI/ISR. Additional experimental software development was performed at UCI examining the role and architecture of event notification servers and awareness. Also, some initial explorations about extending field study methods were done. Since the workshop, a web site has been maintained at http://www.isr.uci.edu/events/NASA-Workshop/

Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

  • Upload
    tranthu

  • View
    215

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

Final Report on Collaborative Software Engineering Tools Workshop and Follow-Up

Project NAG2-1555

Edited by

David F. Redmiles, PhD

Institute for Software Research and Department of Informatics

University of California, Irvine Irvine, CA 92697-3425 USA

[email protected]

ISR Technical Report # UCI-ISR-03-14

December 2003 Abstract: This report documents the project “Collaborative Software Engineering Tools Workshop and Follow-Up.” Under this project, a workshop was held at NASA/Ames on August 5 and 6, 2002. Additional research followed up on the workshop. Hence, the report contains these two components: materials from the workshop and a series of research papers that document our follow-up activities. The workshop brought together technical staff of NASA/Ames and faculty and staff researchers from University of California's Institute for Software Research (ISR). The goal of the workshop was to generate a joint understanding of collaborative software engineering tools informed from four perspectives: 1) technology, 2) theory, 3) field studies, and 4) specific NASA problems. The follow-up work included an intern working at NASA and providing some analysis of observations during the course of that work. The analysis was carried out collaboratively between personnel at NASA/Ames and UCI/ISR. Additional experimental software development was performed at UCI examining the role and architecture of event notification servers and awareness. Also, some initial explorations about extending field study methods were done.

Since the workshop, a web site has been maintained at http://www.isr.uci.edu/events/NASA-Workshop/

Page 2: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

Table of Contents Part 1: Workshop Materials Part 2: Follow-up Materials

Page 3: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

Part 1: Workshop Materials

Page 4: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

Agenda Monday, August 5 10:30 - 12:00 Scope of Collaborative Software Engineering

Introductions all around (15 mins) Introductory Remarks David Redmiles, UCI/ISR Faculty and John Penix, Computer Scientist, NASA Ames Challenges in Distributed Collaborative Space Mission Design Gloria Mark, ISR Faculty ScienceOrganizer: A Collaborative Information Management Tool for Scientific Teams Richard M. Keller, Senior Computer Scientist, NASA Ames Discussion (15 mins)

12:00 - 1:00 Lunch 1:00 - 2:15 Quantification and Visualization

Palantír: Increasing Awareness among Distributed Workspaces André van der Hoek, ISR Faculty Visualizing Software Instability Jennifer Bevan, UC Santa Cruz Graduate Student Source Code Instrumentation and Quantification of Events Robert Filman, Computer Scientist, NASA Ames Visualization of Software and Development Paul Dourish, ISR Faculty Discussion (15 mins)

2:15 - 2:30 Break 2:30 - 3:45 Collaboration Studies and Tools

Exploring the Relationship between Project Selection and Requirements Analysis Mark Bergman, ISR Graduate Student

Page 5: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

Past and Future of Postdoc Chris Knight, NASA Ames A Field Study of Collaborative Software Development Teams Cleidson de Souza, ISR Graduate Student, NASA Ames Summer Intern How do we go where no one has gone before? Issues in the development of Autonomous Operations for Space Kanna Rajan, NASA Ames Discussion (15 mins)

3:45 - 4:00 Break 4:00 - 5:00 Architecture and Synthesis

US/France Coalition Warfare as a Model of Dynamic Architectures for Cross-Organizational Software Engineering Richard N. Taylor, ISR Director and Faculty (no slides available) Formal Peer Inspection Information Architecture Gilda Pour, Faculty, San Jose State University Software Design Modelling and Code Generation Tools Jon Whittle, Computer Scientist, NASA Ames (no slides available) Discussion (15 mins)

Tuesday, August 6 9:30 - 11:30 Event Infrastructure and Wrap up

From Simulation to Implementation - An overview of the Brahms Research and its application to Work Practice Analysis and Software Agents Maarten Sierhuis, Senior Scientist, NASA Ames Event-notification and Messaging Architectures for Real-time Science Coordination Elias Sinderson, UC Santa Cruz Graduate Student, NASA Ames Summer Intern Using Event Notification Servers to Support Awareness David Redmiles, ISR Faculty

Page 6: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

Discussion on Common Themes (1 hr 15 mins) Moderated by David Redmiles and John Penix

11:30 - 12:30 Lunch

After lunch, a subset of people will meet to make future plans. Subset includes David Redmiles, John Penix, Michael Kantor, Susan Knight, Debra Brodbeck, at least 1 more UCI faculty, and 1 or more NASA or JPL people.

Page 7: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

Participants NASA Ames

• Martha DelAlto, [email protected] • David Bell, [email protected] • Robert Filman, Computer Scientist, [email protected] • Rich Keller, Senior Computer Scientist, [email protected] • Chris Knight, Computer Scientist, [email protected] • Jeff Lee, [email protected] • Kenneth I. Laws, [email protected] • Masoud Mansouri-Samani, [email protected] • Larry Markosian, [email protected] • Peter Mehlitz, [email protected] • Owen O'Malley, Computer Scientist, [email protected] • Joan Pallix, [email protected] • John Penix, Computer Scientist and Workshop Organizer,

[email protected] • Tom Pressburger, [email protected] • Kanna Rajan, Senior Researcher, [email protected] • David Roland, [email protected] • John Shupe, [email protected] • Maarten Sierhuis, Senior Scientist, [email protected] • Jon Whittle, Computer Scientist, [email protected]

ISR/UCI

• Mark Bergman, Graduate Student, [email protected] • Debra Brodbeck, ISR Technical Relations Director, [email protected] • Eric Dashofy, Graduate Student, [email protected] • Cleidson R. B. de Souza, Graduate Student, [email protected] (currently on

summer Internship at NASA Ames) • Paul Dourish, Faculty, [email protected] • Roberto S.S. Filho, Graduate Student, [email protected] • Michael Kantor, Post-Doctoral Researcher, [email protected] • Susan Knight, ISR Corporate Relations Officer, [email protected] • Gloria Mark, Faculty, [email protected]

• David Redmiles, Faculty and Workshop Organizer, [email protected]

• Richard Taylor, ISR Director and Faculty, [email protected] • André van der Hoek, Faculty, [email protected]

Page 8: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

ISR/UC Santa Cruz

• Jennifer Bevan, Graduate Student, [email protected] • Elias Sinderson, Graduate Student and NASA Ames Summer Intern (2002),

[email protected] Other

• Dale Martin, Clifton Labs, Inc., [email protected] • Lantz Moore, Senior Software Engineer, Clifton Labs, Inc.,

[email protected] • Gilda Pour, Faculty, San Jose State University and NRC Research Associate,

NASA Ames, [email protected] • Jason Robbins, Collab.Net, Inc., [email protected]

Page 9: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

Wo

rksh

op

on

Co

lla

bo

rati

ve

So

ftw

are

En

gin

ee

rin

g T

oo

ls

John

Pen

ixCo

mpu

ter

Scie

ntis

tN

ASA

Am

es

Dav

id R

edm

iles

Ass

ocia

te P

rofe

ssor

UC

Irvi

ne /

ISR

Deb

ra B

rodb

eck

Tech

nica

l Rel

atio

ns D

irec

tor

UC

Irvi

ne /

ISR

Goals

and

Scop

e of

the

Wor

ksho

p

�U

nder

stan

ding

Col

labo

rati

on a

nd S

oftw

are

Tool

s�

Real

wor

ld s

etti

ng in

form

ed b

y re

sear

ch�

Mut

ual E

duca

tion

�A

spec

ts o

f th

e Sc

ope

�D

iffi

cult

ies

in s

tudy

ing

and

supp

orti

ng c

olla

bora

tion

�N

ASA

Pro

blem

s an

d O

ppor

tuni

ties

�U

CI R

esea

rch

Tech

nolo

gy, S

tudi

es, a

nd O

ppor

tuni

ties

Logist

ics

�Se

ssio

ns�

Usu

ally

1 h

our

15 m

inut

es�

Talk

s ar

e 15

min

utes

incl

udin

g cl

arif

ying

ques

tion

s�

15 m

inut

es o

f di

scus

sion

�Br

eak

for

mor

e di

scus

sion

To a

dvan

ce s

oftw

are

and

info

rmat

ion

tech

nolo

gy t

hrou

ghre

sear

ch p

artn

ersh

ips.

ISR

is t

he o

nly

orga

niza

tion

foc

used

on

Soft

ware

Res

earc

hwi

thin

the

Uni

vers

ity

of C

alif

orni

a sy

stem

.

http

://w

ww.is

r.uc

i.ed

u/

Page 10: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

Within

the

Unive

rsity

Cont

ext…

�15

Fac

ulty

Ass

ocia

tes

�40

Ph.

D. s

tude

nts

�2

Visi

ting

Sch

olar

s�

~9 S

taff

mem

bers

(tec

hnic

al a

ndad

min

istr

ativ

e)

Facu

lty

•Ri

char

d N.

Taylor

UCI

/ICS

and

Dir

ecto

r of

ISR

•M

ark

Ack

erman

Uni

vers

ity

of M

ichi

gan

•Pa

ul D

ourish

UCI

/ICS

•Alfon

so F

ugge

tta

Polit

ecni

co d

i Mila

no•Le

s Ga

sser

Uni

vers

ity

of I

llino

is a

t U

rban

a-Ch

ampa

ign

•Alfre

d Ko

bsa

UCI

/ICS

•Gl

oria M

ark

UCI

/ICS

•Si

mon

Pen

nyU

CI/S

choo

l of

the

Art

s an

d th

e Sc

hool

of

Engi

neer

ing.

Dav

id F

. Re

dmile

sU

CI/I

CSDeb

ra J

. Ri

char

dson

UCI

/ICS

and

ICS

Dep

t. C

hair

Dav

id S

. Ro

senb

lum

UCI

/ICS

Scot

t Sa

mue

lsen

UCI

/Sch

ool o

f En

gine

erin

g an

dD

irec

tor,

Adv

ance

d Po

wer

and

Ener

gyPr

ogra

m (A

PEP)

Walt

Scac

chi

UCI

/ICS

And

ré v

an d

er H

oek

UCI

/ICS

E. J

ames

White

head

UC

Sant

a Cr

uz

Rese

arch

Emph

ases

http

://w

ww.isr

.uci.e

du/r

esea

rch.

html

�Ana

lysis

and

Tes

ting

Deb

ra J

. Ric

hard

son

Dav

id S

. Ros

enbl

um

�Co

mpu

ter

Supp

orte

d Co

oper

ative

Wor

kM

ark

Ack

erm

anPa

ul D

ouri

shA

lfre

d Ko

bsa

Glor

ia M

ark

Dav

id R

edm

iles

�Co

nfigur

ation

Man

agem

ent

And

ré v

an d

er H

oek

Jim

Whi

tehe

ad

�Dev

elop

men

t En

viro

nmen

tsD

avid

F. R

edm

iles

Dav

id S

. Ros

enbl

umD

ebra

J. R

icha

rdso

n R

icha

rd N

. Tay

lor

And

ré v

an d

er H

oek

�Hum

an-C

ompu

ter

Inte

ract

ion

Paul

Dou

rish

A

lfre

d Ko

bsa

Sim

on P

enny

Dav

id F

. Red

mile

s

�Hyp

ermed

iaA

lfre

d Ko

bsa

Dav

id F

. Red

mile

s

Rich

ard

N. T

aylo

rJi

m W

hite

head

�In

tern

et-s

cale E

vent

Not

ificat

ion

Alf

onso

Fug

gett

a D

avid

S. R

osen

blum

�Ope

n So

urce

Mar

k A

cker

man

Alf

onso

Fug

gett

aLe

s Ga

sser

W

alt

Scac

chi

Jim

Whi

tehe

ad

�So

ftwa

re A

cquisition

and

Elect

ronic

Commer

ceW

alt

Scac

chi

�So

ftwa

re A

rchite

ctur

eD

avid

F. R

edm

iles

Dav

id S

. Ros

enbl

umRi

char

d N

. Tay

lor

Sco

tt S

amue

lson

And

ré v

an d

er H

oek

�So

ftwa

re E

nginee

ring

Edu

cation

And

ré v

an d

er H

oek

�So

ftwa

re U

nder

stan

ding

Paul

Dou

rish

Dav

id F

. Red

mile

s

How

can

com

panies

get

inv

olve

d?

�Re

sear

ch P

artn

ersh

ips

enab

ling

Colla

bora

tive

Rese

arch

Tea

ms

�Ex

tern

al f

undi

ng f

rom

Gov

ernm

ent

or I

ndus

try

sour

ces

(NSF

, DoD

/DA

RPA

, NA

SA, e

tc.)

�In

tern

al f

undi

ng f

rom

Cor

pora

te P

artn

er

�Re

sear

ch A

ffili

ates

�Co

rpor

ate

spon

sore

d re

sear

ch p

roje

ct�

Grad

uate

stu

dent

res

earc

h fe

llow

ship

�IS

R re

sear

ch p

rese

ntat

ions

on-

site

�Re

sear

ch S

pons

ors

�Co

rpor

ate

affi

liati

on o

n IS

R W

eb S

ite

and

Even

ts

Page 11: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

http

://w

ww.is

r.uc

i.edu

/

For

Mor

e In

form

ation

Deb

ra A

. Bro

dbec

kTe

chni

cal R

elat

ions

Dir

ecto

rbr

odbe

ck@

uci.e

du(9

49) 8

24-2

260

Dr.

Sus

an J

. Kni

ght

Corp

orat

e Re

lati

ons

Off

icer

skni

ght@

uci.e

du(9

49) 8

24-5

927

Page 12: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

Tabl

e of

Cont

ents

1

Colla

bora

tive

Soft

war

e En

gine

erin

g To

ols W

orks

hop

Dr. J

ohn

Peni

x

2

RSO

Mot

ivat

ion*

_Ov

er 1

0% o

f NAS

A’s

civi

l ser

vant

and

cont

ract

or w

orkf

orce

spe

nd th

e m

ajor

ity

of th

eir

tim

e m

anag

ing,

dev

elop

ing,

assu

ring

, ver

ifyin

g, a

nd/o

r m

aint

aini

ngso

ftw

are

_NA

SA h

as in

ope

rati

on u

se (a

nd m

aint

ains

)at

leas

t 200

mill

ion

lines

of s

ourc

e co

de_

Over

$1

billi

on d

olla

rs o

f NAS

A’s

annu

al $

15bi

llion

bud

get i

s so

ftw

are

cost

* B

ased

on

estim

ates

ext

rapo

late

d fr

om a

199

3 st

udy

– so

urce

NA

SA

Chi

ef E

ngin

eer’s

Offi

ce

3

RSO

Resi

lient

Sof

twar

e En

gine

erin

gPr

ojec

t Ove

rvie

w

High

Dep

enda

bilit

yCo

mpu

ting

Inte

llige

ntSo

ftw

are

Engi

neer

ing

Tool

s

NASA

/CIC

TNS

F

ECS

Resi

lient

Sof

twar

e En

gine

erin

g

Fund

amen

tal

New

Tec

hnol

ogie

sDe

pend

abili

ty M

etri

cs a

nd

Tech

nolo

gy V

alid

atio

nTo

ol D

evel

opm

ent

and

Inse

rtio

n

Ris

k-D

irec

ted

SE T

ools

COTS

Open

Source

Dep

enda

bilit

yR

esea

rch

NASA

Mis

sion

s and

Aero

spac

eIn

dust

ry

4

RSO

Inte

llige

nt S

oftw

are

Engi

neer

ing

Too

lsGo

al

_Re

duce

mis

sion

cri

tica

l ris

ks b

y de

velo

ping

tool

s and

met

hods

to id

enti

fy a

nd e

limin

ate

soft

war

e er

rors

_So

urce

s of c

riti

cal s

oftw

are

risk

:_

Mis

unde

rsta

ndin

g re

quir

emen

ts a

nd h

ardw

are

soft

war

e in

terf

ace

_Po

or c

omm

unic

atio

n be

twee

n te

ams

_In

suffi

cien

t des

ign

and

test

ing

_In

adeq

uate

or

inap

prop

riat

e m

etho

ds a

nd p

roce

sses

Mis

hap

Caus

e Cl

assi

ficat

ion:

1/3

aer

ospa

ce m

isha

ps a

re s

oftw

are

rela

ted

Mar

s Cl

imat

e Or

bite

r

Mar

s Po

lar

Land

er

Aria

ne 5

Page 13: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

5

RSO

Inte

llige

nt S

oftw

are

Engi

neer

ing

Too

ls A

ppro

ach

_M

atur

e ad

vanc

ed m

odel

ing

and

anal

ysis

tool

s_

Adva

nced

Sof

twar

e Ve

rific

atio

n an

d Te

stin

g_

Inte

grat

ed F

orm

al/I

nfor

mal

Req

uire

men

tsEn

gine

erin

g_

Inte

grat

e an

d le

vera

ge st

ate

of a

rt to

ol te

chno

logy

_Co

mm

erci

al a

nd o

pen

sour

ce to

ols

_Di

stri

bute

d co

llabo

ratio

n fr

amew

orks

_W

ork

wit

h m

issi

ons t

o in

fuse

too

ls in

to sp

ecifi

cpr

oces

ses:

_Ad

d ea

rly

lifec

ycle

req

uire

men

ts a

naly

sis c

apab

iliti

es_

Impr

ove

test

ing

effe

ctiv

enes

s_

Enab

le to

ol-s

uppo

rted

, dist

ribu

ted

code

rev

iew

s

6

RSO

Colla

bora

tive

Soft

war

e En

gine

erin

g To

ols

_Pr

oble

m: M

isco

mm

unic

atio

n be

twee

n te

ams i

s aco

mm

on so

urce

of c

riti

cal e

rror

s_

NASA

sof

twar

e is

oft

en d

evel

oped

by

dist

ribu

ted

mul

tidi

scip

linar

y te

ams,

com

poun

ding

this

pro

blem

_Ex

isti

ng s

oftw

are

engi

neer

ing

tool

s do

not

pro

vide

stro

ng s

uppo

rt fo

r co

llabo

rati

on_

Solu

tion

: In

sert

adv

ance

d to

ols i

nto

NASA

mis

sion

proc

esse

s by

inte

grat

ing

wit

h co

llabo

rati

vefr

amew

orks

:_

Inte

grat

ion

of th

e Ve

rific

atio

n an

d Te

stin

g To

ols

into

aco

llabo

rati

ve e

nvir

onm

ent t

o su

ppor

t col

labo

rati

veso

ftw

are

desi

gn a

nd c

ode

revi

ews

(ARC

)

7

RSO

Dist

ribu

ted

Colla

bora

tive

Sof

twar

e Re

view

s

Wor

kflo

w-d

rive

nre

view

pro

cess

Rem

ote

Expe

rts

Auto

mat

edTo

ols

Loca

lDe

velo

pers

Even

t Se

rver

Rese

arch

Issu

eIn

tegr

atin

gan

alys

is to

ols

into

pro

cess

Rese

arch

Issu

eDi

stri

buti

nghu

man

-ce

nter

edre

view

pro

cess

88

99

8

RSO

Wor

ksho

p Go

al

_Im

prov

e th

is p

rese

ntat

ion!

_W

hat a

re N

ASA’

s pr

oble

ms?

_W

hat a

re s

ome

pote

ntia

l sol

utio

ns?

_W

hat t

echn

olog

y do

we

have

that

can

pla

y a

role

?_

Wha

t res

earc

h ne

eds

to b

e do

ne?

_Ho

w d

o w

e do

that

res

earc

h?

Page 14: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

Chal

leng

es in

Col

labo

rati

veCh

alle

nges

in C

olla

bora

tive

Spac

e M

issi

on D

esig

nSp

ace

Mis

sion

Des

ign

Glor

ia M

ark

Univ

ersi

ty o

f Cal

iforn

ia, I

rvin

e

My

Rese

arch

Inte

rest

s

•Di

stri

bute

d an

d co

lloca

ted

grou

p de

sign

wor

k

•Ho

w c

an th

e af

ford

ance

s of

a “

war

room

”in

fluen

ce c

olla

bora

tive

des

ign?

•W

hat t

echn

olog

ies c

an b

enef

it c

olla

bora

tive

desi

gn fo

r co

lloca

ted

and

dist

ribu

ted

wor

k: e

.g.

life-

size

, wal

l-si

ze H

DTV

•W

hat e

ffect

s on

des

ign

does

gro

up-t

o-gr

oup

dist

ribu

ted

colla

bora

tion

hav

e?

Two

tren

ds: d

istr

ibut

ed a

ndco

lloca

ted

desi

gn•

Colla

bora

tive

des

ign

acro

ss d

ista

nce

–Ex

ampl

es: C

AD s

hare

d ap

p: T

elef

ly s

yste

m, “

roun

d-th

e-cl

ock”

soft

war

e de

velo

pmen

t–

Empi

rica

l stu

dies

: coo

rdin

atio

n pr

oble

ms:

tran

siti

onin

g,in

tegr

atio

n, c

omm

unic

atio

n (H

erbs

leb

et a

l., 1

999;

Gri

nter

,19

98)

•Co

llabo

rati

ve d

esig

ning

in sa

me

phys

ical

envi

ronm

ent

–Ex

ampl

es: n

ew g

ener

atio

n of

ele

ctro

nic

mee

ting

roo

ms

(e.g

. i-l

and:

Str

eitz

, 199

9; in

tera

ctiv

e w

orks

pace

s:St

anfo

rd; D

isco

very

Col

labo

rato

ry: A

rias

et a

l.)–

Empi

rica

l stu

dies

: rad

ical

col

loca

tion

(Tea

sley

et a

l., 2

000;

2002

; Mar

k, 2

002)

Dyna

mic

Gro

up W

ork

Stru

ctur

es

•Fr

amew

ork

for

cons

ider

ing

grou

p w

ork

ofte

nas

sum

es “

stab

le”

team

mem

bers

hip/

stru

ctur

es

•Di

stri

bute

d an

d co

lloca

ted

grou

p w

ork

is fa

r m

ore

com

plex

:–

team

bou

ndar

ies a

re fu

zzy

–pe

ople

bel

ong

to m

ulti

ple

team

s, w

orki

ng sp

here

s–

mul

tipl

e ro

les

–so

cial

rel

atio

nshi

ps a

re d

ynam

ic

•In

“w

arro

oms”

, eve

n lo

cale

can

not d

efin

e a

team

stru

ctur

e

Page 15: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

Som

e Ba

ckgr

ound

The

ory

•So

cial

wor

lds (

Stra

uss,

Shi

buta

ni, G

idde

ns)

•Co

-pre

senc

e (G

idde

ns)

•In

tera

ctio

n w

hen

collo

cate

d: m

onit

orin

g,ad

just

ing

beha

vior

s, c

omm

on u

se o

f art

ifact

s,et

c. –(e

.g. H

eath

and

Luf

f, Su

chm

an, H

arpe

r et

al.,

Robe

rtso

n, R

ounc

efie

ld e

t al.,

Sch

mid

t and

Wag

ner)

•So

cial

net

wor

ks

Dyna

mic

net

wor

ks w

ithi

n a

grou

p•

Som

e ty

pes

of s

ocia

l net

wor

ks–

inte

nsio

nal n

etw

orks

(Nar

di e

t al.,

in p

ress

)–

“kno

ts”

(Eng

estr

om e

t al,

1999

)–

acto

r-ne

twor

k th

eory

(Lat

our,

199

6)–

coal

itio

ns (Z

ager

, 200

0)–

virt

ual c

omm

unit

y ne

twor

ks (W

ellm

an, 1

998)

•Al

so:

–ne

twor

ks to

exc

hang

e an

d pr

oces

s in

form

atio

n ev

enw

hen

peop

le a

re c

ollo

cate

d, a

lso

dist

ribu

ted

•An

alys

is: w

ho in

tera

cts

wit

h w

ho, i

n m

ain

and

side

bar

chan

nels

of c

omm

unic

atio

n

Exam

ple

of c

ollo

cate

d de

sign

wor

kw

ith

dyna

mic

net

wor

ks•

In 1

995,

Tea

m X

form

ed a

t the

JPL

to s

erve

as

inte

rnal

cons

ulta

nts t

o NA

SA in

des

igni

ng n

ew s

pace

mis

sion

prop

osal

s, e

.g. M

ars P

robe

•Te

am X

des

igns

a c

ompl

ex sp

ace

mis

sion

in a

bout

nin

eho

urs

•Ho

w c

an p

hysi

cal c

ollo

cati

on a

nd te

chno

logy

toge

ther

ena

ble

a te

am t

o pr

oduc

e a

spac

e m

issi

onpr

opos

al in

such

a r

emar

kabl

y sh

ort t

ime?

Met

hodo

logy

Firs

t stu

dy:

•Fi

eldw

ork

obse

rvin

g w

arro

om fo

r th

ree

mon

ths

–Si

deba

r co

nver

sati

ons c

oded

–Se

vent

een

in-d

epth

sem

i-st

ruct

ured

inte

rvie

ws

–Ar

tifa

cts

colle

cted

–HD

TV e

xper

imen

t: vi

deot

apin

g, q

uest

ionn

aire

s, g

roup

inte

rvie

w

Curr

ent s

tudy

:•

Fiel

dwor

k ob

serv

ing

rem

ote

site

s–

vide

o &

aud

io ta

pes

of e

ach

rem

ote

site

, wav

e fil

es o

fre

mot

e co

nver

sati

ons

Page 16: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

Exte

rnal

Rep

rese

ntat

ions

Used

in th

e W

arro

omRe

pres

enta

tion

Indi

vidu

alw

orks

tati

ons

Publ

ish-

subs

crib

e

Spre

adsh

eet

Orbi

t vis

ualiz

atio

npr

ogra

m

Publ

ic d

ispl

ay

Pape

r w

hite

boar

ds

Crea

tor/

Driv

er

Team

mem

ber

Enti

re te

am

Enti

re te

am

Team

lead

er

Team

lead

er

Team

mem

ber

H: F

unct

ion

Mon

itor

oth

ers’

wor

k

Info

flow

Focu

sing

age

nt

Visu

aliz

ing

info

rmat

ion

Shar

ed v

iew

Visu

aliz

ing

info

rmat

ion

Soci

al n

etw

orki

ng: s

ideb

ars

•Av

g. n

umbe

r co

ded

duri

ng th

ree-

hour

sess

ion:

98 (l

arge

var

iabi

lity)

•Ha

ve la

sted

from

few

seco

nds t

o 53

min

utes

•Av

g. e

ngin

eer

spea

ks 2

0 m

inut

es in

sid

ebar

,ra

nge

is 7

-110

min

utes

in a

thre

e-ho

ur s

essi

on.

•Si

deba

rs u

sed

to p

roce

ss in

form

atio

n fr

omsp

read

shee

t: qu

esti

on a

ssum

ptio

ns, n

egot

iate

,fin

d ot

her

opti

ons,

etc

.

Exam

ple:

Init

iati

ng N

etw

orki

ngfo

r Sp

onta

neou

s Si

deba

r

•Po

wer

to C

onfig

. Gra

phic

s: C

an w

e ge

t any

pow

er d

urin

gth

e fli

ght?

Will

the

cells

be

poin

ted

out?

Oth

erw

ise

we’

llne

ed b

ig m

onst

er b

atte

ries

.

•M

issi

on D

esig

n, T

eam

Lea

der,

Inst

rum

ents

are

spea

king

acro

ss r

oom

to e

ach

othe

r

•St

ruct

ures

ove

rhea

rs P

ower

and

Con

fig. G

raph

ics

and

join

s the

m

•AC

S ov

erhe

ars

and

join

s co

nver

sati

on fr

om a

cros

s th

ero

om.

•…

……

.

An E

xplo

rato

ry S

tudy

Usi

ng L

ife-

size

HDT

V w

ith

Team

X•

Larg

e 12

8” x

72”

scre

en sh

owin

g HD

TV a

s a “

win

dow

”to

show

act

ivit

y be

twee

n ro

oms +

aud

io

•Te

am X

split

into

two

room

s

•Re

al sp

ace

shut

tle

mis

sion

pro

posa

l

•Te

leph

ones

, wit

h ph

one

num

bers

, to

supp

ort s

ideb

ars

•Da

y 1:

aud

io d

irec

tly

sent

in, v

ideo

sen

t thr

ough

Gig

abit

E

ther

net (

.8 se

cond

lag)

•Da

y 2:

bot

h au

dio

and

vide

o se

nt th

roug

h Gi

gabi

tEt

hern

et

(d

egra

ded

audi

o)

Page 17: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

The

Pote

ntia

l of H

igh

Tele

pres

ence

•Vi

deo

used

as m

eans

for

obse

rvin

g ac

tivi

ty in

rem

ote

room

: not

as g

ood

for

supp

orti

ng“n

etw

orki

ng”

–<

20%

of t

he ti

me,

vid

eo u

sed

for

side

bars

–“D

iffic

ult t

o ho

ld a

loca

l sid

ebar

with

out d

istu

rbin

g pe

ople

in o

ther

roo

m”

–A

lear

ning

cur

ve m

ay e

xist

–Re

quir

emen

ts fo

r si

deba

rs a

cros

s dis

tanc

e:•

Need

to u

nder

stan

d w

ho to

spea

k w

ith

•Ne

ed se

amle

ss w

ay to

con

nect

Netw

orks

at w

ork

in c

ollo

cate

den

viro

nmen

ts

•Ne

twor

ks in

col

loca

ted

wor

k ea

sily

bre

ak d

own

over

dis

tanc

e w

ith

the

wro

ng te

chno

logy

supp

ort

•De

licat

e ba

lanc

e of

aut

om

atio

n an

d hu

man

proc

essi

ng

•To

o m

uch

auto

mat

ion

ease

s loa

d, b

ut m

ayre

mov

e op

port

unit

y fo

r cr

eati

vity

in d

esig

n

•Fl

exib

ility

is k

ey: t

o m

ove

back

and

fort

h be

twee

nel

ectr

onic

and

soci

al n

etw

ork

Curr

ent W

ork:

Gro

up-t

o-Gr

oup

Dist

ribu

ted

Colla

bora

tive

Des

ign

•W

here

as d

istr

ibut

ed te

ams m

ight

be

cons

ider

ed a

“sp

here

of w

ork”

, wha

t hap

pens

whe

n di

ffere

nt “

sphe

res o

f wo

rk”

colla

bora

te?

•St

udyi

ng J

PL, M

arsh

all,

Glen

n, S

andi

a, b

egan

Apri

l 200

2

•Fo

ur fo

cii:

–Re

quir

emen

ts: c

once

ptio

n as

wel

l as

func

tion

–In

form

atio

n flo

w–

Soci

al n

etw

orki

ng–

Tech

nolo

gy u

se

Oppo

rtun

itie

s fo

r Ne

wTe

chno

logi

es to

Sup

port

Dist

ribu

ted

Wor

k

•Ho

w c

an w

e le

vera

ge p

eopl

e’s a

bilit

y to

mon

itor

othe

rs’ w

ork?

•Se

amle

ss su

ppor

t for

side

bar

conv

ersa

tion

s(i

nten

tion

al a

nd s

pont

aneo

us) w

itho

ut o

verl

oad

of in

form

atio

n

•Ex

tern

al r

epre

sent

atio

ns th

at c

aptu

re th

e de

sign

ratio

nale

, not

just

the

resu

lt

•…

….s

till

wor

king

Page 18: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

Than

ks to

….

•Pa

ul D

eFlo

rio,

Bob

Obe

rto,

Reb

ecca

Whe

eler

,JP

L

•Te

am X

•Cu

rren

t stu

dy: S

teve

Abr

ams,

Dou

g Gr

imes

,Na

yla

Nass

if

Page 19: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

Co

llab

ora

tive

So

ftw

are

En

gin

eeri

ng

Wo

rksh

op

Ric

har

d M

. Kel

ler,

Ph

.D.

Sci

ence

Org

aniz

er:

A C

olla

bora

tive

Info

rmat

ion

Man

agem

ent T

ool f

or S

cien

tific

Tea

ms

Info

rmat

ion

Sh

arin

g a

nd

Inte

gra

tio

n G

rou

pC

olla

bo

rati

ve a

nd

Ass

ista

nt

Sys

tem

s T

ech

Are

aC

om

pu

tati

on

al S

cien

ces

Div

isio

nN

AS

A A

mes

Res

earc

h C

ente

r

Rich

Kel

ler

Shaw

n W

olfe

Davi

d Ha

ll, Q

SSRo

bert

Car

valh

oSt

eve

Rich

, SAI

CDe

epak

Kul

karn

iDa

n Be

rrio

s, R

IACS

Sci

ence

Des

k P

roje

ct S

taff

Com

puta

tiona

l Sci

ence

s D

ivis

ion

NA

SA

Am

es R

esea

rch

Cen

ter

Serg

ey Y

entu

s, Q

SSKe

ith

Swan

son

Ian

Stur

ken,

QSS

Ling

-Jen

Chi

ang,

QSS

Davi

d Ni

shik

awa

Lind

a An

drew

s, R

IACS

WW

W

Info

rmat

ion

arch

ivin

g an

dsh

arin

gIm

ages

, Mod

els,

Doc

umen

ts, D

ata,

Not

es, p

lus

orga

niza

tion

, ret

riev

al, i

ndex

ing,

ann

otat

ion,

and

thre

adin

g se

rvic

es

Colla

bora

tion

/Coo

rdin

atio

n/Co

mm

unic

ati

on

Serv

ices

Cons

ulta

tion

tool

s, W

orkf

low

, Cal

enda

rs, G

roup

and

Res

ourc

eSc

hedu

ling,

Aw

aren

ess,

Em

ail d

istr

ibut

ion

and

arch

ivin

g,Vi

deo/

audi

o co

nfer

enci

ng, C

hat

Rem

ote

cont

rol o

fSc

ient

ific

Inst

rum

ents

Mon

itor

ing,

con

trol

, and

exp

erim

enta

tion

WW

WW

WW

WW

W

Inte

rnetIn

tern

et

Inte

rnet

Inte

rnet

Sci

ence

Des

k P

roje

ct:

Sci

ence

Des

k P

roje

ct: I

nfr

astr

uct

ure

Infr

astr

uct

ure

sup

po

rt f

or

dis

trib

ute

d s

cien

tifi

c te

ams

sup

po

rt f

or

dis

trib

ute

d s

cien

tifi

c te

ams

Res

earc

h A

reas

•• S

cien

tifi

c K

no

wle

dg

e M

anag

emen

t S

cien

tifi

c K

no

wle

dg

e M

anag

emen

t ::ca

ptu

re,

cap

ture

,

pre

serv

atio

n, t

race

abili

ty o

f sc

ien

tifi

c kn

ow

led

ge

pre

serv

atio

n, t

race

abili

ty o

f sc

ien

tifi

c kn

ow

led

ge

••In

telli

gen

t In

form

atio

n A

cces

sIn

telli

gen

t In

form

atio

n A

cces

s ::in

telli

gen

t in

dex

ing

,in

telli

gen

t in

dex

ing

,

visu

aliz

atio

n, a

nd

nav

igat

ion

visu

aliz

atio

n, a

nd

nav

igat

ion

••C

olla

bo

rato

ries

Co

llab

ora

tori

es::

asyn

chro

no

us

and

syn

chro

no

us

asyn

chro

no

us

and

syn

chro

no

us

colla

bo

rati

ve s

cien

tifi

c te

amw

ork

colla

bo

rati

ve s

cien

tifi

c te

amw

ork

••A

gen

t-as

sist

ed R

emo

te E

xper

imen

tati

on

Ag

ent-

assi

sted

Rem

ote

Exp

erim

enta

tio

n::

inte

llig

ent

mo

nit

ori

ng

an

d c

on

tro

lin

telli

gen

t m

on

ito

rin

g a

nd

co

ntr

ol

htt

p:/

/sci

ence

des

k.ar

c.n

asa.

go

v

Page 20: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

Fiel

d R

esea

rch

Site

s

Hom

e In

stitu

tions

Fie

ld D

ata

Col

lect

ion

&

Pre

limin

ary

Dat

a A

naly

sis

U. C

onn

Am

es R

esea

rch

Cen

ter

Fiel

dSa

mpl

esG

eolo

gica

lSa

mpl

es

Biol

ogic

alSa

mpl

es

Mic

robi

al C

ultu

res

Oth

er c

ultu

reco

llect

ions

Yel

low

ston

eN

atio

nal P

ark

Mic

rosc

op

y L

ab

Gre

enh

ou

se

Baj

a C

alif

orni

a,M

exic

o

Hig

hbor

ne C

ay,

Bah

amas

U. M

iam

i

Ari

zona

Sta

te

Por

tlan

d St

ate

Mic

rob

ial

Cu

ltu

re F

acili

ty

Mic

rob

iolo

gy

Lab

Mo

tiva

tio

n:

Dis

trib

ute

d S

cien

tifi

cF

ield

an

d L

ab W

ork

U. o

f O

rego

n

• fi

eld

no

tes

• im

ages

• m

easu

rem

ents

• se

nso

r d

ata

• la

b n

ote

s an

d e

xper

imen

t d

ata

• el

ectr

on

mic

rosc

op

e im

ages

• an

alys

is r

esu

lts

• p

ub

licat

ion

s

Scie

nceO

rgan

izer

Info

rmat

ion

Repo

sito

ryFi

eld

Res

earc

h Si

tes

Hom

e In

stitu

tions

U. C

onn

Am

es R

esea

rch

Cen

ter

Yel

low

ston

eN

atio

nal P

ark

Mic

rosc

op

y L

ab

Gre

enh

ou

se

Baj

a C

alif

orni

a,M

exic

o

Hig

hbor

ne C

ay,

Bah

amas

U. M

iam

i

Ari

zona

Sta

te

Por

tlan

d St

ate

Mic

rob

ial

Cu

ltu

re F

acili

ty

Mic

rob

iolo

gy

Lab

U. o

f O

rego

n

Ce

ntra

l

Re

posi

tory

• Im

ages

• M

easu

rem

ents

• Cu

ltur

es•

Data

sets

• Do

cum

ents

• Re

cord

s

Wh

at is

Sci

ence

Org

aniz

er?

• A

n in

form

atio

n r

epo

sito

ry /

dig

ital

lib

rary

fo

r d

istr

ibu

ted

scie

nti

fic

pro

ject

tea

ms:

sto

res

hete

roge

neou

s pr

ojec

tin

form

atio

n pr

oduc

ts -

- im

ages

, dat

aset

s, d

ocum

ents

, and

vario

us ty

pes

of s

cien

tific

rec

ords

(des

crib

ing

sam

ples

, fie

ld s

ites,

mea

sure

men

ts, i

nstr

umen

ts, m

icro

bial

cul

ture

s, e

tc.)

• A

hyb

rid

to

ol c

om

bin

ing

th

e fu

nct

iona

lity

of:

• a

data

base

• a

docu

men

t-sh

arin

g sy

stem

• a

hype

rmed

ia in

form

atio

n sp

ace

• a

sem

antic

net

wor

k

• F

eatu

res

cro

ss-l

inka

ge:

ena

bles

rap

id a

cces

s to

inte

rrel

ated

info

rmat

ion

• A

“p

roje

ct m

emo

ry”

syst

em:

trac

ks h

isto

ry o

f pro

ject

team

’s fi

eldw

ork,

labw

ork,

and

ass

ocia

ted

data

col

lect

ion

activ

ities

Th

e S

cien

ceO

rgan

izer

“Pro

ject

Info

rmat

ion

Web

Sci

ence

Org

aniz

er m

ain

tain

s p

roje

ct in

form

atio

n in

an in

terc

on

nec

ted

net

wo

rk o

r “i

nfo

rmat

ion

web

pro

ject

imag

e

mea

sure

men

tsi

te

inst

rum

ent

sam

ple

do

cum

ent

• N

odes

: inf

orm

atio

n re

sour

ces

• Li

nks:

rela

tions

hips

am

ong

reso

urce

s

Sem

antic

hyp

erm

edia

sys

tem

Page 21: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

Info

rmat

ion

Res

ou

rces

(“n

od

es”)

• De

scri

be v

ario

us ty

pes o

f pro

ject

-spe

cific

info

rmat

ion:

Peop

le, P

lace

s, E

vent

s, D

evic

es, M

easu

rem

ents

(e.g

., fie

ld s

ites

, lab

s, tr

ips,

sam

ples

, im

ages

, doc

umen

ts, i

nstr

umen

ts e

tc.)

• Co

ntai

n m

etad

ata

(cat

egor

ical

, tex

t, or

num

eric

)•

Can

have

“at

tach

ed”

files

(e.g

., im

ages

, doc

umen

ts, d

atas

ets)

Mic

robi

al-M

at-S

ampl

e -6

54C

olle

cted

-by:

S. J

ones

Col

lect

ion

date

: 1/

24/0

0C

olle

ctio

n si

te:

Pon

d 6:

fiel

d4:

…M

icro

bial

-Cul

ture

-123

Cul

tiva

ted-

by:

R. S

mit

h

Gen

us:

mic

roco

leus

ch.

Gro

wth

med

ium

: A

SN

Dat

e is

olat

ed:

03-0

4-00

fiel

d5:

...

SEM

-Im

age

-654

Tak

en-b

y: R

.Sm

ith

Imag

e da

te:

1/24

/00

Equ

ipm

ent:

Imag

e F

ile:

Exa

mp

les

of

Info

rmat

ion

Res

ou

rces

:

Info

rmat

ion

Res

ourc

es

proj

ect

mea

sure

men

tno

teim

agedo

cum

entcu

ltur

e

pers

on

site

sam

ple

expe

rim

ent

equi

pmen

t

cam

era

gas

chro

mat

ogra

ph

stub

O2

mic

rose

nsor

N2

mic

rose

nsor

phot

ogra

phic

imag

e

SEM

imag

e

SEM

O2

conc

entr

atio

n

N2

conc

entr

atio

n

Typ

es o

f S

cien

ceO

rgan

izer

“In

form

atio

n R

eso

urc

es”

(par

tial

)

spec

trom

eter

spec

trog

raph

chro

mat

ogra

m

othe

r

othe

r

othe

r

mic

rogr

aph

Rel

atio

nsh

ips

amo

ng

Res

ou

rces

(“lin

ks”)

• In

form

atio

n Re

sour

ces

are

inte

rrel

ated

by

mea

ns o

f nam

ed li

nks

that

cha

ract

eriz

e th

e na

ture

of t

he r

elat

ions

hip

• Re

lati

onsh

ips

are

cust

omiz

ed to

a p

roje

ct te

am b

ased

on

an a

naly

sis

of th

e in

form

atio

n re

sour

ces

in th

e sc

ient

ific

dom

ain

Mic

robi

al-M

at-S

ampl

e -6

54

Col

lect

ed-b

y: S

. Jon

esC

olle

ctio

n da

te:

1/24

/00

Col

lect

ion

site

: P

ond

6:fi

eld4

: …

Mic

robi

al-C

ultu

re-1

23C

ulti

vate

d-by

: R

. Sm

ith

Gen

us:

mic

roco

leus

ch.

Gro

wth

med

ium

: A

SN

Dat

e is

olat

ed:

03-0

4-00

fiel

d5:

...

SEM

-Im

age

–123

x

Tak

en-b

y: R

.Sm

ith

Imag

e da

te:

1/24

/00

Equ

ipm

ent:

Imag

e F

ile:

culti

vate

d-fr

om

pic

ture

d-i

n

imag

esa

mpl

e

cult

ure

phot

ogra

phic

imag

e

SEM

imag

e

San

ctio

ned

Lin

ks b

etw

een

“cu

ltu

re”

and

oth

er t

ypes

of

reso

urc

es

stub

equi

pmen

t

mo

un

ted

-on

pic

ture

d-i

ncult

ivat

ed-f

rom

pers

on

imag

e (o

ther

)

docu

men

t

has

-med

ium

-rec

ipe

UR

L

has

-gen

etic

-seq

uen

ce-U

RL

iso

late

d-b

ype

rson

cult

ivat

ed-b

y

Page 22: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

Evol

ving

Web

of P

roje

ctIn

form

atio

n

member-of

site-for

found-at

collected-by has-measurement

produced-by

cultivated-

from

pictured-in pr

oduced-by

has-recipe

pro

ject

:

site

:

do

cum

ent:

sam

ple

:

mea

sure

men

t:S

EM

imag

e:

equ

ipm

ent:

equ

ipm

ent:

per

son

:

: cu

ltu

re

EMER

G

Brad

B.

Pond

3 n

ear

4

ASN

med

ium

rec

ipe

O2 m

icro

sens

orSE

M

MC-

123

SEM

imag

e 12

3xO2

con

cent

rati

on 3

2B

Pro

ject

Info

rmat

ion

in c

onte

xt

Mat

654

Proj

ect

Info

rmat

ion

Reco

rd

Link

s to

Rela

ted

Reco

rds

• im

ages

• da

tase

ts•

cultu

res

• sa

mpl

es•

field

site

s•

mea

sure

men

ts•

inst

rum

ents

• la

b no

tes

• pu

blic

atio

ns•

spre

adsh

eets

• co

nven

ient

navi

gati

on•

pred

efin

edlin

ks•

info

rmat

ion

trac

ebac

k

cre

ate

new

links

cre

ate

new

reco

rds

mod

ify r

ecor

ds

data

field

s

icon

iden

tifie

sre

cord

type

clic

k to

nav

igat

e

Web

-bas

ed,

plat

form

inde

pend

ent a

cces

s

sear

ch fo

r re

cord

s

Scie

nceO

rgan

izer

Bro

wse

r

Inte

rfac

ing

So

ftw

are

Sci

ence

Org

aniz

er

Sh

ared

Imag

eA

nn

ota

tor

Mic

rose

nso

rR

emo

te C

on

tro

ller

sen

sor

imag

e

ann

ota

ted

imag

e

Mic

roso

ft O

ffic

e in

terf

ace

real

-tim

em

easu

rem

ents

,im

ages

Ag

ent-

assi

sted

Sci

enti

fic

Exp

erim

enta

tio

n S

yste

m

do

cum

ents

Mar

sE

xplo

rati

on

Sim

ula

tor

Sp

arro

w W

ebIn

terf

ace

imag

es,

mea

sure

men

ts

Sci

ence

Org

aniz

er

Sh

ared

Imag

e A

nn

ota

tor

Co

llab

ora

tive

Wh

iteb

oar

din

g &

An

no

tati

on

To

ol

Page 23: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

Mic

rose

nso

rM

icro

sen

sor

Rem

ote

Co

ntr

olle

r R

emo

te C

on

tro

ller

O2

Mic

rose

nso

r &

po

siti

on

ing

tab

le

Sci

ence

Org

aniz

er

1

2

3

Sav

e to

Org

aniz

er

Low

nut

rient

Mat

fro

m P

ond

1A

Scie

nceO

rgan

izer

agen

t

Expe

rim

ent D

ata

Repo

sito

ry

Expe

rim

enta

tion

ag

ent

Scie

nce

team

Rem

ote

cont

rol

posi

tion

ing

tabl

e w

/in

stru

men

t pac

kage

Ag

ent-

assi

sted

Sci

enti

fic

Exp

erim

enta

tio

n S

yste

m

• ov

eral

l e

xper

imen

t c

oord

inat

ion

Scie

ntis

t’s

agen

t

Gree

nhou

seag

ent

• sc

hedu

ling

• er

ror

mon

itor

ing

• ex

peri

men

t req

uest

s •

user

not

ifica

tion

• us

er p

refe

renc

es

• da

ta s

tora

ge•

logg

ing

Scie

nce

Orga

nize

r

Expe

rim

ent

Setu

p/M

onit

orin

g In

terf

ace

Pilo

t Use

rs:

• AR

C M

icro

bial

Eco

syst

ems G

roup

• NA

I Eco

geno

mic

s Foc

us G

roup

• EC

S M

isha

p In

vest

igat

ion

• AR

C El

ectr

on M

icro

scop

y La

b•

JSC

Astr

obio

logy

Inst

itut

e fo

r th

e St

udy

ofBi

omar

kers

• NI

H/NA

SA M

alar

ia C

ontr

ol S

tudy

(via

Fund

amen

tal B

iolo

gy P

rogr

am)

• M

ars s

imul

atio

n an

d an

alog

stu

dies

(via

Mob

ile A

gent

s Pro

ject

)•

ASU/

NSF

Dese

rt M

icro

bial

Sur

vey

Sci

ence

Org

aniz

er C

ust

om

ers

mo

rem

atu

re

less

mat

ure

2510

125

Use

rs•F

requ

ent

•Mod

erat

e•I

nfre

quen

t

95

Page 24: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

Pala

ntír

: Inc

reas

ing

Aw

aren

ess

amon

g D

istr

ibut

ed C

MW

orks

pace

s

Pala

ntír

: Inc

reas

ing

Aw

aren

ess

amon

g D

istr

ibut

ed C

MW

orks

pace

s

Andr

é va

n de

r Ho

ek, A

nita

Sar

ma

Inst

itut

e fo

r So

ftw

are

Rese

arch

Univ

ersi

ty o

f Cal

iforn

ia, I

rvin

e{a

ndre

,asa

rma}

@ic

s.uc

i.edu

A T

ypic

al D

evel

opm

ent S

cena

rio

A T

ypic

al D

evel

opm

ent S

cena

rio

CMre

posi

tory

Pete

’s w

orks

paceC

BA

Elle

n’s w

orks

pace

EC

D

Dir

ect C

onfli

cts

Dir

ect C

onfli

cts

CMre

posi

tory

Pete

’s w

orks

paceC

BA

Elle

n’s w

orks

pace

EC

D

Over

lapp

ing

chan

ges t

o th

e sa

me

arti

fact

Indi

rect

Con

flict

sIn

dire

ct C

onfli

cts CM

repo

sito

ry

Pete

’s w

orks

paceC

BA

Elle

n’s w

orks

pace

EC

D

Chan

ges

to o

ne a

rtifa

ct m

odify

ing

the

beha

vior

of a

noth

er a

rtifa

ct

Page 25: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

Tra

diti

onal

CM

App

roac

hes

Tra

diti

onal

CM

App

roac

hes

�Pe

ssim

isti

c–

An a

rtifa

ct c

an b

e ch

ange

d by

onl

yon

e pe

rson

at a

ny o

ne ti

me

–Li

mit

ed in

not

allo

win

g an

y pa

ralle

lw

ork

�Op

tim

isti

c–

An a

rtifa

ct c

an b

e ch

ange

d by

man

ype

rson

s at

the

sam

e ti

me

–Li

mit

ed in

lead

ing

to m

erge

pro

blem

sth

at n

eed

to b

e re

solv

ed m

anua

lly

Tra

diti

onal

CM

App

roac

hes

Tra

diti

onal

CM

App

roac

hes

�Pe

ssim

isti

c–

An a

rtifa

ct c

an b

e ch

ange

d by

onl

y on

epe

rson

at a

ny o

ne ti

me

–Li

mit

ed in

not

allo

win

g an

y pa

ralle

l wor

k

�Op

tim

isti

c–

An a

rtifa

ct c

an b

e ch

ange

d by

man

y pe

rson

sat

the

sam

e ti

me

–Li

mit

ed in

lead

ing

to m

erge

pro

blem

s tha

tne

ed to

be

reso

lved

man

ually

Neit

her

solu

tion

add

ress

es d

irec

t and

indi

rect

con

flict

s ver

y w

ell,

espe

cial

ly in

a d

istr

ibut

ed a

nd d

ecen

tral

ized

sett

ing

Key

Obs

erva

tion

Key

Obs

erva

tion

�A

CM w

orks

pace

in r

ealit

y pr

ovid

estw

o ki

nds

of is

olat

ion:

–Go

od is

olat

ion

�Hi

des a

ctua

l cha

nges

to a

rtifa

cts

–Ba

d is

olat

ion

�Hi

des k

now

ledg

e of

wha

t art

ifact

s oth

erde

velo

pers

are

cha

ngin

g

App

roac

hA

ppro

ach

�Co

ntin

uous

wor

kspa

ce a

war

enes

s–

Whi

ch a

rtifa

cts

are

bein

g ch

ange

d by

who

m?

–W

hat i

s the

sev

erity

of t

he c

hang

es?

(am

ount

/siz

e of

cha

nge

bein

g m

ade)

–W

hat i

s the

impa

ct o

f the

cha

nges

?(e

ffect

of c

hang

es o

n on

e’s

curr

ent

wor

k)�

Such

aw

aren

ess h

as t

he p

oten

tial

tosi

gnifi

cant

ly r

educ

e th

e nu

mbe

r of

dire

ct a

nd in

dire

ct c

onfli

cts

Page 26: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

Pala

ntír

Arc

hite

ctur

ePa

lant

ír A

rchi

tect

ure

CMre

posi

tory

Pete

’s w

orks

pace

CB

AEl

len’

s wor

kspa

ceE

CD

CM c

lient

CM s

erve

rCM

clie

ntEv

ent w

rapp

erEv

ent w

rapp

erEv

ent w

rapp

er

Pete

’s V

iew

of th

e W

orld

Seve

rity

/im

pact

anal

ysis

Elle

n’s V

iew

of th

e W

orld

Pete

’sVi

sual

izat

ion

Elle

n’s

Visu

aliz

atio

n

Popu

lati

ng a

Wor

kspa

cePo

pula

ting

a W

orks

pace

Mak

ing

Cha

nges

in th

e W

orks

pace

Mak

ing

Cha

nges

in th

e W

orks

pace

Com

mit

ting

Cha

nges

Com

mit

ting

Cha

nges

Page 27: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

Mor

e C

hang

es (b

y O

ther

Dev

elop

ers)

Mor

e C

hang

es (b

y O

ther

Dev

elop

ers)

Etc

., E

tc.,

Etc

…E

tc.,

Etc

., E

tc…

Vis

ualiz

atio

n Fe

atur

esV

isua

lizat

ion

Feat

ures

�Di

ffere

nt v

iew

s w

ith

diffe

rent

trad

e-of

fs–

Amou

nt o

f inf

orm

atio

n ve

rsus

leve

l of i

ntru

sive

ness

–Sc

roll-

bar,

tabu

lar,

fully

gra

phic

al�

Conf

igur

able

–Se

lect

ion

of r

elev

ant d

evel

oper

s, e

vent

s, ti

mef

ram

es�

Scal

able

–In

tern

al d

ata

stru

ctur

e ve

rsus

act

ual v

isua

lizat

ion

–Pa

ir-w

ise

wor

kspa

ces

–So

rtin

g pe

r se

veri

ty o

r ch

ange

impa

ct�

Exte

nsiv

e m

etad

ata

Seve

rity

Ana

lysi

sSe

veri

ty A

naly

sis

�Am

ount

(siz

e) o

f cha

nge

bein

g m

ade

�Pr

opos

ed a

lgor

ithm

s–

Num

ber

of fi

les

�Si

mpl

e, b

ut in

accu

rate

–Li

nes

of c

ode

�Si

mpl

e, b

ut in

accu

rate

–To

ken

base

d di

ffere

nce

�M

easu

res s

truc

tura

l cha

nges

, but

lang

uage

depe

nden

t–

Abst

ract

synt

ax tr

ee�

Very

det

aile

d an

alys

es, b

ut li

kely

too

expe

nsiv

e(a

nd la

ngua

ge d

epen

dent

)�

Curr

ent w

ork

in p

rogr

ess

Page 28: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

Impa

ct A

naly

sis

Impa

ct A

naly

sis

�Ef

fect

of c

hang

es o

n on

e’s

curr

ent w

ork

�Pr

opos

ed a

lgor

ithm

s–

Over

lapp

ing

num

ber

of fi

les

�Si

mpl

e, b

ut in

accu

rate

–Ov

erla

ppin

g lin

es o

f cod

e�

Sim

ple,

but

inac

cura

te–

Chan

ged

inte

rfac

es�

Pote

ntia

lly a

ccur

ate

and

effe

ctiv

e, b

ut la

ngua

gede

pend

ent

–De

pend

ency

ana

lysi

s�

Very

pre

cise

, sem

anti

c re

sult

s, b

ut c

ompl

ex (a

ndla

ngua

ge d

epen

dent

)�

Curr

ent w

ork

in p

rogr

ess

Con

clus

ions

Con

clus

ions

�Pa

lant

ír is

a p

roto

type

that

…–

…br

ings

aw

aren

ess

to d

istr

ibut

ed C

M w

orks

pace

s–

…sh

ows

pair

-wis

e co

nflic

t–

…pr

ovid

es s

ever

ity

and

impa

ct a

naly

ses

�Pa

lant

ír is

inde

pend

ent o

f the

type

of C

Msy

stem

use

d�

Use

of P

alan

tír

resu

lts i

n fe

wer

dir

ect a

ndin

dire

ct c

onfli

cts

–Ca

se st

udy

to b

e pl

anne

d in

nea

r fu

ture

�Fu

ture

wor

k–

Inte

grat

e w

ith

diffe

rent

CM

sys

tem

s–

Impl

emen

t sev

erit

y an

d im

pact

ana

lysi

s al

gori

thm

sfo

r bo

th a

tom

ic a

nd c

ompo

und

arti

fact

s–

Deve

lop

addi

tion

al v

isua

lizat

ions

Res

earc

h Pr

ojec

tsR

esea

rch

Proj

ects

Impl

emen

tati

onIm

plem

enta

tion

Depl

oym

ent

Depl

oym

ent

Syst

em T

esti

ngSy

stem

Tes

ting

Run-

Tim

eRu

n-Ti

me

Desi

gnDe

sign

Com

pone

nts

Com

pone

nts

Sour

ce F

iles

Sour

ce F

iles

Feat

ures

Feat

ures

Syst

ems

Syst

ems

Exec

utab

les

Exec

utab

les

Vers

ione

d Co

mpo

nent

s (A

rchi

tect

ure)

SRM

xADL

2.0

Arch

View

Arch

Diff

NUCM

Wre

nTW

ICS

Émig

réM

énag

e

Pala

ntír

Page 29: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

IVA:

Vis

ualiz

ing

Softw

are

Inst

abilit

y

Jenn

ifer B

evan

Uni

vers

ity o

f Cal

iforn

ia, S

anta

Cru

z

Jbev

an@

soe.

ucsc

.edu

Prob

lem

: Sof

twar

e D

ecay

•So

ftwar

e de

cays

as

a re

sult

of in

com

patib

ilites

betw

een

the

oper

atin

g en

viro

nmen

t and

the

impl

emen

ted

artif

act.

–Fa

ilure

to m

eet r

equi

rem

ents

, spe

cify

acc

urat

ere

quire

men

ts, o

r ant

icip

ate

chan

ges

in re

quire

men

ts.

•Th

e ex

istin

g so

ftwar

e ar

chite

ctur

e ca

n hi

nder

the

effe

ctiv

enes

s of

the

mai

nten

ance

pro

cess

.–

“gol

den

hand

cuffs

”, in

trans

igen

t cod

e.

Hyp

othe

sis

and

Prop

osal

•H

ypot

hesi

s: a

n an

alys

is o

f hist

oric

al m

odifi

catio

nda

ta c

an id

entif

y an

d cl

assi

fy p

robl

emat

ic, h

igh-

mai

nten

ance

sof

twar

e re

gion

s.–

Thes

e re

gion

s ca

n be

des

crib

ed a

s “in

stab

ilitie

s”.

–Su

ch k

now

ledg

e ca

n di

rect

sof

twar

e re

desi

gn e

fforts

.

•Pr

opos

al:

IVA,

a to

ol to

vis

ualiz

e an

d an

alyz

eso

ftwar

e in

stab

ilitie

s.–

The

visu

aliz

atio

n ca

n di

rect

focu

sed

anal

ysis

.

Rel

ated

Res

earc

h

•St

atic

sof

twar

e an

alys

is…

–U

ses

depe

nden

ce g

raph

s of

a s

ingl

e re

visi

on to

gene

rate

cod

e m

etric

s (c

ohes

ion,

cou

plin

g,co

mpl

exity

) or c

ondu

ct c

hang

e im

pact

ana

lyse

s.

•So

ftwar

e ev

olut

ion

eith

er…

–An

alyz

es s

oftw

are

mod

ifica

tion

data

to c

reat

epr

oces

s-le

vel m

etric

s an

d m

odel

s of

evo

lutio

n.

–At

tem

pts

to a

utom

atic

ally

evo

lve

softw

are.

Page 30: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

IVA

Is D

iffer

ent B

ecau

se…

•IV

A di

stin

guis

hes

betw

een

depe

nden

ce-re

late

dch

ange

s an

d ch

ange

s m

ade

durin

g th

e sa

me

“com

mit”

.•

IVA

does

not

requ

ire a

dvan

ced

chan

gem

anag

emen

t dat

a fo

r bas

ic fu

nctio

nalit

y–

Onl

y re

quire

s w

hen,

whe

re, w

hat,

but n

ot w

hy.

•U

ser c

ontro

ls IV

A fil

terin

g an

d ag

greg

atin

g of

chan

ge d

ata.

–D

iffer

ent u

sers

are

inte

rest

ed in

diff

eren

t thi

ngs.

IVA

Arch

itect

ure

Prep

roce

ssor

Dae

mon

-

Dep

ende

nce

Gra

ph

Gen

erat

ion

- R

aw M

etric

Cal

cula

tion

Inst

abilit

y An

alyz

er

- Nor

mal

izat

ion

& Fi

lterin

g - I

nsta

bilit

y Id

entif

icat

ion

- Met

ric C

alcu

latio

n - I

nsta

bilit

y Pr

iorit

izat

ion

Visu

aliz

atio

nEn

gine

Rep

ort

Gen

erat

orSC

Mre

posi

tory

IVA

repo

sito

ry

Inst

abilit

y Vi

sual

izat

ion

(1 o

f 3)

•D

epen

denc

e gr

aph

node

s po

sitio

ned

usin

ghe

irarc

hica

l rel

atio

nshi

p.

•C

ause

s sp

atia

l clu

ster

ing

of re

late

d no

des:

–Pa

ckag

e, c

lass

, met

hod

–D

irect

ory,

file

, fun

ctio

n

Inst

abilit

y Vi

sual

izat

ion

(2 o

f 3)

•Su

rface

map

gen

erat

edfro

m d

epen

denc

e gr

aph

layo

ut.

•R

etai

ns g

loba

l con

text

of

data

(cod

e lo

catio

n, e

tc.)

•H

ides

edg

es, r

educ

escl

utte

r.

Page 31: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

Inst

abilit

y Vi

sual

izat

ion

(3 o

f 3)

•C

lass

ified

inst

abilit

yre

gion

s ar

e ov

erla

id o

nth

e su

rface

map

.•

Inst

abilit

ies

follo

w e

dges

of u

nder

lyin

g de

pend

ence

grap

h.•

Col

or a

nd w

idth

den

ote

user

-con

trolla

ble

met

rics;

dist

ance

den

otes

spa

n of

coup

ling. Use

In C

olla

bora

tive

Dev

elop

men

t

•IV

A ca

n an

alyz

e an

d pr

ovid

e fe

edba

ck o

n a

give

n im

plem

enta

tion

of c

olla

bora

tive

deve

lopm

ent.

–D

oes

task

bre

akdo

wn

forc

e co

nten

tion?

•C

olor

atio

n ba

sed

on n

umbe

r of d

iffer

ent c

omm

itter

s.

–D

oes

syst

em a

rchi

tect

ure

forc

e co

nten

tion?

•H

igh

seve

rity

and

num

ber o

f diff

eren

t com

mitt

ers.

–U

ser c

an c

ontro

l vis

ualiz

atio

n by

dire

ctin

g co

lor,

line

wid

th, o

r agg

rega

tion

algo

rithm

s.

Con

clus

ion

•IV

A w

ill le

vera

ge th

e da

ta s

tore

d in

cha

nge

cont

rol s

yste

ms

(CVS

as

a m

inim

um) b

yid

entif

ying

and

cla

ssify

ing

hist

oric

al c

hang

epa

ttern

s.•

A pr

oof-o

f-con

cept

IVA

is u

nder

con

stru

ctio

n–

Will

hand

le J

ava

sour

ce c

ode

in S

ubve

rsio

nre

posi

tory

.–

Will

prov

ide

addi

tiona

l vis

ualiz

atio

ns fo

r in-

dept

hex

plor

atio

n of

spe

cific

inst

abilit

y re

gion

s.

Que

stio

ns?

•Th

e w

ork

com

plet

ed to

dat

e w

as fu

nded

by

a20

01 U

SEN

IX S

tude

nt R

esea

rch

Gra

nt.

•Se

e ht

tp://

ww

w.c

se.u

csc.

edu/

~jbe

van

for I

VApr

ogre

ss a

nd s

tatu

s up

date

s.

•Em

ail j

beva

n@cs

e.uc

sc.e

du w

ith fu

ture

ques

tions

.

Page 32: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

So

urc

e-C

od

eIn

stru

men

tati

on

and

Qu

anti

fica

tio

no

fE

ven

ts

Rob

ertE

.Film

anR

IAC

Srf

ilman

@m

ail.a

rc.n

asa.

gov

Kla

usH

avel

und

Kes

trel

Tec

hnol

ogy

have

lund

@em

ail.a

rc.n

asa.

gov

NA

SA

Am

esR

esea

rch

Cen

ter

Mof

fett

Fie

ld,C

A94

035

U.S

.A.

Sep

arat

ion

of

Co

nce

rns

�A

fun

dam

enta

len

gin

eeri

ng

pri

nci

ple

isth

ato

fse

par

atio

no

fco

nce

rns

–R

ealiz

ing

dif

fere

nt

syst

emco

nce

pts

asse

par

ate,

wea

kly

linke

del

emen

ts–

Dis

trib

uti

on

of

exp

erti

se�

Sep

arat

ion

of

con

cern

sp

rom

ises

bet

ter

–M

ain

tain

abili

ty–

Evo

lvab

ility

–R

eusa

bili

ty–

Ad

apti

vity

�C

on

cern

scr

oss

-cu

t–

Ap

ply

tod

iffe

ren

tm

od

ule

sin

ava

riet

yo

fp

lace

s�

Co

nce

rns

mu

stb

eco

mp

ose

dto

bu

ildru

nn

ing

syst

ems

Inco

nve

nti

on

alp

rog

ram

min

g,t

he

cod

efo

rd

iffe

ren

tco

nce

rns

oft

enb

eco

mes

mix

ed-t

og

eth

er(t

ang

led

)

Exa

mp

les

of

So

ftw

are

Co

nce

rns

�S

ecu

rity

–A

lway

sca

llth

ese

curi

tych

eck

bef

ore

allo

win

gd

atab

ase

acce

ss�

Acc

ou

nti

ng

–A

lway

sd

ebit

the

use

r’s

acco

un

to

nea

chac

cess

toa

serv

ice

of

ob

ject

sin

the

clas

s…�

Syn

chro

niz

atio

n–

Do

n’t

let

mu

ltip

leu

sers

call

any

of

met

ho

ds

f,g

,or

ho

na

sin

gle

ob

ject

sim

ult

aneo

usl

y–

Th

eef

fect

so

fth

ese

acti

on

ssh

ou

ldb

etr

ansa

ctio

nal

�Q

ual

ity

of

serv

ice

–Q

ueu

eu

pth

ew

aiti

ng

calls

han

dlin

gth

emb

yp

rio

rity

�R

elia

bili

ty–

Pro

vid

ere

plic

ants

of

this

ob

ject

�P

erfo

rman

ceen

han

cem

ents

–C

ach

eth

ere

sult

so

fca

llsto

elem

ents

inth

iscl

ass

–D

isp

lay

rou

tin

essh

ou

ldsh

ow

the

resu

lts

of

chan

ges

,exc

ept

dis

pla

yro

uti

nes

calle

din

the

sco

pe

of

oth

erd

isp

lay

rou

tin

essh

ou

ldb

uff

erth

eir

chan

ges

for

dis

pla

yal

lat

on

ce

Fu

nct

ion

alan

dN

on

-Fu

nct

ion

alR

equ

irem

ents

Func

tiona

l:N

on-f

unct

iona

l(ili

ty):

Ava

ilabi

lity

Rel

iabi

lity

Sec

urity

Man

agea

bilit

yR

espo

nsiv

enes

s

Func

tion

1&

ility

supp

ort

Func

tion

4&

ility

supp

ort

Func

tion

2&

ility

supp

ort

Func

tion

3&

ility

supp

ort

Func

.Req

.2Fu

nc.R

eq.4

Fun

cR

eq.1

Func

.Req

.3

Func

tiona

lreq

uire

men

tsm

apto

spec

ific

com

pone

nts

Ility

requ

irem

ents

map

alm

oste

very

whe

re

Page 33: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

Ser

vice

san

dIli

ties

�Ili

tyre

qu

irem

ents

are

imp

lem

ente

db

yco

mb

inat

ion

so

fse

rvic

eal

go

rith

ms.

�S

up

po

rtin

gili

ties

invo

lves

aco

mp

lex

sele

ctio

nfr

om

sets

of

alte

rnat

ive

serv

ice

alg

ori

thm

s.�

Th

ese

rvic

esm

ust

be

invo

ked

per

vasi

vely

thro

ug

ho

ut

the

syst

em.

Ility

requ

irem

ents

:

Serv

ices

:

Ava

ilabi

lity

Rel

iabi

lity

Sec

urity

Man

agea

bilit

yR

espo

nsiv

enes

s

Rep

licat

ion

AR

eplic

atio

n2

Rep

licat

ion Rep

licat

ion

AR

eplic

atio

n2

Tra

nsac

tions

Enc

rypt

ion

Aut

hent

icat

ion

Tra

cing

&A

udit

Faul

tDet

ectio

n

Res

ourc

eR

eser

vatio

n

Que

ueM

gmt.

Ob

ject

Infr

astr

uct

ure

Fra

mew

ork

Res

earc

hH

ypo

thes

is

�Ili

ties

can

be

ach

ieve

db

yin

sert

ing

serv

ices

into

the

com

mu

nic

atio

np

ath

bet

wee

nfu

nct

ion

alco

mp

on

ents

–O

nb

oth

sid

eso

fth

eco

mm

un

icat

ion

�F

ram

ewo

rks

that

auto

mat

ese

rvic

ein

sert

ion

can

syst

emat

ical

lyac

hie

ven

on

-fu

nct

ion

alre

qu

irem

ents

–O

bje

ctIn

fras

tru

ctu

reF

ram

ewo

rk(O

IF)

�Ili

ties

can

be

ach

ieve

db

yin

sert

ing

serv

ices

into

the

com

mu

nic

atio

np

ath

bet

wee

nfu

nct

ion

alco

mp

on

ents

–O

nb

oth

sid

eso

fth

eco

mm

un

icat

ion

�F

ram

ewo

rks

that

auto

mat

ese

rvic

ein

sert

ion

can

syst

emat

ical

lyac

hie

ven

on

-fu

nct

ion

alre

qu

irem

ents

–O

bje

ctIn

fras

tru

ctu

reF

ram

ewo

rk(O

IF)

Arc

hit

ectu

rew

ith

Ser

vice

sin

Co

mp

on

ent

Co

mm

un

icat

ion

s

Func

tion

1&

ility

supp

ort

Func

tion

4&

ility

supp

ort

Func

tion

2&

ility

supp

ort

Func

tion

3&

ility

supp

ort

Tra

ditio

nald

esig

nsm

ixili

tysu

ppor

twith

infu

nctio

nalc

ompo

nent

s:

Func

tion

1

Func

tion

4Fu

nctio

n2

Func

tion

3E

ncry

pt

SetP

rior

ity

Dec

rypt

Que

ueM

gmt

Dec

rypt

Que

ueM

gmt.

Enc

rypt

Pass

Prio

rity

Dec

rypt

Que

ueM

gmt

OIF

isde

mon

stra

ting

fram

ewor

ksth

atin

sert

serv

ices

into

the

com

mun

icat

ion

path

sbe

twee

nfu

nctio

nalc

ompo

nent

s.R

eplic

atio

n

Rep

licat

ion

Key

insi

ght:

Ser

vice

func

tiona

lity

can

bese

para

ted

from

func

tiona

llog

icby

inse

rtin

gth

ese

rvic

esin

toth

eco

mm

unic

atio

nsbe

twee

nfu

nctio

nalc

ompo

nent

s.

Key

OIF

Idea

s�

Inje

ctin

gb

ehav

ior

on

the

com

mu

nic

ate

pat

hs

bet

wee

nco

mp

on

ents

–In

ject

ors

are

dis

cret

e,u

nif

orm

ob

ject

s–

Inje

cto

rsar

eb

yo

bje

ct/m

eth

od

–In

ject

ors

are

dyn

amic

ally

con

fig

ura

ble

�A

nn

ota

ted

com

mu

nic

atio

ns

allo

win

ject

edse

rvic

esto

pas

sp

aram

eter

sto

serv

ice

pee

rs(e

.g.,

mes

sag

ep

rio

rity

,use

r-id

,tra

cin

gst

atu

s)

�T

hre

adco

nte

xts

pre

serv

ean

no

tati

on

sth

rou

gh

calls

�P

rag

ma:

Hig

h-l

evel

spec

ific

atio

nla

ng

uag

efo

rd

escr

ibin

gd

esir

edin

ject

ion

s(P

rag

ma)

Page 34: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

Au

then

tica

teA

uth

enti

cate

Ret

ryR

etry

Man

agem

ent

Man

agem

ent

Rel

iab

ility

Rel

iab

ility

CO

RB

AP

roxy

Ch

eck

auth

.C

hec

kau

th.

Qu

alit

yo

fS

ervi

ceQ

ual

ity

of

Ser

vice

Man

agem

ent

Man

agem

ent

Rel

iab

ility

Rel

iab

ility

CO

RB

AS

kele

ton

Clie

ntC

lient

Ser

ver

Ser

ver

Net

wo

rk

Co

nfi

gu

rab

leP

roxi

es

�O

IF’s

inje

cto

rsca

no

per

ate

inp

airs

(e.g

.,en

cryp

t/d

ecry

pt;

req

ues

tau

then

tica

tio

n/a

uth

enti

cate

)o

rsi

ng

ly(e

.g.,

retr

yo

nfa

ilure

;lo

gre

sult

s)

�C

on

fig

ura

tio

nis

by

pro

xy/m

eth

od

inst

ance

�C

on

fig

ura

tio

nis

dyn

amic

Do

mai

nP

rog

ram

mer

sd

evel

op

app

licat

ion

.

Sec

uri

tyQ

ual

ity

of

Ser

vice

Man

agea

bili

ty

Dis

trib

uti

on

and

Ility

Arc

hit

ect

spec

ifie

sse

rvic

es.

Rel

iab

ility

Dis

trib

ute

dap

plic

atio

n

OIF

ram

ewo

rk

OIF

Pro

cess

�M

apo

rgan

izat

ion

alp

olic

ies

toim

ple

men

tati

on

–E

.g.,

•d

efin

ea

secu

rity

po

licy

•en

sure

that

po

licy

isfo

llow

edb

yal

ldis

trib

ute

dco

mp

on

ents

Asp

ect-

Ori

ente

dP

rog

ram

min

g(A

OP

)

�O

IFis

anA

spec

t-O

rien

ted

Pro

gra

mm

ing

syst

em�

So

ftw

are

eng

inee

rin

gte

chn

olo

gy

for

sep

arat

ely

exp

ress

ing

syst

emat

icp

rop

erti

esw

hile

nev

erth

eles

sp

rod

uci

ng

run

nin

gsy

stem

sth

atem

bo

dy

thes

ep

rop

erti

es�

Nee

dto

exp

ress

–B

ase

pro

gra

m–

Sep

arat

eco

nce

rns

–H

owth

ese

par

ate

con

cern

sm

apto

the

bas

ep

rog

ram

•O

r,if

you

pre

fer,

just

aju

mb

leo

fp

rog

ram

elem

ents

that

mu

stb

eco

mb

ined

.

Qu

anti

fica

tio

nan

dIm

plic

itIn

voca

tio

n�

Pro

gra

mm

atic

esse

nce

of

AO

Pis

tob

eab

leto

stat

eu

niv

ersa

llyq

uan

tifi

edst

atem

ents

abo

ut

(co

nve

nti

on

al,

linea

r)p

rog

ram

s�

An

dh

ave

the

effe

cto

fth

ese

stat

emen

tsre

aliz

edin

pro

gra

ms

that

do

n’t

con

tain

exp

licit

no

tati

on

app

lyin

gth

ese

qu

anti

fied

stat

emen

ts

Inp

rog

ram

sP

,wh

enev

erco

nd

itio

nC

aris

es,p

erfo

rmac

tio

nA

.

�D

imen

sio

ns

of

con

cern

for

the

des

ign

eran

dim

ple

men

ter

of

anA

OP

syst

em:

–Q

uan

tifi

cati

on

:W

hat

kin

ds

of

con

dit

ion

sC

can

be

spec

ifie

d.

–In

terf

ace:

Wh

atis

the

inte

rfac

eo

fth

eac

tio

ns

A.T

hat

is,h

owd

oth

eyin

tera

ctw

ith

bas

ep

rog

ram

san

dea

cho

ther

.–

Wea

vin

g:

Ho

ww

illth

esy

stem

arra

ng

eto

inte

rmix

the

exec

uti

on

of

the

bas

eac

tio

ns

of

Pw

ith

the

acti

on

sA

.

Page 35: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

Ch

oic

esin

Dev

elo

pin

gA

OP

Lan

gu

ages

�W

hat

qu

anti

fied

stat

emen

tsar

eal

low

ed–

Join

po

ints

•M

eth

od

calls

•F

ield

acce

ss•

Ab

stra

ctsy

nta

x•

Co

ntr

olf

low

–S

cop

eo

fq

uan

tifi

cati

on

•S

ub

clas

ses

•B

yn

ame

•L

exic

alst

ruct

ure

�S

ynta

xfo

rex

pre

ssin

gap

plic

atio

n

�In

tera

ctio

nam

on

gas

pec

tsan

db

ase

cod

e–

Vis

ibili

ty–

Ord

erin

g–

Co

nfl

ict

reso

luti

on

�Im

ple

men

tati

on

mec

han

ism

–C

om

pile

r–

Byt

e-co

de

man

ipu

lati

on

–D

ynam

icw

rap

pin

g–

Fra

mew

ork

s–

Met

a-p

rog

ram

min

g–

Pro

gra

mtr

ansf

orm

atio

n

Sta

tic

and

Dyn

amic

Qu

anti

fica

tio

n

�In

earl

ier

wo

rk,w

ed

isti

ng

uis

hed

bet

wee

n–

Sta

tic

qu

anti

fica

tio

n:

dis

cern

able

fro

mth

esy

nta

ctic

stru

ctu

reo

fth

esp

ecim

enp

rog

ram

•E

.g,c

alls

–D

ynam

icq

uan

tifi

cati

on

:m

atch

ing

even

tsth

ath

app

enin

the

cou

rse

of

pro

gra

mex

ecu

tio

n.

•E

.g.,

cflo

w

�C

urr

entl

yex

plo

rin

gth

eh

ypo

thes

isth

at(a

lmo

st)

alli

nte

rest

ing

“eve

nts

”ar

ed

ynam

ic,a

nd

that

stat

icq

uan

tifi

cati

on

mer

ely

refe

rsto

tho

seev

ents

that

can

be

sim

ply

infe

rred

fro

mth

est

atic

stru

ctu

reo

fth

ep

rog

ram

.–

Sh

ado

ws

inth

eco

de

–E

xcep

tio

n:

pro

gra

mst

ruct

ura

lch

ang

es

Ext

rem

eE

xper

imen

t

�T

he

extr

eme

of

exp

ress

iven

ess

inq

uan

tifi

cati

on

isto

be

able

toq

uan

tify

ove

ral

lth

eh

isto

ryo

fev

ents

ina

pro

gra

mex

ecu

tio

n�

Eve

nts

are

wit

hre

spec

tto

the

abst

ract

inte

rpre

ter

of

ala

ng

uag

e�

Un

fort

un

atel

y,la

ng

uag

ed

efin

itio

ns

do

n’t

def

ine

thei

rab

stra

ctin

terp

rete

rs.

Eve

nts

and

Eve

nt

Lo

ci

Eve

nt

Syn

tact

iclo

cus

Acc

essi

ng

the

valu

eof

ava

riab

leor

field

Ref

eren

ces

toth

atva

riab

le

Mod

ifyin

gth

eva

lue

ofa

varia

ble

orfie

ldA

ssig

nm

ents

toth

atva

riab

le

Invo

kin

ga

sub

pro

gra

mS

ub

pro

gra

mca

llsC

yclin

gth

rou

gh

alo

opLo

opst

atem

ents

Bra

nch

ing

ona

con

diti

onal

Th

eco

nd

ition

alst

atem

ent

Initi

aliz

ing

anin

stan

ceT

he

con

stru

ctor

sfo

rth

atob

ject

Th

row

ing

anex

cep

tion

Th

row

stat

emen

tsC

atch

ing

anex

cep

tion

Cat

chst

atem

ents

Wai

ting

ona

lock

Wai

tan

dsy

nch

ron

ize

stat

emen

ts

Page 36: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

Mo

reE

ven

tsan

dL

oci

Eve

nt

Syn

tact

iclo

cus

Res

um

ing

afte

ra

lock

wai

tO

ther

'sn

otify

and

end

ofsy

nch

ron

izat

ion

sT

estin

ga

pre

dic

ate

onse

vera

lfie

lds

Eve

rym

odifi

catio

nof

any

ofth

ose

field

sC

han

gin

ga

valu

eon

the

pat

hto

anot

her

Con

trol

and

dat

aflo

wan

alys

isov

erst

atem

ents

(slic

es)

Sw

app

ing

the

run

nin

gth

read

Not

relia

bly

acce

ssib

le,

bu

tat

omiz

atio

nm

ayb

ep

ossi

ble

Bei

ng

bel

owon

the

stac

kS

ub

pro

gra

mca

llsF

reei

ng

stor

age

Not

relia

bly

acce

ssib

le,

bu

tca

ntr

yu

sin

gb

uilt

-inp

rimiti

ves

Th

row

ing

aner

ror

Not

relia

bly

acce

ssib

le;

cou

ldh

app

enan

ywh

ere

Res

earc

hre

gim

e

�D

efin

ea

lan

gu

age

of

even

tsan

dac

tio

ns

on

tho

seev

ents

.�

Det

erm

ine

ho

wea

chev

ent

isre

flec

ted

(or

can

be

mad

evi

sib

le)

inso

urc

eco

de.

�C

reat

ea

syst

emto

tran

sfo

rmp

rog

ram

sw

ith

resp

ect

toth

ese

even

tsan

dac

tio

ns.

Tra

nsf

orm

atio

nal

Alt

ern

ativ

es

�F

or

Java

,can

tran

sfo

rmat

–T

he

sou

rce-

cod

ele

vel

–T

he

byt

e-co

de

leve

l

Arc

hit

ectu

ralV

iew

Sour

ceJa

vaco

de

Sour

ceJa

vaco

de

Eve

nt-a

ctio

nde

scri

ptio

ns

Eve

nt-a

ctio

nde

scri

ptio

ns

Eve

nt-

Edi

tco

mpi

latio

n

Tra

nsfo

rmT

rans

form AST

Tar

getJ

ava

code

Tar

getJ

ava

code

Pars

ePr

etty

Prin

t

Page 37: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

Ap

plic

atio

ns

�A

pp

lyin

gA

OP

tod

ebu

gg

ing

and

valid

atin

gco

ncu

rren

tp

rog

ram

s.�

Ap

ply

ing

AO

Pto

mo

nit

or

pro

gra

ms

du

rin

go

per

atio

n,s

oth

atac

tio

ns

can

be

init

iate

din

case

bad

thin

gs

hap

pen

.�

Ap

ply

ing

AO

Pas

ag

ener

alp

rog

ram

min

gp

arad

igm

.

Pro

gra

mD

ebu

gg

ing

�D

etec

tm

ult

i-th

read

ing

pro

ble

ms

cau

sed

by

acce

ssto

shar

edre

sou

rces

by

com

pet

ing

thre

ads.

�V

alid

ate

trac

eex

ecu

tio

ns

agai

nst

use

rre

qu

irem

ents

.�

Val

idat

em

ult

ith

read

edp

rog

ram

sb

yex

plo

rin

gsc

hed

ule

inte

rlea

vin

gs.

Det

ect

Mu

lti-

thre

adin

gP

rob

lem

s

�D

eadl

ocks

:O

bse

rve

inw

hat

ord

erlo

cks

are

take

nan

dre

leas

edan

din

fer

po

ten

tial

dea

dlo

cks

fro

mcy

cles

.�

Dat

aR

aces

:O

bse

rve

wh

atlo

cks

thre

ads

ow

nw

hen

they

acce

ssva

riab

les

and

infe

rp

ote

nti

ald

ata

race

sfr

om

emp

tyo

verl

aps.

Dea

dlo

cks

Ade

adlo

ckca

noc

cur

whe

nth

read

sac

cess

and

lock

shar

edre

sour

ces,

and

lock

thes

ein

diff

eren

tord

er.

Ade

adlo

ckca

noc

cur

whe

nth

read

sac

cess

and

lock

shar

edre

sour

ces,

and

lock

thes

ein

diff

eren

tord

er.

L2

1 212

L1

T1

T2

1 212

Pro

blem

:T

1lo

cks

L1

firs

tT

2lo

cks

L2

firs

t

Exa

mpl

eSo

luti

on:

Impo

seor

der

onlo

cks:

L1

<L

2

L1

L2

cycl

e

Page 38: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

v1.add(v2)

v1=new

Value();

v2.add(v1)

classValue{

int

x=1;

synchronizedvoidadd(Valuev){x=x+v.get();}

synchronizedint

get(){returnx;}

}classValue{

int

x=1;

synchronizedvoidadd(Valuev){x=x+v.get();}

synchronizedint

get(){returnx;}

}

Java

Pro

gra

mw

ith

Dea

dlo

ck

v2=new

Value();

Thr

ead

T1

Thr

ead

T2

Ap

ply

ing

AO

P

aspectDeadlockDetection{

whensynchronize(obj){

Threadcurr=Thread.currentThread();

Setlocks=Threads.getLocks(curr);

Graph.addEdges(locks,obj);

Graph.findCycles();

Threads.addLock(curr,obj);

} whenendofsynchronize(obj){

Threads.remove(curr,obj);

}}

Dat

aR

aces

Ada

tara

ceoc

curs

whe

ntw

oth

read

s•A

cces

sa

shar

edva

riab

le,

•Atl

east

one

acce

ssis

aw

rite

,and

•No

mec

hani

smis

used

topr

even

tsim

ulta

neou

sac

cess

.

Ada

tara

ceoc

curs

whe

ntw

oth

read

s•A

cces

sa

shar

edva

riab

le,

•Atl

east

one

acce

ssis

aw

rite

,and

•No

mec

hani

smis

used

topr

even

tsim

ulta

neou

sac

cess

.

x=

x+

1x

=x

+1

x:0

Thr

ead

1Sh

ared

vari

able

Thr

ead

2

Exa

mpl

eSo

luti

ons:

mon

itors

,sem

apho

res,

Res

ulta

fter

both

upda

tes

:2…

orm

aybe

1

v1.add(v2)

v1=newValue();

v2.add(v1)

classValue{

intx=1;

voidadd(Valuev){x=x+v.get();}

intget(){returnx;}

}classValue{

intx=1;

voidadd(Valuev){x=x+v.get();}

intget(){returnx;}

}

Java

Pro

gra

mw

ith

Dat

arac

e

v2=newValue();

Thr

ead

T1

Thr

ead

T2

Page 39: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

Fo

rE

ach

Var

iab

le:

AL

ock

set

and

aS

tate

mac

hin

e

notu

sed

excl

usiv

e

shar

ed

shar

edm

odifi

ed

wr

rd(n

ewth

read

)rd

,wr

(firs

tthr

ead)

rd

wr

(new

thre

ad)

wr

rd,w

r

=no

actio

n

=re

finem

ent

=al

sow

arni

ngs

{…se

tof

prot

ectin

glo

cks

…}

Era

ser

algo

rith

m(C

ompa

q)

Ap

ply

ing

AO

PaspectDataraceDetection{

whensynchronize(obj){

Threadcurr=Thread.currentThread();

Threads.addLock(curr,obj);

} whenendofsynchronize(obj){

Threadcurr=Thread.currentThread();

Threads.remove(curr,obj);

} whenaccessto(var,isWrite){

Threadcurr=Thread.currentThread();

Statemachine.update(curr,var,isWrite);

Statemachine.checkEmptyness(var);

}}

Val

idat

ing

Exe

cuti

on

Tra

ces

Ag

ain

stU

ser

Req

uir

emen

ts

aspectCheckRequirements{

when(CLOSED

and

not

previouslyDO_CLOSE){

Report(“Systemclosedbyitself”);

} whennot(DO_CLOSEimplies

eventually(20)CLOSED){

Report(“Systemdidnotclose”);

}}

CloseSystem();

//repair

Exp

lore

Sch

edu

ling

�S

imp

leex

amp

le:

assu

me

that

allv

aria

ble

acce

sses

are

pro

tect

edw

ith

lock

s.�

Inse

rta

call

of

ara

nd

om

ized

yiel

dst

atem

ent

infr

on

to

fal

lsyn

chro

niz

atio

nst

atem

ents

and

calls

of

syn

chro

niz

edm

eth

od

s.�

Th

isw

illca

use

the

sch

edu

ler

tora

nd

om

lym

ake

aco

nte

xtsw

itch

wh

enev

era

lock

ista

ken

.Th

ism

ayb

eu

sed

,fo

rex

amp

le,t

ore

veal

dea

dlo

cks.

Page 40: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

Rel

ated

wo

rk

�D

eV

old

eret

al.m

etap

rog

ram

min

g�

AO

Pth

rou

gh

pro

gra

mtr

ansf

orm

atio

n–

Co

lcu

mb

et,F

rad

etan

dS

ud

ho

lt–

Sch

on

ger

etal

.XM

Ltr

ansf

orm

atio

n–

Ski

pp

erku

�N

elso

net

al.c

on

cern

-lev

elfo

un

dat

ion

alco

mp

osi

tio

no

per

ato

rs:

corr

esp

on

den

ce,

beh

avio

rals

eman

tics

and

bin

din

g�

Wal

ker

and

Mu

rph

yo

nev

ents

asjo

inp

oin

ts

Co

ncl

ud

ing

rem

arks

�P

rese

nte

d–

AO

P–

OIF

,an

AO

Psy

stem

–E

ven

t-b

ased

qu

anti

fied

app

roac

hto

AO

P•

Dev

elo

pin

gan

envi

ron

men

tfo

rex

per

imen

tin

gw

ithA

OP

lan

gu

ages

(DS

Lfo

rA

OP

)

Page 41: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

Visu

aliz

atio

n of

Soft

war

e an

d Ac

tivi

ty

Paul

Dou

rish

Inst

itute

for

Sof

twar

e Res

earc

hU

C Ir

vine

jpd@

ics.

uci.e

du

NAS

A AR

C, A

ugus

t 20

02

wha

t we

alre

ady

know

•fr

om s

tudi

es o

f so

ftw

are

deve

lopm

ent

–co

mpl

exity

of

task

and

inte

ract

ion

–th

e im

pact

of

dist

ance

–co

mpl

exity

of

inte

rdep

ende

nce

•fr

om s

tudi

es o

f co

llabo

ratio

n–

form

al a

nd in

form

al–

the

role

of

awar

enes

s•

qual

itativ

e un

ders

tand

ings

of

the

actio

ns o

f ot

hers

•pr

ovid

es a

con

text

for

you

r ow

n ac

tions

appr

oach

•vi

sual

app

roac

hes

–co

gniti

ve -

> p

erce

ptua

l–

focu

s on

art

ifact

s ra

ther

tha

n pr

oces

ses

•th

eore

tical

bac

kgro

und

–th

e ex

perie

nce

of c

ompu

tatio

n•

mak

ing

com

puta

tion

“pre

sent

–em

bodi

ed in

tera

ctio

n•

inte

ract

ion

as a

n em

bodi

ed p

ract

ice

•di

rect

ness

and

eng

agem

ent

•tw

o pr

ojec

ts:

sees

oft

and

vavo

om

sees

oft

•cs

cw r

esea

rch

focu

s on

aw

aren

ess

–pa

ssiv

e un

ders

tand

ing

of t

he a

ctiv

ity o

f ot

hers

•tr

ying

to

unde

rsta

nd “

awar

enes

s in

the

larg

e”–

larg

e-sc

ale,

dis

trib

uted

sof

twar

e de

velo

pmen

t–

in la

rge

proj

ects

, the

cod

ebas

e is

the

art

ifact

–aw

aren

ess

of c

hang

es in

the

art

ifact

–aw

aren

ess

of t

he a

ctio

ns o

f ot

hers

•se

esof

t–

adop

ted

from

wor

k of

eic

k, w

ills,

et

al.

–vi

ew t

he a

ctiv

ity in

cvs

rep

osito

ries

Page 42: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

sees

oft

sees

oft

sees

oft

vavo

om

•in

terf

ace

abst

ract

ions

hid

e m

echa

nism

–“f

olde

rs”

are

fold

ers

whe

ther

loca

l or

netw

orke

d

•bu

t m

echa

nism

is h

ow w

e un

ders

tand

the

wor

ld–

unde

rsta

ndin

gs o

f ca

use

and

effe

ct–

tem

pora

l dyn

amic

cou

plin

g–

the

tem

pora

l org

aniz

atio

n of

soc

ial a

ctio

n

•m

anife

stin

g co

mpu

tatio

n–

how

to

give

peo

ple

a pi

ctur

e of

wha

t’s h

appe

ning

?

Page 43: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

vavo

om

•in

itial

exp

lora

tion:

vav

oom

–fo

cus

on n

ovic

e pr

ogra

mm

ers

•w

e un

ders

tand

the

mod

els

in t

erm

s of

whi

ch t

o ex

plai

n•

vest

ed in

tere

st in

fin

ding

out

wha

t’s g

oing

on

•th

ere’

s pl

enty

of

them

lyin

g ar

ound

–va

voom

is t

he v

isua

l virt

ual m

achi

ne•

visu

aliz

e ja

va p

rogr

am e

xecu

tion

•dy

nam

ic, r

eal-t

ime

visu

aliz

atio

ns•

unm

odifi

ed c

lass

file

s

vvm

Java

vmux

viz1

viz3

viz2

vavo

om

vavo

om

vavo

om

Page 44: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

vavo

om

vavo

om

•va

voom

is a

n ea

rly t

echn

ical

exp

lora

tion

–th

e fo

cus

on p

rogr

amm

ers

is a

hac

k•

but

conv

enie

nt…

as

long

as

they

hav

e th

e rig

ht p

rogr

ams

–a

mor

e in

tere

stin

g st

rate

gy is

to:

•fo

cus

on e

nd u

sers

•fo

cus

on m

ore

abst

ract

vis

ualis

atio

ns•

focu

s on

mor

e sp

ecia

lised

tas

ks–

curr

ently

exp

lorin

g ne

twor

k se

curit

y

conc

lusi

ons

•sy

stem

sup

port

for

info

rmal

inte

ract

ion

–no

n pr

oces

s-ce

ntric

col

labo

ratio

n–

qual

itativ

e un

ders

tand

ings

of

•so

ftw

are

beha

vior

•co

llabo

rativ

e ac

tivity

•ex

ploi

ting

soft

war

e as

art

ifact

–so

ftw

are

as p

rimar

y co

ordi

nativ

e re

sour

ce–

dire

ctne

ss a

nd m

alle

abili

ty•

open

que

stio

ns–

inte

grat

ion

with

pra

ctic

e–

bala

nce

betw

een

tran

sluc

ence

and

dis

trac

tion

–de

mon

stra

tion

of t

heor

etic

al a

ppro

ach

Page 45: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

Expl

orin

g th

e Rel

atio

nshi

pbe

twee

n Pr

ojec

t Se

lect

ion

and

Req

uire

men

ts A

naly

sis

Mar

k Be

rgm

an, G

loria

Mar

kIn

form

atio

n an

d Co

mpu

ter

Scie

nce

Dep

t.U

nive

rsity

of

Calif

orni

a, I

rvin

em

berg

man

@ic

s.uc

i.edu

, gm

ark@

ics.

uci.e

du

Initi

al P

roje

ct F

orm

atio

n�

Firs

t, P

roje

ct S

elec

tion

�D

eter

min

e pr

ojec

t ch

oice

s�

Choo

se a

pro

ject

to

fund

and

dev

elop

�Th

en, R

equi

rem

ents

Ana

lysi

s�

Det

erm

inin

g st

akeh

olde

rs’ w

ants

, nee

ds, a

ndco

nstr

aint

s fo

r a

proj

ect

�Req

uire

men

ts A

naly

sis

trad

ition

ally

fol

low

s Pr

ojec

tSe

lect

ion

�H

ow d

oes

Proj

ect

Sele

ctio

n re

late

to

Req

uire

men

ts A

naly

sis?

�Pr

ojec

t Se

lect

ion

deci

sion

s fr

ame

subs

eque

ntReq

uire

men

ts A

naly

sis

Res

earc

h Q

uest

ions

�In

pra

ctic

e, d

oes

the

orde

r of

firs

tde

term

inin

g pr

ojec

t ch

oice

s, m

akin

g pr

ojec

tse

lect

ion

and

then

per

form

ing

requ

irem

ents

anal

ysis

hol

d?�

If n

ot, w

hat

are

poss

ible

pro

cedu

ral

rela

tions

hips

bet

wee

n pr

ojec

t ch

oice

cons

truc

tion,

pro

ject

sel

ectio

n an

dre

quire

men

ts a

naly

sis?

�H

ow a

re t

hey

sim

ilar

or d

iffer

ent

to c

urre

ntre

quire

men

ts a

naly

sis

view

s?

Res

earc

h M

etho

ds�

Proj

ect

Sele

ctio

n an

dReq

uire

men

ts A

naly

sis

have

bee

n st

udie

din

divi

dual

ly, b

ut n

otto

geth

er�

Proj

ect

Sele

ctio

n ha

sbe

en e

xam

ined

empi

rical

ly�

Alm

ost

no in

situ

Requ

irem

ents

Ana

lysi

sst

udie

s

�Ap

ply

Ethn

ogra

phic

Met

hods

to

stud

y in

itial

proj

ect

form

atio

n in

situ

�5

mon

ths

(2-3

tim

esw

eekl

y) o

f on

site

part

icip

ant

obse

rvat

ion

�46

indi

vidu

al s

emi-

stru

ctur

ed in

terv

iew

s an

d34

sem

i-for

mal

and

form

al g

roup

mee

tings

�5

deta

iled

tech

nica

lpr

esen

tatio

ns�

Hun

dred

s of

rel

ated

docu

men

ts

Page 46: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

The

Fiel

d Si

te�

The

New

Mill

enni

um P

rogr

am (

NM

P) a

t th

e Je

tPr

opul

sion

Lab

orat

ory

(JPL

): A

gro

up in

a N

ASA

(Nat

iona

l Aer

onau

tics

and

Spac

e Ad

min

istr

atio

n)re

sear

ch la

bora

tory

loca

ted

in S

outh

ern

Calif

orni

a�

The

NM

P pr

ogra

m’s

mis

sion

: Sp

ace

fligh

t va

lidat

e ne

wte

chno

logi

es t

hat

are

deem

ed im

port

ant

to N

ASA’

sfu

ture

sci

ence

mis

sion

s�

This

incl

udes

mat

urin

g ne

w t

echn

olog

ies

(TRL

3 �

TRL

7)

�N

MP

Sele

ctio

n Pr

oces

s: C

hoos

ing

whi

ch n

ewte

chno

logi

es t

o va

lidat

e�

Each

new

tec

hnol

ogy

cand

idat

e ca

n be

com

e th

e ba

sis

of a

new

pro

ject

– a

val

idat

ion

mis

sion

�N

MP

sele

ctio

n pr

oces

s is

a h

ighl

y de

velo

ped

form

of i

n si

tu in

itial

proj

ect

form

atio

n

Assi

st a

nd p

rom

ote

the

tech

nolo

gy a

nd p

roje

ctse

lect

ion

proc

ess

Build

ers

of n

ew a

eros

pace

rela

ted

tech

nolo

gies

Plan

ners

, des

igne

rs,

scie

ntis

ts, b

uild

ers,

and

man

ager

s of

sci

ence

mis

sion

spa

ce s

yste

ms

NAS

A up

per

leve

l dec

isio

nm

aker

s w

ith t

he a

utho

rity

to a

ssig

n or

gani

zatio

nal

reso

urce

s to

impl

emen

tth

eir

deci

sion

Des

crip

tion

Wan

t ne

w t

echn

olog

ies

to s

pace

flig

ht v

alid

ate

Wan

t to

bal

ance

and

sat

isfy

the

nee

ds o

f th

e ad

min

istr

ator

s an

d th

emes

,w

hile

val

idat

ing

as m

any

prov

ider

s’ t

echn

olog

ies

as p

ossi

ble

Cons

trai

ned

by a

llott

ed p

roje

ct c

ycle

bud

gets

and

giv

en d

eadl

ines

NM

PTe

chno

logi

sts

Hav

e ve

ry p

reci

se c

onst

rain

ts a

nd u

sage

gui

delin

es w

hile

pro

vidi

ng s

peci

fic,

sem

i-cus

tom

izab

le t

echn

ical

func

tiona

lity

Wan

t th

eir

tech

nolo

gies

spa

ce f

light

val

idat

ed, l

ikel

y cr

eatin

g a

long

ter

mre

venu

e st

ream

, whi

le m

inim

izin

g te

chno

logy

dev

elop

men

t co

sts

Cons

trai

ned

by V

AL a

war

d am

ount

s an

d pr

ojec

t de

adlin

es

Tech

nolo

gyPr

ovid

ers

Tech

nica

lly e

xplic

it an

d pr

ecis

e in

the

ir ne

eds

and

cons

trai

nts

Wan

t ne

w t

echn

olog

y th

at w

ould

low

er f

utur

e sc

ienc

e m

issi

on s

yste

m c

osts

or e

nabl

e ex

perim

ents

Cons

trai

ned

by t

ight

bud

gets

and

pro

ject

dea

dlin

es

Mis

sion

Them

es

Wan

ts, n

eeds

and

con

stra

ints

ten

d to

be

gene

ral,

som

ewha

t va

gue,

and

usua

lly c

onfli

ctin

gW

ant

broa

dly

appl

icab

le a

rray

of

new

tec

hnol

ogie

s to

bec

ome

avai

labl

e fo

rN

ASA

wid

e sc

ienc

e m

issi

on u

sage

, whi

le m

inim

izing

cos

tCo

nstr

aine

d by

bud

geta

ry a

nd p

olic

y gu

idel

ines

fro

m t

he U

S Co

ngre

ss

NAS

AAd

min

istr

ator

s

Gen

eral

Req

uir

emen

ts P

rofi

leLa

b R

olesRo

les

and

Req

uire

men

ts

Role

s an

d Pr

ojec

t Se

lect

ion

One

of N

Can

dida

tePr

ojec

t Pla

ns, P

roje

ctPl

an N

is fo

r Co

ncep

t N

One

of x

Com

peti

ngTe

chno

logi

es fo

rCo

ncep

t N fr

om P

rovi

der

iOne

of N

Com

peti

ngGe

nera

l Sys

tem

Cand

idat

es

One

of m

NM

PTe

chno

logi

sts

One

of i

Tech

nolo

gyPr

ovid

ers

One

of p

Mis

sion

The

mes

NASA

Adm

inis

trat

ors

Lab

Role

Proc

ess

Role

Proj

ect S

trea

mNP i,N

,x

Conc

ept N

NMP m

: Pro

cess

Acto

rs/A

gent

s

P i: Tec

hnol

ogy

Prov

ider

s

TCp:

Them

eCu

stom

ers

PO: P

roce

ssOw

ners

/Pr

inci

pals

NM

P 1

NM

Pm

NM

P 2

���

NM

P T

ech

no

log

ists

(N

MP

)

���

Te

chn

olo

gy

Pro

vid

ers

(P

)

Co

nce

pt

N

���

Pk,

N,z

Pj,N

,2

Pi,N

,1

Co

nce

pt

B

���

Co

nce

pt

A

���

Pk,

A,x

Pj,A

,2

Pi,A

,1

Pk,

B,y

Pj,B

,2

Pi,B

,1

TC

1

Th

em

e C

ust

om

ers

(T

C)

TC

p

TC

2

���

NA

SA

Ad

min

istr

ato

rs(P

O)

Ove

rse

es

Co

nce

pt

AC

ust

om

ers

Co

nce

pt

BC

ust

om

er

Co

nce

pt

NC

ust

om

ers

Pro

ject

Str

eam

A

Pro

ject

Str

eam

B

Pro

ject

Str

eam

N

���

Intr

a-Co

nce

ptA

Winn

er

Intr

a-C

once

ptB

Winn

er

Intr

a-Co

nce

ptN

Winn

er

Proj

ect

Sele

ctio

n Pr

oces

s

Pro

cess

Ste

ps

tim

e(n

ot t

o sc

ale)

Conc

ept

Req

uire

men

tsD

efin

ed

Tech

nolo

gyCa

ndid

ate

Prop

osal

sSo

licite

d

Prop

osal

sPe

erRev

iew

ed

Peer

Revi

ewPa

nel

Syst

emPr

opos

alSe

lect

ion

Pane

l

Proj

ect

Plan

Dev

elop

men

tPr

ojec

tRe

view

Boar

d

Fina

lPr

ojec

tSe

lect

ion

Pro

ject

Str

eam

s

A B N…

Sele

cted

Proj

ect(

s)

…P A,1

P A,2

P A,x

P A,u … P A,w

P A,i

…P B,1

P B,2

P B,y

P B,p … P B,s

P B,j

…P N,1

P N,2

P N,z

P N,d … P N,g

P N,k• ~

9-10

mo.

per

pro

ject

sel

ectio

n cy

cle

• 6

mo.

use

d in

pro

ject

pla

n de

velo

pmen

t

Page 47: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

Rel

atio

nshi

p Be

twee

n Pr

ojec

tSe

lect

ion

and

Req

uire

men

ts A

naly

sis

�In

itial

pro

ject

str

eam

s (c

once

pts)

def

ined

by

Them

eCu

stom

er’s

req

uire

men

ts�

Com

petit

ion

betw

een

tech

nolo

gy c

andi

date

s in

form

san

d re

fines

pro

ject

str

eam

req

uire

men

ts�

Early

iden

tific

atio

n of

wan

ted

and

unde

sire

d ex

istin

g te

chno

logi

cal

capa

bilit

y, c

osts

and

con

stra

ints

�Te

chno

logy

sel

ectio

n fr

ames

pro

ject

def

initi

on a

nd t

ight

ens

proj

ect

requ

irem

ents

�Co

mpe

titio

n be

twee

n pr

ojec

t st

ream

s al

so r

efin

esea

ch p

roje

ct’s

req

uire

men

ts�

Proj

ect

leve

l req

uire

men

ts a

re u

sed

in p

roje

ct s

elec

tion

deci

sion

,es

peci

ally

neg

ativ

e re

quire

men

ts

Mul

tiple

Par

alle

l Com

petit

ive

Req

uire

men

ts A

naly

sis

(MPC

RA)

�Rel

atio

nshi

p be

twee

n pr

ojec

t ch

oice

s, s

elec

tion

and

requ

irem

ents

ana

lysi

s is

bid

irect

iona

l, no

tun

idire

ctio

nal

�Pr

ojec

ts c

reat

ed a

nd s

elec

ted

requ

irem

ents

�Re

quire

men

ts id

entif

ied

and

fram

ed p

roje

cts,

and

info

rmed

pro

ject

sele

ctio

n

�Fo

und

mul

tiple

par

alle

l com

petit

ive

requ

irem

ents

path

s, n

ot ju

st o

ne�

Refu

tes

trad

ition

al r

equi

rem

ents

ana

lysi

s –

sing

le p

roje

ct p

ath

�O

utco

me

coul

d be

mul

tiple

pro

ject

s, a

s op

pose

d to

the

tra

ditio

nal

assu

mpt

ion

of o

ne

�Ex

tens

ive,

mul

ti-st

ep, w

ell-d

ocum

ente

d, o

pen,

com

petit

ive

proc

ess

built

con

sens

us f

or f

inal

pro

ject

sele

ctio

n

Page 48: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

1

The

Past

and

Fut

ure

ofPo

stdo

cA

fifte

en-m

inut

e ov

ervi

ew o

fPo

stdo

c an

d w

here

doc

umen

tco

llabo

rati

on is

hea

ding

.

2

Curr

ent P

ostd

oc: F

eatu

res

•do

cum

ent s

hari

ng u

sing

any

web

brow

ser

•co

mpl

etel

y us

er-m

anag

ed a

cces

sco

ntro

l, gr

oups

, lis

ts•

per-

docu

men

t acc

ess

cont

rol

•au

tom

atic

doc

umen

t con

vers

ion

(MS

Offic

e ->

PDF

)•

inte

grat

ed m

ailin

g lis

ts•

(sim

ple)

lock

ing/

vers

ioni

ng•

easy

-to-

use,

fam

iliar

use

r in

terf

ace

3

Curr

ent P

ostd

oc: U

sage

•De

velo

ped

at A

mes

for

the

New

Mill

enni

um P

rogr

am s

cien

tist

s in

’94,

re-w

ritt

en in

’95

•fr

ee fo

r NA

SA a

nd N

ASA

colla

bora

tors

•~4

500

acti

ve a

ccou

nts (

~280

0 na

sa.g

ov)

•23

5 us

ers

logg

ed in

last

wee

k•

60GB

of d

ata

•~1

,000

e-m

ail m

essa

ges

last

wee

k•

1.5

FTE

deve

lope

rs, 1

.5 F

TE u

ser-

supp

ort 4

Post

doc

Futu

re:

Tech

nolo

gies

Inte

grat

ion

wit

h th

e de

skto

p:•

Web

DAV

for

“dra

g-an

d-dr

op”

inte

grat

ion

into

mod

ern

desk

tops

/app

licat

ions

(inc

ludi

ng A

CL,

DASL

, Del

taV

prot

ocol

s)•

IMAP

/NNT

P fo

r e-

mai

l arc

hive

acc

ess

•m

ulti

-tie

r/m

odul

ar a

rchi

tect

ure

•em

phas

is o

n st

anda

rds-

base

dpr

ogra

mm

atic

acc

ess

for

appl

icat

ion

inte

grat

ion

(Web

Ser

vice

s)

Page 49: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

5

Post

doc

Futu

re:

Oppo

rtun

itie

s•

larg

e us

er b

ase

•la

rge

colle

ctio

n of

a w

ide

vari

ety

of d

ocum

ents

•lo

ng-t

erm

his

tori

cal a

rchi

ve•

will

ing

guin

ea p

igs

•NA

SA-o

wne

d da

taba

se, s

yste

m,

soft

war

e•

hopi

ng to

wor

k w

ith

mis

sion

(s)

6

Oblig

ator

y Sc

reen

Sho

t

Page 50: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

A Fi

eld

Stud

y of

Col

labo

rati

veSo

ftw

are

Deve

lopm

ent T

eam

s(I

niti

al R

esul

ts)

Clei

dson

de

Souz

a1,2

John

Pen

ix2

Maa

rten

Sie

rhui

s2

1 UC,

Irvi

ne G

radu

ate

Stud

ent a

ndNA

SA/A

mes

Sum

mer

Inte

rn2 N

ASA/

Ames

Res

earc

h Ce

nter

Over

view

�Th

e Se

ttin

g: C

TAS

�M

etho

dolo

gy�

Init

ial F

indi

ngs

�Fu

ture

Wor

k�

Conc

lusi

ons

The

Sett

ing:

Cent

er T

RACO

N Au

tom

atio

n Sy

stem

(CTA

S).

�A

suit

e of

aut

omat

ion

tool

s de

velo

ped

atNA

SA/A

mes

des

igne

d to

hel

p ai

r tr

affic

cont

rolle

rs to

man

age

air

traf

fic fl

ow a

tla

rge

airp

orts

.

�In

199

1 it

was

cho

sen

by th

e FA

A as

the

futu

re a

utom

atio

n sy

stem

for

the

term

inal

are

a.

�Si

nce

then

it h

as b

een

used

in 6

diff

eren

tai

rpor

ts.

The

Sett

ing:

Cent

er T

RACO

N Au

tom

atio

n Sy

stem

(CTA

S).

�CT

AS is

com

pose

d of

10

diffe

rent

tool

s.�

Sour

ce c

ode:

�C

and

C++.

GUI

’s a

re b

eing

por

ted

to J

ava.

� 1

,000

,000

LOC

.�

Deve

lopm

ent T

eam

:�

Num

ber

of d

evel

oper

s: 3

1.�

Two

grou

ps: V

&V

and

Deve

lope

rs.

�W

ork

in p

roce

sses

, ins

tead

of t

ools

Page 51: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

Met

hodo

logy

�Fi

eld

Stud

y�

Five

wee

ks in

the

fie

ld u

ntil

now

, fou

r m

ore

wee

ks t

ogo

.

�Da

ta C

olle

ctio

n�

Part

icip

ant O

bser

vati

on�

“Sha

dow

ing”

dev

elop

ers

wit

h di

ffere

nt r

oles

.�

Inte

rvie

w T

echn

ique

s�

4 in

terv

iew

s un

til

now

ran

ging

fr

om

45

to

120

min

utes

.

�Da

ta C

olle

cted

�Se

vera

l art

ifact

s co

llect

ed�

Wha

t de

velo

pers

do,

how

, w

hen,

whe

re t

hey

do,

and

mos

t im

port

antl

y W

HY t

hey

do it

.

Init

ial R

esul

ts

�M

ost i

mpo

rtan

t too

ls:

�co

nfig

urat

ion

man

agem

ent;

and

�bu

g tr

acki

ng s

yste

m.

�Th

ese

tool

s pr

ovid

e sh

ared

rep

osit

orie

sfo

r so

urce

cod

e an

d ch

ange

req

uest

s.�

The

CM a

nd t

he b

ug t

rack

ing

tool

pro

vide

auto

mat

ion

of s

ome

task

s lik

e:�

Vers

ion

cont

rol,

iden

tific

atio

n of

re

leas

es,

repo

rt g

ener

atio

n, a

nd s

o on

.

Init

ial R

esul

ts

�De

velo

pers

ad

opt

conv

enti

ons

tous

e th

ese

tool

s so

tha

t th

ey u

sers

mig

ht c

oope

rate

effe

ctiv

ely.

�Ex

ampl

es:

�Na

min

g co

nven

tion

s fo

r cr

eati

ngbr

anch

s and

vie

ws t

o w

ork

wit

h th

e CM

tool

;�

Prio

riti

es a

nd s

ever

itie

s of

the

bug

s in

the

bug

trac

king

tool

.

Page 52: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

Init

ial R

esul

ts

�Ho

wev

er,

the

conv

enti

ons

adop

ted

by

the

deve

lope

rs

are

not

auto

mat

ed.

�Ex

ampl

es:

�Pr

evio

us n

amin

g co

nven

tio

n;�

E-m

ail

sent

by

deve

lope

rs r

ight

befo

re th

e ch

eck-

in.

Init

ial R

esul

ts

�Im

port

ant

com

mun

icat

ion

usin

g e-

mai

l:�

Is

it

the

mos

t ef

fect

ive

tool

to

pr

ovid

eno

tific

atio

ns?

�On

the

oth

er h

and,

e-m

ail

is a

lso

used

as

ale

arni

ng to

ol b

y ne

w d

evel

oper

s, s

o th

at t

hey

can

be a

war

e w

ho i

s re

spon

sibl

e fo

r w

hat

proc

ess.

Thi

s in

form

atio

n is

lat

er u

sed

whe

non

e ha

s to

fix

a bu

g in

that

pro

cess

.

Shor

t Sum

mar

y of

Res

ults

�Co

ordi

nati

on u

sing

CM

and

bug

trac

king

�Us

e of

Con

vent

ions

�Co

mm

unic

atio

n us

ing

E-m

ail

�Pr

oble

mat

ic in

som

e ca

ses;

but

�Pr

ovid

es

awar

enes

s of

ot

hers

wor

k.�

Inte

nse

Para

llel D

evel

opm

ent

Futu

re W

ork

�Da

ta C

olle

ctio

n fo

r 3

mor

e w

eeks

.�

Anal

ysis

of t

he d

ata

�Gr

ound

ed T

heor

y�

Brah

ms

mul

ti-a

gent

mod

el�

Ulti

mat

e go

al:

�Id

enti

fy r

equi

rem

ents

for

tec

hnol

ogy

supp

ort f

or th

is g

roup

.�

If ne

cess

ary,

dev

elop

this

tech

nolo

gy.

Page 53: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

Conc

lusi

ons

�CT

AS:

�Su

cces

sful

pro

ject

dev

elop

ed a

t NAS

A/Am

es.

�M

etho

ds�

Init

ial r

esul

ts�

Impo

rtan

t too

ls u

sed

by th

e de

velo

pers

; and

�Pr

oble

ms

wit

h th

ese

tool

s

�Fu

ture

Wor

k

Page 54: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

Am

esR

esea

rch

Cen

ter

Kann

a Ra

jan

Colla

b/SW

Eng

WS

8/5/

02

How

do

we

go w

here

no

one

has g

one

befo

re?

Kann

a Ra

jan

Grou

p Le

ad S

pace

craf

t Aut

onom

yAu

tono

my

and

Robo

tics A

rea

NASA

Am

es R

esea

rch

Cent

er(K

anna

.Raj

an@

arc.

nasa

.gov

)

Am

esR

esea

rch

Cen

ter

Kann

a Ra

jan

Colla

b/SW

Eng

WS

8/5/

02

RE

MO

TE

AG

EN

T

EX

PE

RIM

EN

T

http

://i

c.ar

c.na

sa.g

ov/p

roje

cts/

rem

ote

-age

nt/

Dou

glas

E. B

erna

rdJP

LSt

eve

A. C

hien

JPL

Scot

t Dav

ies

CM

UG

rego

ry A

. Dor

ais

Am

esR

icha

rd D

oyle

JPL

Dan

Dvo

rak

JPL

Cha

rles

Fry

Am

esE

dwar

d B

. Gam

ble

Jr.

JPL

Era

nn G

atJP

LB

ob K

anef

sky

Am

esR

on K

eesi

ngA

mes

Jim

Kur

ien

Am

esG

uy K

. Man

JPL

Will

iam

Mill

arAm

esS

unil

Moh

anA

mes

Pau

l Mor

risA

mes

Nic

ola

Mus

cett

ola

Am

esP

. Pan

dura

ng N

ayak

Am

esB

arne

y P

ell

Am

esC

hris

tian

Pla

unt

Am

esG

reg

Rab

idea

uJP

LK

anna

Raj

anA

mes

Nic

hola

s R

ouqu

ette

JPL

Sco

tt S

awye

rA

mes

Rei

d Si

mm

ons

CM

UB

enja

min

Sm

ithJP

LG

regg

Sw

iete

kA

mes

Wil

liam

Tay

lor

Am

esY

u-W

en T

ung

JPL

Mic

hael

Wag

ner

Am

esG

reg

Whe

lan

CM

UB

rian

C. W

illi

ams

Am

esD

avid

Yan

JPL

•• Re

mot

e Ag

ent E

xper

imen

t May

17-

21, 1

999

Rem

ote

Agen

t Exp

erim

ent M

ay 1

7-21

, 199

9••

Rem

ote

Agen

t on

DS1

win

s NA

SA’s

199

9 R

emot

e Ag

ent o

n DS

1 w

ins

NASA

’s 1

999

So

ftw

are

of th

e Ye

ar A

war

dSo

ftw

are

of th

e Ye

ar A

war

d ..

Am

esR

esea

rch

Cen

ter

Kann

a Ra

jan

Colla

b/SW

Eng

WS

8/5/

02

MAP

GEN

for

MER

High

Lev

elOb

serv

atio

n Go

als

Acti

vity

Ed

itor

Fully

Spe

cifie

d Ac

tivity

Pla

n

Sequ

ence

Gene

rato

r

Pla

nnin

g Sy

stem

Pla

nnin

g Sy

stem

Scie

nce

Team

Mod

els

MAP

GEN

MAP

GEN

Alan

Bab

aJP

LJo

hn B

resi

naAR

CLe

n Ch

ares

tJP

LW

ill E

dgin

gton

ARC

Ari J

onss

onAR

CAd

ans K

oJP

LBo

b Ka

nefs

kyAR

CPi

erre

Mal

dagu

e JP

LPa

ul M

orri

sAR

CKa

nna

Raja

nAR

C

Am

esR

esea

rch

Cen

ter

Kann

a Ra

jan

Colla

b/SW

Eng

WS

8/5/

02

Curr

ent D

rive

rs

•Sh

orte

r le

ad ti

mes

to d

esig

n, b

uild

, tes

t and

fly

•De

ep(e

r) sp

ace

mis

sion

s•

Mor

e co

mpl

exit

y–

Visi

ting

com

ets

(CON

TOUR

)–

Long

ran

ge tr

aver

ses

on

Mar

s (M

ER, M

SL)

–Di

stri

bute

d Sp

acec

raft

(LIS

A, D

S3, T

PF)

•M

ore

scie

nce

retu

rn•

Tigh

ter

budg

ets

•Ne

w h

ardw

are

cert

ifica

tion

take

s ti

me

•So

ftw

are

Reus

e•

New

er (b

ette

r?) s

oftw

are

met

hodo

logi

es•

Com

plex

ity

of s

oftw

are

has

rise

n•

Veri

ficat

ion

and

Valid

atio

n is

cri

tical

•In

ter-

cent

er c

olla

bora

tion

Page 55: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

Am

esR

esea

rch

Cen

ter

Kann

a Ra

jan

Colla

b/SW

Eng

WS

8/5/

02

Resu

lts

•Te

stin

g ha

s bec

ome

cent

ral i

n s/

w d

evel

opm

ent

•No

tion

of a

“pr

oces

s” to

des

ign/

build

/tes

t/de

ploy

•No

tion

of m

odel

-bas

ed a

ppro

ache

s on

the

incr

ease

•Kn

owle

dge

Acqu

isit

ion

met

hods

are

bec

omin

gcr

ucia

l•

Stru

ggle

to fi

nd w

ays t

o co

llabo

rate

acr

oss t

ime-

zone

s and

cul

ture

s–

MER •

10’s

of s

cien

tist

s du

ring

the

desi

gn p

hase

•30

0+ m

issi

on s

taff

(JPL

)•

200+

scie

ntis

ts d

urin

g m

issi

on o

ps

Am

esR

esea

rch

Cen

ter

Kann

a Ra

jan

Colla

b/SW

Eng

WS

8/5/

02

Need

s

•Fo

rmal

met

hods

for

V&V

for

auto

nom

ous s

yste

ms

•To

ols

for

Elic

itat

ion

•Ri

ch a

rray

of m

etho

ds fo

r so

ftw

are

synt

hesi

s•

Colla

bora

tive

met

hods

for

desi

gn

Page 56: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

Fo

rma

l P

ee

r In

sp

ecti

on

In

form

ati

on

Arc

hit

ectu

re

Gild

a P

our,

Ph.D

., D

.Eng.

Colla

bora

tive S

oft

ware

Engin

eering T

ools

Work

shop

8/5

/02So

ftw

are

De

ve

lop

me

nt

Fo

rma

l P

ee

r In

sp

ecti

on

Help

s m

itig

ate

ris

ks

in s

oft

ware

develo

pm

ent

and im

pro

ve s

oft

ware

qualit

y

8/5

/02So

ftw

are

De

ve

lop

me

nt

Fo

rma

l P

ee

r In

sp

ecti

on

(co

nt’

d)

•Part

icip

ants

–D

iffe

rent

role

s (e

.g. W

ork

Pro

duct

Auth

or,

M

odera

tor,

Pro

duct

Are

a L

ead, In

spect

or)

–D

iffe

rent

resp

onsi

bili

ties

for

each

role

•In

spect

ion d

ocu

ments

and t

ools

Diffe

rent

form

ats

and s

truct

ure

s

–Loca

ted o

n d

iffe

rent

pla

tform

s

–Loca

ted in d

iffe

rent

physi

cal and logic

al lo

cations

8/5

/02

Fo

rma

l P

ee

r In

sp

ecti

on

Ch

eck

ou

t &

La

un

ch

Co

ntr

ol

Syste

m(C

LC

S)

Page 57: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

8/5

/02

8/5

/02Ob

jecti

ve

To d

evelo

p a

cust

om

izable

, exte

nsi

ble

, and f

lexib

le W

eb-b

ase

d a

rchitect

ure

to

support

soft

ware

develo

pm

ent

form

al

peer

insp

ect

ion

8/5

/02Ap

pro

ach

•Com

ponent-

base

d s

oft

ware

engin

eering

•XM

L s

chem

a a

nd X

SL

8/5

/02In

sp

ecti

on

Do

cu

me

nts

•Role

-base

d I

nsp

ect

ion C

heck

lists

-W

ork

Pro

duct

Auth

or’s

Insp

ect

ion C

heck

list

-In

spect

or’s

Insp

ect

ion C

heck

list

-Pro

duct

Are

a L

ead I

nsp

ect

ion C

heck

list

-In

spect

ion M

odera

tor’s

Insp

ect

ion C

heck

list

Page 58: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

8/5

/02In

sp

ecti

on

Do

cu

me

nts

(co

nt’

d)

•W

ork

Pro

duct

Insp

ect

ion C

heck

lists

-D

ocu

ment-

Work

Pro

duct

Check

list

-Requirem

ent’s

Speci

fica

tion-W

ork

Pro

duct

Insp

ect

ion

Check

list

-H

igh-L

evel D

esi

gn -

Work

Pro

duct

Insp

ect

ion C

heck

list

-D

eta

iled D

esi

gn -

Work

Pro

duct

Insp

ect

ion C

heck

list

-Code I

nsp

ect

ion -

Work

Pro

duct

Insp

ect

ion C

heck

list

-Test

Pla

n -

Work

Pro

duct

Insp

ect

ion C

heck

list

-Test

Pro

cedure

–W

ork

Pro

duct

Insp

ect

ion C

heck

list

8/5

/02In

sp

ecti

on

Do

cu

me

nts

(co

nt’

d)

•Peer

Insp

ect

ion I

nvitation f

orm

•Peer

Insp

ect

ion P

lannin

g C

heck

list

•O

verv

iew

•Lis

ting o

f Refe

rence

Mate

rials

(e.g

. Sta

ndard

s, U

ser

Guid

es)

•Sum

mary

of

list

of

open iss

ues

that

need t

o b

e

revie

wed a

nd/o

r addre

ssed

•Peer

Insp

ect

ion D

efe

ct L

og f

orm

•In

spect

ion S

um

mary

/Clo

sure

Report

•In

spect

ion S

atisf

act

ion S

urv

ey f

orm

8/5

/02

Ex

am

ple

Ro

le-B

ase

d I

nsp

ecti

on

Ch

eck

list

Co

mp

on

en

t

•Role

of

the insp

ect

ion p

art

icip

ant

(Variable

s in

clude w

ork

pro

duct

auth

or,

insp

ect

or,

pro

duct

are

a lead insp

ect

or,

and m

odera

tor.

)

•In

spect

ion p

hase

(Variable

s in

clude p

lannin

g, overv

iew

, in

spect

ion

pre

para

tion, in

spect

ion m

eeting, in

spect

ion r

ew

ork

/follo

w-u

p, and

pro

ject

analy

sis.

)

•Resp

onsi

bili

ties

of

a s

peci

fic

role

in v

arious

insp

ect

ion p

hase

s

•Pro

ject

identifica

tion n

um

ber

(ID

)

•W

ork

pro

duct

bein

g insp

ect

ed (

Variable

s in

clude d

ocu

ments

, co

nce

pt

definitio

ns,

requirem

ents

speci

fica

tions,

top-level desi

gn,

deta

iled d

esi

gn, co

de, te

st p

lans,

test

pro

cedure

s, t

est

tools

, and

test

scr

ipts

.)

•N

am

e o

f th

e insp

ect

ion p

art

icip

ant

•D

ate

of

com

ple

tion f

or

each

task

lis

ted u

nder

“Resp

onsi

bili

ties”

•In

spect

ion loca

tion

8/5

/02

Page 59: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

8/5

/02

8/5

/02Next

Phase

•W

eb-b

ase

d e

nte

rprise

arc

hitect

ure

to

support

soft

ware

develo

pm

ent

form

al

peer

insp

ect

ion a

t th

e e

nte

rprise

level

•Loca

tion-t

ransp

are

nt

acc

ess

of

auth

orize

d u

sers

to insp

ect

ion

docu

ments

and t

ools

at

the e

nte

rprise

le

vel

Page 60: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

BR

AH

MS

: a

BR

AH

MS

: a

mu

ltia

gen

tm

ult

iagen

tm

od

elin

gm

od

elin

g

an

d s

imu

lati

on

lan

gu

age

for

work

an

d s

imu

lati

on

lan

gu

age

for

work

syst

em a

na

lysi

s a

nd

des

ign

syst

em a

na

lysi

s a

nd

des

ign

Maart

enM

aart

enS

ierh

uis

Sie

rhu

is, P

h.D

., P

h.D

.

Sen

ior

Sci

enti

stS

enio

r S

cien

tist

US

RA

/RIA

CS

US

RA

/RIA

CS

NA

SA

Am

es R

esea

rch

Cen

ter

NA

SA

Am

es R

esea

rch

Cen

ter

Moff

ett

Fie

ld, C

AM

off

ett

Fie

ld, C

A

msi

erh

uis

msi

erh

uis

@m

ail

.arc

.@

mail

.arc

. nasa

nasa

.. gov

gov

Au

gu

st 6

, 2002

ISR

-NA

SA

Work

shop o

n

Coll

abora

tive

Soft

ware

En

gin

eeri

ng

ToolsHCC:From Simulation to

Implementation

Th

e R

ock

et S

cien

ce o

f H

CC

CO

MP

UT

ER

Wh

at’

s th

e D

elta

?

Co

ord

ina

tem

ult

imo

da

lco

nce

pts

,valu

es, p

ract

ice

Measu

re, cla

ssif

y, in

fer,

dep

ict,

pro

cess

HU

MA

N

Researc

h Q

uesti

on

•H

ow

can

we m

od

el an

org

an

izati

on

’s w

ork

pra

cti

ce in

su

ch

a w

ay t

hat

we in

clu

de p

eo

ple

’s

co

llab

ora

tio

n,“o

ff-t

as

k”

be

ha

vio

rs,m

ult

i-ta

skin

g,

inte

rru

pte

d a

nd

resu

med

acti

vit

ies,in

form

al

inte

rac

tio

nan

dg

eo

gra

ph

y?

•O

bje

cti

ve i

s t

o f

ind r

epre

senta

tions a

nd t

echniq

ues f

or

analy

zin

g a

nd d

esig

nin

g w

ork

syste

ms (

socio

-technic

al

syste

ms)

holi

sti

call

y a

nd h

um

an-c

ente

red

Work

Pra

cti

ce

Defi

nit

ion

The p

erf

orm

ance o

f colle

ctive s

ituate

d

activities

of a g

roup o

f people

, colla

bora

ting,

com

munic

ating, and g

ain

ing e

xperience w

hile

perf

orm

ing these a

ctivitie

s s

ynchro

nously

or

asynchro

nously

.

Page 61: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

Wo

rk P

racti

ce M

od

eli

ng

•G

rou

ps

& A

gen

ts

–w

ork

as a

cti

vit

ies

–beli

efs

tri

gger

work

–bounded r

ati

onali

ty i

s s

ocia

lly

and c

ult

ura

lly d

efi

ned

•C

oll

ab

ora

tio

n b

etw

een

Ag

ents

–ag

en

ts r

eact

to a

nd

in

tera

ct

wit

h o

ther

ag

en

ts

–sam

e t

ime/s

am

e p

lace

–sam

e t

ime/d

iffe

rent

pla

ce

–dif

fere

nt

tim

e/s

am

e p

lace

–dif

fere

nt

tim

e/d

iffe

rent

pla

ce

WP

M c

ont’

d

•T

ools

& A

rtif

act

s

–to

ols

used

in

acti

vit

ies

–art

ifacts

cre

ate

d i

n a

cti

vit

ies

•E

nvir

on

men

t/G

eogra

ph

y

–agents

have a

locati

on

–art

ifacts

hav

e a

lo

cati

on

–dete

cti

ng

real-

wo

rld

facts

•C

om

mu

nic

ati

on

–is

sit

uate

d

–th

e m

eans o

f com

munic

ati

on

depends o

n t

he s

ituati

on (

e.g

.

voic

e l

oop, f2

f com

munic

ati

on,

tele

phone, fa

xin

g, e-m

ail

)

–im

pacts

eff

icie

ncy

of

wo

rk

Bra

hm

s

Agen

tA

gen

t --O

rien

ted

Lan

gu

age

Ori

ente

d L

an

gu

age

Lan

gu

age

Pars

erL

an

gu

age

Pars

er

Inte

ract

ive

Dev

elop

men

t E

nvir

on

men

t In

tera

ctiv

e D

evel

op

men

t E

nvir

on

men

t

Dis

cret

eD

iscr

ete-- e

ven

t S

imu

lati

on

En

gin

eev

ent

Sim

ula

tion

En

gin

e

En

dE

nd

-- use

r S

imu

lati

on

Dis

pla

ys

use

r S

imu

lati

on

Dis

pla

ys

Sim

ula

tion

His

tory

Data

Base

Sim

ula

tion

His

tory

Data

Base

Java-b

ase

d

Java A

PI

XM

L

Ru

ns

on

PC

’s,

Mac,

Un

ix,

Lin

ux .

..

©M

aart

en

Sie

rhu

is

Coll

abora

tive M

odeli

ng

Bra

hm

s S

imu

lati

on

VR

Mo

del

/Ag

entV

iew

erE

thn

ogra

ph

ic O

bse

rvati

on

Vid

eo A

naly

sis

Con

cep

tual

Mod

elin

g

Bra

hm

s M

od

elin

g

con

cep

tua

l m

od

eler

s

Bra

hm

s m

od

eler

s

Page 62: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

Desig

n, G

enera

te a

nd S

imula

te

M1

Bra

hm

s C

od

e G

ener

ati

on

M3

/M4

M2

Co

nce

ptu

al

Mo

del

Sim

ula

tion

/Vis

uali

zati

on

Bra

hm

s R

esearc

h

Pro

jects

at

NA

SA

•H

um

an-R

oboti

c T

eam

work

–T

eam

work

& W

ork

Pra

cti

ce o

nboard

the I

SS

–M

obil

e A

gents

support

ing o

f M

ars

Explo

rati

on

•M

ars

Habit

at

–L

ivin

g a

nd

wo

rkin

g o

n M

ars

•’0

3 M

ars

Explo

rati

on R

over

–U

se B

rahm

s t

o m

odel

Mis

sio

n O

pera

tions W

ork

Syste

m a

t

JP

L

Mo

bil

e A

gen

ts

Runti

me

•M

od

els

of

Peo

ple

& R

ob

ots

•In

tell

igent

Assis

tants

–A

gents

for

people

& r

obots

•S

oft

ware

Ag

en

ts

–D

ialo

g a

gen

t

–C

om

munic

ati

on A

gent

–P

rox

y a

gen

t

Desig

n P

hase

•S

imula

ted P

eople

& R

obots

•In

tell

igent

Assis

tants

•S

oft

ware

Agents

(sim

ula

ted)

•S

oft

ware

Syste

ms (

sim

ula

ted)

ER

A B

rah

ms

AT

V a

gen

ts

Dia

log

ag

ent

Pro

xy

ag

ents

Dia

log S

yst

em

AT

V

Co

mm

. a

gen

t

Co

mm

. a

gen

t

AT

V B

rah

ms

ER

A a

gen

t

Co

mm

. a

gen

t

Pro

xy

ag

ents

ER

A

Page 63: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

WA

NA

TV

Rep

eate

r

Ro

ck

y s

erv

er

Bra

hm

s

Dia

log

Sys

tem

wir

ele

ss

mic

Ex

plo

rer

Eva R

ob

oti

c A

ssis

tan

t

Bra

hm

s

Mo

bil

e A

ge

nts

Arc

hit

ec

ture

Mo

bil

e A

ge

nts

Arc

hit

ec

ture

Sim

ula

tion

of

MO

S

Wo

rk P

roce

ss f

or

ME

R M

OS

Des

ign

Coll

abora

tive D

esig

n

wit

h M

ER

MO

S D

T

Page 64: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

Cre

ati

on

of

new

sci

ence

pla

ns

(bo

un

da

ry o

bje

cts)

an

d c

om

mu

nic

ati

ng

to

oth

ers

Walk

ing T

ak

es T

ime!

!!!

Wa

lkin

g f

rom

Sci

ence

Ro

om

to

Co

nfe

ren

ce R

oo

m

ISS

Pro

ject

Go

als

•E

xte

rna

l g

oa

ls

•art

ifactto

stu

dy a

nd u

nders

tand w

ork

pra

ctices a

nd

team

work

onboard

IS

S

•m

odelto

be u

sed in:

•p

lan

nin

g.IS

S M

issio

n p

lannin

g a

nd p

rocedure

develo

pm

ent

•execution.

HC

I: A

uto

nom

ous Inte

lligent S

oftw

are

or

Robotic A

gents

(e.g

. P

SA

, R

obonaut)

in s

upport

of

team

work

.

•In

tern

al g

oa

ls

•E

xplo

re u

se o

f B

rahm

s in r

epre

senting m

anned s

pace

mis

sio

ns

•S

tudy B

rahm

s a

s a

n A

BS

S(D

avid

sso

n,

20

02

)

Mo

deli

ng

th

e I

SS

cre

w

wit

h B

rah

ms

•D

ata

•V

ideos, pic

ture

s, in

terv

iew

s

•JS

C m

anuals

, pro

cedure

s

•T

ime

line

s, sch

ed

ule

s

•O

n-o

rbit a

nd p

ost-

orb

it d

ebriefs

•M

OD

se

rve

rs

•W

ork

pra

ctice

da

ta a

na

lysis

•C

on

ce

ptu

al m

od

elin

g

•B

rah

ms m

od

el a

nd

sim

ula

tio

n

Page 65: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

Mo

rnin

g A

ctiv

itie

s IS

S E

xp

2,

Ma

y 7

, 2

00

1

Page 66: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

6 Au

gust

, 200

2NA

SA -

ISR

Wor

ksho

p

Even

t Not

ifica

tion

and

Mes

sagi

ng A

rchi

tect

ures

for

Real

-Tim

e Sc

ienc

e Co

ordi

nati

on

Elia

s Sin

ders

onel

ias@

cse.

ucsc

.edu

elia

s@em

ail.a

rc.n

asa.

gov

UC S

anta

Cru

z /

NASA

Am

es

6 Au

gust

, 200

2NA

SA -

ISR

Wor

ksho

p

Term

s an

d De

finit

ions

•Co

llabo

rati

on v

s.Co

ordi

nati

on–

Rela

ted,

but

use

ful t

odi

stin

guis

h be

twee

nth

e tw

o–

Colla

bora

tion

is w

hen

peop

le w

ork

toge

ther

on a

giv

en ta

sk–

Coor

dina

tion

impl

ies

that

mul

tipl

e,in

terd

epen

dent

task

sex

ist

•Re

al-t

ime

scie

nce

–Ha

rd d

eadl

ines

–Cl

osed

con

trol

or

feed

back

loop

–Ex

ampl

e: R

emot

eop

erat

ion

of a

sci

ence

plat

form

suc

h as

asa

telli

te, s

pace

pro

beor

rob

ot

6 Au

gust

, 200

2NA

SA -

ISR

Wor

ksho

p

Som

e of

the

Chal

leng

es

•Hi

gh c

omm

unic

atio

n ov

erhe

ad•

Shift

ing/

rota

ting

sch

edul

es•

Data

nav

igat

ion

and

assi

mila

tion

•M

aint

aini

ng s

itua

tion

al a

war

enes

s•

Tim

e se

nsit

ive

natu

re o

f mis

sion

oper

atio

ns•

Hete

roge

neou

s co

mpu

ting

env

iron

men

t•

Secu

rity

!

6 Au

gust

, 200

2NA

SA -

ISR

Wor

ksho

p

Requ

irem

ents

and

Pro

pose

dSo

luti

ons

•Pr

ovid

e ‘o

ne st

op’ a

cces

s to

mul

tipl

ere

posi

tori

es a

nd d

ata

anal

ysis

tool

s und

er a

com

mon

, Web

-bas

ed in

terf

ace

•No

tific

atio

n of

‘act

ive’

res

ourc

es...

•In

crea

se o

vera

ll aw

aren

ess o

f mis

sion

pers

onne

l:–

Sche

dulin

g to

ols

–Da

ta n

avig

atio

n to

ols–

Mis

sion

scor

ecar

ds–

New

s bro

adca

sts

Page 67: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

6 Au

gust

, 200

2NA

SA -

ISR

Wor

ksho

p

Even

t Not

ifica

tion

/M

essa

ging

•Tr

adeo

ffs b

etw

een

expr

essi

vene

ss a

ndsc

alab

ility

nee

d to

be

reco

ncile

d•

Hete

roge

neou

s nat

ure

of d

ata

repo

sito

ries

and

lega

cy s

yste

ms

mak

esin

stru

men

ting

them

diff

icul

t•

Need

for

a co

mpl

ete

and

robu

st d

omai

nm

odel

6 Au

gust

, 200

2NA

SA -

ISR

Wor

ksho

p

Even

t Not

ifica

tion

/M

essa

ging

•Re

mot

e fil

e sy

stem

s can

be

mon

itor

ed a

ndlo

gged

wit

h ut

iliti

es su

ch a

s nf

slog

d, a

udit

d,et

c.•

Som

e da

taba

ses s

uppo

rt st

ored

pro

cedu

res

•Pu

sh r

athe

r th

an p

ull i

nfor

mat

ion

whe

reve

rpo

ssib

le to

min

imiz

e lo

ad o

n sy

stem

and

netw

ork

6 Au

gust

, 200

2NA

SA -

ISR

Wor

ksho

p

A Si

mpl

e (?

) Exa

mpl

e Met

adat

abas

e /

File

Sys

tem

Clie

nt P

ort

al

Pub/

Sub

file

exch

ange

DB Q

uery

Too

ls

Prog

ram

mat

ic A

PI

Lo

ader

daem

on

Ana

lyst

s N

oteb

ook

Port

let

Web

Site

s

Ser

ver

Co

de

JMS

6 Au

gust

, 200

2NA

SA -

ISR

Wor

ksho

p

Chan

ge A

war

enes

sDa

shbo

ard

•Ac

tive

res

ourc

es a

reth

e pr

imar

y ob

ject

s of

inte

rest

•Ea

sy a

cces

s to

reso

urce

s•

Min

imal

ly in

vasi

ve•

Peri

pher

al a

war

enes

s•

User

pre

fere

nces

•Su

bscr

ipti

on p

ersi

sten

ce–

Rees

tabl

ishe

s se

ssio

nsw

hen

user

s sta

rt th

eir

shift

•No

tific

atio

n pe

rsist

ence

–Ke

eps u

sers

up

to d

ate

wit

h an

y ch

ange

s sin

ceth

ey la

st lo

gged

on

Page 68: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

6 Au

gust

, 200

2NA

SA -

ISR

Wor

ksho

p

Futu

re A

ctiv

itie

s

•Fi

nish

the

impl

emen

tati

on o

ver

the

next

yea

r•

Colle

ct u

ser

feed

back

on s

yste

m–

Valid

atio

n of

GUI

desi

gn–

Com

pari

sons

wit

hot

her

mis

sion

s

•W

orkf

low

ana

lysi

s of

Ops

envi

ronm

ent

•De

velo

p w

eb s

ervi

ces

for

mob

ile a

ndha

ndhe

ld d

evic

es•

Exte

nd s

yste

m to

supp

ort m

ulti

ple

site

s

Page 69: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

UCI -

Red

mile

s

Usin

g Ev

ent N

otifi

cati

on S

erve

rs to

Sup

port

Awar

enes

sDa

vid

Redm

iles

Asso

ciat

e Pr

ofes

sor

Clei

dson

R. B

. De

Souz

a, S

anth

oshi

D. B

., Ro

bert

o S.

S. F

ilho

Grad

uate

Stu

dent

Res

earc

hers

Max

Sla

byak

Unde

rgra

duat

e St

uden

t Res

earc

her

Mic

hael

Kan

tor

(PhD

’01)

Post

Doc

tora

l Stu

dent

UCI -

Red

mile

s

Awar

enes

s an

d Co

llabo

rati

on

•In

gen

eral

, aw

aren

ess m

eans

hav

ing

info

rmat

ion

abou

t oth

er a

ctiv

itie

s th

at a

ffect

sa

pers

on’s

ow

n w

ork

[DB9

2].

•So

me

type

s of

aw

aren

ess

–Gr

oup

awar

enes

s•

Who

is a

roun

d an

d w

hat r

ough

ly a

re th

ey d

oing

?•

e.g.

, im

ages

rel

ayed

in P

orth

oles

–Pr

ojec

t aw

aren

ess

•W

hat k

now

ledg

e af

fect

s (e

.g.,

deci

sion

s ar

e m

ade

abou

t)pr

ojec

t con

tent

?•

e.g.

, sub

scri

ptio

ns in

Kno

wle

dge

Depo

t–

Appl

icat

ion

awar

enes

s•

Wha

t’s

goin

g on

in r

unni

ng s

oftw

are?

•E.

g., a

rchi

tect

ural

gau

ge

UCI -

Red

mile

s

Exam

ple:

Gro

up A

war

enes

s th

roug

ha

Port

hole

s Sy

stem

[GLT

99]

•Sh

ows p

rese

nce

of c

olla

bora

tors

and

rele

vant

spac

es

•Us

es v

isua

l cue

s(s

uch

as th

isth

eate

r st

yle)

toco

nden

se v

iew

acco

rdin

g to

rele

vanc

e.

Gir

gens

ohn

/ Lee

/ T

urne

r 99

Loo

king

for

job!

!!

UCI -

Red

mile

s

Expl

aine

r [R

ed93

]

•Ea

rly

Hype

rmed

iafo

r hu

man

lear

ning

by

exam

ple

•Ex

trem

ehy

per-

gran

ular

ity

•In

crem

enta

l[M

inim

al]

Expl

anat

ion

•Hu

man

Vari

abili

tyRe

duce

d

Page 70: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

UCI -

Red

mile

s

Argo

/UM

L [R

HR98

] [RR

00]

Whi

le d

esig

ners

wor

k, d

esig

ncr

itic

s ana

lyze

the

desi

gn a

ndpr

ovid

e he

lpfu

lad

vice

. Th

e “t

odo

” lis

t (lo

wer

left

) pre

sent

s and

orga

nize

s ad

vice

abou

t pen

ding

desi

gn c

hang

es.

UCI -

Red

mile

s

EDEM

– E

xpec

tati

on-D

rive

n Ev

ent

Mon

itor

ing

[HR9

8]Ag

ents

mon

itor

app

licat

ion

even

ts

And

opti

onal

ly fa

cilit

ate

feed

back

.

UCI -

Red

mile

s

Know

ledg

e De

pot [

KRZ9

7]K

anto

r, R

edm

iles,

Zim

mer

man

n 97

Loo

king

for

job!

!!

UCI -

Red

mile

s

Gaug

es fo

r Ap

plic

atio

n Aw

aren

ess

[SBR

02] Ar

chit

ectu

ral M

essa

ge P

assi

ng M

onit

or

Page 71: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

UCI -

Red

mile

s

a) P

rogr

ess B

ar

b) B

ar C

hart

f) S

igna

l

c) L

ine

Grap

hd)

Clo

cke)

Loa

d

Som

e M

ore

Gaug

es [S

BR02

] UCI -

Red

mile

s

Acti

vity

The

ory

and

Desi

gn [R

ed02

a][C

SR02

]•

Iden

tify

the

stak

ehol

ders

inth

e pr

oces

s.•

Help

ens

ure

that

tech

nolo

gy is

des

igne

d to

the

user

s, o

ther

stak

ehol

ders

, and

the

orga

niza

tion

.•

Wor

k to

war

d al

ignm

ent

betw

een

user

s’ r

ewar

dsan

d bu

sine

ss’ n

eeds

.•

Wor

k to

war

d al

ignm

ent

betw

een

the

rew

ards

of

the

desi

gner

s of t

he d

evic

ean

d bo

th th

e en

d us

ers’

and

busi

ness

’ nee

ds.

SUB

JEC

T

RU

LE

SC

OM

MU

NIT

Y

DIV

ISIO

NO

F L

AB

OR

OB

JEC

T

ME

DIA

TIN

G A

RT

IFA

CT

S

OU

TC

OM

E

Eng

estr

öm [

Eng

90]

Act

ivit

y Sy

stem

Mod

el

UCI -

Red

mile

s

Them

e -

Awar

enes

s In

form

atio

n

•Ar

go/U

ML

–Cr

itic

s no

tify

end

use

rs o

f des

ign

prob

lem

s

•ED

EM–

Agen

ts m

onit

or a

pplic

atio

n us

age

and

repo

rt d

ata

to d

esig

ners

•Kn

owle

dge

Depo

t–

End

user

s su

bscr

ibe

to e

mai

l cat

egor

ies

/ to

pics

•Ga

uges

–“P

robe

s” (i

nstr

umen

tatio

n) s

houl

d co

llect

spe

cific

info

rmat

ion

abou

t dis

trib

uted

app

licat

ions

’ beh

avio

r an

d pe

rfor

man

ce a

ndsu

pply

this

info

rmat

ion

to n

arro

w-p

urpo

sed

“Gau

ges”

(vis

ualiz

atio

ns)

•Ac

tivi

ty T

heor

y–

Man

y pe

ople

and

thin

gs a

ffect

the

achi

evem

ent o

f an

obje

ctiv

e.

UCI -

Red

mile

s

Even

t Not

ifica

tion

Ser

vice

•In

form

atio

n So

urce

s

•In

form

atio

nCo

nsum

ers

(Gau

ges)

•Ev

ent N

otifi

cati

onSe

rver

s

•Ev

ent S

ervi

ces

–Pu

blis

h (P

ost)

–No

tify

(Rec

eive

)–

Subs

crib

e

Info

rmat

ion

sour

ceIn

form

atio

n so

urce

Info

rmat

ion

cons

umer

NO

TIF

ICA

TIO

N S

ER

VE

RN

OT

IFIC

AT

ION

SE

RV

ER

PUBLISH

Info

rmat

ion

cons

umer

Info

rmat

ion

cons

umer

NOTIFY

NOTIFY

NOTIFY

S U B S C R I B E

S U B S C R I B E

S U B S C R I B E

Page 72: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

UCI -

Red

mile

s

Usin

g th

e CA

SS S

trat

egy

Info

rmat

ion

Sour

ce: A

WA

CS

Sim

ulat

or

Not

ific

atio

n se

rver

: CA

SSIU

S

Gau

ge 1

Gau

ge 2

Gau

ge 3

Gau

ge n

UCI -

Red

mile

s

Not

ific

atio

nS

erve

r

Phys

ical

Env

iron

men

ts

(Por

thol

es, A

ctiv

e B

adge

s)C

ompl

ex to

ols:

Por

thol

es

Sim

ple

desk

top

wid

gets

Mob

ile A

war

enes

s

Am

bien

t Fix

ture

s [i

shii]

Shar

ed A

rtif

acts

(Pap

ers,

spr

eads

heet

s, d

atab

ases

)

Vir

tual

Env

iron

men

ts(M

UD

s, c

hat r

oom

s)

Aw

aren

ess

Too

lsIn

form

atio

n So

urce

s

Mob

ile W

orke

rs(C

usto

mer

Rep

, Sup

port

Sta

ff)

Wri

ter

Dev

elop

erPr

inte

rD

ocum

ent

UCI -

Red

mile

s

CASS

IUS

serv

erAW

ACS

Sim

ulat

or

Gaug

es

CASS

IUS

[KR0

1]In

terc

hang

eabi

lity

and

the

Deta

il-Va

riet

yTr

adeo

ff

UCI -

Red

mile

s

How

eas

y is

it to

prov

ide

inte

grat

edaw

aren

ess?

Page 73: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

UCI -

Red

mile

s

Issu

es

•Ho

w g

auge

s ar

e no

tifie

d ab

out t

he e

vent

s or

The

Issu

e of

Push

vs.

Pul

l Arc

hite

ctur

es b

etw

een

the

noti

ficat

ion

serv

eran

d th

e ga

uges

?

•Ho

w p

ower

ful i

s th

e su

bscr

ipti

on s

ervi

ce fo

r ea

chno

tific

atio

n se

rver

? Wha

t are

the

type

s of

mat

chin

gsu

ppor

ted?

•W

hich

obj

ects

can

send

eve

nts t

o th

e no

tific

atio

n se

rver

, or

Issu

es a

bout

eve

nt a

nd o

bjec

t reg

istr

atio

n?

•W

hich

met

a-in

form

atio

n is

ass

ocia

ted

to th

e ev

ents

sen

t to

the

noti

ficat

ion

serv

er o

r Ho

w p

ower

ful a

re th

e ev

ents

?

•W

hat a

re th

e in

terf

aces

impl

emen

ted

by th

e no

tific

atio

nse

rver

s, o

r ho

w e

asy

to c

hang

e fr

om a

not

ifica

tion

ser

ver

toan

othe

r?

UCI -

Red

mile

s

Conc

lusi

ons

•Th

e av

aila

ble

soft

war

e (e

.g.,

notif

icat

ion

serv

ers)

for

build

ing

syst

ems

inco

rpor

atin

gaw

aren

ess

info

rmat

ion

is v

ery

low

-lev

el a

ndpr

one

to d

esig

n an

d pr

ogra

mm

ing

erro

rs.

•Su

ppor

t for

com

plex

, het

erog

eneo

us s

yste

ms

(e.g

., m

ulti

ple

diffe

rent

, ser

vers

, inf

orm

atio

nso

urce

s, a

nd c

onsu

mer

s) v

arie

s, c

urre

ntly

desi

gner

s m

ust e

xpen

d ex

tra

effo

rt to

des

ign

for

chan

ge a

nd fl

exib

ility

.•

The

goal

is u

sabi

lity—

we

seek

to p

rovi

de a

set

of u

sabl

e an

d us

eful

ser

vice

s an

d st

rate

gy to

prov

ide

usab

le a

nd u

sefu

l aw

aren

ess

capa

bilit

ies

for

appl

icat

ions

.

UCI -

Red

mile

s

In o

ther

wor

ds …

•A

grea

ter

vari

ety

of a

war

enes

s dev

ices

…–

Crit

ics

–Us

abili

ty e

xpec

tati

ons

–Em

ail n

otifi

cati

ons

–Ap

plic

atio

n ga

uges

–Se

curi

ty a

nd p

riva

cy g

auge

s?–

Port

hole

s?

… in

tegr

ated

thro

ugh

an e

vent

not

ifica

tion

infr

astr

uctu

re

UCI -

Red

mile

s

Refe

renc

es

Page 74: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

UCI -

Red

mile

s

Refe

renc

es

•Gi

rgen

sohn

, A.,

Lee,

A.,

Turn

er, T

. Bei

ng in

Pub

lic a

nd R

ecip

roci

ty: D

esig

n fo

r Po

rtho

les

and

User

Pre

fere

nce,

In H

uman

-Co

mpu

ter

Inte

ract

ion

INTE

RACT

'99,

IOS

Pres

s, p

p. 4

58-4

65, 1

999.

•Re

dmile

s, D

. Red

ucin

g th

e Va

riab

ility

of P

rog

ram

mer

s’ P

erfo

rman

ce T

hrou

gh E

xpla

ined

Exa

mpl

es, H

uman

Fac

tors

inCo

mpu

ting

Sys

tem

s, IN

TERC

HI ‘9

3 Co

nfer

ence

Pro

ceed

ings

(Am

ster

dam

, The

Net

herl

ands

), AC

M, A

pril

1993

, pp.

67-

73.

•Ro

bbin

s, J

., Hi

lber

t, D.

, Red

mile

s, D

. Ext

endi

ng D

esig

n En

viro

nmen

ts to

Sof

twar

e Ar

chit

ectu

re D

esig

n, A

utom

ated

Sof

twar

eEn

gine

erin

g, V

ol. 5

, No.

3, J

uly

1998

, pp.

261

-290

•Ro

bbin

s, J

., Re

dmile

s, D

. Cog

niti

ve S

uppo

rt, U

ML

Adhe

renc

e, a

nd X

MI I

nter

chan

ge in

Arg

o/UM

L, In

form

atio

n an

d So

ftw

are

Tech

nolo

gy, V

ol. 4

2, N

o.2,

Jan

uary

200

0, p

p.79

-89.

•Hi

lber

t, D.

, Red

mile

s, D

. An

Appr

oach

to

Larg

e-Sc

ale

Colle

ctio

n of

App

licat

ion

Usag

e Da

ta O

ver

the

Inte

rnet

, Pro

ceed

ings

of

the

Twen

tiet

h In

tern

atio

nal C

onfe

renc

e on

Sof

twar

e En

gine

erin

g (I

CSE

‘98,

Kyo

to, J

apan

), IE

EE C

ompu

ter

Soci

ety

Pres

s,Ap

ril 1

9-25

, 199

8, p

p. 1

36-1

45.

•Ka

ntor

, M.,

Zim

mer

man

n, B

., Re

dmile

s, D

. Fro

m G

roup

Mem

ory

to P

roje

ct A

war

enes

s Th

roug

h Us

e of

the

Kno

wle

dge

Depo

t,Pr

ocee

ding

s of t

he 1

997

Calif

orni

a So

ftw

are

Sym

posi

um (I

rvin

e, C

A), U

CI Ir

vine

Res

earc

h Un

it in

Sof

twar

e, Ir

vine

, CA,

Nove

mbe

r 7,

199

7, p

p. 1

9-26

.•

Kant

or, M

., Re

dmile

s, D

. Cre

atin

g an

Infr

astr

uctu

re fo

r Ub

iqui

tous

Aw

aren

ess,

Eig

ht IF

IP T

C 13

Con

fere

nce

on H

uman

-Co

mpu

ter

Inte

ract

ion

(INT

ERAC

T 20

01, T

okyo

, Jap

an),

July

200

1, p

p. 4

31-4

38.

•de

Sou

za,C

.R.B

., Ba

save

swar

a, S

.D.,

Redm

iles,

D. U

sing

Eve

nt N

otifi

cati

on S

erve

rs t

o Su

ppor

t App

licat

ion

Awar

enes

s, to

appe

ar in

the

Proc

eedi

ngs

of t

he IA

STED

Inte

rnat

iona

l Con

fere

nce

on S

oftw

are

Engi

neer

ing

and

Appl

icat

ions

(Cam

brid

ge,

MA)

, Nov

embe

r 20

02, t

o ap

pear

.•

Colli

ns, P

., Sh

ukla

, S.,

Redm

iles,

D. A

ctiv

ity

Theo

ry a

nd S

yste

m D

esig

n: A

Vie

w fr

om th

e Tr

ench

es, C

ompu

ter-

supp

orte

dCo

oper

ativ

e W

ork,

Spe

cial

Issu

e on

Act

ivit

y Th

eory

and

the

Prac

tice

of D

esig

n, 2

002,

pp.

??-

??.

•Y.

Eng

estr

öm. W

hen

is a

Too

l? M

ulti

ple

Mea

ning

s of A

rtifa

cts i

n Hu

man

Act

ivit

y, C

hapt

er 8

of L

earn

ing,

Wor

king

and

Imag

inin

g, P

aine

ttu

Kirj

apai

no O

ma

Ky:

ssä,

Jyv

äsky

läss

ä, 1

990,

pp.

171

-195

.•

Redm

iles,

D. I

ntro

duct

ion

to th

e Sp

ecia

l Iss

ue o

f CSC

W o

n Ac

tivi

ty T

heor

y an

d th

e Pr

acti

ce o

f Des

ign,

Com

pute

r-su

ppor

ted

Coop

erat

ive

Wor

k, S

peci

al Is

sue

on A

ctiv

ity

Theo

ry a

nd th

e Pr

acti

ce o

f Des

ign,

acc

epte

d an

d to

app

ear,

200

2.•

Redm

iles,

D. S

uppo

rtin

g th

e En

d Us

ers’

Vie

ws,

The

Adv

ance

d Vi

sual

Inte

rfac

es In

tern

atio

nal W

orki

ng C

onfe

renc

e (A

VI 2

002,

Tren

to, I

taly

), M

ay 2

2-24

, 200

2, in

pre

ss.

UCI -

Red

mile

s

Extr

a Sl

ides

UCI -

Red

mile

s

Ethn

ogra

phy

+ SE

:Ac

tivi

ty T

heor

y

SUB

JEC

T

RU

LE

SC

OM

MU

NIT

Y

DIV

ISIO

NO

F L

AB

OR

OB

JEC

T

ME

DIA

TIN

G A

RT

IFA

CT

S

OU

TC

OM

E

•Su

bjec

ts a

re p

eopl

e w

ithi

n a

com

mun

ity

that

wor

k w

ith

obje

cts

to o

btai

n an

out

com

e.

•Ru

les

dete

rmin

e th

e be

havi

orof

sub

ject

s an

d th

eir

inte

ract

ion

wit

h ob

ject

s.

•Di

visi

on o

f lab

or d

eter

min

esw

ho p

erfo

rms

wha

t act

ions

.

•M

edia

ting

art

ifact

s he

lpsu

bjec

ts m

anip

ulat

e ob

ject

san

d ob

tain

out

com

es.

•M

edia

ting

art

ifact

s ha

ve a

hist

ory

wit

h re

spec

t to

aco

mm

unit

y.

Eng

estr

öm A

ctiv

ity S

yste

m M

odel

Page 75: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

Part 2: Follow-up Materials

Page 76: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

Citations for Follow-Up Materials

de Souza, C.R.B., Penix, J., Sierhuis, M., Redmiles, D. Analysis of Work Practices of a Collaborative Software Development Team, International Symposium on Empirical software Engineering (ISESP 2002, Nara, Japan), V. II, October 2002. Kantor, M., Redmiles, D. CASSIUS: Designing Dynamic Subscription and Awareness Services, Workshop on Ad hoc Communications and Collaboration in Ubiquitous Computing Environments, ACM Conference on Computer Supported Cooperative Work (CSCW 2002— New Orleans, LA), November 2002, available at http://www.cs.uoregon.edu/research/wearables/cscw2002ws/papers/Kantor.pdf. Silva Filho, R.S., Slabyak, M., Redmiles, D.F. A Web-based Infrastructure for Group Awareness based on Events, Workshop on Network Services for Groupware, ACM Conference on Computer Supported Cooperative Work (CSCW 2002—New Orleans, LA), November 2002, available at http://awareness.ics.uci.edu/~rsilvafi/papers/Workshops/CSCW2002-workshop.pdf. de Souza, C.R.B., Redmiles, D.F., Mark, G., Penix, J., Sierhuis, M. Management of Interdependencies in Collaborative Software Development, ACM-IEEE International Symposium on Empirical Software Engineering (ISESE 2003), September 2003. de Souza, C.R.B., Redmiles, D.F., Opportunities for Extending Activity Theory for Studying Collaborative Software Development, Workshop on Applying Activity Theory to CSCW Research and Practice, in conjunction with the 8th European Conference of Computer-Supported Cooperative Work (ECSCW 2003—Helsinki, Finland), September 2003, available at http://www.uku.fi/atkk/actad/ecscw2003-at/desouza+redmiles.pdf. de Souza, C.R.B., Redmiles, D.F., ‘Breaking the Code’, Private and Public Work in Collaborative Software Development, Supplement Proceedings of the 8th European Conference of Computer-Supported Cooperative Work (ECSCW 2003—Helsinki, Finland), September 2003. de Souza, C.R.B., Redmiles, D., Dourish, P., ‘Breaking the Code’, Private and Public Work in Collaborative Software Development, International Conference on Supporting Group Work (Group 2003—Sanibel Island, FL), November 2003.

Page 77: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

Analysis of Work Practices of a Collaborative Software Development Team

Cleidson R. B. de Souza1,3 John Penix2 Marteen Sierhuis3 David Redmiles1

1Department of Information and Computer Science

2Computacional Sciences Division

3Research Institute for Advanced Computer Science

University of California, Irvine Irvine, CA, USA

NASA Ames Research Center Moffett Field, CA, USA

NASA Ames Research CenterMoffett Field, CA, USA

Abstract

This paper reports preliminary results of a field study of a software development team. This team develops a suite of tools called CTAS, designed to help air traffic controllers manage complex air traffic flows at large airports. We observed that CTAS developers employ two main tools for coordinating their work: a configuration management system and a bug tracking system. These tools allow them to coordinate their activities supporting a high level of parallel development. Communication and cooperation among developers with different roles is achieved using product requests. Future results from our study will pro-vide insights into the complexities of cooperative software development and help to design tools to support it. Keywords: Field Study, Empirical Studies, CSCW, Coop-erative Work, Cooperative Software Development.

1. Introduction✝ Software development is a typical cooperative activity

where experts from different domains are necessary. In-deed, developers of large systems spend about 70% of their time working with others[10]. At NASA, this prob-lem is much more difficult because of the increasing com-plexity of the software being developed. In fact, several efforts to improve the software engineering practices through the dissemination of best practices and infusion of new technologies are taking place at NASA. However, these efforts will only be effective if they address the real ways that people work together to develop software.

Gerson and Star[1] observe that no matter how formal and well-defined a process may seem, there is always a set of informal practices by which individuals and groups monitor and maintain the process, keep it on track, recog-nize opportunities for action and the necessity for inter-vention or deviation. In order to understand these prac-tices, the first author conducted an eight-week qualitative study of a software development team using non-

✝ The authors would like to thank the CTAS group for their help during the fieldwork and the NASA Research Grant NAG2-1555 for the financial support. The first author would also like to thank CAPES (grant BEX 1312/99-5) for the financial support. He is also a faculty at the Department of Informatics, Federal University of Pará, Belém, Pará, Brazil.

participant observation and informal interviews for data collection. This paper reports our initial findings.

2. The Setting

The group observed develops an application called CTAS (Center TRACON Automation System). CTAS is a suite of advisory tools designed to help air traffic control-lers manage the complex air traffic flow at large airports. The source code is developed in C and C++ and is about 1,000 K lines long. The development team is divided in two groups: developers and the verification and validation (V&V) staff. Developers are responsible for writing new code, for performing bug fixing and enhancements, and so on. There are 25 developers, including researchers that write their own code. The V&V staff is responsible for testing the software and reporting, keeping a running ver-sion for demonstration purposes and maintaining user manuals. This group is composed of six engineers.

3. The Methods

The first author spent eight weeks at the field site. We adopted non-participant observation[3] and informal in-terviews[5]. In addition to field notes generated by the observations and interviews, we collected software devel-opment tool manuals, ISO 9000 procedures, product re-quests for software changes (PR’s), and e-mails ex-changed regarding the data and documents.

Initial data collection was centered on understanding the daily work of the developers. During this stage, it be-came clear that the configuration management (CM) and the bug tracking tools combined with e-mail communica-tion were central to the coordination of activities. These results are not surprising based on previous studies by Grinter[2]. Therefore, later data collection was focused on understanding exactly how developers use these tools to perform their work. The interviews focused on observing and understanding the usage patterns of these tools.

4. Initial Findings

An important aspect in fieldwork is the interplay be-tween data collection and analysis: data collection is di-rected by on-going analysis of the data[9]. Our initial re-

Page 78: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

sults of this analysis are described in this section. Further analysis is still necessary to obtain more reliable results. 4.1 Parallel Development

We noted that software developers often engage in par-allel development. This confirms the results from Perry et al.[6], but contrasts with the groups studied by Grinter[2], where developers avoided this situation. Parallel develop-ment usually happens when more than one developer has to make changes in the same file. Conflicts might occur when one of these developers check the file back in the repository, because the current version of other developer will be outdated and his modifications might be based on the code that was modified. To update his version, one only needs to merge the other changes back in his code. According to the developers, these conflicts are infrequent and not likely to occur. We plan to use log of the tool us-age to test this assumption.

In order to avoid these conflicts, the group adopted the convention that before checking one file in, a developer must send an e-mail to their mailing list describing the files that were changed and the product request associated with the changes. Developers even go to their co-worker’s office to talk about the changes that they made or browse the CM repository in order to understand these changes.

Another strategy used by the developers is the partial check-in, i.e., to check files in, even when their work is not completely finished. This strategy is employed by those who work with files that are constantly changed by several developers, which makes conflicts more likely. This helps them to prevent those conflicts and avoid sev-eral back merges to update their code.

4.2 Conventions

The team studied adopts several conventions in order to cooperate effectively. Conventions are rules or arrange-ments established in the group, common and accessible to its members[4]. Examples of such conventions are the e-mail that has to be sent before the check-in, or the naming conventions that must be followed when dealing with the CM and bug tracking tools. However, these conventions are not properly supported by their tools which is a source of complaints by the developers. For example, the creation of branches in the CM tool must be based on the PR num-ber recorded in the bug tracking tool. This creation is a cumbersome process that could be easily automated since this is a standard procedure.

4.3 Product Requests (PR’s) as Boundary Objects

During the fieldwork, we also identified that PR’s are used as boundary objects by members of the team with different roles. Boundary objects are objects both plastic enough to adapt to local needs and the constraints of the several parties employing them, yet robust enough to

maintain a common identity across sites[8]. In this group, PR’s are used by end-users liaisons, developers and testers serving for different functions. For example, when a bug is identified, it is associated with a specific PR. Whoever identified the problem is also responsible for describing ‘how to repeat’ it. The developer assigned to repair the bug uses this description to identify and fix it. After that, he must fill a field in the PR that describes how the testing should be performed to properly validate the fix. This in-formation is expanded by the test manager to create the test matrices that are later used by the testers. Another field conveys what needs to be checked by the manager when closing the PR. Therefore, it is a reminder of the aspects that need to be validated.

5. Conclusions and Future Work

Data analysis will be performed using grounded the-ory[9] and analytical tools like boundary objects and social networks. We also plan to use the Brahms work practice modeling and simulation method[7], in order to simulate the impact of inserting collaborative tools into the devel-opment activity. We are particularly interested in under-standing the consequences of the parallel development identified in this group: reasons why these developers en-gage in parallel development might be social, organiza-tional, technological or combinations there of. It is impor-tant to identify and understand these reasons so that this practice might be improved, made more effective or safely adopted by other development groups. Initial results indi-cate that the branching strategy employed in the CM tool properly supports such development, but this is still an open question. We collected log usage data and plan to apply statistical techniques to validate this hypothesis.

6. References [1] Gerson, E. M. and Star, S. L. Analyzing Due Process in the Workplace.

ACM Trans. on Office Information Systems, 1986. 4(3): p. 257-270. [2] Grinter, R., Supporting Articulation Work Using Configuration Man-

agement Systems. Journal of Computer Supported Cooperative Work, 1996. 5(4): p. 447-465.

[3] Jorgensen, D. L., Participant Observation: A Methodology for Human Studies. 1989, Thousand Oaks: SAGE Publications.

[4] Mark, G., et al. Supporting Groupware Conventions through Contex-tual Awareness. in (ECSCW '97). 1997, p. 253-268.

[5] McCracken, G., The Long Interview. 1988: SAGE Publications. [6] Perry, D. E., Siy, H. and Votta, L. G. Parallel Changes in Large Scale

Software Development: An Observational Case Study. in ICSE 1998. [7] Sierhuis, M., Modeling and Simulating Work Practices. BRAHMS: a

multiagent modeling and simulation language for work system analy-sis and desing. 2001: Ponsen & Looijen BV.

[8] Star, S. L. and Griesemer, J. R. Institutional Ecology, Translations and Boundary Objects: Amateurs and Professionals in Berkeley's Museum of Vertebrate Zoology. Social Studies of Science, 1989. 19.

[9] Strauss, A. and J. Corbin, Basics of Qualitative Research: Techniques and Procedures for Developing Grounded Theory. Second. ed. 1998, Thousand Oaks: SAGE Publications.

[10] Vessey, I. and A. P. Sravanapudi, CASE Tools as Collaborative Sup-port Technologies. CACM, 1995. 38(1): pp. 83-95.

Page 79: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

CASSIUS: Designing Dynamic Subscription andAwareness Services

Michael KantorInstitute for Software ResearchUniversity of California, Irvine

Irvine, CA 92612 [email protected]

David RedmilesInstitute for Software ResearchUniversity of California, Irvine

Irvine, CA 92612 [email protected]

ABSTRACTCASSIUS is an awareness server which assists users indesigning subscriptions for maintaining awareness ofevents within work, physical and social environments.This environment is designed to work with a wide range ofawareness tools using desktop computers, mobile devicesand ambient fixtures[4]. This work investigates therequirements for creating ad-hoc subscriptions – asubscription that is created either by the user or a softwareagent, and which only exists for a brief period of time.Design guidelines are proposed that help address theproblem inherent in having users invest effort in creating asubscription which may last for only the few minutes inwhich they are in a specific location or context.

KeywordsAwareness tools, Notification servers, agents, CASSIUS,ad-hoc networks

INTRODUCTIONThe "Creating Awareness with Subscription Services"(CASS) strategy is an approach for creating a ubiquitousawareness environment [5]. The goal is to enhance people'sability to coordinate with various actors within work,physical and social environments by providing a usable anduseful environment for awareness and coordination. TheCASS strategy consists of a set of guidelines for the designof software based awareness environments.

This paper begins by presenting an overview of theseguidelines and presents our implementation of thisubiquitous awareness. We then discuss potentialextensions to the guidelines and implementation whichaddress the issues of designing an awareness environmentthat is usable for the ad-hoc creation of subscriptions formonitoring contextual information.

CASS GuidelinesThe CASS strategy consists of a set of guidelines forcreating a usable and useful awareness environment. Theseguidelines can be divided into three categories: provideaccess to diverse information, remove guesswork from

specifying the information of interest and supportflexibility in the choice of awareness styles for representingawareness information.

Provide Access to Diverse InformationResearch in awareness technologies has focused upon toolsdesigned to monitor a single source (or a narrowly definedset of sources) of awareness information. This has been thecase because the projects were either experimental,investigating a style of presenting awareness informationwith some demonstration source of awareness informationor because they were implemented within a context wherethere was only one information source that the designer wasinterested in.

In a ubiquitous awareness environment, an awareness toolhas access to diverse sources of awareness informationallowing each user to monitor the kinds of information thatmatter to them. This was done by the Elvin Tickertape [3]which could monitor discussion groups, news, email, andother notifications sent to the notification server. Tosupport awareness and coordination in diverseenvironments, we can not limit ourselves to monitoring asingle source of information. An awareness tool needs tobe able to obtain information from multiple sources ofawareness information, and integrate them together to giveusers a broader understanding of what is happening withintheir work, social or physical environments. Nor can welimit users by telling them that the only information thatthey can become aware of is news, photos of offices [1], orany other single source.

Remove Guesswork from Specifying Information of InterestHaving access to diverse sources of awareness informationwould be insufficient if the user does not know whatsources of information are available. To provide a usableawareness environment, the user needs to be informed(preferably by the awareness tools rather than by coworkers)of what sources of awareness information are available,what each source monitors, and what kinds of changes andevents can be detected. The awareness environment mustprovide users with meta information describing theawareness information accessible to the environment.

For example, if a source of information is a research paper,the sections and subsections could be monitored forchanges, as could word or page counts. As a secondexample, if users monitor for traffic problems, they need to

LEAVE BLANK THE LAST 2.5 cm (1”) OF THE LEFTCOLUMN ON THE FIRST PAGE FOR THE

COPYRIGHT NOTICE.

Page 80: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

know what freeways and roads are monitored and whatkinds of traffic events are reported so that they can choosewhich ones to monitor.

Without this meta information, any attempt by the user todescribe their interests involves a great deal of guesswork,leading at best to partial success, and more likely tofrustration. Access to this type of information is aprerequisite for a usable ubiquitous awareness environment.

Support Choice of Awareness StylesA common problem with awareness technologies is thatthey tend to provide a fixed awareness style with very littleroom for selection of alternatives. In this work, the termawareness style refers to the manner in which informationis presented to users and varies along a variety ofdimensions including:

1 . Intrusive vs. peripheral dimension: howintrusive/disruptive is the presentation of newawareness information? If the goal is to beimmediately notified of information as it occurs, anintrusive style is needed. If the goal is to maintaingeneral awareness of ones environment, utilization ofperipheral senses may be more appropriate.

2. Mobility dimension: Can the awareness tool be usedas a person's work moves through different physicaland social contexts? Can it use mobile devices, ordoes it require greater display, networking orcomputational resources? Does its presentation stylerequire the kind of user attention only availablewithin an office or control room?

3. Information Representation dimension: What kindsof information does the representation of theinformation focus upon?

4 . Cognitive Effort dimension: How much effort isneeded to interpret the representation?

To provide an awareness environment that is useful, peopleneed to not only be able to choose what information tomonitor, they need to be able to choose how to be madeaware of the information. Ideally, they would havehundreds of different awareness tools to choose from, andcould choose the one which best fits their workenvironment, work practices and their needs with respect tosome subset of the information they intend to monitor.

Further, the user should not be limited to one awarenesstool at a time, nor one awareness tool for any source ofawareness information. As a user leaves an office settingfor a meeting, lunch or other situations, the style ofawareness that suits this new environment may change andthe user needs to have the option of changing awarenesstools to match the new environment. When the user is inthe office, there may be many sources of information, onesubset of which is monitored with an intrusive tool, and asecond subset of which is monitored with a peripheralawareness tool.

CASSIUSOur implementation of the CASS strategy is calledCASSIUS (CASS Information Update Server). It is anotification server [7] which has been optimized forusability as an awareness server. Figure 1 shows a service-based architecture that CASSIUS implements, and Figure 2shows an awareness source browser and subscription editorprovided with our CASSandra toolkit.

As shown in the top two services of Figure 1, sources ofawareness information must register with the server, listingthe objects that they monitor and describing the types ofevents that can affect those objects. The awareness tool canthen support users browsing through lists of sources ofawareness information (shown in the top left column ofFigure 2). For each information source, the user can browsethrough hierarchies of objects and properties monitored bythat information source (top center column of Figure 2).When the user selects an object to monitor, lists of eventsthat can affect the object are listed, allowing the user tooptionally refine their subscription to just those types ofevents (top right column of Figure 2). A single awarenesstool can monitor as many subscriptions and informationsources as suits the user’s needs and the tool’s awarenessstyle.

Representation of Arbitrary InformationA key issue in our design involves the representation ofawareness information from any information source. If thedesigner of the awareness tool does not know in advancewhat the source of awareness information is, how can thetool represent that information? The answer is that allnotifications, regardless of what software sent them, mustbe formatted using data fields that have a fixedinterpretation shared by all CASSIUS awareness tools andinformation sources. The awareness tool need notunderstand the meaning of the data sent in a notification,but does need to understand its nature, that one fieldcontains verbal/textual descriptions of the event, anotherfield quantifies the extent of change, etc… Our designattempts to account for the information needs of a broadrange of awareness styles by using the notification fields ofTable 1.

Sample ApplicationsWe currently have a WebDAV server (CassDAV), and anAWACS simulator which send notifications to CASSIUS,

Figure 1: CASSIUS service architecture

Page 81: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

and we are working on a CVS repository and a Portholesimplementation [1]. In the case of WebDAV and CVSrepositories, the monitored objects are files and folders,which are described to the server so that the user, using aninterface such as that presented in Figure 2, can browsethrough a representation of the file system to find andselect files and folders to monitor. Notifications report onthe nature and extent of the changes or operationsperformed upon the files and folders.

In the case of Portholes, which creates awareness bydistributing photos of people at work in their offices, themonitored objects are groups and individuals, thenotifications indicate the extent of changes betweensuccessive photos, and contain a URL to the photo.

To monitor these and future sources of awarenessinformation we have a growing body of awareness toolsincluding simpleScroller (a tickertape such as wasillustrated by Elvin [3]), EventLister (a debugging tool tohelp developers see the notifications that their code sends)and BiffArray (Figure 3). We are also working on an email-based tool for sending digests of events, and are planningto adapt our mobile awareness technology calledMiniPortholes.

BiffArrayBiffArray (Figure 3) is modeled on Xbiff, a common mailawareness indicator in unix windowing environments. Itprovides a row of Biffs, where the graphics within the iconshow the most recent event to come from the objects beingmonitored. Rather than a mailbox with flag up or downgraphic (as was done in XBiff), it shows the GenericEvent

field (see Table 1) of the most recent notification to bereceived. As there are five values of Generic Event, there are5 images used to represent the different states. Each biffin the display can be configured both in what it monitorsand in what sounds it uses to notify the user [2].

Each biff can monitor a different source of information. Forexample, if you have six biffs, two could monitor files andfolders that you work with, two could monitor coworkers,one could monitor activity on a chat group, and the lastcould monitor the state of your group's printer.

Figure 3: BiffArray: Visual and Audio Icons

Mobile AwarenessMiniPortholes (Figure 4) is a mobile awareness technologyimplemented in J2ME. It allows users to subscribe tomaintain awareness of individuals such as coworkers andfamily. When this tool uses the CASSIUS server, itenables users to not only subscribe to monitor otherMiniPortholes users but also monitor all types ofCASSIUS information sources. This means that systemadministrators can monitor their servers, salesmen canmonitor their inventory, parents can monitor their children,and in fact, a parent who is a system administrator and

Figure 2: CASSandra information source browser and subscription editor

Page 82: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

salesman can monitor all three simultaneously – hopefullynot while driving.

While currently using a simplified version of CASSIUS,we hope to integrate MiniPortholes with CASSIUS soon.

AD HOC AWARENESS INFORMATIONThe high level goals of this work (the creation of aubiquitous awareness environment) are important whetherone is talking about work (awareness and coordinationamong coworkers, often distributed both spatially andorganizationally), family (awareness and coordination withfamily members scattered around a city) or a physicalenvironment (awareness of problems such as upcomingtraffic, weather, riots, parades, statistics related to asporting event you attend and special deals at your favoritecoffee shop just down the street). Effective support ofthese diverse environments requires:

1) Creation of ad-hoc subscriptions, whose life span maybe as little as 10 minutes (and where the time tospecify the subscription must be comparably short).

2) Location based awareness servers that awareness toolsconnect to on-the-fly to discover new sources ofawareness information.

The principal of what must be done remains unchanged: 1)the users must be provided with meta information tellingthem what information sources are available and what typesof information can be subscribed to within eachinformation source, and 2) users choose awareness stylesfor each type of information. However, in this new

environment, extensions are needed in how these servicesare provided.

Extension 1: Detecting and Logging InformationSourcesIn our current implementation, users can view lists ofinformation sources on the servers that they havepermission to access. If we introduce location-basedawareness servers (perhaps for sending traffic awareness topeople on freeways) and time-based awareness servers (aserver which only exists for a short peiod of time, such asfor the duration of a county fair, or a festival), the nature ofthese lists must change. To effectively provide users withlists of information sources that they can monitor, mobileawareness tools need to be able to

1. Detect the presence of awareness servers as they comeinto range,

2. Obtain lists of information sources from these serversthat users can browse through,

3. Store the lists of information sources and informationabout the awareness servers (such as that it wasrunning on a traffic monitoring server, or on somestranger’s PDA),

4 . Categorize the stored information according to thenature of the awareness server (group all trafficawareness servers together, group all PDAs runningtheir own servers together), and by the informationsource (all information sources that monitor a calendarget grouped together, regardless of what awarenessserver it came from).

Extension 2: Usability in Ad Hoc SubscriptionsA key issue in supporting ad hoc subscriptions is theefficiency with which the subscription can be created. Howmuch examination of the display and selection of optionsmust be done to allow the user to monitor traffic for thenext 15 minutes? To address these problems, additional

Figure 4: MiniPortholes, mobile awareness

Table 1: CASSIUS Notifications

Summary One line textual summary of the change

GenericEvent An event name chosen from a list ofgeneric event names. Generic event namesare shared by all information sources andenable awareness tools to understand thegeneral nature of the event even if theycan’t interpret the specific nature of theevent represented by the Event field.C u r r e n t l y s u p p o r t s “Activate”,“Deactivate”, “Increase”, “Decrease” and“Change” (the last being a catch-all forevents not fitting other categories).

Event An event name specific to the informationsource and to a type of object within theinformation source. Events reporting on asection of a document might include “TextAdded”, “Text Removed”, “SubsectionAdded”, and “Subsection Removed”.

URL Optional link to more information about anotification. Leads users to text, images orinformation source specific data files.

Person Optional person associated with event.

Place Optional place associated with event.

Object Identifies the object or property that haschanged.

AccountPath Identifies the information source.

NumericalValue Optional numerical value to quantify thechange.

Page 83: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

guidelines have been created for the design of informationsources and awareness tools.

Support a Spectrum of ComplexityLocation and time based awareness servers should providesimple options for subscribing. While it should bepossible to carefully refine long term subscriptions so thatthe awareness tool doesn’t waste time presenting unwantedinformation, support is also needed for the fast and lessprecise task of creating short-term subscriptions.

For example, a person at a county fair can subscribe to thefair’s scheduled events and be notified each time a newevent is about to begin. Or the person can be more carefuland look at the objects under “Scheduled Events” in theobject hierarchy and subscribe to only be notified whenmusical events are about to start. Both subscriptions areuseful. One requires more time and thought – time whichpeople spending all day at the fair are more likely to investthan people attending for only part of the day.

This scaling is supported in CASSIUS in the form ofnotifications that can be propagated up the object hierarchy:a notification of changes to a file in a CassDAV server willresult in notifications being sent to users monitoring thefile (users who have carefully refined their subscription),and will also propagate the notification up to usersmonitoring any of the containing folders.

One new design principal for information sources istherefore to design the hierarchy of monitored objects toexplicitly support both users who have time to carefullyrefine subscriptions by browsing deeply through objecthierarchies, and to have high level, rapidly accessibleobjects for use in creating ad hoc subscriptions.

Consistency Across Related Information SourcesSubscriptions need to be generalizable across relatedinformation sources. For example, if a user subscribes tobe notified of traffic problems while on one segment of ahighway, there is a strong likelihood that when moving toa different segment of the freeway, the user will want tosubscribe to the same or similar categories of information.

Support for this would require consistency acrossinformation sources that monitor the same types ofinformation. For example, each traffic information sourcewould have the same high level objects in its hierarchy,and only when you work your way down to monitoringcertain on/off ramps do the object hierarchies of thedifferent sources begin to look different.

Implementations of this (under the current CASSIUSarchitecture) would leave it to the awareness tool to

1) Note that two information sources are similar,

2) Determine that the user has subscribed to a certain setof information in the first information source,

3 ) Either automatically subscribe the user to similarinformation in the new information source, recommendit to the user, or make the information very easy tofind and subscribe to [6].

An alternate approach would utilize the categorization andlogging of awareness servers and information sources

discussed in the prior section. It would allow users to lookat a variety of related information sources and design asubscription that specifies what to do if informationsources of that type are encountered in the future.

CONCLUSIONWe have designed a set of guidelines for creatingubiquitous awareness environments, and provided animplementation of this environment. However, withoutstrict guidelines in the design of information sources andawareness tool that work within this environment, theenvironment will only be usable for static subscriptions;subscriptions to information sources that will be a part ofthe user’s life for an extended period of time. To make thisenvironment usable for the creation of ad hoc subscriptions,information sources need to have both high level objectsfor rapid subscription and low level objects for refinedsubscription, sources of a common type need to utilizecommon object hierarchies, and the awareness tools needto be able to log, organize and recommend subscriptionsbased on information retrieved from the awareness serversthat it encounters.

ACKNOWLEDGMENTSThis effort was sponsored by the National Aeronautics andSpace Administration (NASA) Research Grant NAG2-1555. The U.S. government is authorized to reproduce anddistribute reprints for governmental purposesnotwithstanding any copyright annotation thereon. Theviews and conclusions contained herein are those of theauthors and should not be interpreted as necessarilyrepresenting the official policies or endorsements, eitherexpressed or implied, of NASA.

REFERENCES1. Dourish, P., Bly, S. (1992) Portholes: Supporting

Awareness in a Distributed Work Group In CHI'92ACM, pp. 541-547.

2. Gaver, W. W., R. B. Smith, and T. O'Shea (1991)Effective Sounds in Complex Systems: The ARKolaSimulation In CHI'91, New Orleans.

3. Fitzpatrick, G., Mansfield, T., Arnold, D., Phelps, T.,Segall B., Kaplan, S. (1999) Instrumenting andAugmenting the Workaday World with a GenericNotification Service called Elvin In ECSCW'99Copenhagen.

4. Ishii, H., Wisneski, C., Brave, S., Dahley, A., Gorbet,M., Ullmer, B., Yarin, P. (1998) ambientROOM:integrating ambient media with architectural space InCHI’98 ACM, Los Angeles, pp. 173 - 174.

5. Kantor, M., Redmiles, D. Creating an Infrastructure forUbiquitous Awareness, Eight IFIP TC 13 Conferenceon Human-Computer Interaction (INTERACT2001Tokyo, Japan), July 2001, pp. 431-438.

6 . Maes, P. (1994) Agents that Reduce Work andInformation Overload in CACM, 37, 31-41.

7 . Ramduny, D., Dix, A. and Rodden, T. (1998)Exploring the design space for notification servers InCSCW'98 ACM, Seattle, pp. 227-235.

Page 84: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

A Web-based Infrastructure for Awareness based on Events

Roberto S. Silva Filho, Max Slabyak, David F. Redmiles Information and Computer Science, University of California, Irvine

Irvine, CA 92697-3430 USA +1 949 824 4121

{rsilvafi, mslabyak, redmiles}@ics.uci.edu

ABSTRACT The ability to be aware of other people’s work in a collabo-rative environment is essential to improving the coordina-tion of the members of a group. In this context, events originating from many sources have to be filtered and combined in order to provide the right information to the right person at the right time. As the Web becomes a popu-lar and ubiquitous way to integrate different information sources, an infrastructure that allows the filtering, combi-nation, abstraction and routing of awareness information is required. In this paper, we describe DEAL (Distributed Event Awareness Language), an event-based infrastructure and language that supports the development of awareness applications in the context of distributed collaborative en-vironments. The requirements of the infrastructure are discussed as well as the language syntax. Our motivation was to design a language and a set of usable and useful strategies and web services that provide usable and useful awareness capabilities for the development of awareness applications.

Keywords Event Notification, Distributed Awareness, Event Process-ing Languages, CSCW, Web Services.

INTRODUCTION In a broader sense, awareness refers to people’s ability to sense relevant changes in their environment. In the spe-cific context of CSCW, awareness is usually related to the perception of the direct or indirect changes in the compu-tational and social environments originated by other peo-ple in the group. These changes are usually communicated through different computational resources, devices and applications. Awareness is an essential element in distrib-uted collaborative environments. Individuals and groups of people need to be aware of what other members of the group are doing, in special, the activities of these other

members that directly or indirectly affect each individual’s work. For example, a manager needs to be aware of the progress of the tasks assigned to her subordinates, the presence of other members of the group in the workplace in order to see a demo, the arrival of a co-worker in a re-mote site, in order to start a chat session and so on. These activities can be modeled as events, atomic asynchronous messages that represent changes in the computational and social contexts.

The CSCW literature describes many ways to provide awareness in a collaborative and potentially distributed work environment [15]. Some examples include periodic pictures of a co-worker’s office as provided by NYNEX Portholes [16], notifications about changes in shared arti-facts, provided by the BSCW system [17], application monitoring gauges as described in [5] and so on. In order to integrate and combine the information coming from those different sources, allowing the processing, routing and filtering of such information, an event processing in-frastructure is usually adopted [3].

Today’s Web Services infrastructure focuses on providing a common set of protocols for the development of web ap-plications, defining a web-based middleware for the devel-opment and integration of distributed web services [19]. In this infrastructure, the SOAP protocol is used as a remote procedure call mechanism for services communication; the UDDI implements a service location mechanism and the WSDL allows the description of the interfaces of the web services. This infrastructure alone, however, does not pro-vide all the functionality necessary for the implementation of more sophisticated web applications [11]. In this con-text, event-processing services supplement this basic infra-structure providing the ability to integrate, process, select and route events originated from different nodes in the Web. In an event notification service, producers and con-sumers of information are separated by an event middle-ware that integrates these two parties, allowing different consumers to subscribe to information coming from many event producers. This event routing layer decouples event producers from their consumers, allowing the dynamic addition and removal of these components in the system.

LEAVE BLANK THE LAST 2.5 cm (1”) OF THE LEFT COLUMN ON THE FIRST PAGE FOR THE COPY-

RIGHT NOTICE.

Page 85: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

Specifically, previous work analyzes the use of event noti-fication servers in CSCW applications [4].

In this paper, we present DEAL (the Distributed Event Awareness Language), an event-notification infrastructure and language to support the development of distributed awareness applications for the Web. The DEAL environ-ment extends the basic functionality provided by event notification servers such as Khronika [9], CASSIUS [8], CORBA Notification Service [12], ELVIN [6] and SIENA [1] to cope with the richer set of requirements of awareness applications. This is accomplished by the use of a powerful and usable event language that allows the definition, proc-essing, combination, filtering and routing of events com-ing from heterogeneous sources (programs, applications, components, people, mobile devices and so on). The DEAL language syntax and resources were inspired in the features provided by event processing languages such as GEM [10], Yeast [2], EDEM [7] and READY [18]. Us-ability and simplicity with expressiveness were some of the principles considered in the design of the language. In special, the following scenario provides a set of require-ments and motivations that guided the design of the lan-guage and infrastructure.

SCENARIO AND MOTIVATION Consider an IT company with many branches in different cities over the country or even the world. Many people cooperate in different projects at the same time, perform-ing different roles (manager, programmer, tester, designers and so on). Each project usually is carried on by a dynamic group of people whose interaction varies according to the group’s current focus. At the beginning of a project, for example, designers and project managers are more active, whereas more towards the end, the activities concerning programmers, engineers and testers are more prominent. The work can also be split between different branches of the company. One branch, for example, deals with the product support while the other deals with the design and implementation. People join and leave groups as neces-sary. The group work is usually supported by different tools, such as configuration management repositories, word processing, CAD, databases and so on. These tools are used to produce and manage the evolution of the arti-facts being developed, as well as their meta-information (documentation, specifications, metrics and so on). In this scenario, different people need to be aware of other group member’s activities.

An indirect way of being aware of other people or group activities is to gauge the evolution of the artifacts they pro-duce or modify. The kind of information one is interested in depends on her role in the organization. For example, programmers and engineers may want to be notified when some modules in a software project repository are ready for integration or when some change request is issued and consolidated in a defect report database. Managers, on the

other hand, can gauge the activity in certain project by visualizing a graph with the number of changes in the pro-ject repository over the day.

In this dynamic work environment, mobility and heteroge-neity is another concern. Computers are no longer limited to users’ desktops at their workplaces; instead they are increasingly mobile and ubiquitous. Users can interact with a collection of computational devices ranging from non-stop servers, workstations, and motion sensors to portable devices as laptops, mobile phones and PDAs. In this mobile environment, awareness applications have to adjust their intrusiveness and information delivery policies to comply with different contexts (time, place, physical, organizational, administrative roles so on). For example, managers may want to be constantly informed about the progress of their projects using their portable computers. The level of attention required by the user, however, is dependent on her context. For example, one may want to be immediately notified about a meeting when she is in her office. This same information, however, may not be very important when she is at home or on a business trip.

Information persistency is another important issue. A man-ager, coming from a business trip, for example, may want to gauge the progress of a project by analyzing the event history of the preceding week. This requires having a way to store events during a certain period of time so they can be delivered when the user’s computer is on-line again.

Not all events, however, should be stored for further analy-sis. People usually do not want to be notified about transi-tory and ordinary events. For example, the arrival of some-one in her office or the temporary unavailability of a printer, that ran out of paper. This requires a mechanism to discard old events and filter irrelevant information.

Finally, meaningful events are usually a result of or are expressed as a combination of more ordinary events whose occurrence usually obeys some predefined patterns. For example, the turning on of the light of someone’s office followed by the typing of some characters in the computer keyboard may indicate the arrival of this person at her workplace.

REQUIREMENTS FOR AWARENESS APPLICATIONS The previous scenario illustrated many features that our event-notification infrastructure must support such as the integration of heterogeneous event sources, the need to compose events, the ability to filter information, events expiration time and mobile applications support. More-over, the appropriate delivery of an event depends on the user context, timing constraints, roles and priorities. The notion of groups is also required.

Functional Requirements

Page 86: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

To cope with these requirements, the DEAL event lan-guage and infrastructure was defined to provide the follow-ing features.

Subscriptions: Logical expressions that provide the ability to select a subset of events based on their content or type. They allow the routing of events to the right person at the right time, with the appropriate priorities based on the user context, group, role and other properties.

Abstraction: A mechanism that combines different events into higher-level notifications in order to provide more meaningful awareness information. Event abstraction can use the following strategies:

• Pattern matching: The ability to subscribe to event sequences and patters. It is the basis for abstraction and reduction. It may detect events in a specific order or out of order.

• Reduction: Translates sets of repetitive events, ex-pressed as a pattern matching expression, into local state variables or higher-level events. This is specially required in monitoring applications, to prevent event flooding. A reduction consists in creating a new event indicating that an event pattern was detected.

• Aggregation: Is a more elaborated case of reduction in which the event generated is a composition of some of the attributes of the events in the detected pattern. Events are combined in a higher-level event which summarizes the content of the events in the pattern expression.

Event Condition Action (ECA) Rules: Special types of subscriptions that allow the execution of external applica-tions or general actions whenever a logical condition is evaluated to true. For example: an action can add or re-move subscriptions or even other rules; generate aggre-gated events, change policies, and invoke external applica-tions in response to an event pattern detection. Rules can be used to evolve the behavior of the application in re-sponse to changes in the user environment.

Time constraints: Express Delivery intervals, time to live, as well as timing and temporal relations. Some events need to be detected within certain time interval in order to have some correlation. Transitory conditions may also be ex-pressed by events with expiration time.

Subscription Priorities: Subscriptions are dependent on global, group and local contexts, allowing the adjustment of the information delivery according to the needs of the information consumers (or users).

Groups: Subscriptions and rules can be associated to groups, which are first class entities in DEAL language. This allows the broadcast of events, the definition of shared policies and contexts.

Hierarchical description of event sources: One of the neglected issues in some event infrastructures is the ability to answer the question “What can I subscribe to?” and “Which events are produced by each source?” The DEAL infrastructure provides the ability to browse through differ-ent event sources and to identify their events by keeping meta-information about which event sources are available and what events they produce.

Quality of Service Requirements Apart from the main language features, the DEAL infra-structure allows the specification of different qualities of service and policies as follows.

Persistence of events and subscriptions: Events and sub-scriptions are persistent by default, allowing the support for mobile applications and pull delivery policy.

Mobility support: Clients are allowed to explicitly indi-cate their intent to move to a new location, allowing the infrastructure to perform the necessary migration opera-tions such as the update event routing tables, the buffering of events or change the current qualities of service. This is performed by the move-in/move-out commands. Apart from these explicit commands, the infrastructure deals gracefully with the sudden disconnection of the event sources consumers.

Event Delivery Policies: During the specification of sub-scriptions and filters, one can specify which delivery policy to adopt, whether pull or push.

Security Policies: Authentication of groups, consumers and producers allow the event-processing infrastructure to prevent unauthenticated clients from receiving unauthor-ized events.

THE EVENT LANGUAGE This section describes the DEAL event language. Exam-ples are presented to illustrate its use and syntax.

Logical Expression Operators: >, <, >=, <=, == as well as starts_with and ends_with.

• MyType:ev1.name starts_with “Ro”

Subscriptions: Defined using the subscribe keyword, and removed by the unsubscribe command. Whenever a sub-scription is evaluated to true, a notification is produced having the list of events used in the subscription expres-sion.

• subscribe mySub SomeType:ev1.name == “Mike” and OtherType:ev2.counter == 2

• unsubscribe mySub

Event Type Definition: Creates an event type, a structure supporting: boolean, string, long, int, as well as other Java basic types

• type Type1 {name: string, age: int, is_present: boolean}

Page 87: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

On-the-fly event declaration and instantiation:

• Type1:ev1 = {“john”, 22, true}

ECA Rules: Described by the use of the keyword rule, which uses the do command to define the action to be exe-cuted when the rule is matched.

• rule myRule ev1.name == “check-in” and Local.time > 12pm do run myApplica-tion.exe

In this example, the run is a reserved word that allows the execution of external applications.

rule otherRule ev1.name == “turn-on-light” and ev2.name = “workstation-activated” do { type MyAbstrac = {name: String}; MyAbstrac ev3; ev3.name = ev1.name + ev2.name; notify ev3; }

Rule Activation: Activates and deactivates rules according to the context using the enable or disable commands.

• rule activateRule1 Local.time > tomorrow do enable rule1

• rule deactRules ev1.description = “end of meeting” do disable rule1 rule2 rule3

Temporal Expressions: Express time constrains between events. Time triggers and ranges: at, by, in, within.

• at 10pm - matches after the next occurrence of 10 pm

• by 10pm - matches from now until the next occur-rence of 10 pm

• in 2 hours and 10 minutes – matches after 2 hours and 10 minutes from now

• within 3 hours – matches permanently in a pe-riod between now and 3 hours ahead

Time Period expressions: today, daily, weekly, monthly, yearly:

• at 10 am daily • at monday weekly

Event Validity Check (time to “live”): Is a special attrib-ute, present in all events, which expresses its expiration date and time. The expiration condition can be evaluated using the expired keyword:

• expired ev1 • ev2.expiration < today and

ev3.expiration < tomorrow

Pattern Matching: Performs the matching of a sequence of events (repetition, sequence and optional).

• Enforced order: ev1 then ev2 then ev3 • Optional order: ev1 and ev2 and ev3 • Matching of repetition of events (0 or more and 1 or

more): repeat (ev1 and ev2) 2 times

Groups: The keyword group allows the definition of sets of users, the keywords add and remove perform the addi-tion and removal of users to a group, whereas the operand in checks the pertinence of users in groups.

• group g1 { user1, user2, user3} • add g1 user4 // adds sub4 to group g1 • remove g1 user2 • ungroup g3 // removes the group • user1 in g1

Groups can be used as parameters of the notify command to broadcast events, as in the example

• rule r1 ev1 then ev2 then ev3 do notify ev1 to g1

Roles: A role is a group of users. Groups are used to repre-sent roles. This allows users to perform different roles.

Contexts: Contexts are name spaces that define scopes where some properties, rules and subscriptions are valid. Local and global variables (or properties) can be stored in the local, group or global contexts. In addition, the con-texts provide a set of predefined environment variables that allow the access to information as local time, host-name, user name and so on. The contexts are accessed through the special types Local and Global.

• at 12 pm and Local.mycounter == 12

• at 12 pm and Global.members > 5 Local and global rules can be defined. Expressions can use values of these contexts. A rule is associated to the local context scope using the local modifier. Global rules can be defined using the global modifier.

• local rule myRule at 12 pm and mycounter == 12 do enable rule1

In this example, mycounter is a variable in the Local scope. Each group has a special context associated with it. Group contexts are accessed by the group name, for exam-ple: g1.size expresses the size of the group.

Group rules can be defined using the group modifier fol-lowed by the group name, before the rule declaration.

Attributes can be added or removed from a context using the addcontext and remcontext keywords.

• addcontext Local name:string

Events and Subscription Priorities: Special attributes in the events, which are used by the system to perform event routing. They can be used in subscriptions by accessing the reserved attribute priority.

• rule adjustPriority Local.time > 6 pm do ev1.priority = ev1.priority –1

DESIGN The DEAL architecture is described in Figure 1. The sys-tem is implemented as a wrapper around a notification server infrastructure such as CASSIUS [8] or Siena [1].

Page 88: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

The event-processing kernel implements the DEAL func-tionality using the resources provided by the event notifica-tion server. Applications interact with the infrastructure through a programmatic API while end-users can use a command interpreter shell or a more sophisticated GUI. The interaction with the system can be intermediated by Web services interfaces such as SOAP or by lower-level protocols as HTTP/CGI. The architecture of the system can be distributed, using the resources of federated notification servers, according to the features provided by these sys-tems. In special, Siena provides a scalable web-based con-tent-routing infrastructure.

Distributed Event sources (Instrumented softwarecomponents and programs)

Other EventSource

User API or shell

NotificationServer (Siena or

CASSIUS)

Application Application

Consumer SideEDEM agents

Event Producers

Consumer applications

ApplicationEvent Source

User API or shell

Event ProcessingKernel

Event LanguageInterpreter and API

Notifications Subscriptions

Events

Figure 1 Design of the DEAL infrastructure using an event notification server

IMPLEMENTATION DEAL is being implemented using the Java (J2SDK1.4) programming language and the CASSIUS notification server. CASSIUS was chosen for its ability to manage and provide access to a hierarchical list of event sources and their associated events. It also provides a subscription edi-tor GUI that facilitates the interaction with the end users. For using the HTTP/CGI protocol, CASSIUS allows DEAL to be integrated with different event sources dis-tributed over the Web, providing an event-based infra-structure for awareness information.

RELATED WORK In this section, we summarize the main systems that in-spired the DEAL language.

EDEM EDEM (Expectation-Driven Event Monitoring) [7] is a user interface validation and monitoring tool. EDEM uses agents to monitor GUI event patters according to design use expectations. The agent description language is very complete and allows the detection of event patters, the ma-nipulation of local context (in the monitored site), the definition of higher-level events (abstraction), the collec-tion of repetitive events (reduction) and so on.

The EDEM architecture is defined in order to collect us-ability data. Since agents execute together with the appli-cation being monitored, the system was not designed to monitor events coming from multiple distributed applica-tions.

Yeast The Yeast (Yet another Event-Action Specification Tool) [2] is an event-action system used to automate tasks in a UNIX environment. Yeast allows actions to be performed when event patterns and environment changes are de-tected. It allows the association of temporal constraints to events, borrowing its syntax from the at and cron pro-grams of UNIX systems. Sequential and out or order event pattern detection is supported. User-defined actions are executed whenever an event pattern match occurs. These actions can originate new events or start different applica-tions. Yeast allows the definition of rules to be defined, activated or deactivated at runtime. This flexibility is pro-vided by a shell script interface that integrates the UNIX shell commands with yeast pre-defined keywords.

The system is very complete, providing many features that can be used to support the development of awareness ap-plications. It, however, was developed to operate on UNIX environments, being limited at monitoring its specific re-sources and objects such as processes, files and user logs. Users can define their own events but their types are not enforced. There is no advertisement of the event types pro-vided by an event source. Event sources are not primary entities in this model. There is no explicit idea of subscrip-tion and subscriber. The event language does not allow the creation and manipulation of local variables, limiting the support for local and global contexts. User groups are not supported.

Khronika The Khronika [9] is a centralized event notification service created to increase people awareness about their environ-ment. One of the objectives of the system is to bridge the gap between computational and real-world events. Each user of the system can specify sets of pattern-action sub-scriptions that are used to automatically notify the user when an event pattern is detected. Khronika also allows the direct browsing of the events in the repository. Events have expiration time and remain on the server database as specified in their validity (days, hours or brief intervals). The event language allows queries by time interval, event

Page 89: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

types and substring matching. Similar to Yeast, there is a mapping between English expressions as "today", "tomor-row", "now", "Thursday afternoon", and so on, to more precise time constraints. Access control lists and user groups are used. These restrictions are made simple for usability purposes.

Khronika does not provide the ability of abstracting and aggregating events. There is no support for different event sources, including mobile devices as well as the ability to activate/deactivate subscriptions (or rules) based on envi-ronment changes. There is no notion of user groups.

Gem GEM [10] is a generalized event language for real-time distributed systems monitoring. It allows the event se-quence detection and the specification of rules that can be activated or deactivated according to other rules. For being designed for real-time monitoring, rules can include spe-cial time constraints concerning incoming events delays. It also allows the use of event order constraints in event ex-pressions, such as the specific order events should occur and the acceptable delay between them. Events can be ab-stracted and generated based on contents of other events. There is support for abstraction.

The GEM language itself was not defined for usability. It does not provide support for context and groups.

READY and CORBA READY (Reliable Available Distributed Yeast) [18] is a general-purpose event notification service based on YEAST. READY adds to YEAST the ability to handle compound event matching, quality of service and other event constructs, in an implementation that extends the Standard CORBA notification server [12].

In its porting to CORBA [13], READY lost the simplicity, elegance and easy-to-use interface of the Yeast model. Its language became more complicated, being based on the OMG Event Notification Language. It also lost the timing constraints neutrality and elegance of Yeast.

CONCLUSIONS DEAL is an event processing language and system de-signed to provide awareness information in a heterogene-ous distributed system. The system was designed to cope with current distributed systems characteristics as mobility, heterogeneity, timing, as well as CSCW aspects as groups, context and priorities. In order to do so, it combines char-acteristics of different event processing, monitoring sys-tems and awareness driven notification servers. It was spe-cially designed as a distributed awareness service that can be integrated in many Web applications. This is accom-plished by the use of the HTTP protocol. The event lan-guage was designed to be useful and usable, providing a high-level way to interact with the system. A prototype is being implemented in Java using CASSIUS as the basic notification service.

ACKNOWLEDGMENTS This effort was sponsored by the Defense Advanced Re-search Projects Agency (DARPA) and Air Force Research Laboratory, Air Force Materiel Command, USAF, under agreement number F30602-00-2-0599; by the National Aeronautics and Space Administration (NASA) under contract NAG2-1555; by the National Science Foundation under grants 0083099 and 0205724. The U.S. government is authorized to reproduce and distribute reprints for gov-ernmental purposes notwithstanding any copyright annota-tion thereon. The views and conclusions contained herein are those of the authors and should not be interpreted as necessarily representing the official policies or endorse-ments, either expressed or implied, of DARPA, the Air Force Laboratory, or the U.S. government.

REFERENCES 1. A. Carzaniga, D. S. Rosenblum, and A. L. Wolf. De-

sign and Evaluation of a Wide-Area Event Notification Service. ACM Transactions on Computer Systems, 19(3):332-383, Aug 2001.

2. B. Krishnamurthy and D. S. Rosenblum. Yeast: a gen-eral purpose event-action system. IEEE Transactions on Software Engineering, Vol. 21, No. 10. October 1995.

3. D. C. Luckham. The Power of Events: An Introduction to Complex Event Processing in Distributed Enterprise System. Pearson Education. ISBN 0-201-72789-7. Bos-ton MA 2002.

4. D. Ramduny, A. Dix and T. Rodden. Exploring the design space for notification servers. Proc. of the ACM CSCW’98. pp. 227-235. Seattle, 1998

5. De Souza, C.R.B., Basaveswara, S. D., Kantor, M. Redmiles, D.F. Lessons Learned using Event Notifica-tion Servers to Support Awareness. Human Computer Interaction Consortiun’02- Winter Workshop, Jan 31 to Feb 3, Fraser, CO. 2002

6. Fitzpatrick, G., Mansfield, T., et al. Augmenting the Workaday World with Elvin, Proceedings of 6th Euro-pean Conference on Computer Supported Cooperative Work (ECSCW 99), Kluwer, 1999, pp. 431-450.

7. Hilbert, D., Redmiles, D. An Approach to Large-Scale Collection of Application Usage Data Over the Inter-net, Proceedings of the Twentieth International Confer-ence on Software Engineering (ICSE '98, Kyoto, Ja-pan), IEEE Computer Society Press, April 19-25, 1998, pp. 136-145.

8. Kantor, M., Redmiles, D. Creating an Infrastructure for Ubiquitous Awareness, Eight IFIP TC 13 Conference on Human-Computer Interaction (INTERACT 2001 Tokyo, Japan), July 2001, pp. 431-438.

9. L. Lovstrand. Being selectively aware with the Khronika System. Proc of ECSCW'91. 1991.

Page 90: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

10. M. Mansouri-Samani and M. Sloman. GEM: A Gener-alised Event Monitoring Language for Distributed Sys-tems. In ICODP/ICDP'97. 1997.

11. M. Stal Web services: beyond component-based com-puting. CACM Special Issue: Developing and integrat-ing enterprise components and services .Vol. 45, Issue 10. pp. 71-76. October 2002

12. Object Management Group. Notification Service Speci-fication v1.0.1. August - 2002. http://cgi.omg.org/docs/formal/02-08-04.pdf

13. OMG Common Object Request Broker Architecture – (CORBA/IIOP) v.3.0. formal/2002-06-33. http://cgi.omg.org/docs/formal/02-06-33.pdf

14. P. C. Bates. Debugging heterogeneous distributed sys-tems using event-based models of behavior. ACM Transactions on Computer Systems. Vol 13. Issue 1. Feb 1995.

15. P. Dourish and V. Bellotti. Awareness and coordination in shared workspaces. ACM Proc. of Conference on CSCW'92. Toronto, Ontario, pp. 107-114. 1992

16. P. Dourish, and S. Bly. Portholes: Supporting aware-ness in a distributed work group, in Proceedings CHI'92, Monterey, CA, ACM/SIGCHI, 1992.

17. R. Bentley, W. Appelt, U. Busbach, E. Hinrichs, D. Kerr, K. Sikkel, J. Trevor and G. Woetzel. Basic Sup-port for Cooperative Work on the World Wide Web. In-ternational Journal of Human Computer Studies 46, pp. 827-846, 1997.

18. R. E. Gruber, B. Krishnamurthy, and E. Panagos. High-level constructs in the READY event notification system. In 8th ACM SIGOPS European Workshop on Support for Composing Distributed Applications, Sin-tra, Portugal, September 1998.

19. Web Services Activity. 2002 http://www.w3.org/2002/ws/

Page 91: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

Management of Interdependencies in Collaborative Software Development

Cleidson R. B. de Souza1,2 David Redmiles1 Gloria Mark1 John Penix3 Maarten Sierhuis4

1School of Information and Computer Science,

2Departmento de Informática,

3Computacional Sciences Division,

4Research Institute for Advanced Computer Science,

University of California, Irvine

Irvine, CA, USA

Universidade Federal do Pará Belém, PA, Brasil

NASA/Ames Research Center

Moffett Field, CA, USA

NASA/ Ames Research Center

Moffett Field, CA, USA

Abstract In this paper we report results of an informal field study of a software development team conducted during an eight week internship at the NASA/Ames Research Center. The team develops a suite of tools called MVP, and is composed of 31 co-located software engineers, who de-sign, test, document, and maintain the different MVP tools. We describe the formal and informal approaches used by this group to manage the interdependencies that occur during the software development process. Formal approaches are legitimated by the organization, whereas informal approaches emerge due to the needs of the de-velopers. We also describe how the software development tools used by this team support these approaches and explore where explicit support is needed. Finally, based on our findings, we discuss implications for software en-gineering research.

1. Introduction

Software development is typically a collaborative ac-tivity in which experts from different domains work to-gether to produce a software artifact. Indeed, formal and informal communication account for more than half of developers’ time [21], and cooperative activities account for about 70% of this time [30]. Therefore, breakdowns in communication and coordination efforts constitute one major problem in software development [3].

One of the reasons that cooperative software develop-ment is difficult is the large number of interdependencies that occur. These include interdependencies among activi-ties in the software development process, among different software artifacts, and finally, in different parts of the same artifact. One example involves the design document and the requirements specification—if the specification changes, the design normally needs to be changed as well. Another example involves dependencies among parts of the same artifact, such as program dependencies—syntactic relationships between the statements of a pro-gram that represent aspects of the program’s control flow and data flow [22].

Software engineering has already identified the need to manage these interdependencies and has been developing formal approaches to deal with them. For example, soft-ware development processes describe, among other things, when each artifact should be created during the software development effort. Such processes would pre-scribe that the requirements specification to be created before the design document to minimize problems due to the dependency between these documents. Design tech-niques have also been developed. Examples of such tech-niques include information hiding [19], which tries to minimize dependencies in the implementation by using the concept of coupling, and design patterns [7], which give dynamic (runtime) program dependencies explicit representation as static program structures, making them easier to manage. In addition to formal approaches, soft-ware engineering tools have been built to support the management of interdependencies. An example is con-figuration management systems that deal with dependen-cies in the source code.

Informal approaches are also used to manage the in-terdependencies. These practices exist because no matter how formal and well-defined a process may seem, it will always be incomplete, and also because formal ap-proaches have practical limitations [8]. Informal ap-proaches are as important as formal approaches and need to be understood if one wants to provide support for soft-ware development. Informal approaches solve problems not addressed by formal approaches, so formal and in-formal approaches complement each other. An example of an informal approach is the use of formal communica-tion channels in software development organizations to deal with dependencies among components of the same subsystem when the developers are co-located [9].

In this paper, we describe an informal field study that analyzes both formal and informal approaches used by a software development team to manage the interdependen-cies that occur during software development. We classify this work as an informal study since it consists primarily of observations made by the first author during an eight-week internship during the Summer of 2002. The formal

Page 92: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

approaches identified here are those legitimately adopted by the organization, such as the software development process; the software development tools used, namely the configuration management (CM) and bug-tracking tools; and other approaches, such as the division of labor, for-mal meetings, and so on. The informal approaches are the emerging practices adopted by the team to deal with these interdependencies, such as the adoption of conventions; partial check-ins; problem reports (PRs) that cross work boundaries; and the role of e-mail as a coordination mechanism. Our observations build on Grinter’s work [9]; we identify several other informal approaches and analyzed the role of formal approaches in the manage-ment of interdependencies. The identification, analysis, and support for formal and informal approaches are es-sential in improving software development efforts. Inter-dependencies affect the coordination success because they decrease the certainty of a project [13].

2. The MVP Software Development Team

The field study was conducted in cooperation with a team that develops a software application, which for the purposes of this paper we call MVP (All names were changed to preserve anonymity). MVP is a suite of 10 different tools developed at NASA/Ames Research Cen-ter. The MVP source code is approximately one million lines of C and C++.

2.1. Team Organization

The MVP team is divided in two groups: developers and V&V staff. Developers are responsible for writing new code, fixing bugs, adding new features, and so on. This group comprises 25 members, 3 of whom are also researchers who write their own code to explore new ideas. The overall experience of these developers ranges from 3 months to more than 25 years. Experience in the MVP group ranges from 2.5 months to 9 years. This group is spread along several offices across two floors in the same building.

V&V members are responsible for testing and report-ing identified bugs, keeping a running version of the soft-ware for demonstration purposes, and maintaining the documentation (mainly user manuals) of the software. This group comprises 6 members, half located in the V&V Laboratory, and the rest in several offices on the same floor as the laboratory. The V&V Lab and the de-velopers’ offices are located in the same building.

2.2. The MVP Software

Each of the MVP’s 10 tools uses a specific set of “processes.” A process, for the MVP team, is a program that runs with the appropriate run-time options. It is not

formally related to the concept of processes in operating systems and/or distributed systems. MVP’s processes typically run on distributed Sun workstations and com-municate using a TCP/IP socket protocol. Running a MVP tool means running the processes required by this tool with their appropriate run-time options. Processes are used to divide the work among the developers (see sec-tion 4.3).

3. Methods

As an intern with the MVP team, the first author was able to make observations and collect information about several aspects of the team. Additional material was col-lected by reading manuals for the MVP tools, manuals for the software development tools used, formal documents (such as the description of the software development process and the ISO 9001 procedures), training documen-tation for new developers, problem reports, and so on, as well as talking to colleagues. Some of the team mem-bers—the documentation expert, V&V members, testers, process leaders, and process developers—agreed to let the intern shadow them for a few days to better learn about their functions and responsibilities. A representative sub-set of the MVP group was interviewed. Interviews lasted between 45 to 120 minutes. A total of seven interviews [15] were used to find out about the usage patterns of various tools. The data has been analyzed by using grounded theory [28].

4. Formal Approaches

Formal approaches are those legitimately adopted by the team to support the management of interdependencies. They facilitate the software development effort by im-proving the coordination of activities. These approaches have long been studied in the software engineering and organizational research literature (e.g., [6, 26]), so we will mention only aspects of these approaches in the context of the MVP team.

4.1. The Software Development Process

The MVP team uses a formal software development process that prescribes the steps needed to be performed by the developers. For example, the following steps must be performed by all developers after finishing the imple-mentation of a change. Initially, they should integrate their code with the main baseline. After that, must test their changes to check if their integrations have inserted bugs in the code. Finally, after checking-in files into the repository, developers must send e-mails to the software development mailing list describing the problem report (PR) associated with the changes, the files that were

Page 93: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

changed, and the branch where the check-in will be per-formed, among other pieces of information.

The MVP software process also prescribes the usage of code reviews before the integration of any change and design reviews for major changes in the software. Code reviews are performed by the manager of each process. Therefore, if a change involves two processes, a devel-oper’s code will be reviewed twice: once by each man-ager. Design reviews are recommended for changes that involve major reorganizations of the source code; their use is decided by the software manager.

4.2. The CM and Bug Tracking Tools

We observed that MVP developers employ mainly two software development tools for coordinating their work: a configuration management (CM) system and a bug-tracking system [2, 9, 11]. These tools are integrated so that there is a link between the PRs (in the bug-tracking system) and the respective changes in the source code (in the CM tool). Both tools are provided by one of the leader vendors in the market. Other tools, such as CASE tools, compilers, linkers, debuggers, and source-code editors, are also used.

A CM tool supports the management of source-code dependencies through its embedded building mechanisms, which indicate what parts of the code need to be recom-piled when one file is modified. In this case, we use Grinter’s classification of dependencies: “Compile-time dependencies occur when a sub-system is being com-piled. Build-time dependencies occur when several sub-systems or the entire system is being linked. Run-time dependencies occur when the executable is running [9].” According to this classification, CM tools support com-pile and build-time dependencies. Similarly, a bug-tracking tool, when associated with the CM tool, supports the tracking of changes performed in the source code dur-ing the development effort.

Two members of the MVP team play important roles in the usage of these tools: the configuration and release manager and the bug-tracking manager. Both help in the administration of the tools and try to relieve the develop-ers of some of most common tasks (e.g., the CM manager created a command interface on top of the CM tool to make it easier for MVP developers to use). The CM man-ager provides full-time support for the CM tool, and the bug-tracking manager is also an MVP software devel-oper. Both managers have been receiving training in those tools, and other developers are trained before starting work in the group. Their training includes the software development tools and the MVP software development process.

The MVP team employs several advanced features of the CM tool, such as triggers, “winking in” techniques to reduce compilation time, labeling, and branching strate-

gies. Indeed, the branching strategy employed is one of the most important aspects of a CM tool because it prin-cipally affects the work of MVP developers. It is a way of deciding when and why to branch. This strategy affects the task of coordinating parallel changes. According to the nomenclature proposed by Walrad and Strom [31], the following branching strategies are used by the MVP team: (1) branch-by-purpose, in which all bug fixes, en-hancements, and other changes in the code are imple-mented on separated branches; (2) branch-by-project, in which branches are created for some of the development projects; and (3) branch-by-release, in which the code branches upon a decision to release a new version of the product. The branch-by-purpose strategy is employed by MVP developers in their daily work, whereas the other strategies are used only by the CM manager. In other words, the developers themselves create new branches for each new bug fix or enhancement, but branches for pro-jects and releases are created only by the manager.

The branch-by-purpose strategy supports a high-level of parallel development by allowing developers to work on different branches at the same time, thus avoiding problems that exist in other strategies [31]. According to this strategy, each developer is responsible for integrating his or her changes into the main code, which is often called “push integration” [1]. The changes are then avail-able to all other developers. Therefore, if one bug is in-troduced, other developers will notice it because their work will be disrupted. Indeed, we observed and collected reports of different instances of this situation. A developer who suspects there is a problem introduced by recent changes will contact the author of the changes to check the change, or to provide more information about it. 4.3. Other Approaches: Meetings and

Division of Labor

MVP developers employ other formal approaches to manage the interdependencies in the software. For exam-ple, the V&V group holds weekly meetings to discuss problems, deadlines, etc. These meetings are also used for official announcements, such as trips, dates of new re-leases, demonstrations, audits, and so on. Likewise, the entire MVP team (developers and V&V staff) holds bi-weekly “software pre-design meetings.” In these meet-ings, formal announcements are also made, but the most important part of the meeting involves the discussion of new PRs. In this case, the developers each announce their new PRs, describing them through their number and headline. In general, the headline provides enough infor-mation about the nature of the PR, but other developers might ask for more details. This is an opportunity for de-velopers to discuss their work, obtain help, and be aware of what is happening in the team. For example, it is not

Page 94: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

uncommon after a developer reports a PR that another developer mentions that the problem has already been fixed. PRs that are almost finished might also be an-nounced to warn others about possible “weird” behavior in the tools. Finally, during these meetings the software manager will decide if design reviews are necessary.

The MVP software development team also adopts a clear division of labor based on the processes that com-pose each MVP tool. Each developer is assigned to one or more processes and tends to specialize in it. There are process leaders and process developers, who mostly work only on a particular process. This is important because it allows the developers to understand the behavior of the process more deeply and become familiar with its struc-ture, therefore helping them to deal with the complexity of the code. Indeed, during the software development activity, managers tend to assign work according to these processes. However, it is not unusual to find developers working in different processes under various circum-stances (e.g., before launching a new release, a developer might be assigned to fix bugs in other processes). Devel-opers also work in different processes due to the continu-ity of the work. Sometimes bugs that seem to be located in a process and therefore are allocated to the developer who works with this process are later discovered to be located in another process. In this case, it is better to let the developers finish the work because so much time was invested in it. Thus, this allows developers to gain a com-prehensive view of the whole MVP software.

5. Informal Approaches

Informal approaches are the practices adopted by the MVP team to deal with the interdependencies that occur during the software development process. We call them informal because they emerged naturally in response to the needs of the team and are not taught to new members. The approaches that we identified are discussed below.

5.1. Problem Reports Are Boundary Objects

In our analysis we identified that PRs are used to fa-cilitate the management of interdependencies of develop-ers from different groups and with different roles. In other words, PRs are “boundary objects” in the sense of Star and Griesemer [27]: objects whose common identity is robust enough to support coordination, but whose internal structure, meaning, and consequences emerge from local negotiations between groups. Indeed, PRs are used by end-user liaisons, developers, and testers for different purposes.

Consider the following. When a bug is identified, it is associated with a specific PR. Whoever identified the problem is also responsible for including information about ‘how to repeat it’ in the PR. This description is

used by the developer assigned to fix the bug to specify the circumstances (adaptation data, tools, and their pa-rameters) under which the bug appears. After fixing the bug, this developer must fill a field in the PR that de-scribes how the testing should be performed to properly validate the fix. This field is called ‘how to test.’ This information is then used by the test manager, who creates test matrices that will be used later by the testers during regression testing. The developer who fixes the bug also indicates in another field of the PR whether the documen-tation of the tool needs to be updated. Then, the docu-mentation expert uses this information to determine whether the manuals need to be updated based on the changes the PR introduced. Finally, another field in the PR conveys what needs to be checked by the manager when closing it. Therefore, the PR reminds the software manager of the aspects that need to be validated.

In short, the information provided by the PR is used by the developers to manage the several interdependencies in the software being developed. For example, since the user manual of an MVP tool depends on part of that tool’s source code, so changes in this source code need to be reflected in the manual. The information about such changes is provided to the documentation expert through one of the fields in the PR.

5.2. Naming Conventions

Developers share repositories containing the source code (the CM tool) and information about changes in this code (the bug-tracking tool). As a result, the team estab-lishes naming conventions that must be followed when dealing with these tools. Conventions are common and accessible rules or arrangements established in the group that act as a means to merge the different perspectives and work styles involved in handling shared objects [14].

An example of a convention is the naming convention used in the creation of branches in the CM tool: it must be based on the PR number recorded in the bug-tracking tool as well as on the developer’s name. This allows the rela-tionship that exists between a change and its correspond-ing PR to be clearly represented, therefore facilitating identification by MVP developers. However, these con-ventions are not properly supported by these tools, which is a source of complaints by the developers. Indeed, creat-ing and naming branches is a cumbersome task with four or five different tedious steps that could be automated because they follow a naming convention.

5.3. E-mail Conventions

As mentioned before, the MVP software development process prescribes that after checking-in code into the repository, a developer needs to send an e-mail to the software developers’ mailing list. However, we found out

Page 95: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

that MVP developers perform these activities in the re-verse order—they will send e-mail before, not after, the check-in. By doing so, MVP developers allow their col-leagues to prepare for the changes. Indeed, developers might even send e-mail to the author of the change asking for a delay of its check-in. We also found out that in this same e-mail developers describe the impact that their changes will have on others’ work. A developer who reads these e-mails might walk to the co-worker’s office to ask about the changes or, if the change has already been committed, browse the CM and bug-tracking sys-tems to understand them. The following list presents some usual comments sent by MVP developers:

“No one should notice.” “(…) only EDP users will notice any change.” “Will be removing the following [x] file. No effect on re-compiling.” “Also, if you recompile your views today you will need to start your own [z] daemon to run with live data.” “The changes only affect [y]-mode so you shouldn't notice anything.” “If you are planning on recompiling your view this evening ([current date]) and running an MVP tool with live [z] data, you will need to run your own [z] daemon.” Sending e-mail before the check-ins with the descrip-

tion of the impact of the changes is an important conven-tion because it allows other developers to prepare and reflect about the effect of their colleagues’ changes in their current work. Because they are aware of some of the interdependencies in the source-code, they might conse-quently adjust to these changes.

In addition to the flexibility that allows the description of the impact of the changes, e-mail provides asynchro-nous communication, which requires storage of the mes-sages until their delivery to the recipient. This is used by MVP developers to learn about what changed in the code in a certain timeframe. For example, these e-mails were used by a developer to catch up with the changes that occurred while out of the office. They contained informa-tion that allowed the developer to identify changes that did not affect current work, but might affect future work. The following comment from another MVP developer supports this:

“(…) all of the sudden you were working and everything was going great and an e-mail comes through, you look at it, it does not mean a lot, you blow it (…) you keep working and one hour later things were broken. Why is that not working? Oh, that last check-in! You go back to that e-mail: who did this? And maybe you can go talk to that person: ‘you broke something’ (…)”

The information in the e-mail is also important be-cause it informs (or reminds) developers that they have been engaged in parallel development. Often, developers

are unaware of parallel activity because they do not check the version tree that displays information about other de-velopers working on the same file. The information in the e-mail is usually enough to tell the developer whether these changes should be incorporated right away or whether they can wait until just before check-in. In either case, the latest changes must be “merged back” into the developer’s version of the file. In general, if one file has been checked-in several times and a developer has the same file checked-out, he or she “merges back” the changes indicated in the e-mail to avoid working with an outdated file.

The asynchronous nature of e-mail could be problem-atic because developers might miss important notifica-tions about changes. However, during the field work, we did not notice any such problems. Furthermore, sending e-mail before a check-in is also used by other developers to support expertise identification and as a learning mechanism. Developers associate the author of the change with the “process” where the changes are being performed. In other words, MVP developers assume that if one developer constantly and repeatedly performs check-in in a specific process, it is very likely that the developer is an expert on that process. Therefore, another developer needing help with that process will look to that developer for help:

“[talking about a bug in a process that he is not expert] (…) I don’t understand why this behaves the way it does. But, most of these PR’s seem to have John’s name on it. So you go around to see John. So by just by reading the [PR] head-line of who does what, you kind of get the feeling of who’s working on what (…).So they [e-mails] tend to be helpful in that aspect as well. If you’ve been around for ten years, you don’t care, you already know that [who works with what], but if you’ve been here for two years that stuff can really make difference (…)” In addition, the simple fact that developers read the e-

mails sent by other developers to check for the impact of others’ changes facilitates learning about the MVP soft-ware. Interestingly, the two developers who reported these aspects of e-mail were relative novices at MVP, with 2 years and 2.5 months experience there.

5.4. Holding onto Check-ins

As mentioned, MVP developers add to the e-mail the description of the impact of their changes in other devel-opers’ code. The two most common types of impact statements are changes in run-time parameters of a proc-ess and the need to recompile parts or the whole source

Page 96: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

code1. The former case is very important because other developers might be running the process that will be changed. The latter case is described because when a file is modified, it, as well as the other files that depend on it, will be recompiled, and this recompilation process is time-consuming—up to 45 minutes. Developers are aware of the delay they might cause to others; therefore, they hold check-ins until the evening. According to one of the developers:

“(…) and the other thing that you find is that when people also know that if they are going to check-in a file they will do in the later afternoon … you’re gonna do a check-in and this is gonna cause anybody who recompiles that day have to watch their computer for 45 minutes (…) and most of the time, you’re gonna see this coming at 2 or 3 in the after-noon, you don’t see folks (….) you don’t see people doing [file 1] or [file 2] checking-in at 8 in the morning, because everybody all day is gonna sit and recompile.” Holding onto check-ins is an informal approach

adopted by the MVP software development team to mini-mize the problems caused by the interdependencies that exist on the source code. However, this is possible only because MVP developers are aware of the existing inter-dependencies.

5.5. Engagement in Parallel Development: Partial Check-ins and “Speeding Up” the Process

We also noted that MVP developers engage very often in parallel development. This happens when more than one developer has the same file checked-out. Conflicts might occur when one of these developers checks-in this file back into the repository because the other developer’s version will then be outdated, and any changes that de-veloper makes will potentially be inappropriate. To up-date the version, the developer needs to merge the other’s changes back in his or her code. This operation is called by the developers “back merging,” and in CM terminol-ogy is named “synchronization of workspaces.” Due to the need to perform these back merges, a new depend-ency between artifacts is created during parallel develop-ment. This dependency occurs between any version of a file that has not yet been checked-in and the new version of this same file created after the check-in (i.e., the cur-rent version of a file checked-out by a developer is now dependent on the new version checked-in into the reposi-tory because the former needs to incorporate the changes of the latter before being checked-in). This is another example of dependency in software development.

1 The CM tool used by the MVP team allows developers to choose if they want to incorporate others’ changes, meaning that they are able to decide if they want to recompile the code or not.

Conflicting changes are more likely to occur in files that are accessed by several developers at the same time. For example, in MVP software, some files are used to define programming language structures that are used all over the code. Different developers often change these files, which means that they have a high degree of parallel development. These files are especially important because there is a significant correlation between them and the number of defects reported [20]. MVP developers re-ported that they do not avoid parallel development in these files because conflicts are infrequent and not likely to occur. But, without access to the CM tool, it was not possible to statistically test this claim. MVP developers accepted parallel development because it was necessary to achieve high productivity. However, we identified that they adopted a strategy to deal with files with a high de-gree of parallel development. To minimize the possibility of conflicts, developers would perform “partial check-ins,” which consists of checking-in some of the files back into the repository, even when the developers have not yet finished all their changes. This strategy decreases the number of dependencies that occur, and consequently reduces the number of necessary back merges. Note that partial check-ins are variations of the formal software development process, which establishes that check-ins will be performed only when the changes in all files are finished.

Finally, according to Grinter [9], software developers might rush to finish their work when they engage in par-allel development because they want to avoid merging. We identified that developers will rush only when they are testing their changes right before check-in. As one developer plainly pointed out: “This is a race!” According to the software development process, this testing is neces-sary to guarantee that the changes will not introduce bugs into the system. We observed that this testing is very in-formal. For example, developers will sit in the V&V Laboratory and compare the current version of the MVP with the one with changes. In short, MVP developers do not use regression testing at this moment. That will be used by the V&V staff before creating a new release of the software. This means that techniques that minimize the number of test cases necessary to validate the changes in the software (e.g., [23]) cannot be used by MVP devel-opers to determine whether the tests they need to run can be impacted by changes that another developer makes. These techniques can be used only by the V&V staff.

Although we observed that some check-ins introduced errors, we do not have evidence that these errors were introduced due to this “racing.” Similar to partial check-ins, “speeding up” the process is employed by the MVP developers to avoid the additional work necessary to deal with the extra-dependencies that occur during parallel development.

Page 97: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

6. Computational Support for Informal Approaches

Figure 1 summarizes the formal and informal ap-proaches used by the MVP team to manage the interde-pendencies that occur during their software development activities. As mentioned before, formal and informal ap-proaches complement each other, so problems not solved by the formal approaches might be solved by the informal ones. For example, none of the formal approaches used by the MVP team addresses the issue of how to manage the crossing-boundaries dependencies that occur when a change is committed into the repository. This problem is solved by the MVP team by adopting a particular PR structure that provides information for developers with different roles (see section 5.1).

Figure 1: Formal and Informal Approaches Adopted by the MVP Software Development Team

The tools used by the MVP team assist some of the in-formal approaches. For example, the CM tool allows software developers to perform partial check-ins. In con-trast, due to the lack of tool support, developers need to rush to finish their work when they are testing their changes. In this section, we discuss the existence (or lack) of support for informal approaches in more detail. In ad-dition, we discuss implications for software engineering research when there is a lack of support.

6.1. Problem Reports as Boundary Objects

Bug-tracking tools are flexible enough to allow their managers to define the fields that will compose a PR. In addition, these tools allow a manager to specify a simple workflow describing when each one of these fields needs to be filled in [12]. By doing that, they allow the creation of PRs with fields that contain information that is useful

to developers who are members of different groups. In the MVP team, the information in these fields describes how each developer’s work is going to be affected by the PR. This means that these tools allow PRs to be defined and used as coordination mechanisms to manage interdepend-encies during software development.

6.2. Support for Naming Conventions

Following conventions for dealing with shared objects (or repositories) implies additional effort; hence, technical support often is needed [14]. As mentioned before, MVP developers follow a naming convention in which the name of the branches in the CM tool should be based on the PR number recorded in the bug-tracking tool. MVP developers have complained that the task of creating branches is very cumbersome, with four or five different tedious steps to be performed. Because this task is based on a convention, it could be automated. Unfortunately, the current integration between the CM and the bug-tracking tool does not support that. That is a major source of complaints repeatedly reported by the MVP software developers during the interviews.

6.3. Support for E-mail Conventions

NASA requires ISO 9001 certification for all software development efforts, which means that all changes in the software must be documented, reviewed, and formally authorized before the changes are integrated in the code. In other words, developers need to be accountable for their work. The MVP team chose to use e-mail as a for-mal communication channel in the organization, as clearly mentioned in the software development process. Indeed, some of the tasks (such as requesting and answer-ing code reviews) were performed by using e-mail. These tasks require the use of software development tools such as source-code editors, CM tools, and so on. Unfortu-nately, e-mail is not integrated with these tools, which means that developers need to move back and forth be-tween e-mail and the other tools in order to get their work done. Integration of e-mail with software development technology seems easy to implement; it is also very prom-ising because more and more software development or-ganizations are seeking certifications such as ISO 9001 and CMM (Capability Maturity Model). This aspect was identified during the field work and later corroborated by MVP software developers during the interviews. In addi-tion, e-mail messages exchanged among developers are also used to identify expertise in parts of the source code, as well as a history mechanism to identify changes that happened in the past. Again, this information could and should be properly organized and indexed in order to fa-cilitate these activities.

Management of

Interdependencies

Formal

Approaches

Informal

Approaches

- Software development process - Software development tools - Pre-design and V&V meetings - Division of labor, etc.

- PRs as boundary objects - Conventions - Holding onto check-ins - Partial check-ins

Page 98: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

6.4. Holding onto Check-ins

The informal approach of holding onto check-ins is used to avoid disrupting others’ work. The support for this task provided by CM tools is appropriate because these tools allow a developer to check files in or out and merge different versions of them at any time. However, this approach is useful only if the developer who is going to check-in some code is aware that his or her work will cause the recompilation of other files. This suggests that software visualization tools (e.g., [4]) that use existing information from the CM tool could be used to support the identification of these files by novice developers who are not aware of the interdependencies in the source code.

6.5. Partial Check-ins

A check-in is called “partial” by the MVP developers when it is performed without a code review to avoid sev-eral “back merges” due to the file being changed by sev-eral other developers at the same time. CM tools support partial check-ins because they usually do not impose con-straints about when check-ins might be performed, allow-ing one to check-in code into the repository at any time. However, the current trend of integrating CM tools with software process technology [5] might disrupt that. We recognize this integration is essential because it allows the efficient automation of repetitive tasks (such as building a software release) [12]. Nevertheless, the enforcement of the process that usually goes along with this integration must be managed, because it has long been recognized as problematic [29]. CM tools must be flexible enough to allow software developers to use workarounds that devi-ate from the process in order to properly deal with the problems that they face. One example of such work-arounds is the partial check-in. Another approach is to update the software development process to reflect the need for partial check-ins, and consequently legitimate them. In this case, similar to holding check-ins, the in-formation already present in the CM tool could be used by software visualization tools [4] to allow novice devel-opers to identify files with a high degree of parallel de-velopment that need to be partially checked-in.

6.6. Speeding Up the Process

MVP developers rush their activities during the devel-opment process to minimize the number of dependencies between their code and recently committed changes in the repository (section 5.5). Current CM and bug-tracking tools create the need to speed up because they shield a developer’s workspace from other developers’ work-spaces to support parallel development. Although it is desirable to isolate one developer’s work from others, it does not allow developers to coordinate their check-ins,

and hence avoid the need to re-do their work. To the best of our knowledge, no existing software engineering tool solves this problem. However, a promising approach re-cently emerged with tools that attempt to break the isola-tion of CM workspaces (e.g., [24] and [17]). These tools achieve that by distributing the CM commands happening in a developer’s workspace to other selected workspaces. These tools focus on the actions of the developers (con-veyed as CM commands) because they want to avoid con-flicts between the files that two or more developers have checked-out. In addition, we argue that these tools need to provide information about the “status” of other devel-opers’ work. By doing that, they allow a developer to identify who is about to check-in code into the repository and, therefore, to coordinate their work, so that a devel-oper does not need to rush. We believe that this can be achieved by extending these tools to collect information from sources other than the CM tool, such as e-mail, the bug-tracking tool, the software process specification, and so on.

7. Discussion

As mentioned before, a formal process description can never completely represent all variations that might occur in a software development effort [8]. Therefore, as the data have suggested, informal approaches need to be adopted to complement the formal approaches to properly support the management of the interdependencies that occur in the software development process. However, to properly support cooperative software development, we need to unveil these informal approaches and provide computational support for them to minimize errors and improve their performance. One of the reasons these in-formal approaches are important is the high level of paral-lel development that occurs in large-scale collaborative efforts [20]. Indeed, the engagement in parallel develop-ment identified in this field study helps to substantiate the results of Perry et al. [20] that describe high levels of par-allel development, but contrasts with the groups studied by Grinter [9, 11], in which developers avoided this situa-tion. Technical improvements in merging techniques from 1995 to 2002 [2] might be the cause of divergence from Grinter’s earlier observations. Grinter, however, does not clearly describe the branching strategy used by the team studied, whereas the MVP team adopted the “branch-by-purpose” strategy. According to Walrad and Strom [31] this “strategy supports a high level of parallel develop-ment by allowing developers to work on different branches at the same time. Therefore, this might be an-other explanation for the difference between the two groups. Finally, an organization’s structural properties (e.g., reward systems, policies, norms, and so on) are other factors that influence the adoption and use of col-

Page 99: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

laborative tools [18]. The two organizations studied are different, hence they are very likely to have different structural properties, which might explain the different levels of engagement in parallel development.

Meanwhile, this field study supports Grinter’s [9] find-ing that during parallel development developers will rush to finish their changes. However, while the developers studied by Grinter will speed up because they want to avoid the complexity of merging, MVP developers rush because they do not know when another developer might check-in some code that will lead them to another set of tests. In both studies, developers describe their dilemma: they want to produce high-quality code, but they also want to finish their changes fast.

The MVP team needs to perform extra work to suc-cessfully manage the interdependencies in the software. This extra work is a form of articulation work necessary to coordinate, negotiate, mesh, and schedule their activi-ties [25]. It is different from recomposition work [10], which is the coordination required to assemble software development artifacts from their parts, because recompo-sition work focuses on choosing the right components to create a software artifact due to source-code dependen-cies, whereas this extra work focuses on the management of all dependencies that exist in a software development effort.

Finally, in this informal field study we identified an-other approach used by software developers to identify experts. Whereas McDonald and Ackerman [16] describe the usage of change history data (equivalent to PRs in the MVP team), novice developers in the MVP team use the broadcasted e-mail messages prescribed by the software development process. The importance of finding experts for problem-solving in any organization and the complex-ity of the MVP code suggest that the operation of sending e-mail before a check-in is essential.

8. Conclusion and Final Remarks

This paper reports the findings of an informal field study conducted at the NASA/Ames Research Center during the course of an eight-week internship with a software development. The results of this field study de-scribe the formal and informal practices adopted by team members to manage the interdependencies that occur dur-ing software development. Formal approaches are those legitimated by the organization; the informal ones are those that emerge naturally due to the needs of the devel-opers. Examples of formal approaches adopted by the team are the software development process, some soft-ware development tools, design meetings, and a clear division of labor. The informal approaches that we identi-fied are partial check-ins, problem reports that cross work

boundaries, holding onto check-ins, e-mail and naming conventions, and the action of speeding up the processes.

In this work, we also indicate current and nonexisting computational support to the informal approaches. In-deed, partial check-ins, problem reports that cross work boundaries, and holding onto check-ins are work prac-tices currently supported by CM and bug-tracking tools. E-mail and naming conventions and the action of speed-ing up the processes are adopted by MVP developers due to the lack of tool support. We believe that these interest-ing research areas should be further investigated. Pointing out these areas is an important contribution of this paper.

Finally, we are planning a future study in a different organization. We seek to identify similarities and differ-ences in the formal and informal approaches that we iden-tified here and to learn how the ones that we identified are used in a different context.

Acknowledgments

The authors thank CAPES (grant BEX 1312/99-5) and NASA/Ames for financial support. This effort was also spon-sored by the Defense Advanced Research Projects Agency (DARPA) and Air Force Research Laboratory, Air Force Mate-riel Command, USAF, under agreement number F30602-00-2-0599. Funding also was provided by the National Science Foun-dation under grant numbers 0205724 and 0083099. The U.S. Government is authorized to reproduce and distribute reprints for governmental purposes notwithstanding any copyright anno-tation thereon. The views and conclusions contained herein are those of the authors and should not be interpreted as necessarily representing the official policies or endorsements, either ex-pressed or implied, of DARPA, the Air Force Laboratory, or the U.S. Government.

9. References

[1] Appleton, B., Berczuk, S., et al., "Streamed Lines: Branch-ing Patterns for Parallel Software Development," Proceed-ings of Pattern Languages of Programs (PLoP'98), Washington University Technical Report #WUCS-98-25, 1998.

[2] Conradi, R., and Westfechtel, B., "Version Models for Software Configuration Management," ACM Computing Surveys, vol. 30, pp. 232-282, 1998.

[3] Curtis, B., Krasner, H., et al., "A Field study of the Soft-ware Design Process for Large Systems," Communications of the ACM, vol. 31, pp. 1268-1287, 1988.

[4] Eick, S. G., Graves, T. L., et al., "Visualizing Software Changes," Software Engineering, vol. 28, pp. 396-412, 2002.

[5] Estublier, J., "Software Configuration Management: A Roadmap," Future of Software Engineering, pp. 279-289, Limerick, Ireland, 2001.

[6] Finkelstein, A., Kramer, J., et al., Software Process Model-ing and Technology: Wiley, 1994.

[7] Gamma, E., Helm, R., et al., Design Patterns: Elements of Reusable Object-Oriented Software. Reading, MA: Addi-

Page 100: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

son-Wesley, 1995. [8] Gerson, E. M., and Star, S. L., "Analyzing Due Process in

the Workplace," ACM Transactions on Office Information Systems, vol. 4, pp. 257-270, 1986.

[9] Grinter, R., "Supporting Articulation Work Using Configu-ration Management Systems," Computer Supported Coop-erative Work, vol. 5, pp. 447-465, 1996.

[10] Grinter, R. E., "Recomposition: Putting It All Back To-gether Again," Conference on Computer Supported Coop-erative Work (CSCW'98), pp. 393-402, 1998.

[11] Grinter, R. E., "Using a Configuration Management Tool to Coordinate Software Development," Conference on Organ-izational Computing Systems, pp. 168-177, 1995.

[12] Grinter, R. E., "Workflow Systems: Occasions for Success and Failure," Computer Supported Cooperative Work, vol. 9, pp. 189-214, 2000.

[13] Kraut, R. E., and Streeter, L. A., "Coordination in Software Development," Communications of the ACM, vol. 38, pp. 69-81, 1995.

[14] Mark, G., Fuchs, L., et al., "Supporting Groupware Con-ventions through Contextual Awareness," European Con-ference on Computer-Supported Cooperative Work (ECSCW '97), pp. 253-268, Lancaster, England, 1997.

[15] McCracken, G., The Long Interview: Thousand Oaks, CA: SAGE Publications, 1988.

[16] McDonald, D., and Ackerman, M., "Just Talk to Me: A Field Study of Expertise Location," Conference on Com-puter Supported Cooperative Work, pp. 315-324, 1998.

[17] O'Reilly, C., Morrow, P., et al., "Improving Conflict Detec-tion in Optimistic Concurrency Control Models," 11th In-ternational Workshop on Software Configuration Manage-ment (SCM-11), Portland, Oregon, 2003.

[18] Orlikowski, W., "Learning from Notes: Organizational Issues in Groupware Implementation," The Information So-ciety, vol. 9, 1993.

[19] Parnas, D. L., "On the Criteria to Be Used in Decomposing Systems into Modules," Communications of the ACM, vol. 15, pp. 1053-1058, 1972.

[20] Perry, D. E., and, Siy, H. P., et al., "Parallel Changes in Large-Scale Software Development: An Observational Case Study," ACM Transactions on Software Engineering and Methodology, vol. 10, pp. 308-337, 2001.

[21] Perry, D. E., Staudenmayer, N. A., et al., "People, Organi-zations, and Process Improvement," IEEE Software, vol. 11, pp. 36-45, 1994.

[22] Podgurski, A., and Clarke, L. A., "The Implications of Program Dependencies for Software Testing, Debugging, and Maintenance," Symposium on Software Testing, Analysis, and Verification, pp. 168-178, 1989.

[23] Rothermel, G. and Harrold, M. J., "A Safe, Efficient Re-gression Testing Selection Technique," ACM Transactions on Software Engineering and Methodology, vol. 6, pp. 173-210, 1997.

[24] Sarma, A., Noroozi, Z., et al., "Palantír: Raising Awareness among Configuration Management Workspaces," Twenty-fifth International Conference on Software Engineering, pp. 444-453, Portland, Oregon, 2003.

[25] Schmidt, K., and Bannon, L., "Taking CSCW Seriously: Supporting Articulation Work," Journal of Computer Sup-ported Cooperative Work, vol. 1, pp. 7-40, 1992.

[26] Shull, F., Carver, J., et al., "An Empirical Methodology for Introducing Software Processes," Joint 8th European Soft-ware Engineering Conference and 9th ACM SIGSOFT Symposium on the Foundations of Software Engineering, pp. 288-296, Vienna, Austria, 2001.

[27] Star, S. L., and Griesemer, J. R., "Institutional Ecology, Translations and Boundary Objects: Amateurs and Profes-sionals in Berkeley's Museum of Vertebrate Zoology," So-cial Studies of Science, vol. 19, pp. 387-420, 1989.

[28] Strauss, A., and Corbin, J., Basics of Qualitative Research: Techniques and Procedures for Developing Grounded Theory, Thousand Oaks, CA: SAGE publications, 1998.

[29] Suchman, L., Plans and Situated Actions: The Problem of Human-Machine Communication. Cambridge: Cambridge University Press, 1987.

[30] Vessey, I., and Sravanapudi, A. P., "CASE Tools as Col-laborative Support Technologies," Communications of the ACM, vol. 38, pp. 83-95, 1995.

[31] Walrad, C., and Strom, D., "The Importance of Branching Models in SCM," IEEE Computer, vol. 35, pp. 31-38, 2002.

Page 101: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

Opportunities for Extending Activity Theory for Studying Collaborative Software Development

Cleidson R. B. de Souza† and David F. Redmiles

School of Information and Computer Science University of California, Irvine

{cdesouza, redmiles}@ics.uci.edu

Abstract Activity theory is an analytical framework that has been used successfully to understand and explain collective work. Software development is, of course, one particular kind of collective work. We used activity theory to analyze the observations one author made during an internship with a large-scale software development group. We also made some observations about how well suited activity theory was for the analysis. We briefly describe the work setting and the analysis. Then we describe the experi-ences we had, which indicate possibilities for further de-veloping activity theory for studying collaborative work.

1. An Experience with Collaborative Soft-ware Development

The first author spent eight weeks during the summer of 2002 interning as a software developer on a large-scale software development team. As a member of this team, he was able to make observations and collect information about a variety of aspects, including the organization of the team, the formal and informal practices that this team adopted, and the tools they used. The software develop-ment team was formed to develop a software application we call MVP (not the real name), which comprises 10 different tools that are deployed in different parts of the United States. The source code is approximately one mil-lion lines of C and C++.

Each of the several different tools that compose MVP uses a specific set of “processes.” A process for the MVP team is a program that runs with the appropriate run-time options. Processes typically run on distributed Sun work-stations and communicate by using a TCP/IP socket pro-tocol. Running a tool means running the processes re-quired by this tool, with their appropriate run-time op-tions.

The software development team is divided into two groups: the developers and the verification and validation (V&V) staff. The developers are responsible for writing new code, fixing bugs, and adding new features. This group comprises 25 members. The V&V staff are respon-sible for testing and reporting bugs identified in the soft-ware, keeping a running version of the software for dem-

Also at the Department of Informatics, Universidade Federal do Pará, Belém, PA, Brazil.

onstration purposes, and maintaining the documentation (mainly user manuals) of the software. This group com-prises six members.

The MVP group adopts a formal software develop-ment process that prescribes the steps that need to be per-formed by the MVP developers during the software de-velopment activities. For example, all developers, after finishing the implementation of a change, should integrate their code with the main baseline. In addition, each de-veloper is responsible for testing the code to verify that his/her integration did not insert bugs in the code, or “break the code,” as this is informally characterized by MVP developers. After using a configuration manage-ment (CM) tool to check-in files into the repository, a developer must send an e-mail to the software develop-ment mailing list describing the problem report (PR) as-sociated with the changes, the files that were changed, and the branch where the check-in will be performed, among other pieces of information.

2. An Activity Theory Analysis Activity theory allows a variety of ways to analyze phe-nomena. In this work, Engeström’s activity theory model [4] was used in the analysis of findings. This model is presented in Figure 1. Activities are associated with ob-jectives called “outcomes.” People working within a community share activities. They work to create objects and rely on tools referred to as artifacts to support their activity. Rules instantiate division of labor and practices of the community.

Figure 2 is basically an “instantiation” of the frame-work described in Figure 1 as applied to the MVP soft-ware development team. The main outcome of the soft-ware development activity is high-quality MVP software (i.e., bug-free software that is easy to evolve, delivered on schedule, and meets the customers’ specifications). Of course, this includes executables, source code, bug re-positories, manuals, specifications, and so on. The object of this activity is the MVP software while being modified. This includes, for example, the changes being introduced in the code, reported bugs not yet solved, and so on. The mediating artifacts, or tools, are the set of tools used by the team to manipulate the object so they achieve their goal or outcome, such as CM and bug tracking tools, e-mail, and the like. Rules consist of formal practices

Page 102: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

Figure 1: Elements of the Activity Theory Framework (see [4]).

Figure 2: The Software Development Activity as Ap-plied to the MVP Team

(e.g., software development processes) and informal prac-tices (conventions, workarounds, and so on) used by the MVP team. The community is the whole MVP team, which is organized according to a specific division of la-bor: There are mainly two groups, namely, developers and V&V staff. But the members of these groups also adopt a division of labor. Specifically, there are process leaders and process developers, the configuration and release manager, the software manager, and testers. 2.1. Tensions and Their “Fixes” in the MVP

Team Contradictions are important aspects in an activity be-cause they might be used as sources of development ([6], pg. 34). In other words, contradictions trigger reflection, thereby helping in the improvement of the activity. Con-tradictions reveal themselves as breakdowns, problems, tensions, or misfits between elements of an activity or between activities. In our case, we identified several ten-sions within the software development activity developed by the MVP team, but, in addition to that, we also identi-fied the fixes that the team adopted to solve them. We identified tensions between different elements, such as between the object and the community, and between the

rules and the community. In the first case, the tension between the object and

the community exists due to the effects that the object (e.g., changes in the MVP software) will have on the community. For example, if a change (the object) is in-troduced in the source code, other members of the MVP team (the community) might need to be informed because they may need to perform additional tasks (e.g., update the documentation) due to that change. The tension exists because developers are not aware of some interdependen-cies in the software and, therefore, how other members of the community are affected by their work. Despite that, the community must support the evolution of the software and guarantee that the software delivered is not inconsis-tent with the specifications, manuals and other artifacts.

In the second case, the tension exists basically be-tween rules and the community because one rule suggests that a developer should perform a specific action, but he/she does not want to perform that action out of con-cern for the effects of the action on the rest of the com-munity. For example, if one developer decides to check-in his/her code into the repository, the other developers (part of the community) might need to recompile their code in order to work with the latest version of the soft-ware, and this compilation process is time-consuming. 2.2. Tensions between the Object and the Com-

munity In this case, tensions emerge in the software development activity due to the concern about how the object will af-fect the community. For example, when the source code is modified, often it is also necessary to modify other software artifacts, such as manuals, documentation, speci-fications, and so on, or inconsistencies will arise. Al-though inconsistencies might have positive effects in software development, in general they are not desirable [10]. The MVP software development team already rec-ognized the need to handle this problem (tension) and adopted two different and complementary practices to deal with it: Formal reviews are adopted in the software development process to handle inconsistencies in the source code, and problem reports are structured in such a way that the inconsistencies between source code and other artifacts are easier to manage. Both practices are explained in the following sections.

2.3. Tensions between the Rules and the Commu-

nity These tensions occur because a rule might suggest that a developer should perform a specific action, but the devel-oper does not want to perform it due to concern about the effect of this action on the community. As mentioned earlier, an example of such tension occurs when one developer needs to check-in his/her code into the repository, but the other developers would then need to recompile their code in order to work with the latest

Subject

Rules Community Division of labour

Object → Outcome

Mediating Artefacts

Subject (developers)

Rules

(software process, conventions)

Community (MVP team)

Division of Labour (developers and V&V staff)

Object (MVP software) → Outcome (MVP SW without bugs, etc)

Artefacts (CM tools, bug tracking, e-mail)

Page 103: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

their code in order to work with the latest version of the software. Because this compilation process is time-consuming, the developer needs to decide whether to fol-low the rule and thus cause the whole community to recompile, or to not follow the rule, at least for a while, thereby minimizing the impact of his/her actions in the rest of the community. Typical fixes adopted by the MVP team include changing the order in which some rules are executed or performing additional actions along with the rule to minimize the disruption to the community.

Furthermore, tensions between these components also arise due to the impact on the community in the execution of the rule. In other words, the developer is concerned that he/she needs to perform a rule but actions of the community (such as check-ins or check-outs) will impact his/her performance of the rule. In this case, those ac-tions influence how the developer performs the rule. Note that in this case, the division of labor also influences this tension because it prescribes how developers should be organized in the community, therefore allowing two or more developers to work and check-in in concurrently.

3. Implications for Activity Theory 3.1. Modeling Human Activity In software development terms, section 2 of this paper developed a model. The process of developing this model has more similarities to software modeling than one might expect. In particular, we began by choosing a modeling language that seemed appropriate for our application—the language of activity theory, and in particular Engeström’s terminology and diagrammatic notation. We then built an instance of a model in this language that served as a first approximation. We then refined it through several iterations. We reached a point at which analysis of the model yielded explanations consistent with the data, as presented above. Iterative refinement of the model appeared to be an open-ended process. However, the actual observations made during the internship acted in a sense like a “test oracle.” Namely, we reached a stopping point when all observed phenomena were accounted for. Moreover, the focus of activity theory on identifying tensions and con-flict were useful for understanding what we observed and for highlighting areas where software tools and practices might be improved. In sum, the attempt to model the human collective ac-tivity of collaborative software development did not seem straightforward at first, but required a first approximation and successive refinement. Although frustrating, the chal-lenges did not seem greater than other kinds of modeling, and the results were informative. In the next subsection, we make some observations on how this process may be improved and identify research areas for the methodol-ogy.

3.2. Activity Theory: Where Next? Activity theory has been applied to the design of software systems, and research to date has indicated its usefulness toward collecting requirements for software system de-sign (e.g., [1] and [8]). However, to the authors’ knowl-edge, this paper represents the first application of activity theory to studying collaboration among software devel-opers; previous studies have examined only the collabora-tion between end users and software developers. Thus, we had to struggle with a finer degree of detail of activity than previous works with respect to the development of software. One challenge that presented itself was the notion that a single activity might be consistent when observed as a single instance, but might be a source of tension when there were multiple instances of that activity. For in-stance, in the case of a single developer, even when work-ing with end users and other team members, the activity of checking-in a module revision is consistent within it-self. However, multiple instances of this check-in activity create a tension we observed as developers sped up their work to be the first to check-in. This part of the model and the more general issue of multiple instances of activ-ity is one place for further research into the application of activity theory and a potential contribution to improving the methodology. Another area for research in activity theory is akin to dependency analysis in software testing. Namely, as we identified different activities that comprised the general activity of evolving a software system, we began to ob-serve many interdependencies. For example, rules for applying a specific software tool led to other activities, each with their own associated set of rules, subjects, other tools, and so on. We were intrigued by the notion that a kind of dependency analysis might be developed to help an organization more precisely account for the potential impact of making changes to tools and practices. This kind of work, however, would be a long-term goal. A related issue is that of adoption. Understanding the his-tory of how elements in the activity theory models evolved (e.g., tools, rules, division of labor, and so on) can better enable the responsible introduction of new tools, including involving end users with tool introduc-tion. The basic premise of introducing changes into peo-ple’s work is the ability to develop the fullest understand-ing possible of that work. Activity theory, even in its pre-sent state of development, is successful in that regard. Finally, a new line of research is beginning to present itself around the concepts of reflection and awareness. Specifically, various researchers have begun to recognize the value of simply reflecting back to a group or organi-zation the actuality of its various objectives and activities. In a previous study, we used this kind of reflection as a matter of course in reporting findings, but the process of performing this “reporting” led to improvement in the

Page 104: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

process of software developers collecting requirements and in the organization’s members better understanding one another’s roles [2]. Other researchers have observed similar effects, including those at a small scale. Namely, some researchers are developing software tools to help people coordinate their collaborative work by reflecting the current state of a collaborative activity or the state of actual collaborators. Some instances are Portholes sys-tems that reflect the state of collaborators [3] [7], configuration management tools that reflect who is working on what modules [9], and tickertape tools that reflect all activities in a work environment [5]. Thus, another open area is better understanding and better reflecting of actual activity (through manual and automated means) back to participants in that activity, and understanding ways this has positive effects on the collective work.

4. Conclusions Our experiences in performing the analysis presented

briefly in this paper as well as previous experiences of our own and our colleagues have shown many positives to activity theory. It is open ended, which, although a challenge, allows for the introduction of new ideas and refinements. It is noninvasive, using open-ended inter-views or even more informal observations of work such as presented in this paper. It readily yields to iterative refinement. When more detail is needed in a model, addi-tional activities may be named and analyzed. Finally, there seems to be some overlap in object-oriented analy-sis. Although the present authors do not wish to overem-phasize the similarities, the overlap is helpful for people with object-oriented experience to engage in learning the methodology. Thus, although there is still a great deal of craft involved in becoming acquainted with and applying activity theory, we have experienced many positives in our analyses in different work settings and anticipate the methodology becoming more refined and documented.

Acknowledgments The authors thank CAPES (grant BEX 1312/99-5) and NASA/Ames for financial support. This effort was also sponsored by the Defense Advanced Research Projects Agency (DARPA) and Air Force Research Laboratory, Air Force Materiel Command, USAF, under agreement number F30602-00-2-0599. Funding also was provided by the National Science Foundation under grant numbers CCR-0205724 and 9624846. The U.S. Government is

authorized to reproduce and distribute reprints for gov-ernmental purposes notwithstanding any copyright anno-tation thereon. The views and conclusions contained herein are those of the authors and should not be inter-preted as necessarily representing the official policies or endorsements, either expressed or implied, of the Defense Advanced Research Projects Agency (DARPA), the Air Force Laboratory, or the U.S. Government.

5. References [1] Bodker, S., Through the Interface: A Human Activity Ap-

proach to User Interface Design, Hillsdale, NJ: Lawrence Erlbaum, 1991.

[2] Collins, P., Shukla, S., et al., “Activity Theory and System Design: A View from the Trenches,” Computer Supported Cooperative Work—Special Issue on Activity Theory and the Practice of Design, vol. 11, pp. 55-80, 2002.

[3] Dourish, P., and Bly, S., “Portholes: Supporting Distributed Awareness in a Collaborative Work Group,” ACM Confer-ence on Human Factors in Computing Systems (CHI '92), Monterey, CA, 1992.

[4] Engeström, Y., “Activity Theory and Individual and Social Transformation,” pp. 19-38, in Engeström, Y., Miettinen, R., and Punamäki, R-L., “Perspectives on Activity The-ory.” Cambridge, UK: Cambridge University Press, 1999.

[5] Fitzpatrick, G., Mansfield, T., et al., “Augmenting the Workaday World with Elvin,” 6th European Conference on Computer Supported Cooperative Work, pp. 431-450, Co-penhagen, Denmark, 1999.

[6] Kuuti, K., “Activity Theory as a Potential Framework for Human-Computer Interaction Research,” pp. 17-44, in Nardi, B., “Context and Consciousness: Activity Theory and Human-Computer Interaction.” Cambridge, MA: The MIT Press, 1996.

[7] Lee, A., and Girgensohn, A., “NYNEX Portholes: Initial User Reactions and Redesign Implications,” ACM Confer-ence on Human Factors in Computing Systems (CHI '97), pp. 385-394, 1997.

[8] Nardi, B., and Redmiles, D., Eds. Computer Supported Co-operative Work, The Journal of Collaborative Computing, Special Issue on Activity Theory and the Practice of De-sign, Vol. 11, No. 1-2, p. 1-11, 2002.

[9] Sarma, A., Noroozi, Z., et al., “Palantír: Raising Awareness among Configuration Management Workspaces,” Twenty-fifth International Conference on Software Engineering, pp. 444-453, Portland, Oregon, 2003.

[10] Spanoudakis, G., and Zisman, A., “Inconsistency Manage-ment in Software Engineering: Survey and Open Research Issues,” in Handbook of Software Engineering and Knowl-edge Engineering, vol. 1, S. K. Chang, Ed.: World Science Publishing Co., 2001, pp. 329-380.

Page 105: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

“Breaking the Code”, Private and Public Work in Collaborative Software Development Cleidson R. B. de Souza1,2 and David F. Redmiles2 1Universidade Federal do Pará, Brazil and 2University of California, Irvine, USA [email protected], [email protected]

Abstract. As a cooperative effort, software development is especially difficult because of the many interdependencies amongst the artifacts created during this activity. In order to minimize problems created by these interdependencies, some software development tools create a distinction between private and public aspects of work of the developer. Technical support is provided to these aspects as well as for transitions between them. However, we present empirical material collected from a software development team that suggests that the transition from private to public work needs to be more carefully handled. Indeed, our analysis suggests that different formal and informal work practices are adopted by the developers to allow a delicate transition, where software developers are not largely affected by the emergent public work.

Private and Public Work in CSCW Software engineers have sought for quite some time to understand their own work of software development as an important instance of cooperative work, especially seeking ways to provide better software tools to support developers (Curtis, Krasner et al. 1988). Indeed, they created different tools, such as configuration management (CM) and bug tracking systems, to facilitate the coordination of groups of developers (Grinter 1995). However, software development is especially difficult as a cooperative endeavor because of the several interdependencies that arise in any software development effort. To minimize these problems, CM systems adopt design constructs (like branches and workspaces used in configuration management systems) to shield each individual from effects of other developers’ work. These workspaces enforce a distinction between the private aspects of work developed by the software engineer and the public aspects that occurs when this developer shares his work with the other developers. Similar approaches have been taken in other categories of collaborative applications (e.g., collaborative writing and hypermedia systems), which have adopted this distinction between private and public work in order to facilitate collaboration. This is usually done through the provision of separate private and public (or shared) workspaces. Private workspaces allow users to work in different parts of a document in parallel and contain information that only one user can see and edit allowing him to create drafts that later will be shared with the other co-workers. On the other hand, public workspaces allow all users to share the same information or document.

When support for private and public work is provided, it is also necessary to support transitions between them. The central issue in systems maintaining separate workspaces is how information or

Page 106: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

activity moves between them, and similarly, the central mechanism around which CM systems are built is the mechanism for moving information between public and private conditions – checking in, checking out, merging. In cooperative working settings, people selectively choose when and how to disclosure their private work to others, i.e., they want to be able to control the emergence of public information (Ackerman 2000). CM tools and collaborative authoring tools provide support for these transitions. In collaborative writing, for example, one can basically copy the content of a private workspace and paste into the public workspace. On the other hand, in CM systems, more sophisticated tools involving merging algorithms and concurrency control policies need to be used because of the aforementioned interdependencies in the software.

Transitions between private and public work (and vice-versa) are particularly important in cooperative work and can lead to problematic situations when overlooked. Indeed, Sellen and Harper (Sellen and Harper 2002) describe some case studies of companies that had problems because they underestimated the delicacy of this transition. Despite that, insufficient analytical attention has been given to this transition by the CSCW community. In this paper, we will examine this issue with empirical material collected from a collaborative software development effort. The team observed used three software development tools for coordination purposes. However, these tools alone were not sufficient to effectively support the team; participants needed to adopt a set of formal and informal work practices to properly support private, public work and transitions between them. The adoption of these different work practices suggests that the computational support provided by these systems to support the emergence of private information is still unsatisfactory.

Setting and Methods

The group studied develops an application called MVP (not the real name) and is divided in two teams: developers and the verification and validation staff (V&V). Developers are responsible for writing new code, for performing bug fixing, enhancements, and so on. There are 25 developers, including researchers that write their own code. The V&V team (6 engineers) is responsible for testing the software, keeping a running version for demonstration and maintaining user manuals.

The first author spent eight weeks during the summer of 2002 as a member of the MVP team. During that time, he was able to interview developers, make observations and collect information about several aspects of the team. He also talked with his colleagues to learn more about their work. Additional material was collected by reading manuals of the MVP tools, manuals of the software development tools used, formal documents (like the description of the software development process and the ISO 9001 procedures), problem reports (PR’s), and so on.

MVP Practices to Handle Private and Public Work

The main tools used by the MVP team to coordinate their activities are the configuration management (CM) and the bug tracking tools (Grinter 1995). Branching in CM tools are used to create shields between developers’ workspaces isolating one’s work from others (Conradi and Westfechtel 1998). On the other hand, merging mechanisms are created to allow one’s work to be combined with other developers’ work. In other words, branches support private work, while merging mechanisms support the transition from private to public work. Finally, building mechanisms in CM tools support the public work because they allow developers to automatically recompile the code in order to incorporate changes recently committed in the repository.

In general, we identified that the private and public work are properly supported by the software development tools and by the software development process adopted by the MVP. However, except for

Page 107: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

the merging mechanisms embedded in CM tools, the transitions between private and public are improved through informal work practices because of the need developers have to manage the interdependencies. Examples of these practices will be briefly discussed in the following paragraphs.

We called the first practice “holding onto check-in’s”. Developers will hold onto check-in’s (and merges) when they realize that their work (in this case, their changes in the software) will imply in the recompilation of the whole source code. They avoid that because they know that the recompilation process is time-consuming usually taking between 30 to 45 minutes. This means that other developers will waste their time waiting for the recompilation of their local copies.

After making their work public by merging it back into the repository, the software development process prescribes that MVP developers must send an e-mail to the whole software development group informing about the new changes in the system. However, these developers will send this e-mail before committing their changes and will also add a brief description of the impact that these changes will cause on their colleague’s work. In this case, because of these e-mail messages, other developers might reflect about the effect of their colleagues’ changes in their current work and prepare for that. This is possible because they are aware of some interdependencies in the source-code. The convention (adding impact statements in the e-mails) is the second practice identified.

A third approach identified was the “partial check-in”, which consists of checking-in files back in the repository, even when the developers have not yet finished their entire work. This is used to deal with parallel development in files that are changed very often. This practice allows developers to reduce the work necessary to make their work public, as it minimizes the number of updates that they need to perform in their files before merging them into the main repository.

Finally, we also identified that problem reports (PR’s) are used by different stakeholders (e.g., end-users liaisons, developers and testers) to manage the software interdependencies. For example, when a bug is identified, it is associated with a specific PR. Whoever identified the problem is also responsible for filling in the PR with information about ‘how to repeat’ it. This description is used by the developer assigned to fix the bug to specify the circumstances (adaptation data, tools and their parameters) under which the bug appears. In short, MVP members use the information from the PR’s in many different ways, according to the role they are playing.

Conclusions

We briefly described some of the work practices adopted by software developers to properly handle the transition between their private and their public work. MVP developers employ these practices because of the interdependencies that exist in the software. As mentioned before, the adoption of these practices suggests that computational support is necessary in cooperative software development tools to support the emergence of private information.

References Ackerman, M. S. (2000). "The Intellectual Challenge of CSCW: The Gap Between Social Requirements and Technical

Feasibility." Human-Computer Interaction 15(2-3): 179-204. Conradi, R. and Westfechtel, B. (1998). "Version Models for Software Configuration Management." ACM Computing

Surveys 30(2): 232-282. Curtis, B., Krasner, H. and Iscoe, N. (1988). "A field study of the software design process for large systems."

Communications of the ACM 31(11): 1268-1287. Grinter, R. E. (1995). Using a Configuration Management Tool to Coordinate Software Development. Conference on

Organizational Computing Systems, Milpitas, CA, 168-177. Sellen, A. J. and Harper, R. H. R. (2002). The Myth of the Paperless Office. Cambridge, Massachusetts, The Mit Press.

Page 108: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

“Breaking the Code”, Moving between Private and Public Work in Collaborative Software Development

Cleidson R. B. de Souza1,2 David Redmiles1 Paul Dourish1

1School of Information and Computer Science

University of California, Irvine

Irvine, CA, USA – 92667

2Departamento de Informática

Universidade Federal do Pará

Belém, PA, Brazil - 66075

{cdesouza,redmiles,jpd}@ics.uci.edu

ABSTRACT Software development is typically cooperative endeavor where a group of engineers need to work together to achieve a common, coordinated result. As a cooperative effort, it is especially difficult because of the many interdependencies amongst the artifacts created during the process. This has lead software engineers to create tools, such as configuration management tools, that isolate developers from the effects of each other’s work. In so doing, these tools create a distinction between private and public aspects of work of the developer. Technical support is provided to these aspects as well as for transitions between them. However, we present empirical material collected from a software development team that suggests that the transition from private to public work needs to be more carefully handled. Indeed, the analysis of our material suggests that different formal and informal work practices are adopted by the developers to allow a delicate transition, where software developers are not largely affected by the emergent public work. Finally, we discuss how groupware tools might support this transition.

Categories and Subject Descriptors H.4.1 [Office Automation]: Groupware; H.5.3 [Group and Organization Interfaces]: Computer-supported cooperative work;

General Terms Human Factors

Keywords Private work, public work, collaborative software development, qualitative studies.

1. INTRODUCTION Software engineers have sought for quite some time to understand their own work of software development as an important instance of cooperative work, especially seeking ways to provide better

software tools to support developers [6]. Indeed, they created several different tools, such as configuration management (CM) and bug tracking systems, to facilitate the coordination of groups of developers [14]. However, software development is especially difficult as a cooperative endeavor because of the several interdependencies that arise in any software development effort. To minimize these problems, current CM systems adopt design constructs (like workspaces and branches used in configuration management systems) to shield each individual from effects of other developers’ work [5]. These workspaces enforce a distinction between the private aspects of work developed by a software engineer and the public aspects that occur when this developer shares his work with other developers. Similar approaches have been taken in other categories of collaborative applications (e.g., collaborative writing and hypermedia systems), which have adopted this distinction between private and public work in order to facilitate collaboration. In these applications, this is usually done through the provision of separate private and public (or shared) workspaces. Private workspaces allow users to work in different parts of a document in parallel and contain information that only one user can see and edit allowing him to create drafts that later will be shared with the other co-workers [7]. On the other hand, public workspaces allow all users to share the same information or document and edit it concurrently.

When support for private and public work is provided, it is also necessary to support transitions between them. The central issue in systems maintaining separate workspaces is how information or activity moves between them, and similarly, the central mechanism around which CM systems are built is the mechanism for moving information between public and private conditions – checking in, checking out, merging. In cooperative working settings, people selectively choose when and how to disclosure their private work to others, i.e., they want to be able to control the emergence of public information [1, 26]. CM tools and collaborative authoring tools provide support for these transitions. In collaborative writing, for example, one can basically copy the content of a private workspace and paste into the public workspace. On the other hand, in CM systems, more sophisticated tools involving merging algorithms and concurrency control policies need to be used because of the aforementioned interdependencies in the software.

Transitions between private and public work (and vice-versa) are particularly important in cooperative work and can lead to problematic situations when overlooked. Indeed, Sellen and

Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee.

GROUP’03, November 9–12, 2003, Sanibel Island, Florida, USA.

Copyright 2003 ACM 1-58113-693-5/03/0011…$5.00.

Page 109: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

Harper [28] describe case studies of companies that had problems because they underestimated the delicacy of this transition. Despite that, insufficient analytical attention has been given to this transition by the CSCW community. In this paper, we will examine this issue with empirical material collected from a collaborative software development effort. The team observed uses mostly three tools for coordination purposes: a configuration management tool, a bug-tracking system, and e-mail. However, these tools alone were not sufficient to effectively support the team; participants needed to adopt a set of formal and informal work practices to properly support private, public work and transitions between them. The adoption of these different work practices suggests that the computational support provided by these systems to support the emergence of private information is still unsatisfactory. Based on these results, we draw more general conclusions about the implications for computer-supported cooperative work.

The rest of the paper is organized as follow. The next section discusses the idea of private and public work in computer-supported cooperative work. Then, sections 3 and 4 present the settings and the methods that we used to study the software development team. After that, Section 5 describes the set of work practices adopted by the team to properly deal with private, public work and transitions between them. Section 6 presents our discussion about the data that we collected. After that, Section 7 discusses implications of our findings in the design of CSCW tools. Finally, conclusions and ideas for future work are presented.

2. PRIVATE AND PUBLIC WORK In this paper we examine the distinction between private and public work in collaborative efforts. The need for this distinction is widely recognized in CSCW research. According to Ackerman [1], for example, people “(…) have very nuanced behavior concerning how and with whom they wish to share information (…) people are concerned about whether to release this piece of information to that person at this time (…)”. Another reason that makes people care about the release of information about them is that they “(…) are aware that making their work visible may also open them to criticism or management (…)” (ibid.). Furthermore, one does not make his entire work visible because he wants to appear competent in the eyes of colleagues and managers by making their work more complicated than necessary [26]. Indeed, people are not interested in all information that is provided to them. As Schmidt [26] points out:

“(…) in depending on the activities of others, we are ‘not interested’ in the enormous contingencies and infinitely faceted practices of colleagues unless they may impact our own work (…) An actor will thus routinely expect not to be exposed to the myriad detailed activities by means of which his or her colleagues deal with the contingencies they are facing in their effort to ensure that their individual contributions are seamlessly articulated with the other contributions.”

To summarize, people have several contextualized and different strategies to release their private information, and they expect that others will do the same, not overloading them with public information that is not ‘relevant’ to their current context or

activity. Note that this private information might be collaboratively constructed [16]. In this case, the information is public for those involved in its “construction”, but it is private to the other members of the cooperative effort.

CSCW researchers have already recognized the need to support these findings. Indeed, a typical approach to address that is to provide support for private and public (also called shared) windows, or workspaces, to support the collaboration among users [30]. Private workspaces allow users to work in different parts of a document in parallel and contain information that only one user can see and edit, allowing him to create drafts that later will be shared with the other co-workers [7]. On the other hand, public workspaces allow all users to share the same information or document so that, changes in the document are automatically visible to all users. The usage of these workspaces mimic conventions carried over non-technological work, where no one wants to search or look at anyone’s private desk or drawer, and conversely wants no one to search theirs, but accepts that when they occur in public spaces. Indeed, Mark and colleagues [21] report how conventions about the use of private and public workspaces implicitly evolved from conventions formed in face-to-face non-technological work after the introduction of a groupware tool.

Often, other mechanisms are present in collaborative systems to make other actions’ visible as well. For example, grey ‘clouds’ were proposed in the collaborative editor Grove to indicate where other co-writers are editing the text [9]. Furthermore, it is also well-known that, in some settings, making others’ work public facilitates the coordination of the activities [16] [17] and enables learning and greater efficiencies [20]. Examples of tools that explore such approaches include Portholes [8] and Babble [10].

The underlying distinction between private and public work also implies that in collaborative efforts transitions between these two aspects occur. However, while notions of “public” and “private” have been incorporated into software system design, insufficient analytical attention has been give to the transitions. Field studies such as those of Bowers [4] or Sellen and Harper [28] demonstrate that overlooking these transitions can be problematic. In Bower’s study, the disclosure of private data brought about dilemmas of ownership and responsibility among the employees of the organization studied. In Sellen and Harper’s study, when the companies tried to go paperless deploying a new information system, the employees’ ability to control when to disclosure information was lost and these employees boycotted the system. This happened because paper, as a medium on which work was performed, allowed their owners to avoid sharing information with their co-workers until they felt that the information was “ready”.

Note that the setting where the collaborative effort takes place is important. For example, in a control room, all workers are collocated, which allows them to use intonations in their voice and/or body language to make their actions visible to other co-workers [17]. On the other hand, Whittaker and Schwarz [34] report an ethnographic study where a large wallboard (containing the schedule of a software development project) is used by the team, which is spread along different cubicles and offices. The public location of this wallboard allowed developers to access

Page 110: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

information about who was doing which tasks at which times, among other things. In other words, in this setting, information about others’ current actions was made public by checking and updating the schedule displayed in the wallboard.

In collaborative software engineering, this distinction between private and private work is not only desirable, but necessary and often enforced by tools. This occurs because of the several interdependencies that arise in any software development effort. In other words, each part of the software depends, directly or indirectly, on many other parts. Furthermore, these interdependencies are not strictly defined in the artifacts produced, and often are not even known by the developers. To handle this problem, software engineers created tools, such as configuration management (CM) and bug tracking systems, to facilitate the coordination of groups of developers [14]. Current CM systems adopt design constructs (like workspaces and branches) to shield the work of individuals from effects of other developers’ work [5]. Basically, these workspaces “create a barrier that prevents developers from knowing which other developers change which other artifacts” [25]. Therefore, CM workspaces allow software developers to work privately. Furthermore, CM systems provide mechanisms to support the transition from private to public work when developers want to make this transition. To be more specific, when a developer finishes his work in his private workspace, he can publicize his work to other software developers through check-in’s, check-out’s and merging operations. Despite this support, several problems arise in any software development effort. Indeed, based on empirical data that we collected, we identified a set of formal and informal work practices used by a team of software developers to handle these problems. The setting where the data was collected and the methods used to analyze this data are described in the following section.

3. THE SETTING The team studied is located at the NASA / Ames Research Center and develops a software application we will call MVP (not the real name), which is composed of ten different tools in approximately one million lines of C and C++. Each one of these tools uses a specific set of “processes.” A process for the MVP team is a program that runs with the appropriate run-time options and it is not formally related with the concept of processes in operating systems and/or distributed systems. Processes typically run on distributed Sun workstations and communicate using a TCP/IP socket protocol. Running a tool means running the processes required by this tool, with their appropriate run-time options.

Processes are also used to divide the work, i.e., each developer is assigned to one or more processes and tends to specialize on it. For example, there are process leaders and process developers, who, most of the time, work only with this process. This is an important aspect because it allows these developers to deeply understand the process behavior and familiarize with its structure, therefore helping them in dealing with the complexity of the code. During the development activity, managers tend to assign work according to these processes to facilitate this learning process. However, it is not unusual to find developers working in different processes. This might happen due to different circumstances. For

example, before launching a new release all workforce is needed to fix bugs in the code, therefore, developers might be assigned to fix these bugs.

3.1 The Software Development Team The software development team is divided into two groups: the verification and validation (V&V) staff and the developers. The developers are responsible for writing new code, for bug fixing, and adding new features. This group is composed of 25 members, three of whom are also researchers that write their own code to explore new ideas. The experience of these developers with software development range between 3 months to more than 25 years. Experience within the MVP group ranges anywhere between 2½ months to 9 years. This group is spread out into several offices across two floors in the same building.

V&V members are responsible for testing and reporting bugs identified in the MVP software, keeping a running version of the software for demonstration purposes and for maintaining the documentation (mainly user manuals) of the software. This group is composed of 6 members. Half of this group is located in the V & V Laboratory, while the rest is located in several offices located in the same floor and building as this laboratory. Both, the V&V Lab and developers’ offices are located in the same building.

3.2 The Software Development Process The MVP group adopts a formal software development process that prescribes the steps that need to be performed by the developers during their activities. For example, all developers, after finishing the implementation of a change, should integrate their code with the main baseline. In addition, each developer is responsible for testing its code to guarantee that when he integrates his changes, he will not insert bugs in the software, or, “break the code”, as informally characterized by the MVP developers. Another part of the process prescribes that, after checking-in files in the repository, a developer must send e-mail to the software development mailing list describing the problem report associated with the changes, the files that were changed, the branch where the check-in will be performed among other pieces of information.

The MVP software process also prescribes the usage of code reviews before the integration of any change, and design reviews for major changes in the software. Code reviews are performed by the manager of each process. Therefore, if a change involves, e.g. two processes, a developer’s code will be reviewed twice: one by each manager of these two processes. On the other hand, design reviews are recommended for changes that involve major reorganizations of the source code. Their need is decided by the software manager usually during the bi-weekly software developers meeting (called pre-design meetings).

3.3 Software Development Tools: CM and Bug tracking MVP developers employ two software development tools for coordinating their work: a configuration management system and a bug tracking system. Of course, other tools are used such as CASE tools, compilers, linkers, debuggers and source-code editors, but the CM and bug-tracking tools are the primary means

Page 111: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

of coordination [5] [12] [14]. These tools are integrated so that there is a link between the PR’s (in the bug tracking system) and the respective changes in the source-code (in the CM tool). Both tools are provided by one of the leader vendors in the market.

A CM tool supports the management of source-code dependencies through its embedded building mechanisms that indicate which parts of the code need to be recompiled when one file is modified. To be more specific, CM tools support both compile-time dependencies, i.e., dependencies that occur when a sub-system is being compiled; and build-time dependencies that occur when several sub-systems or the entire system is being linked [12]. A bug tracking tool, when associated with the CM tool, supports the tracking of changes performed in the source code during the development effort.

It is important to mention that the MVP team employs several advanced features of the CM tool such as triggers, techniques to reduce compilation time, labeling and branching strategies. Indeed, the branching strategy employed is one of the most important aspects of a CM tool because it affects the work of any group of software developers. This strategy is a way of deciding when and why to branch, which makes the task of coordinating parallel changes easier or more difficult [33]. According to the nomenclature proposed by Walrad and Strom [33], the following branching strategies are used by the MVP team: (1) branch-by-purpose, where all bug fixes, enhancements and other changes in the code are implemented on separated branches; (2) branch-by-project, where branches are created for some of the development projects; and (3) branch-by-release, where the code branches upon a decision to release a new version of the product. The branch-by-purpose strategy is employed by MVP developers in their daily work, while the other strategies are only used by the CM manager. In other words, developers create new branches for each new bug fix or enhancement, while branches for projects and releases are created by the manager only. The branch-by-purpose strategy supports a high degree of parallel development but at the cost of more complex and frequent integration work [33]. According to this strategy, each developer is responsible for integrating his changes into the main code. This approach is often called “push integration” [2]. After that, the changes are available to all other developers. Therefore, if one bug is introduced, other developers will notice this problem because their work will be disrupted. Indeed, we observed and collected reports of different instances of this situation. When one developer suspects that there is a problem introduced by recent changes, he will contact the author of the changes asking him or her to check the change, or for more information about it.

4. METHODS The first author spent eight weeks during the summer of 2002 as a member of the MVP team. As a member of this team, he was able to make observations and collect information about several aspects of the team. He also talked with his colleagues to learn more about their work. Additional material was collected by reading manuals of the MVP tools, manuals of the software development tools used, formal documents (like the description of the software development process and the ISO 9001 procedures), training documentation for new developers, problem reports (PR’s), and so on.

All the members of the MVP team agreed with the author’s data collection. Furthermore, some of the team members agreed to let the intern shadow them for a few days so that he could learn about their functions and responsibilities better. These team members belonged to different groups and played diverse roles in the MVP team: the documentation expert, some V&V members, leaders, and developers. We sampled among MVP “processes”, developers’ experience in software development and with MVP tools (and processes) in order to get a broader overview of the work being performed at the site. A subset of MVP group was interviewed according to their availability. We again sampled them according to the dimensions explained above. Interviews lasted between 45 and 120 minutes. To summarize, the data collected consists in a set of notes that resulted from conversations, documents and observations based on shadowing developers. These notes have been analyzed using grounded theory techniques [31].

5. PRIVATE AND PUBLIC WORK IN SOFTWARE DEVELOPMENT As mentioned before, software development tools like configuration management systems support private, public work, and transitions between them. Despite using a CM system the MVP team faced several problems when dealing with these aspects. In this section, we present the formal and informal approaches adopted by this team in order to properly perform their work, i.e. develop software. In the sections that follow, we will explore these situations separately: private work, the transition from private to public, public work, and the transition from public to private.

5.1 Private Work Configuration management tools allow developers to work privately through the implementation of workspaces and branches [5]. These workspaces isolate the changes being created by one developer from other parts of the code. In this case, a developer’s ‘work-in-progress’ is not shared with other developers. Furthermore, these workspaces allow a developer to work without being affected by the changes of other developers. Indeed, when new changes are committed in the repository by other developers, the CM tool lets the user decide if he or she wants to grab these changes. In case one wants to incorporate the changes, he may recompile the software using the embedded building mechanisms on these tools. In case a developer does not want to incorporate the changes, one can continue working and, if necessary, recompile the software with the appropriate run-time options that do not grab these new changes. Of course, this is a risky course of action because it might lead the developer to work with an outdated version of the files, which might potentially make his work less ineffective.

Mechanisms embedded in CM tools are able to identify syntactic conflicts between the developer’s ‘work-in-progress’ and the changes committed into the repository, reporting whether or not the ‘work-in-progress’ is affected by these changes. However, because CM systems rely on syntactic features of the domain such as files, suffixes and lines of code, they can not identify semantic conflicts [11]. This means that except for these conflicts, current configuration management systems provide extensive and

Page 112: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

automated support for maintaining the isolation between the work performed by one person from other’s work [5].

However, when software developers engage in parallel development, problems arise in the CM tool. Parallel development happens when more than one developer needs to make changes in the same file. This means that the same file is checked-out by different developers and all of them are making changes in the different copies of this file in their respective workspaces. As one might imagine, parallel development might lead to conflicts. They might occur when one developer checks-in his changed version of the file back in the repository, because the versions of the other developers will become outdated. In this case, the changes of these developers might become inappropriate because they are based on a code that is not the latest. To solve this problem, a developer needs to update his version of the file by merging the other developer’s changes into his code. The developers term this operation “back merging”; in CM terminology, it is named “synchronization of workspaces” or “import of the changes”. Conflicting changes are more likely to occur in files that are accessed by several developers at the same time. Indeed, in the MVP software some files are used to describe programming language structures that are used all over the code. This means that several different developers often change these files. In this case, “back merges” are problematic because CM tools face difficulties when they need to perform several merges at the same time. To overcome this problem not avoiding parallel development, MVP developers adopted a strategy to deal with these files: they perform “partial check-in’s”, which consist of checking-in some of the files back in the repository, even when the developers have not finished all their changes yet. This strategy reduces the number of “back merges” needed, therefore overcoming the limitations of CM tools. In addition, they minimize the likelihood of conflicting changes.

In addition to “partial check-in’s”, MVP developers adopt a different practice during their private work: they “speed-up” to finish some of their activities during the development process to avoid merging. This does not happen all the time though, it occurs only when MVP developers are testing their changes. This activity is performed right before the check-in operations. As one developer plainly pointed out: “This is a race!”. According to the software development process, this testing is necessary to guarantee that the changes will not introduce bugs into the system. We observed that, this testing is very informal: developers will sit on the V&V laboratory and compare the current version of MVP with the one with changes. MVP developers do not use more formal techniques, such as regression testing techniques, at this moment. These will be used by the V&V staff before creating a new release of the software.

In contrast, the bug tracking tool does not provide support for the private work of software developers. All the operations made in the problem reports managed by this tool are publicly accessible to all other software developers. For example, when a developer is assigned a bug, he needs to fill some information about the bug indicating how he will proceed to fix that bug. MVP developers usually write the information to be added to the bug tracking system outside the tool in a private file only accessible by themselves. Eventually, this information is added to the bug-tracking tool by the developer, which will automatically make it

available to all members of the MVP team. Furthermore, the tool does not avoid that two developers work on the same PR, as reported by one of the developers. Developers themselves have to deal with this problematic situation. The MVP group tries to avoid this problem through the software development process, which prescribes that the software manager is the one responsible for assigning PR to developers. Any assignment needs the approval of the manager. Organizational rules however interact with this process. According to these rules, the software manager can not assign work to the contractors working for the MVP group. This assignment has to be done to the manager of the contracting company, who will be responsible for assigning the work to the developers.

5.2 Moving from Private to Public Work In this section we discuss the work practices used by the MVP team to support the transition from private to public work, as well as how the software development tools used by the MVP team support this transition. This transition might occur in two situations: when a developer asks for code reviews, or informal comments, in his code; or when a developer commits his work (source-code changes) into the CM repository.

In the first case, MVP developers want to grant others access to their code, meaning that the work will be visible to them so that they can comment on it. In this case, MVP developers simply need to change a setting in their CM workspaces. Although their work is now public, it is not shared by the other developers, meaning that it will not impact other developers work.

In the second case, after a developer commits his work into the CM repository, this work is made public and shared meaning that it is visible and might impact the work of the other developers. In order to publicize his work, the author of the changes has to perform, at least, four different operations1:

1. Check-in the files that he wants to publish in his own branch;

2. Check-out the same set of files from the baseline; 3. Merge his changed files with the checked-out files

available in the baseline; and 4. Check-in the new files generated by the merging

operation into the baseline.

From the technical point of view, these tasks are not difficult since check-in’s, check-out’s and merges are typical operations in CM systems and, therefore, supported by nearly every tool in the market. This means that CM systems provide adequate support for these operations. However, this support is problematic when a developer is, or was, engaged in parallel development. As mentioned in the previous section, MVP developers adopt “partial check-in’s” to deal only with files with high levels of parallel development. Other files are not “partially checked-in”. In this case, if a developer is engaged in parallel development and other developers had checked-in the same files in the baseline before him, then he will need to perform “back merges” before merging 1 These operations might be different in other software

development teams since they depend on the branching strategy adopted by the team.

Page 113: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

his code into the baseline. “Back merges” are supported by the CM tool through the presentation of version trees of the files being merged, which allows developers to identify the need for this task through the observation of the versions on this tree. After that, the operation is a simple merge. Again, the situation becomes problematic only if several “back merges” need to be performed.

During the transition from private to public, there is nothing that other developers need, or are able to do to facilitate this process. The work of performing the transition needs to be done by the author of the changes that will be publicized. However, because of the several inter-dependencies that exist among the several parts of the software (e.g., source-code, manuals, specifications, design documents, and so on), this does not mean that these developers will not be affected by the transition. Indeed, in order to minimize these effects, the developer who is going to perform the transition follows a set of formal and informal practices to facilitate the management of the interdependencies. These practices need to be adopted because the tool support to the developers affected by the private work being publicized is minimal. These formal and informal practices are described below.

The Software Development Process

As mentioned before, the software development process adopted by the MVP team prescribes the usage of code and design reviews. One of the reasons reported by the MVP developers for using these formal reviews is the possibility of evaluating the impact that the changes under review will have on the rest of the code. The most experienced software developer of the team, for example, reported that design reviews are used to guarantee that changes in the code do not “break the architecture” of the MVP software. By breaking the architecture, she means writing code that violates some of the design decisions embedded in the MVP software. Code reviews, on the other hand, are responsibility of process leaders, who can evaluate the impact that the changes will introduce in their processes before they were committed in the main repository. This helps each and every process leader to coordinate the work of other developers working in the same process.

E-mail Conventions

In addition to formal reviews, the MVP process prescribes that after checking-in code in the repository, a developer needs to send an e-mail about the new changes being introduced in the system to the software developers’ mailing list (see section 3.2). However, we found out that MVP developers send this e-mail before the check-in. Moreover, MVP developers add a brief description of the impact that their work (changes) will have on other’s work in this e-mail sent to the software developers’ mailing list. By adopting these practices, MVP developers allow their colleagues to prepare for and reflect about the effect of their changes. This is possible because all MVP developers are aware of some of the interdependencies in the source-code, but not all of them. As an example of this ‘preparation’, developers might send e-mail to the author of the changes asking him to delay their check-in, walk to the co-worker’s office to ask about these changes or, if the changes have already been committed, browse the CM and bug tracking systems to understand them. The following list presents some comments sent by MVP developers:

“No one should notice.” “[description of the change]: only EDP users will notice any change.” “Will be removing the following [x] files. No effect on recompiling.” “Also, if you recompile your views today you will need to start your own [z] daemon to run with live data.” “The changes only affect [y] mode so you shouldn't notice anything.” “If you are planning on recompiling your view this evening and running a MVP tool with live [z] data you will need to run your own [z] daemon.”

These e-mails are also important because they tell (or remind) developers that they have been engaged in parallel development. Often, developers do not know that this is happening2. The information in the e-mail is usually enough to tell the developer if he needs to incorporate these changes right away in order to continue his work, or if he can wait until he is ready for check-in. In both cases, the developer needs to “merge back” the latest changes into his version of the file.

Sending e-mail before a check-in is also used by other developers to support expertise identification, and as a learning mechanism. Developers associate the author of the e-mails describing the changes with the “process” where the changes are being performed. In other words, MVP developers assume that if one developer constantly and repeatedly performs check-ins in a specific process, it is very likely that he is an expert on that process. Therefore, if another developer needs help with that process he will look for him for help:

“[talking about a bug in a process that he is not expert] (…) I don’t understand why this behaves the way it does. But, most of these PR’s seem to have John’s name on it. So you go around to see John. So, by just by reading the headline of who does what, you kind of get the feeling of who’s working on what (…).So they [e-mails] tend to be helpful in that aspect as well. If you’ve been around for ten years, you don’t care, you already know that [who works with what], but if you’ve been here for two years that stuff can really make difference (…)”

On the other hand, the fact that developers read e-mails sent by other developers to assess the impact of others’ changes in their code contributes to their learning experience within MVP. Note that developers who reported the aspects described in this section had little experience working at MVP: the first with 2 years and the second with 2 ½ months.

Problem Reports

The problem reports (PRs) of the bug-tracking tool are used by different members of the MVP team who play diverse roles in the software development process. Basically, when a bug is

2 Differently than the developers reported by Grinter [14], before

checking-out a file, they do not check the version tree that displays information about other developers working on the same file.

Page 114: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

identified, it is associated with a specific PR. The tester who identified the problem is also responsible for filling in the PR the information about ‘how to repeat’ it. This description is then used by the developer assigned to fix the bug to learn and repeat the circumstances (adaptation data, tools and their parameters) under which the bug appears. In other words, the information provided by the tester is then used by the MVP developer to locate, and eventually fix the bug. After fixing the bug, this developer must fill a field in the PR that describes how the testing should be performed to properly validate the fix. This field is called ‘how to test’. This information is used by the test manager, who creates test matrices that will be later used by the testers during the regression testing. The developer who fixes the bug also indicates in another field of the PR if the documentation of the tool needs to be updated. Then, the documentation expert uses this information to find out if the manuals need to be updated based on the changes the PR introduced. Finally, another field in the PR conveys what needs to be checked by the manager when closing it. Therefore, it is a reminder to the software manager of the aspects that need to be validated.

In other words, PR’s provide information that is useful for different members of the MVP team according to the roles they are playing. They facilitate the management of interdependencies because they provide information to MVP developers that help them in understanding how their work is going to be impacted by the changes that are going to be checked-in the repository.

Holding check-in’s

As mentioned earlier, MVP developers add a brief description of the impact of their changes to the e-mail sent to the developers before checking-in any code. Two types of impact statements are used more often than others: changes in run-time parameters of a process, and the need to recompile parts or the whole source code. The former case is important because other developers might be running the process that will be changed with the check-in. The latter case is used because when a file is modified, it will be recompiled, as well as, the other files that depend on it and this recompilation process is time-consuming, up to 30 to 45 minutes. Developers are aware of the delay that they might cause to others. Therefore, they hold check-in’s until the evening to minimize the disturbance that they will cause. According to one of the developers:

“(…) people also know that if they are going to check-in a file, they will do in the late afternoon … You’re gonna do a check-in and this is gonna cause anybody who recompiles that day have to watch their computer for 45 minutes (…) and most of the time, you’re gonna see this coming at 2 or 3 in the afternoon, you don’t see folks (….) you don’t see people doing [file 1] or [file 2] checking-in at 8 in the morning, because everybody all day is gonna sit and recompile.”

The transition from private work, then, is recognized as a point at which the work of a single developer can impact the work of others. Developers’ orientation is not simply towards the artifacts but towards the work of the group. The subtlety with which the transition is managed reflects this consideration.

5.3 Public Work The work of one developer becomes public when it is visible to all other co-workers. This happens in two different circumstances: when a developer changes the settings of his workspaces to grant others access to his code and after a developer commits his changes into the repository of the CM tool. These situations raise the question of how the MVP developers handle the new public work (changes)?

In the former case, the work is public but not shared, which means that it is not going to affect other developers’ work. Therefore, MVP developers do not need to take any step in order to handle the public work, because it will not affect them. However, in the second case, MVP developers might need to adapt their work based on these changes. Indeed, MVP developers might need to recompile their changes (work) in case they choose to incorporate the new public work or they might need to change the run-time parameters of a process that was altered by the changes. Based on our data, we found out that the configuration management tool provides some help to MVP developers handle this situation. As mentioned before, these tools have building mechanisms that help MVP developers, upon request, to incorporate the new changes and identify syntactic conflicts between the developer’s ‘work-in-progress’ and the new changes. However, these tools are not able to detect semantic conflicts since they are purposely created to be independent of programming languages [11].

The bug tracking tool, on the other hand, provides support for public work because all the operations performed in the problem reports are automatically visible to all MVP developers. In addition, this tool implements some accounting features that record the history of a PR including all operations performed on each one of them.

5.4 Moving from Public to Private Work, or “Breaking the code” According to Walrad and Strom [33], the branch-by-purpose strategy adopted by the MVP team (see section 3.3) assures continual integration of the code, therefore minimizing problems. However, this strategy needs to be complemented by some form of notification that informs all developers that a check-in happened (and therefore that some integration took place). As mentioned before, this is achieved in the MVP team through the e-mail notification sent before the check-in’s. Therefore, whenever a new change is introduced in the repository, all developers are notified about it. This affords an easy detection of problems caused by the introduced changes. In other words, if a change introduces a bug in the software, other developers might be able to detect it because: (i) they are aware that a change was introduced in the code by another developer; and (ii) they usually integrate the new introduced changes in their own work. If any abnormal behavior is identified in the software after a check-in, whoever identified that will contact the author of the check-in to verify if the problem is happening because of the check-in. If that is the case, the software is called “broken” and the code that was checked-in must be removed from the repository, corrected, and checked-in again later. In other words, the publicly available work needs to be made private again. The CM tool supports this transition because

Page 115: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

it provides rollback facilities that allow one to remove committed changes from the repository.

6. DISCUSSION The notions of private and public work and workspaces are well known ones in the design of collaborative systems. However, our empirical observations draw attention to the complex set of practices that surround the transition between public and private. Private information has public consequences, and vice versa.

The different formal and informal work practices arise in the MVP team, especially, because of the interdependencies among the different artifacts created during the software development process. Indeed, these interdependencies make the process of publicizing work so important. A developer can not simply carelessly publicize his work, because this will cause a large impact in other developers’ work: some of them will need to go through their testing again, others will spend a lot of time recompiling their changes, others can need to change their own code in order to adapt the new checked-in code, and so on.

Since the MVP developers are aware of some of these interdependencies, they explicitly work to minimize problems that emerge in the relationship between their different working needs. Artifacts such as problem reports facilitate the management of interdependencies of developers from the different groups and with different roles. Problem reports are “boundary objects” in the sense of Star and Griesemer [29]; objects whose common identity is robust enough to support coordination, but whose internal structure, meaning, and consequences emerge from local negotiations between groups. Viewing PR’s as boundary objects draws attention to their role in managing loosely-coupled coordination, and how each developer is able to interpret the information in the PR’s that is useful to their current work. Critically, this is achieved without changing the identity of each PR along the whole software development process. Indeed, each PR keeps the same unique identifier.

Interestingly, these formal and informal work practices require that the author of the changes performs most of the additional work. However, this author will not get any benefit from that. Indeed, sending e-mail notifications, holding check-in’s, and filling the appropriate PR’s fields during the implementation are all operations performed by the author of the changes and none of them facilitate or improve his work. There is one developer performing the extra-work who does not gain any benefit of this extra work, and fifteen other developers who benefit from his work3. That is exactly one of the situations that lead groupware applications to fail [15]. In this particular software development team though, this does not happen. MVP developers are aware of the extra-work that they need to perform, but they are also aware that this same extra-work is going to be performed by the other developers when necessary, and this is going to help each and every one of them in performing their tasks.

On the other hand, MVP developers also adopt informal practices during their private work. The first one, called “partial check-

3 The MVP group is composed of 16 developers. One of them is

performing the check-in; therefore 15 others are being helped by the extra-work.

in’s”, is especially important because it is used to handle files with a high degree of parallel development and changes in these files positively correlate with the number of defects [23]. “Partial check-in’s” are variations of the formal software development process, which establishes that check-ins only will be performed when the entire work is done. They are necessary because of the software development tools adopted are unable to properly handle merging in these files. This is the same reason, according to Grinter [14], that led other team of software developers to either avoid parallel development or rush to finish their work. On the other hand, MVP developers rush because they do not want to repeat their testing when another developer checks-in some code into the repository. In both studies, developers describe their dilemma: they want to produce high-quality code, but they also want to finish fast their changes.

Holding onto check-in’s is another informal approach adopted by the MVP developers during their private work. It is adopted because they are aware of some of the existing interdependencies in the software and they want to minimize the impact that their changes will cause on others’ work. To be more specific, they understand that some changes cause a lot of recompilation, which might lead other developers to spend time “watching” the recompilation.

All this extra-work performed by the different members of the MVP team is another form of articulation work [27] that occurs in cooperative software development. It is different from the recomposition work [13], which is the coordination required to assemble software development artifacts from their parts. Recomposition work focuses on choosing the right components to create a software artifact due to source-code dependencies, while this extra work that we report focuses on the management of all interdependencies that exist in a software development effort.

After any code is checked-in into the CM repository, the other MVP developers are able to detect problems, or, detect if the MVP software is “broken”. As noted in other settings such as ship bridges [19] or aircraft cockpits [20], this can be achieved because work artifacts and activities are visible to all. By creating a public space, the CM repository supports collective error detection and correction.

7. IMPLICATIONS FOR TOOLS Software engineers have been developing tools to help co-workers in analyzing the impact of others’ work in their own work. In this case, the support is provided to the developers after the transition from private to public work has been made. This approach, called change impact analysis [3], uses several techniques. One example is dependency graph approaches, which focus on determining the impact of the changed code (product) in other’s part of the source code. These approaches are usually based on program dependences, which are syntactic relationships between the statements of a program representing aspects of the program’s control flow and data flow [24]. In other words, they focus only in determining the impact of the changes in the product in the rest of the cooperative effort. Although powerful, these techniques are also computationally expensive and very time-consuming to be used by developers in their daily work. Consequently, they do not completely support the transition from private to public work, and as we’ve seen, this is a very subtle step in cooperative software

Page 116: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

development. Although these techniques have their limitations, they are evidence that the dependencies between developers' working activities are a cause for concern and attention. We argue that other cooperative efforts, especially those with several interdependencies, could greatly benefit from such approaches, if they were arranged to support the emergence of public information.

Recent approaches in software engineering attempt to provide useful information to developers so that they can better coordinate. In other words, these approaches try to increase the awareness [7] of software engineers about the work of their colleagues. They differ, however, on the type of information that is provided. A first approach is based on the idea of facilitating the dissemination of public information by collocating software developers in warrooms [32]. In this case, companies expect to achieve the same advantages that the public availability of others’ actions has brought to other settings such as ship bridges [19], aircraft cockpits [20], transportation control rooms [17] and city dealing rooms [16]. Indeed, early results of this approach have been encouraging [32]. However, there are practical limitations in the size of the teams that can be collocated, which suggests that tool support is still necessary. Indeed, new tools like Palantir [25] and Night Watch [22] adopt a different approach that focuses on constantly publicizing information(like CM commands) collected from a CM workspace to other workspaces that are accessing the same files. In this case, instead of focusing in the transition between private and public aspects of work, these tools basically eliminate the private work by making all aspects of the work publicly available to others. However, as discussed in section 2, the need for privacy and for controlling the release of private information is an important aspect in any social setting; which therefore needs to be addressed in the design of cooperative tools.

Finally, our data suggests that a software developer might use different sources of information at different times in order to assess the current status of the work. As mentioned before, the MVP team uses information from e-mail messages, the configuration management tool and the bug tracking system. By reading e-mail, MVP developers are aware of future changes in the CM tool because somebody else is going to check-in something. By inspecting only the CM tool, a developer can be aware of partial check-ins in the repository that are not reported by e-mail. And finally, the bug-tracking tool, through its PR’s, provides information about how a developer’s work is going to be impacted by the problem report associated with the check-in. These are three different tools that a MVP developer has to use. We believe that a possible improvement is to use event mechanisms (such as event-notification servers) to integrate these different sources of information, and then provide a unique interface and tool to assess the relevant information. Furthermore, abstraction techniques [18] could be employed to generate high-level information (e.g., status of the work) from low-level information like recent check-ins and check-outs, e-mails exchanged among software developers, information added to the bug-tracking tool, etc. This is an interesting research area that we plan to explore.

8. CONCLUSIONS AND FUTURE WORK This paper examined the transitions between private and public work based on empirical material collected from a large-scale software development effort. The team studied, called MVP, uses mostly three tools to coordinate their work: a configuration management (CM) tool, a bug-tracking system, and e-mail. These tools provide support for private and public work, as well as some technical support that facilitates the transition from the former aspect to the latter. However, MVP developers also adopted a set of formal and informal work practices to manage this transition. These transitions are necessary to facilitate the management of the interdependencies among the different software artifacts. The following practices were identified and described in the paper: partial check-in’s, holding onto check-in’s, problems reports crossing team boundaries, code and design reviews, “speeding-up” the process, and finally, the convention of adding the description of the impact of the changes in the e-mail sent to the group. These practices suggest that analytical attention needs to be given to these transitions in order to enhance our understanding of cooperative work. Furthermore, computational support also needs to be provided so that this task can occur properly.

We plan to study other software development teams in order to understand how they deal with the aforementioned transition and their work practices to perform that. By doing that, we expect to learn important characteristics that can help us in understand other cooperative efforts.

9. ACKNOWLEDGMENTS The authors thank CAPES (grant BEX 1312/99-5) and NASA/Ames for the financial support. Effort sponsored by the Defense Advanced Research Projects Agency (DARPA) and Air Force Research Laboratory, Air Force Materiel Command, USAF, under agreement number F30602-00-2-0599. Funding also provided by the National Science Foundation under grant numbers CCR-0205724, 9624846, IIS-0133749 and IIS-0205724. The U.S. Government is authorized to reproduce and distribute reprints for governmental purposes notwithstanding any copyright annotation thereon. The views and conclusions contained herein are those of the authors and should not be interpreted as necessarily representing the official policies or endorsements, either expressed or implied, of the Defense Advanced Research Projects Agency (DARPA), the Air Force Laboratory, or the U.S. Government.

10. REFERENCES [1] Ackerman, M. S., "The Intellectual Challenge of CSCW:

The Gap Between Social Requirements and Technical Feasibility," Human-Computer Interaction, vol. 15, pp. 179-204, 2000.

[2] Appleton, B., Berczuk, S., et al., "Streamed Lines: Branching Patterns for Parallel Software Development," vol. 2002, 1998.

[3] Arnold, R. S. and Bohner, S. A., "Impact Analysis - Towards a Framework for Comparison," International Conference on Software Maintenance, pp. 292-301, Montréal, Quebec, CA, 1993.

Page 117: Final Report on Collaborative Software Engineering …isr.uci.edu/tech_reports/UCI-ISR-03-14.pdfConfiguration Management André van der Hoek Jim Whitehead Development Environments

[4] Bowers, J., "The Work to Make the Network Work: Studying CSCW in Action," Conference on Computer-Supported Cooperative Work, pp. 287-298, Chapel Hill, NC, USA, 1994.

[5] Conradi, R. and Westfechtel, B., "Version Models for Software Configuration Management," ACM Computing Surveys, vol. 30, pp. 232-282, 1998.

[6] Curtis, B., Krasner, H., et al., "A field study of the software design process for large systems," Communications of the ACM, vol. 31, pp. 1268-1287, 1988.

[7] Dourish, P. and Bellotti, V., "Awareness and Coordination in Shared Workspaces," Conference on Computer-Supported Cooperative Work (CSCW '92), pp. 107-14, Toronto, Ontario, Canada, 1992.

[8] Dourish, P. and Bly, S., "Portholes: Supporting Distributed Awareness in a Collaborative Work Group," ACM Conference on Human Factors in Computing Systems (CHI '92), Monterey, CA, 1992.

[9] Ellis, C. A., Gibbs, S. J., et al., "Groupware: Some issues and experiences," Communications of the ACM, vol. 34, pp. 38-58, 1991.

[10] Erickson, T. and Kellogg, W. A., "Social Translucence: An Approach to Designing Systems that Support Social Processes," Transactions on HCI, vol. 7, pp. 59-83, 2000.

[11] Estublier, J., "Software Configuration Management: A Roadmap," Future of Software Engineering, pp. 279-289, Limerick, Ireland, 2001.

[12] Grinter, R., "Supporting Articulation Work Using Configuration Management Systems," Computer Supported Cooperative Work, vol. 5, pp. 447-465, 1996.

[13] Grinter, R. E., "Recomposition: Putting It All Back Together Again," Conference on Computer Supported Cooperative Work (CSCW'98), pp. 393-402, Seattle, WA, USA, 1998.

[14] Grinter, R. E., "Using a Configuration Management Tool to Coordinate Software Development," Conference on Organizational Computing Systems, pp. 168-177, Milpitas, CA, 1995.

[15] Grudin, J., "Why CSCW applications fail: Problems in the design and evaluation of organizational interfaces," ACM Conference on Computer-Supported Cooperative Work, pp. 85-93, Portland, Oregon, United States, 1988.

[16] Heath, C., Jirotka, M., et al., "Unpacking Collaboration: the Interactional Organisation of Trading in a City Dealing Room," Third European Conference on Computer-Supported Cooperative Work, pp. 155-170, Milan, Italy, 1993.

[17] Heath, C. and Luff, P., "Collaboration and Control: Crisis Management and Multimedia Technology in London Underground Control Rooms," Computer Supported Cooperative Work, vol. 1, pp. 69-94, 1992.

[18] Hilbert, D. and Redmiles, D., "An Approach to Large-scale Collection of Application Usage Data over the Internet," 20th International Conference on Software Engineering (ICSE '98), pp. 136-45, Kyoto, Japan, 1998.

[19] Hutchins, E., Cognition in the Wild. Cambridge, MA: The MIT Press, 1995.

[20] Hutchins, E., "How a Cockpit Remembers its Speeds," Cognitive Science, vol. 19, pp. 265-288, 1995.

[21] Mark, G., Fuchs, L., et al., "Supporting Groupware Conventions through Contextual Awareness," European Conference on Computer-Supported Cooperative Work (ECSCW '97), pp. 253-268, Lancaster, England, 1997.

[22] O'Reilly, C., Morrow, P., et al., "Improving Conflict Detection in Optimistic Concurrency Control Models," 11th International Workshop on Software Configuration Management (SCM-11), Portland, Oregon, 2003 (to appear).

[23] Perry, D. E., and, H. P. S., et al., "Parallel Changes in Large-Scale Software Development: An Observational Case Study," ACM Transactions on Software Engineering and Methodology, vol. 10, pp. 308-337, 2001.

[24] Podgurski, A. and Clarke, L. A., "The Implications of Program Dependencies for Software Testing, Debugging, and Maintenance," Symposium on Software Testing, Analysis, and Verification, pp. 168-178, 1989.

[25] Sarma, A., Noroozi, Z., et al., "Palantír: Raising Awareness among Configuration Management Workspaces," Twenty-fifth International Conference on Software Engineering, pp. 444-453, Portland, Oregon, 2003.

[26] Schmidt, K., "The critical role of workplace studies in CSCW," in Workplace Studies : Recovering Work Practice and Informing System Design, P. Luff, J. Hindmarsh, and C. Heath, Eds.: Cambridge University Press, 2000, pp. 141-149.

[27] Schmidt, K. and Bannon, L., "Taking CSCW Seriously: Supporting Articulation Work," Journal of Computer Supported Cooperative Work, vol. 1, pp. 7-40, 1992.

[28] Sellen, A. J. and Harper, R. H. R., The Myth of the Paperless Office. Cambridge, Massachusetts: The Mit Press, 2002.

[29] Star, S. L. and Griesemer, J. R., "Institutional Ecology, Translations and Boundary Objects: Amateurs and Professionals in Berkeley's Museum of Vertebrate Zoology.," Social Studies of Science, vol. 19, pp. 387-420, 1989.

[30] Stefik, M., Foster, G., et al., "Beyond the Chalkboard: Computer Support for Collaboration and Problem Solving in Meetings," Communications of the ACM, vol. 30, pp. 32-47, 1987.

[31] Strauss, A. and Corbin, J., Basics of Qualitative Research: Techniques and Procedures for Developing Grounded Theory, Second. ed. Thousand Oaks: SAGE publications, 1998.

[32] Teasley, S., Covi, L., et al., "How Does Radical Collocation Help a Team Succeed?," Conference on Computer Supported Cooperative Work, pp. 339-346, Philadelphia, PA, USA, 2000.

[33] Walrad, C. and Strom, D., "The Importance of Branching Models in SCM," IEEE Computer, vol. 35, pp. 31-38, 2002.

[34] Whittaker, S. and Schwarz, H., "Meetings of the Board: The Impact of Scheduling Medium on Long Term Group Coordination in Software Development," Computer Supported Cooperative Work, vol. 8, pp. 175-205, 1999.