MIT LIBRARIES 3
9080 02239 0246
{ V ^w ft ;'i t'y * \; ^ f ^ 'a-1. L^K
HD28
.M414HEWEY
H
Combining
Local
Negotiation
And
Global
Planning
In
Cooperative
Software
Development
Projects
Kazuo
Okamura
CCS
TR
#163,
Sloan School
WP
#3662-94
August
1993
CENTER
FOR
COORDINATION
SCIENCE
Massachusetts
Institute ofTechnology
Sloan School
ofManagement
Combining
Local
Negotiation
And
Global
Planning
In
Cooperative
Software
Development
Projects
Kazuo
Okamura
CCS
TR
#163,
Sloan School
WP
#3662-94
MASSACHUSETTS f^lSTITUTE or rr.CHNOIDGY
NOV
14
2000Combining
Local
Negotiation
And
Global
Planning
In
Cooperative
Software
Development
Projects
Kazuo
Okamura
CenterforCoordinationScience
MassachusettsInstitute of
Technology
One
Amherst
Street(E40-179)Cambridge
MA
02139
Information Systems Research Laboratory
Matsushita Electric IndustrialCo., Ltd.
1006
Kadoma,
Osaka
571JAPAN
Phone: +81-6-906-2443 Email: okamura@isl.mei.co.jp
August
1993ACKNOWLEDGMENT
The
authorwould
like to thankThomas
Malone
forhis generous advice.Bob
Halperin provided helpfulcomments
on
earlier drafts of this paper.The
research support of the Center for CoordinationCombining
Local
Negotiation
And
Global
Planning
In
Cooperative
Software
Development
Projects
ABSTRACT
In cooperative software development, each
programmer
has theirown
plans and conflicts orredundancies inevitably arise
among
them.We
are concerned withtwo
main
problems: first, to controlchanges without sacrificing programmers' flexibility, and, second, to guide change activities to
conform
project policies. Traditional
methods
ofchange
requestmanagement
focuson
themanagement
processstructure based onproject policies while cooperativedevelopment methodologies concern mainly with the conflict resolutions
among
each changes. In this paper,we
describe an architecturewhich
deals with proposal ofchanges.Based
on plan integration it seamlessly supports bothchange
coordination throughnegotiations and the
change
management
process to have changes converge until theymeet
the project goals.To appear
inProceedings oftheCOOCS
93ACM
Conferenceon
OrganizationalComputing
SystemsMilpitas (near
San
Jose) California,November
1-4,1993
Permission tocopy without fee allor part ofthis material is granted provided that the copies are not made or distributed for
commercial advantage, the
ACM
copyrightnotice andthetitle ofthe publication andits date appear, and notice is giventhatcopying is by permission of the Association for Computing Machinery. To copy otherwise, or to republish, requires a fee
INTRODUCTION
One
ofthemajor
problems in software projects ishow
tomanage
changes to software artifacts.Programmers change
software basedon
certain plans. In cooperative software development, inwhich
parallel
development
is allowed asmuch
as possible, eachprogrammer
may
take actions based on theirown
plans.Sooner
or later, conflicts or redundancies will inevitably ariseamong
these plans.Some
ofthem might
compete
with each other forsoftwaremodules
while others might have thecommon
goals.These
problems hinderthe programmers'activitiesand reduce theproject's performance andproductivity.A
properchange
controlmechanism
is, therefore, acrucial part of cooperative softwaredevelopment
environments.Inthispaper,
we
areconcerned withthe twomain
problems in changecontrol:1
.
To
controlchangeswithoutsacrificing programmers' flexibility 2.To
guide programmers'changeactivities tofoUow
project policiesStudies of cooperative software
development
mainly discuss the first problem. Several systems[22, 1] help
programmers
merge
theirwork
when
conflicts are found. Kaiser [12] extends the traditionaldatabase transaction
model
to giveprogrammers
flexible controls over transactions. Softbench [4]provides anevent-basedarchitecture in
which programmers
are notifiedwhen some
state changes, suchaschanges to source code, or tool invocations. In these systems, it is the
programmers
that are responsiblefor resolving conflicts
among
their tasks. In the traditional configurationmanagement
methodology
[2, 25], the secondproblem
is treated as configuration controlwhich
focuseson
thechange
requestmanagement
process.The
elementsandthe structure oftheprocess are rigidlydefinedso thatmanagement
toolscan assist
change
requestmanagers
or theconfiguration control board in controlling programmers'change
activities tocomply
with the project constraints. If, however,change
requestmanagement
is performed only from theprojectviewpoint, itcaneasilybecomes
a bureaucratic system [11]. Therefore itis very important to consider
programmers'
individual viewpointsand
try to avoid diverting theprogrammers
from theircreative activities.With
theprosand cons ofthesemethodologiesinmind, our approach to theproblemsisanattemptto extend
change
requestmanagement
concepts basedon
plan integrationframework
[24] in theAI
planning paradigm. In this paper,
we
wish
to describe an architecturewhich
deals with proposal of changes. Itseamlessly supports bothchangecoordinationby programmers
andthemanagement
processtohave changes convergeuntil they
meet
theproject goals.We
first describe the concepts underlying our approach and outline our assumptions about thecontext ofthe architecture.
Then
we
describethePCRM(Plan-based
Change
RequestManagement)
systemwhich
isanexperimental implementation ofourarchitecture and discussits three aspects: thechangeplanintegration algorithm, contlict and
redundancy
resolution through negotiations,and
customizablerepresentationofa change
management
process.CHANGE
REQUEST
MANAGEMENT
BASED
ON
PLAN INTEGRATION
A
typicalchange
requestform
[25] in traditional configurationmanagement
is essentially an informal plan description for thechange
because itcontains the information such as the purpose of thechange, items tobe changed,
when
thechange
can be done, and the expectedeffectof the change. These correspond to a goal, resources, a pre-condition and a post-condition ofa plan description, respectively.Therefore,
change
requestmanagement
can beperformed
through integratingchange
plans into a consistent project plan for thechanges.Plan integration is usually useful in a relatively static environment. Software
development
is notsuch a
environment
because it is difficult to discern and/or articulate all the constraints a-priori for asoftware
system
[21].However,
when
theassumptions
made
at a particular integration point isinvalidated by laterchanges intheenvironment, one canexpressthe discrepanciesas
new
change requests,which
will be inputs to the next plan integration. Therefore, ifthe integration procedure could bedone
easily and repeatedly, plan integration
would
be a worthwhile support forchange
control in softwaredevelopment.
Not
only the resultofthe integration but also the process itselfwould
be very useful. Ifit could bedone
through social protocols,programmers
could reach an agreement aboutchange activities inthe project.
Inour architecture,change plansare written
by programmers
who
concentrateon
theirown
goalsand are then passed to the
change
requestmanagement
system that performs the integration.The
planintegration processproceeds withchecking relationships
among
plans to find conflicts andredundancies,and resolvesthem.
Programmers
can take partin the resolution process, and, therefore, themanagement
system can respect theiroriginal intentions as
much
as possible. It isalso important for themanagement
system to resolve the conflicts and the redundancies in such a
way
thatthechange planscancomply
withproject policies.
The
integration process with such features ensures that every affectedprogrammer
has reached global consensuson
the integrated plan forchangeswhich
meetsthe project'sgoals.Change
plan integrationin thePCRM
system hasthefollowing features:(1) Selection strategies of actions to resolve conflicts and redundancies.
The
system has flexible strategiestoselecta listofpossible actionstoresolve conflictsand redundancies.(2) Resolving conflicts and redundancies through negotiations.
The
system mediatesbetween
theprogrammers
bycreating acommunication
channel and suggesting the possible actions.(3)
A
tailorable representation of project'schange
management
policies. Several levels ofOur
Assumptions
We
make
several assumptionswhich
allow us to concentrateon
theproblems
in change requestmanagement
-
Some
form
of version and configurationmanagement
system (such asRCS,
CVS
[3]) is available toidentify software itemstobe changed,and itcan be accessed
by
thePCRM
system.-
Programmers
are ina networked environmentwhich
allowsthem
towork
inboth theirlocalwork
spaceas well as the global space provided
by
the version and configuration system.Whenever
theywant
tomake
changes tosoftware itemsintheglobalspace,theyhaveto propose thechanges.-Thereexistsabase system (which,for
example
might bethepreviously releasedsystem) fromwhich
thenew
systemisevolved.-
One
oftheprogrammers
operates thePCRM
system asaChange
Requestmanager
(theCR
manager).OVERVIEW
OF
THE
PCRM
SYSTEM
Figure 1
shows
how
change
requestinformationis processedin thePCRM
system.^«aK*<f«w>»wwi(irtiTHT>i^-n»t>n:m^^,,..
theCR
Manager
^@|-^(^)-^f^
ISSUES
+
CHANGE
PLANS
PlanWork
Space
Figure 1:
Change
Request
Management
with thePCRM
System
1. Initiation of
Change
Plans
A
changerequest processstartswhen
programmers
in a projectreceiveproblem reports from usersof atarget software or writetheir
own
reports.Then
theprogrammers
screen these informal reports andturn
them
intotwo
formal descriptions calledISSUEs
andCHANGE
PLANs.
An
ISSUE
is a problemdescription that includes the information about a type of the problem, software items related to the
enhancement
or a refinement.A
CHANGE
PLAN
is a plan descriptionwhich
consists ofCHANGE
TASKs
and a goal that is tosolve anISSUE.
Forexample,the goal could be to fixa bugor enhancesome
functionality.
One
problem
report might be turned into severalISSUEs
and solvingone
ISSUE
mightrequire several
CHANGE
TASKs
in aCHANGE
PLAN.
Conversely, a singleCHANGE
TASK
would
solve several
ISSUEs.
One
ofthe simplestexamples is aCHANGE
PLAN
with a singleCHANGE
TASK
which
solves anISSUE
of a software bug.A
complex example
is aCHANGE
PLAN
for a functionenhancement
in thenextsoftware release, with a setofCHANGE
TASKs
ofseveral programmers.2.
Preparation
forthe
Integration
The
CR
manager
in the project collectsCHANGE
PLANs
from
programmers
and screeningISSUEs
to identify relationshipsamong
them.The
most importantrelationship is the equalityamong
them.The
CR
manager
can rejectISSUEs
and the relatedCHANGE
PLANs
at this point.A
setoftheCHANGE
PLANs
and validISSUEs
are the resultsofthe preparation.3.
Integration
ofChange
Plans
The
PCRM
system starts integration of the givenCHANGE
TASKs.
Whenever
a conflict or aredundancy is found, the system creates a listof possible actions based
on
project policies and executesone of the actions
which
is determinedby
negotiationsamong
the programmers. After resolving everyconflict and redundancy,the system outputs an integratedplan for the requested changes. Thisplan
may
bean inputto anotherintegrationifnecessary.
The
Architecture
ofthe
PCRM
System
The
architecture ofthePCRM
system isshown
in Figure 2.The
main
part of the system consistsofasetofagents: the plan integrator, the negotiator, the
knowledge
base,and the user interface agent.The
kernel ofthe system is the plan integrator
which
contains theconsistency checker, the conflict resolver,and the action executor.
We
haveenhanced Oval
[16] with a Prolog-based inferencemechanism
andimplemented
the.se agents as specialOval
agents. Users of thesystem
can create change-relateddescriptions as semi-structured
Oval
objectsand
exchange them
over anetwork
using Oval'scommunication mechanism, which
hasaconversation tracking function similartothe Coordinator[27].In the rest ofthe paper,
we
will describe in detailshow
thePCRM
system integratesCHANGE
PLANs
intoa consistent plan.
INTEGRATION OF
CHANGE
PLANS
THROUGH
NEGOTIATIONS
The
basic plan integration algorithm used by thePCRM
system isan enhanced version of[24). Hisframework
includes amechanism
forreasoning about resources focusingonsituation-dependent operators(i.e.
CHANGE
TASKs
in our case)which
consume
and produce resources. Therefore it provides agood
theoretical basis for our approach in
which
handling software resources is an indispensable aspect ofTeam
members
Consistency
Checker
EmailsAn
Action Conflict ResolverPossible actions to resolve the conflict
^
A
Conflict :Open
Precondition, Unsafe Causal Link, Resource Deficit-^v.
Knowledge
Base Prolog ExecutorConflict Negotiation the Project
resolution rules Strategies
Knowledge
Figure 2:
The
PCRM
System
Architecture1) Conflict resolution strategies based
on
domain
knowledge.We
enhanced
the original algorithmby
adding tailorable strategiestoinclude project policies formanaging
changerequests.2) Conflictand redundancy resolution throughnegotiations.
The
originalalgorithm constructs integratedplans
by
applying every possible conflict resolution operations without user interaction. Inchange
request
management,
however, it is highly desirable to have affectedprogrammers
participate in thedecision
making
process so thatthey can arrive ata consensuson
how
to resolve conflicts.We
have enhancedthealgorithm by adding a negotiationsupportmechanism
forthatpurpose.3) Handling softwareresources. In the originalalgorithm, a resource has its
amount
and isconsumable.However,
ifa resource is, for example, a software module,one
cannotconsume
it, nor change theamount
of it, in the original sense.We
have extended definitions ofconsumption
andamounts
ofresources.
Although
discussing correctness of the algorithm isbeyond
the scope of this paper, theenhancements do
not affect the correctness of the original algorithm since our algorithm is aREPRESENTING
CHANGE
PLANS
In thissection
we
formally defineCHANGE
PLANs.
A
CHANGE
PLAN
consists of:1)
A
set ofCHANGE
TASKs
or tasks.Each
taskmust
have a goal, preconditions, and effects. There aretwo
special tasks: the initial task I and the final taskG^.
I hasno
precondition, and has the effect ofasserting the propositions and producing resources in the
amounts
specified in the initial state.G
hasno
effects, and has preconditions specifying the propositions and lower
bounds on
resource productionspecified in the goal state.
2)
A
partial order<
on tasks. Ifi<
j then imust
precedej in any total ordering that extends the partialorder. TTieinitial task I
must
precedeevery othertask, and the final taskG
must
followeveryothertask.We
say thateach producerP
ofsome
resource ris a supplierforeachconsumer
C
ofrthat follows P, and eachconsumer
C
ofsome
resource r is a competitor foranyconsumer
C
ofr that might follow C.Two
consumersofthe
same
resource thatareunordered withrespecttoeach other are mutual competitors.3)
A
setof causal links of theform
<i, p,j>where
i andj are taskssuch that i<
j, i asserts p, and p isaprecondition ofj.
We
saythati istheestabhsherofj.4) Associated witheach task
S
is the guaranteed resource supply(GRS),
a lowerbound
on the level ofeach resource in the inputstateof S (the state immediately preceding S'sexecution).
The
GRS
value ofSwith respect to resource r can be calculated as the
amount
of r producedby
the suppliers ofr thatmust
precede S
minus
theamount
ofrconsumed
by thecompetitors ofr thatmight precede S.5)
A
software resource ismodeled
as a resource that isconsumed
and produced in equalamounts by
aCHANGE
TASK
which
uses it.The
CHANGE
TASK
may
also produceanew
version ofthe resource .6)
Amount
ofasoftware resource is used to indicate thenumber
ofparallel tasks, that are allowed to besimultaneously executed using the resource.
The
initialamount
is always 1. For example, 2CHANGE
TASKs
A
andB
can be executed at thesame
time using amodule
M
iftheamount
ofM
is increasedto 2and the
GRS
values inA
andB
are both 1.Although
how
to execute these parallel tasks with thesame
resource depends on executionenvironments,
A
andB may
create abinary branch in aversion tree ofthemodule
M.
' To make a
CHANGE
PLAN
description simpler, thePCRM
system allows userto write a
CHANGE
PLAN
without specifymg theinitial and final tasks In such a case, the system automatically adds the two special tasks to the
CHANGE
PLAN
at the integration7)
The
amount
ofa software resource cannot be increasedmore
than thenumber
of tasks allowed to beexecuted at the
same
time. Ifsuch a task iswithdrew
after theamount
of the resource is increased, theamount
should be decreased.The
amount
of a software resource is always related to thenumber
of the existing taskswhich
usethe resourceandthereshould beno
"stock" ofit.CONFLICTS
AND REDUNDANCY
Our
algorithm first initializes a planby
creatingtwo
specialCHANGE
TASKs:
I and G. I is theinitial producer ofall relevantresourcesand hasthe effectofassertingall
ISSUEs.
ISSUEs
are consistentat this point because they have been already screened
by
theCR
manager.G
has a preconditionwhich
includes the aggregate goals of
CHANGE
PLANs
to be integrated. Ifthe precondition ofG
contains acontradiction (i.e.
some
goal is the negation of another goal), then this set ofCHANGE
PLANs
areunintegrable, and the
PCRM
system notifies theCR
manager
and theprogrammers
that theCHANGE
PLANs
must
be reformulatedtoenablesuccessful integration.Our
algorithm proceedsby
resolving conflicts and redundanciesbetween
CHANGE
TASKs
indifferent
CHANGE
PLANs. The
conflicts thatmay
arise during plan integration are unsafe causal links^resource deficits and
open
preconditions,which
are resolvedby
either adding precedence constraints,adjusting resource
amounts
or adding anew
CHANGE
TASK.
Redundant
CHANGE
TASKs
areresolved
by
deleting the redundantCHANGE
TASK.
These
conflicts and redundancies are formally definedasfollows:-
A
causallink <i, p,j>is unsafeifthere issome
kthat deletespwhich
might occurbetween
i andj.Such
a
k
is calledaclobberer.-
A
resource deficit<C,
r> occurswhen
there is aconsumer
C
ofsome
resource r such thatGRS(C,
r)<
Precond(C,r),
where
Precond(C,r) is theamount
ofr requiredby
C
andis 1 if r is asoftware resource.-
An
openpreconditionis a pair<p,j>
where
p isa precondition ofj and thereisno
causallink ofthe form<i, p,j>.
-
A
CHANGE
TASK
iisredundantif:1)For each causallinkofthe
form
<i, p,j>there is anode
k
thatasserts p such thatk
is possibly beforejand possiblyaftereachclobberer
C
ofthecausallink.2)
The
setof resourcesused byi areincluded in thesetof resources usedby
k.3)For eachresource rproduced
by
i, there is away
toreorderconsumers
and producers ofr toavoid anyAn Example
The
followingexample
illusiraies intuitive interpretations and possible resolutions ofthe conflictsand redundancies defined above.
Suppose
thatateam ofprogrammers
isworking
onan e-mail system. In this system, e-mailmessages
are (1) received, (2)convened
into internal object-oriented data, and (3)saved into files.
The
modules
responsible forthese operations areGetMail, Objeciifier, and SaveObject. Regarding theseoperations, there are threeISSUEs
inthecurrent releaseofthe system:ISSUEa:
There is aminor
bug
in saving objects.ISSUEb:
Savingmany
objectsis tooslow.ISSUEc:
POP3(Post
Office Protocol) support isneeded.To
solve theseISSUEs,
threeCHANGE
PLANs
are created.Each
CHANGE
PLAN
has oneCHANGE
TASK
in it:Ta: Fix the bug in savingobjects
Tb:
Speed
upsaving objectsTc:
Add
new
e-mail protocolP0P3
Table 1
shows
thedetail oftheseCHANGE
TASKs.
In Table 1,
Re
and
Rn
means
the current release of the systemand
the next release, respectively.SaveObject(Rc)
means
a version of themodule
SaveObject used in the current release of the system.UPDATE_MODULE(R,
M)
replaces a version of themodule
M
in the releaseR
with anewly
createdversion.
The
following conflicts or redundancies,therefore,may
arise in thisexample. -Open
preconditionTc
assumes
there is anew
release thatincludesthesame
version ofObjectifier as thecurrent release does.One
ofthepossible solutions is:* toadd a
new
taskTd
thattentatively initializesanew
release.-
Redundancy
If
ISSUEb
can coverISSUEa,
Ta
isredundanttoTb. Possible solutionsmay
include: * towithdrawTa
*to
merge
Ta
andTb
-
Unsafe
causal
linkWhile
Tc
updatesGetMailwith an assumptionthattheversion ofObjectifierinthecurrent release isalsointhenextrelease,
Tb
updatesObjectifierinthenextrelease.A
causal link:<Td,Tc, includes(Rn, Objectifier(Rc))>
is,therefore, unsafe withTb. Possible solutions
may
include: * tomerge
Tb
andTc
* to
move
Tb
afterTc
(i.e. toadd theprecedenceconstraints
Tc <
Tb)-
Resource
deficitBoth
Ta
andTb
modify
SaveObject.Some
ofpossible solutionsare:* to
move
Ta
afterTb
orviceversa* toincrease the
amount
oftheresource and theGRS
valuesinTa
andTb
(i.e.to allow aparalleldevelopment)* to
merge
Ta
andTb
Another
resource deficitmay
occuramong
Tb
andTc
regardingGetMail
and can be handled in a similarway.
Based on
possible interpretationsofconflictsand redundancies, thePCRM
system suggests a setordering their tasks to a high level one like
merging
their tasks and changing their original strategy.Sometimes programmers
may
decide to defersolving conflictsor redundancies until execution time.Even
in such a case, the integration process is useful
m
a sense that theprogrammers
can beaware
of the conflictsor redundancies in theirtasks priori toexecutions.THE
CHANGE
PLAN INTEGRATION
ALGORITHM
Now,
we
formally define the plan integration algorithm used in thePCRM
system. Figure 3shows
the change plan integration algorithm.
The
system defined actions are printed in non-bold italics. Therearetwo execution
modes
in our algorithm. In the interactivemode,
thealgorithm produces one integrated planthrough interaction with the
CR
manager
and negotiationamong
programmers;
in the batchmode,
thealgorithm produces possible integrated plans and lists of necessary negotiations to be pertormed. In this
paper,
we
mainly describehow
the algorithmworks
in the interactivemode.
STEP
1 )In the algorithm describedinFigure 3, 77?
F
has differentsemanticsintwo
executionmode.
In thebatch
mode,
itmeans
"Construct anew
plan Q'byapplying every action spectTied intheargumentstoplanQ
and addQ' totheplanwork
space". Neitherinteractionnor negotiation occurs.On
the otherhand,indie interactionmode,
it put the actions into a list called a possible action list and invokes the interactiveexecution procedure
we
will describe later.Do
is also performed interactively in the interactivemode,
whileitsimply applies the actionofits argumentinthebatch
mode.
Table 2
shows
the system defined actions in thePCRM
system.Although
some
ofthem
are notexplicitly in the algorithm described above, they are in a possible action list as default actions in the interactive
mode,
so thatprogrammers
can chooseone
of the every possible actions thePCRM
canexecute.
and ihe kxaljuslificalion rules.
The
PCRM
system tries toprove the predicatesin the ruleswhich
supporttheexecution ofan action. If
some
ofthe predicates are found to be true, itmeans
that thecorrespondingaction is very likely lo be accepted. Figure 4
shows
anexample
of a part of such rules for the action(<- (can-move ?x ?y ?reason) (managerial-move ?x ?y ?reason)) (<- (can-move '.'x ?y '.'reason) (technical-move ?x ?y ?reason)) (<- (can-move ?x ?y ?reason) (other-move ?x ?y?reason)) (<- (managerial-move ?x ?y ?reason) (more-important-task ?x ?y ?reason)) (<- (managerial-move ?x ?y '.'reason) (<- (more-important-task ?x ?y ?reason)
(issues '.'x '.'ix) (from '.'ix ?person-x)
(issues ?x '.'iy) (from '.'iy '.'person-y)
(more-important ?person-x '?person-y))
MOVE.
Thisexample
represents the fact that aCHANGE
TASK
Tx
derivedfrom
a person X's reportmight precede a
CHANGE
TASK
Ty
derived from a person Y's report if the personX
has a relation"more-important' with the person Y. This rule justifies
MOVE(Tx,Ty)
with a high priority. Primitiverelations like "more-important" couldbe defined explicitly inthe
knowledge
base or inthecorrespondingobjects using theobject link
mechanism
in Oval.Figure 4:
A
Part of JustificationRules
for"MOVE"
2.
Negotiation
Phase
Afterjustifying the actions, the
PCRM
system selects an action ofthehighestpriority.To
achieveacommitment
toexecute the action, thesystem tries toestablishconversation channelamong
themembers
selected by
A)
role definitions and B) the negotiation table describedbelow.A)
Role
definitions.Members
ofaprojectcan havethe followingroles.-
OWNER.
<OWNER,
anObject>An
OWNER
ofa task, aresource, oranaction is apersonwho
is primarily responsible fortheobject.-
SUBSCRIBER. <SUBSCRIBER.
anObject>-
DELEGATExDELEGATE,
<a
roledefinition>,anAction>A
delegate ofsomeone'srolewithanaction isapersonwho
performthe rolewhen
the actionis to be executed.The
PCRM
system has several default rules to defineOWNER.
For example, anOWNER
ofan object is assigned to a personwhose
PERSON
object is in theORIGINATOR
orPERSON
RESPONSIBLE
fieldoftheobject.The
CR
manager
hastheOWNER
roles ofeveryACTION
objects.On
dieotherhand,SUBSCRIBER
hasmore dynamic
aspects.When
an executed actionis abinary operation(i.e. ithastwo
tasks asitsarguments), thePCRM
system assignseachOWNER
ofthe taskstoaSUBSCRIBER
oftheotheraftertheexecution. Ifdieversion and configurationmanagement
system couldprovide information
on
dependenciesamong
resources,SUBSCRIBER
roles could be defined to reflectthe dependencies.
For
instance, if a resourceA
"depends on" a resource B, thePCRM
systemwould
assign die
OWNER
ofdieresourceA
todieSUBSCRIBER
ofdie resource B.Any
role ofa person can bedelegatedtoanyone by
the person orthePCRM
operator.Example
ofhow
touse aDELEGATE
roleis discussed later.B)
The
negotiation tableThis table is used to select participants of a negotiation. Table 3
shows
one
of the defaultconfigurationsofthenegotiation tablesetting.
Each
entry in thenegotiation tablecorresponds to anactionandshows
who
should be asked to geta
commitment
ofthe actionexecution andwho
should be notified.A
value ofacell <action,person(s)>inthe table specifiesone ofdie following kinds ofinteractionornotification,regarding theevent of execution ofthe action.
-
ASK
The
person(s) areaskedbeforetheevent.-
NOTIFY-B
The
person(s) are notified beforetheevent-
NOTIFY-A
The
person(s)are notified aftertheevent.-
NOTIFY
The
person(s) are notifiedboth before andafterdieevent.
-
TENTATIVE
Proceedswith atentativeapproval, (describedlater)
Persons
- novalue
No
interaction required.Ifthe
PCRM
system finds thatmultiple personsshould be asked foracommitment,
thesystem askthem
to negotiateeach otherto arrive at a consensus about thecommitment.
In Table 3, forexample, theentry for
MERGE(i,j)
shows: 1)OWNER
ofthe action (i.e. theCR
manager
as a default) andOWNERs
of the task i and taskj should be asked by the system about the
MERGE
action; 2)SUBSCRIBERS
ofboth tasks are notified before the negotiation; 3) ifthe negotiation is
done
successfully,OWNERs
of theresources used in bothtasks are notified afterthe
MERGE
action.3.
Execution
Phase
The
PCRM
system repeats negotiations until one ofthem
succeeds. In case thatevery attemptsfailed,the
PCRM
manager
can proceedby
eitherrepeating thenegotiation phase again, using a tentativeapproval, orexecutingone ofthe action withthe manager'sauthority.
Every
execution isrecorded forthebacktracking.
Tentative
Approval
and
Backtracking
In case the
PCRM
system cannot getan immediateanswer from
members
who
are busy oraway
from theirwork, the integration phase could proceed witha tentative approval. If (1) the
CR
manager
tellsthesystem tocontinuethe integrationwithout waiting theanswer from the
members,
or(2)a cell <action,person(s)> in the negotiation table has a value
TENTATIVE
instead ofASK,
the system automatically proceeds with a tentativeapproval oftheaction.A
tentative approvalcan bechanged
torealone during the integration.The
system checks ifthere is any tentative approval left in the planwhen
itexecutesDONE
action atthe
end
ofthe integration.A
simplebacktrackingmechanism
issupportedand
thesystem couldrestore anyprevious stateofthe integration.
REPEATING INTEGRATION
When
programmers
are performingsome
ofCHANGE
TASKs
in an integrated plan after anintegration, they
may
needto modifythe planduetothe laterchanges inthesituation. In sucha case,theycan set the status of the
CHANGE
TASKs
in the plan to either active,dead
or inactive ,which
means
being executed, being withdrawn, or waiting forexecution respectively. This integrated plan with the status information can be re-integrated with other
new
CHANGE
PLANs
at the next integration.The
statusinformation plays animportantrolein boththe actionprioritizationphase and the negotiation phase.
The
standard justification rules include rules such as "Active tasks should not be modified as less aspossible.",
"Dead
tasks should be withdrewfirst.",and
"Inactive tasks have a higherpriority thannew
tasks because inactive tasks have already been approved".
The
problem
to adapt a plan to a changingenvironment
isknown
as replanning [26].The
strategy describedabove
is away
of replanning in ourarchitecturewith
human
assistance.THE
KNOWLEDGE
BASE
The
PCRM
knowledge
base consists of threemajor
parts: 1)conflict resolution strategieswhich
includes the
main
algorithm; 2) the coordination strategieswhich
includes the actions, the justificationrules, theroles, and the negotiationtable; 3) the project
knowledge
such as relationshipamong
users ofatarget software or the structure of a
development
team. In the current implementation,knowledge
isrepresented inone of
two
ways:-
Any
Oval
objectand
its relationship can be used to represent knowledge.A
knowledge
base object contains links toOval
object's types.The
PCRM
system periodically checks changes in objects of thetypes and incoqioratc their information into the knowledge.
Each
objectknows
what
parts of itsinformation or fields should be exported as knowledge. This
mechanism
enables user tocombine
thePCRM
system with the existingOval
applications [14] such asemployee
databases, decisionmaking
systemsor schedulemanagement
-
A
knowledge
objectin aknowledge
base object containsknowledge
in a Prolog notation.The
conflict resolution strategiesand thecoordination strategies are represented in this way.CUSTOMIZATION OF
THE
CHANGE
REQUEST
MANAGEMENT
PROCESS
Different project has different polices
on
how
to deal with software changes.The
PCRM
systemcan he tailored in the following ways.
Customizing
Change
Request
Information
Because
every data in thePCRM
system includingCHANGE
PLAN.
CHANGE
TASK,
andISSUE
is defined as asemi-structuredobjectin Ovalwhich
isa "radically tailorable[16]" system, itisquiteeasy tocustomize: (1) theirdefinitions by adding or deletinguser-defined fields, (2) relationships
among
them by defining links, and (3) viewsof
them
byselecting appropriate display formats.Customizing
the
LifeCycle
of
Changes
In Figure 6, the
PCRM
life cycle editor , that is a part ofthe user interface agent, displays a lifecycle
view
ofaCHANGE
TASK.
Thisstate transition is automatically derivedfrom
the definitionoftheactions in the
PCRM
system.The
life cycle editor helps theCR
manager
understand the life cycle and customize thestatetransition by (1) defining anew
action and(2) modifying the existing actions.Any
pre- and post-integration jobs can be defined as anew
action that is executed by anOval
agent.
Suppose
everyCHANGE
PLAN
in a projectshould be analyzedby
a projectmanager
toestimatethe costofits change, prior tothe integration. Thiscan be
modeled
by defininganew
action and assigningthe
manager
to theOWNER
ofthe action.The
lifecycleeditorcreatesan action objectand alsogeneratesan
Oval
agentwhich
executes the actionwhenever
the status ofany
CHANGE
PLAN
becomes
REQUESTED.
When
the action is to be executed, the system creates acommunication
channel to themanager
sothathe/shecando his/herjob with theCHANGE
PLANs.
The
system defined actions that are executedby
the plan integrator can be also customizedby
creating asubtype ofthem. Although
some
characteristicsofthem
cannot be changed, usercancustomize,forexample,
how
tochange the statusofaCHANGE
TASK
when
anegotiation for an action fails.Customizing
Negotiations
Role definitions and the negotiation table define
how
negotiations should be done.The
PCRM
systemprovidesseveral standard configurations
which
can becustomized by changing roleassignmentorchanging valuesofthecells in the negotiation table. Itisalso possible to
model
anew
rolewho
performs a specialjobin negotiations such as technical reviewerorconfiguration manager. For example, suppose amember
ina project has a role<DELEGATE,
<OWNER,
aCHANGE_TASK>
MODR>
for every
CHANGE
TASK.
Thismeans
that themember
is treated asOWNERs
of everyCHANGE
TASK
when
theMODR
action (i.e. the actionwhich
increases theamount
of a resource) is being executed. IftheentryoftheMODR
actionin thenegotiation table hastheASK
attributeforOWNERs
ofthe tasks, the system asksthe
member
to give a permission every time it attempts toexecute theMODR
action overthe
CHANGE
TASKs.
Because
theexecution ofMODR
action with a softwaremodule
as aresource
may
mean
creating aversionbranch ofthemodule,this negotiation ensures themember
who
is aconfiguration
manager
can have achancetodecide whethera versionbranch isrequired ornoLCustomizing
Action
PrioritizationThe
justification rules ofthe actions are used to prioritize actions and ,therefore, determine thestrategies
on
how
to deal withconflicts and redundancies.The
rules have predicates over relationshipsamong
Oval
objects thatrepresentsthe projectknowledge.The
primary levelmodifications to the actionprioritization can be
done by
modifying the fact information in theseOval
objects.The
another levelmodifications
can
bedone by
customizing the ruleswhich
determine the interpretation of the factinformation.
The
PCRM
system has rule libraries to help theCR
manager
to construct the justificationconcept
which
iscurrently out ofthescope ofour work. Another difference is that oursystem canmodel
theproject'spolicies onchange request
management.
Softbench [4] features an event notification
mechanism
that notifies achange eventwhen
the change has beenmade. Itistheopposite approach ofnotificationcompared
toours.Kaiser [12] hasextended theu^aditional databasetransaction
models
to supportthe notion oflong-term transactions. Their concepts for cooperative development: activity interaction and
programmer
interaction could provide a very
good
basis tocombine
ourframework
with execution environments because theseconceptscould fitwell tooursupport of replanningwith thetask statusinformation.There
are several systems that support the life cycle ofchange
requests. Lifespan [25] provides notificationmechanism
basedon
the lifecycle.CCC
[7] provides a lifecycle support ofchange
requestsby
separating the lifecycle into fourphases.PCMS
[19] concentrates on providing flexibility forthe lifecycle of software items and
change
requests. In these system, however, the coordinationamong
theprogrammers
is limitedby
thecapability oftheir configurationmanagement
systemswhich
are based onthe check-in check-out
model
[9].Madhavji
[15] defines a universalmodel
ofchanges
in softwaredevelopment
environments.The model
can representchanges
in organizations and project policies. Conflictand redundancymanagement
couldbebuiltontheirmodel.Huff, et al, [10] apply the planning
paradigm
to software development, featuring a truthmaintenance
system. Croff, et al, [6] use negotiationamong
agents includinghuman
to handle theexception
happens
during plan execution. Unlike our system, these systems focuson
intelligent planexecution process. Martial [17] describes a conversation
model
for resolving conflicts using temporalrelationship
among
plans ofoffice activities.Although
themodel
has a similarnegotiationmechanism,
itdoesn'tuseany
domain
specificknowledge
anditsconflictresolution strategies arenotcustomizable. Perry, et al, [23] discuss a generalmodel
of software development. It consists of threecomponents: policies,
mechanisms
andstructures.One
ofourgoals is tosupportwhat
theycall enforcedcooperation. Systems related to policyenforcement suchas
ISTAR
[8],Darwin
[18], and [19] can provide us various ideashow
torepresentproject polices.CONCLUSION
Inthispaper,
we
have described achange requestmanagement
systemwhich
supports integrationof
change
plans into a consistent plan.The
integration algorithm and strategies to resolve conflicts and redundancieswere
described in detail.The
current implementation is basedon
Oval
with severalenhancementswritten in
CommonLisp
andrunning on networkedApple
Macintosh.- Experimcniation
We
would
like lo test oursystem in practical situations to studyeffective negotiation protocols, as well as to explore representationsofproject policieson
changerequestmanagement
- Integration with version and configuration
management
We
plan to extend ourarchitecture by incorporating a version and configurationmanagement
system orsoftware database.
- Reasoningabout time
Temporal
reasoningand
scheduling capability should beadded
to our system to support projectmanagement
of softwaredevelopment
- Recording the reasons
Information abouta negotiation process is very usefulatanexecution time aswell as after theexecution,
because it could explain
how
andwhy
the decisionwas
made
in the negotiation process.With
acombination
ofgroup
decisionmaking
support such as [14], thercRM
system
could provide amechanism
to record thereasons of changes.REFERENCES
[1]
Adams,
E.,Honda,
M., and Miller,T. ObjectManagement
in aCase
Environment, in Proc. of11thInternationalConferenceon Software Engineering, IEEE, 1989.
[2] Ayer, S. J. and Patrinostro, F. Software Configuration
Management:
Identification, Accounting.Control.
&
Management, McGraw-Hill,
Inc., 1992.[3] Berliner, B.
CVS
11: Parallelizing Software Development, inProc. ofUSENIXVO,
1990[4] Cagan,
M. The
HP
Softbench Environment:An
Architecture for aNew
Generation of SoftwareTools, inHewlett-PackardJournal, 1990.
[5] Curtis, B., Kellener,
M.
I.,Over, J. Process Modeling, inCommunications
ofACM,
Sep. 1992.[6] Croft,
W.
B. and Lefkowitz, L. S.Knowledge-Based
Support ofCooperative Activities, in Proc. of 21st InternationalHawaii
Conference on SystemScience, 1988[7] Dart S.
Concepts
in ConfigurationManagement
Systems, in Proc. ofInternationalWorkshop
onSoftware Version
and
Configuration Control.ACM,
1991.[8]
Dowson, M.
Integrated ProjectSupport with IStar, inIEEE
Software, Nov. 1987[9] Feiler, P. H. Configuration
Management
Models
inCommercial
Environments.,CMU
SoftM-are[10] Huff, K. E.
and
Lesser, V. R.A
Plan-based Intelligent AssistantThat
Supports the SoftwareDevelopment
Process, in Proc. ofthe3rd
Software EngineeringSymposium
on
Practical SoftwareDevelopment
Environments,ACM,
1989.[11]
Humphrey,
W.
Managing
the Software Process,SEI
Series in Software Engineering,Addison-Wesley
PublishingCompany,
1989.[12] Kaiser, G.
A
Rexible
TransactionModel
for Software Engineering, in Proc. of6th InternationalConference
on
Data
Engineering, EEEE, 1990.[13] Lee, J. Sibyl:
A
tool formanaging
groupdesign, in Proc.ofCSCN'90,
ACM,
1990
[14] Lee, G.
Oval
Application Catalogue,MIT
Center forCoordination Science Technical Report, 1Amherst
St.Cambridge,
MA.,
Sep. 1992[15] Madhavji, N. H.
The
PrismModel
ofChanges,
in Proc. of 13th International Conferenceon
Software Engineering,IEEE,
1991.[16]
Malone,
T., Lai, K.,and
Fry, C.Experiments
with Oval:A
radically TailorableTool
forCooperative
Work,
in Proc.ofCSCW
'92,ACM,
1992.[17] Martial, F.
A
ConversationModel
forResolving Conflictsamong
Distributed Office Activities., inProc. of Conference
on
OfficeInformation Systems,ACM,
1990.[18]
Minsky,
N. H.Law-Governed
Software Process, in Proc. ofInternational Software ProcessWorkshop, IEEE, 1990
[19] Moffet, J. D.
and Sloman,
M.
S.The
Representation ofPolicies asSystem
Objects, in Proc. of Conferenceon
OfficeInformation Systems,ACM,
1991.[20]
Montes,
J.and
Haque,
T. A. ConfigurationManagement
System and More!,
in Proc. of InternationalWorkshop on
Software Versionand
Configuration Control,ACM,
1988.[21]
Narayanaswamy,
K.and
Goldman,
N. "Lazy" Consistency:A
Basis for Cooperative SoftwareDevelopment,
in Proc.ofCSCW
'92,ACM,
1992.[22] Harrison,
W.,
Ossher, H., Seeney, P. Coordinating ConcurrentDevelopment,
in Proc. ofCSCW
'90,
ACM,
1990.[23] Perry, D. E., Kaiser, G.
Models
of SoftwareDevelopment
Environments, in Proc.of
10th[24] Rosenblill. D. Supporting collaborative planning: The Plan Integration Problem. Ph.D. thesis,
Dcpanment
ofElectrical Engineering andComputer
Science, M.I.T., 1991.[23] Whitgitt, D.
Method and
Toolsfor Software ConfigurationManagement, Wiley
series in software engineeringpractice. JohnWiley
&
Sons, Inc., 1991.[26] Willkins, D. E. Practical Planning: Extending the Classical
AI
Planning Paradigm,
Morgan
Kaufmann,
1988.[27]
Winograd,
T.A
Language/
Action Perspective on the Design ofCooperativeWork,
inComputer
Supported Cooperative
Work:
A
Book
of Readings. 1. Greif, Ed.Morgan
Kaufmann,
San Mateo,MIT LIBRARIES