MIT LIBRARIES 3 9080 02239 0246 { V ^w ft f ;'i t ' y * \ ; ^ ^ 'a -1. L^ K HEWEY HD28 .M414 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 of Technology Sloan School of Management Cambridge, Massachusetts Combining Local Negotiation And Global Planning In Cooperative Software Development Projects Kazuo Okamura CCS TR #163, Sloan School August 1993 WP #3662-94 MASSACHUSETTS or rr.CHNOI NOV 1 f^lSTITUTE DGY 4 2000 LIBRARIES Combining Local Negotiation And Global Planning In Cooperative Software Development Projects Kazuo Okamura Center for Coordination Science Massachusetts Institute of Technology One Amherst Street (E40-179) Cambridge MA 02139 Information Systems Research Laboratory Matsushita Electric Industrial Co., Ltd. 1006 Kadoma, Osaka 571 Phone: +81-6-906-2443 JAPAN Email: okamura@isl.mei.co.jp August 1993 ACKNOWLEDGMENT The author would helpful comments on Science at the like to thank Thomas Malone earlier drafts of this paper. for his generous advice. The research support of Massachusetts Institute of Technology is Bob Halperin provided the Center for Coordination gratefully acknowledged. Combining Local Negotiation And Global Planning In Cooperative Software Development Projects ABSTRACT In cooperative software development, each redundancies inevitably arise among them. changes without sacrificing programmers' are concerned with flexibility, and, their own plans and conflicts or two main problems: first, to control second, to guide change activities to conform methods of change request management focus on the management process project policies. Traditional structure based We programmer has on project policies while cooperative development methodologies concern mainly with the conflict resolutions among each changes. In this paper, proposal of changes. Based on plan integration it describe an architecture which deals with seamlessly supports both change coordination through management process negotiations and the change we to have changes converge until they meet the project goals. To appear in Proceedings of the COOCS 93 ACM Conference on Organizational Computing Systems Milpitas (near San Jose) California, Permission to copy without fee commercial advantage, the copying is by permission all ACM of the and/or spectfic permission. or part of this material copyright notice and the is November 1-4, 1993 granted provided that the copies are not title of the publication and Association for Computing Machinery. its made or distributed for date appear, and notice To copy otherwise, is given that or to republish, requires a fee . INTRODUCTION One of the major problems in software projects is Programmers change software based on development parallel own is Sooner or plans. allowed as much later, conflicts them might compete with each other how manage changes to to software artifacts. certain plans. In cooperative software development, in as possible, each programmer may take actions based on among or redundancies will inevitably arise for software these plans. modules while others might have the and reduce the A therefore, a crucial part of cooperative software is, of goals. performance and productivity. activities project's their Some common These problems hinder the programmers' proper change control mechanism which development environments. In this paper, we are concerned with the two main problems 1 To 2. To guide programmers' change in change control: control changes without sacrificing programmers' flexibility activities to foUow project policies Studies of cooperative software development mainly discuss the programmers merge [22, 1] help their work when first problem. Several systems conflicts are found. Kaiser [12] extends the traditional database transaction model to give programmers flexible controls over transactions. Softbench provides an event-based architecture in which programmers are notified when some changes programmers to source code, or tool invocations. In these systems, for resolving conflicts 25], the second management tools can change problem process. assist among is treated as configuration control The elements and activities to comply with that are responsible the structure of the process are rigidly defined so that the project constraints. it If, in controlling management programmers' however, change request management can easily becomes a bureaucratic system to [11]. Therefore the pros and cons of these methodologies in mind, our approach to the problems is first until they is to describe in the AI an architecture which deals with proposal of meet the project goals. describe the concepts underlying our approach and outline our assumptions about the context of the architecture. which we wish an attempt seamlessly supports both change coordination by programmers and the management process to have changes converge We it their creative activities. planning paradigm. In this paper, It is avoid diverting the extend change request management concepts based on plan integration framework [24] changes. [2, which focuses on the change request very important to consider programmers' individual viewpoints and try With changes, such as management methodology change request managers or the configuration control board programmers from to the their tasks. In the traditional configuration performed only from the project viewpoint, is it is state [4] Then we describe the PCRM(Plan-based Change Request Management) system an experimental implementation of our architecture and discuss its three aspects: the change plan integration algorithm, contlict and redundancy resolution through negotiations, and customizable representation of a change management process. CHANGE REQUEST MANAGEMENT BASED ON PLAN INTEGRATION A typical change request form [25] in traditional informal plan description for the change because it management configuration is essentially an contains the information such as the purpose of the change, items to be changed, when the change can be done, and the expected effect of the change. These correspond to a goal, resources, a pre-condition and a post-condition of a plan description, respectively. management can be performed through Therefore, change request integrating change plans into a consistent project plan for the changes. Plan integration is usually useful in a relatively static environment. Software development such a environment because it is software system [21]. However, not difficult to discern and/or articulate all the constraints a-priori for a when the assumptions made at a particular integration point is invalidated by later changes in the environment, one can express the discrepancies as which is will be inputs to the next plan integration. Therefore, easily and repeatedly, plan integration if new change requests, the integration procedure could be would be a worthwhile support development. Not only the result of the integration but also the process for change control itself would be very done in software useful. If could be done through social protocols, programmers could reach an agreement about change activities it in the project. In our architecture, and are then passed to the who change request management system performs the integration. The plan integration process proceeds with checking relationships and resolves them. Programmers can take part among to resolve the conflicts project policies. The that and the redundancies in such a concentrate on their goals plans to find conflicts and redundancies, and, therefore, the management also important for the management in the resolution process, system can respect their original intentions as much as possible. system own change plans are written by programmers It is way that the change plans can comply with integration process with such features ensures that every affected programmer has reached global consensus on the integrated plan for changes which meets the project's goals. Change plan (1) integration in the list Resolving conflicts and redundancies through negotiations. A tailorable The system has flexible of possible actions to resolve conflicts and redundancies. programmers by creating (3) features: Selection strategies of actions to resolve conflicts and redundancies. strategies to select a (2) PCRM system has the following a communication channel and suggesting representation of project's change The system mediates between the the possible actions. management policies. customization are provided to tailor the system according to project requirements. Several levels of Our Assumptions We make which allow us several assumptions to concentrate on the problems in change request management Some form - of version and configuration management system (such as identify software items to be changed, - Programmers and - to which allows them CVS [3]) is available to PCRM system. to work in both their local work space by the version and configuration system. Whenever they want to software items in the global space, they have to propose the changes. There exists a base system (which, for example might be the previously released system) from which the new system - can be accessed by the are in a networked environment as well as the global space provided make changes it RCS, One is evolved. of the programmers operates the PCRM system as a Change Request manager (the CR manager). OVERVIEW OF THE PCRM SYSTEM Figure 1 shows how change request information is processed in the ^«aK*<f «w>»w w (irtiT HT>i i ^ - »t>n:m^ n ^, PCRM system. .. , theCR Manager ^@|-^(^)-^f^ ISSUES + CHANGE PLANS Figure 1. Initiation of 1: Plan Work Space Change Request Management with the PCRM System Change Plans A change request process starts when programmers in a project receive problem reports from of a target software or write their turn them into own reports. Then the users programmers screen these informal reports and two formal descriptions called ISSUEs and CHANGE PLANs. An ISSUE is a problem description that includes the information about a type of the problem, software items related to the problem, the original reporter, and the originator of the ISSUE. A type of a ISSUE can be either a bug, an enhancement or TASKs and a goal that is to solve One problem functionality. A CHANGE PLAN a refinement. a plan description is which consists of an ISSUE. For example, the goal could be to report might be turned into several CHANGE TASKs CHANGE fix a CHANGE bug or enhance some ISSUEs and solving one ISSUE might CHANGE TASK would solve several ISSUEs. One of the simplest examples is a CHANGE PLAN with a single CHANGE TASK which solves an ISSUE of a software bug. A complex example is a CHANGE PLAN for a function enhancement in the next software release, with a set of CHANGE TASKs of several programmers. require several PLAN. Conversely, a single Preparation for the Integration 2. The ISSUEs The CR PLANs 3. in a CR manager in the project collects to identify relationships manager can reject among them. The most ISSUEs and and valid ISSUEs are the redundancy PCRM is system important relationship is the equality among them. CHANGE PLANs at this point. A set of the CHANGE results of the preparation. starts integration of the found, the system creates a one of the actions which conflict the related from programmers and screening Change Plans Integration of The CHANGE PLANs is list given CHANGE TASKs. Whenever a conflict or a of possible actions based on project policies and executes determined by negotiations among the programmers. After resolving every and redundancy, the system outputs an integrated plan for the requested changes. This plan may be an input to another integration The Architecture The if necessary. PCRM System of the architecture of the PCRM system is shown in Figure 2. The main part of the system consists of a set of agents: the plan integrator, the negotiator, the knowledge base, and the user interface agent. The kernel of the system is the plan integrator and the action executor. implemented the.se We which contains the consistency checker, the conflict resolver, have enhanced Oval [16] with a Prolog-based inference mechanism and agents as special Oval agents. Users of the system can create change-related descriptions as semi-structured Oval objects and exchange them over a network using Oval's communication mechanism, which has a conversation tracking function similar In the rest of the paper, we will describe in details how the PCRM to the Coordinator [27]. system integrates CHANGE PLANs into a consistent plan. INTEGRATION OF CHANGE PLANS THROUGH NEGOTIATIONS The basic plan integration algorithm used by the PCRM system is an enhanced version of [24). framework includes (i.e. a mechanism for reasoning about resources focusing CHANGE TASKs in our case) which consume and theoretical basis for our approach in on situation-dependent operators produce resources. Therefore which handling software resources CHANGE TASKs. There are three major enhancements in our algorithm: His is it provides a good an indispensable aspect of Team members Emails An Action Conflict Consistency Checker Resolver Possible actions to resolve the conflict ^ A Conflict Open : Precondition, Unsafe Causal Link, Resource Deficit -^v. Conflict resolution rules Figure 1) 2: Executor Prolog Knowledge Base Negotiation Strategies The PCRM the Project Knowledge System Architecture Conflict resolution strategies based on domain knowledge. We enhanced the original algorithm by adding tailorable strategies to include project policies for managing change requests. 2) Conflict and redundancy resolution through negotiations. The original algorithm constructs integrated plans by applying every possible conflict resolution operations without user interaction. In change request management, however, it is highly desirable to have affected programmers participate in the decision making process so that they can arrive at a consensus on 3) how to resolve conflicts. enhanced the algorithm by adding a negotiation support mechanism for that purpose. Handling software resources. In the original algorithm, a resource has its However, amount of if a resource it, is, for example, a software in the original sense. We amount and module, one cannot consume it, is We have consumable. nor change the have extended definitions of consumption and amounts of resources. Although discussing correctness enhancements do not of the algorithm is beyond the scope of this paper, the affect the correctness of the original algorithm since our algorithm is a specific variant of the original one. domain- REPRESENTING CHANGE PLANS In this section we formally define CHANGE PLANs. A CHANGE PLAN consists of: 1) A set of CHANGE TASKs two special or tasks. Each task must have a goal, preconditions, and effects. There are tasks: the initial task and the I final task G^. I has no precondition, and has the effect of amounts specified asserting the propositions and producing resources in the in the initial state. G has no and has preconditions specifying the propositions and lower bounds on resource production effects, specified in the goal state. 2) A partial order < on order. TTie initial task We say tasks. I If C A set of causal precondition of j. of some resource each resource We say that r is CHANGE TASK which Amount i must precede r is and the is r A final task G must follow every other consumer any consumer C of C of that follows P, might follow C. that r r <i, p, j> where i and j are tasks such that i < j, the guaranteed resource supply (GRS), a lower modeled it. task. and Two unordered with respect to each other are mutual competitors. consumed by is r i and p asserts p, bound on is a r that might precede consumed and produced is in the level of GRS produced by the suppliers of the competitors of as a resource that The and B can be executed values in ordering that extends the partial total a supplier for each can be calculated as the amount of uses any of S (the state immediately preceding S's execution). The of a software resource GRS in and the a competitor for value of S r that must S. equal amounts by a CHANGE TASK may also produce a new version of the resource used at the initial same time using and B are both number of to indicate the simultaneously executed using the resource. The TASKs A task, j the estabhsher of j. is S precede S minus the amount of software resource that are i in the input state with respect to resource 6) then r is form links of the 4) Associated with each task A j must precede every other consumers of the same resource 5) < each producer P of some resource that each consumer 3) i 1. amount a module Although how resource depends on execution environments, to is parallel tasks, that are allowed to be always M . if the 1. For example, 2 amount of M is CHANGE increased to 2 execute these parallel tasks with the same A and B may create a binary branch in a version tree of the module M. ' To make initial time. and a CHANGE PLAN final tasks PCRM system allows user to write a CHANGE PLAN without specifymg the system automatically adds the two special tasks to the CHANGE PLAN at the integration description simpler, the In such a case, the The amount of 7) executed at the a software resource cannot be increased same time. If such a task is withdrew amount should be decreased. The amount of existing tasks more than after the number of the amount of a software resource the resource always related is tasks allowed to be is increased, the number of to the the which use the resource and there should be no "stock" of it. CONFLICTS AND REDUNDANCY Our algorithm initial at this producer of relevant resources and has the effect of asserting all CR point because they have been already screened by the CHANGE PLANs includes the aggregate goals of contradiction (i.e. some goal PCRM unintegrable, and the PLANs must be to all and G. ISSUEs. ISSUEs G manager. be integrated. I the are consistent has a precondition which precondition of If the I is G contains a CHANGE PLANs are programmers that the CHANGE the negation of another goal), then this set of is CR system notifies the manager and the reformulated to enable successful integration. Our algorithm proceeds by different CHANGE TASKs: a plan by creating two special first initializes resolving conflicts and redundancies between CHANGE PLANs. The conflicts that may CHANGE TASKs in arise during plan integration are unsafe causal links ^resource deficits and open preconditions, which are resolved by either adding precedence constraints, adjusting resource amounts or adding a resolved by deleting the redundant CHANGE TASK. new CHANGE TASK. CHANGE Redundant TASKs are These conflicts and redundancies are formally defined as follows: - A causal link <i, p, j> is unsafe if there is some k that deletes p which might occur between ak - is and j. Such called a clobberer. A resource deficit <C, Precond(C, - i An open r), r> occurs where Precond(C, precondition is when the r) is a pair <p, j> there a is consumer C of amount of r required by where p is some resource C and is 1 r if r is a precondition of j and there is such that GRS(C, r) < a software resource. no causal link of the form <i, p, j>. - A CHANGE TASK 1) i is redundant For each causal link of the form and possibly after each clobberer 2) The 3) For each resource set of resources r used by i <i, p, j> there C of the causal is a node k that asserts r. i, there is a p such that k is possibly before j link. are included in the set of resources used produced by resource deficits with respect to if: way to reorder by k. consumers and producers of r to avoid any An Example The following example illusiraies and redundancies defined above. Suppose this intuitive interpretations that a team of programmers files. The modules responsible for these operations are GetMail, Objeciifier, Regarding these operations, there are three ISSUEs ISSUEa: There is a minor bug ISSUEb: Saving many objects in the current release in saving objects. is too slow. ISSUEc: POP3(Post Office Protocol) support solve these ISSUEs, three TASK in CHANGE PLANs in saving objects Tb: Speed up saving objects Tc: Table 1 Add new shows e-mail protocol the detail of these is In P0P3 CHANGE TASKs. and SaveObject. of the system: needed. are created. it: Ta: Fix the bug Name working on an e-mail system. is system, e-mail messages are (1) received, (2) convened into internal object-oriented data, and (3) saved into To and possible resolutions of the conflicts Each CHANGE PLAN has one CHANGE In Table Re and Rn means 1, the current release of the system and the next release, respectively. SaveObject(Rc) means a version of the module SaveObject used UPDATE_MODULE(R, M) module replaces a version of the in the current release of the system. M in the release R with a newly created version. The following Open - conflicts or redundancies, therefore, arise in this example. precondition Tc assumes One of the there new a is release that includes the possible solutions * to add a new new task same version of Objectifier as the current release does. is: Td that tentatively initializes a release. Redundancy - ISSUEb can cover ISSUEa, Ta If - may * to withdraw Ta * to merge Ta and Tb Unsafe causal is redundant to Tb. Possible solutions include: link While Tc updates GetMail with an assumption the next release, may Tb that the version of Objectifier in the current release is also in updates Objectifier in the next release. A causal link: <Td, Tc, includes(Rn, Objectifier(Rc))> is, therefore, unsafe with Tb. Possible solutions * to merge Tb and Tc * to move Tb (i.e. - Resource to after may include: Tc add the precedence constraints Tc < Tb) deficit Both Ta and Tb modify SaveObject. Some of possible solutions * to move Ta after * to increase the (i.e. * to Tb are: or vice versa amount of the resource and to allow a parallel the GRS values in Ta and Tb development) merge Ta and Tb Another resource deficit may occur among Tb and Tc regarding GetMail and can be handled in a similar way. Based on possible interpretations of of solutions to programmers. The conflicts final decision and redundancies, the by the programmers may PCRM system suggests a set vary from a low level one like ) ordering their tasks to a high level one like merging their tasks and changing their original strategy. Sometimes programmers may decide in to defer solving conflicts or such a case, the integration process is useful m a redundancies until execution time. Even sense that the programmers can be aware of the conflicts or redundancies in their tasks priori to executions. THE CHANGE PLAN INTEGRATION ALGORITHM Now, we the formally define the plan integration algorithm used in the PCRM system. change plan integration algorithm. The system defined actions are printed two execution modes in CR manager and negotiation among programmers; algorithm produces possible integrated plans and we mainly STEP 1 non-bold italics. There are our algorithm. In the interactive mode, the algorithm produces one integrated plan through interaction with the paper, in Figure 3 shows describe how the algorithm lists works in the batch mode, the of necessary negotiations to be pertormed. In in the interactive mode. this In the algorithm described in Figure 3, 77? F has different semantics in batch mode, it means "Construct a new plan Q' by applying every Q and add Q' to the plan work space". interaction mode, it execution procedure while will describe later. simply applies the action of it its list Do argument called a possible action is Table 2 shows the system defined actions list execute. Action mode, so that the other hand, in die and invokes the interactive in the mode, mode. PCRM system. Although some of them are not explicitly in the algorithm described above, they are in a possible action interactive On also performed interactively in the interactive in the batch In the action spectTied in the arguments to plan Neither interaction nor negotiation occurs. put the actions into a we two execution mode. programmers can choose one of list as default actions in the the every possible actions the PCRM can and ihe kxal juslificalion rules. the execution of an action. action (<- (<- is If The PCRM system some of tries to prove the predicates the predicates are found to be true, it in the rules means which support that the corresponding very likely lo be accepted. Figure 4 shows an example 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) (<- (managerial-move ?x ?y (<- (more-important-task ?x ?y ?reason)) '.'reason) (<- (more-important-task ?x ?y ?reason) (from '.'ix ?person-x) (from '.'iy '.'person-y) (more-important ?person-x '?person-y)) (issues MOVE. '.'x '.'ix) (issues ?x '.'iy) This example represents the fact that a might precede a CHANGE TASK "more-important ' Ty CHANGE TASK derived from a person Y's report with the person Y. This rule justifies MOVE(Tx,Ty) relations like "more-important" could be defined explicitly in the objects using the object link Figure 2. 4: A mechanism Tx derived from in if a person X's report the person X has a relation with a high priority. Primitive knowledge base or in the corresponding Oval. Part of Justification Rules for "MOVE" Negotiation Phase After justifying the actions, the commitment selected by to A) PCRM system selects an action of the highest priority. To achieve a execute the action, the system role definitions and tries to establish conversation channel among the members B) the negotiation table described below. A) Role definitions. Members of a - OWNER. <OWNER, An - project can have the following roles. anObject> OWNER of a task, a resource, or an action is a person who is primarily responsible for the object. SUBSCRIBER. <SUBSCRIBER. anObject> A SUBSCRIBER of a task, a resource, or an action is a person who is interested in the object's state. - DELEGATExDELEGATE, <a role definition>,anAction> A delegate of someone's role with an action is a person who perform the role when the action is to be executed. The PCRM system has several default rules to define PERSON OWNER. For example, an OWNER of an ORIGINATOR or PERSON RESPONSIBLE field of the object. The CR manager has the OWNER roles of every ACTION objects. object is assigned to a person whose On die other hand, operation (i.e. it SUBSCRIBER has more has two tasks as its arguments), the SUBSCRIBER of the other after the execution. provide information on dependencies the dependencies. For instance, assign die dynamic If die A in aspects. the When an executed action is a binary PCRM system assigns each OWNER of the tasks to a version and configuration resources, a resource is SUBSCRIBER management system could roles could be defined to reflect "depends on" a resource B, the PCRM system would OWNER of die resource A to die SUBSCRIBER of die resource B. Any role how if among object to use a of a person can be delegated to anyone by the person or the PCRM operator. Example of DELEGATE role is discussed later. B) The negotiation table This table is used to select participants of a negotiation. Table 3 shows one of the default configurations of the negotiation table setting. Each entry a commitment of in the negotiation table the action execution and corresponds who to an action and shows should be notified. who should be asked to get A value of a cell <action,person(s)> in the table specifies one of die following kinds of interaction or notification, regarding the event of execution of the action. - ASK NOTIFY-B NOTIFY-A NOTIFY The The The The person(s) are asked before the event. person(s) are notified before the event person(s) are notified after the event. person(s) are notified both before and after die event. - TENTATIVE Proceeds with a tentative approval, (described later) Persons Action - No no value If them the PCRM to negotiate entry for interaction required. system finds each other to arrive at a MERGE(i,j) shows: of the task i and task j that multiple persons 1) consensus about the commitment. OWNER of the action in (i.e. the CR should be asked by the system about the both tasks are notified before the negotiation; 3) resources used should be asked for a commitment, the system ask both tasks are notified after the if manager MERGE the negotiation MERGE action. NEGOTIATION, Resource Deficit is In Table 3, for example, the as a default) and action; 2) OWNERs SUBSCRIBERS done successfully, OWNERs of of the 3. Execution Phase PCRM system repeats negotiations until one of them succeeds. In case that every attempts failed, the PCRM manager can proceed by either repeating the negotiation phase again, using a tentative The approval, or executing one of the action with the manager's authority. Every execution is recorded for the backtracking. Tentative Approval and Backtracking In case the from their PCRM system cannot get an immediate answer from members who are busy or away work, the integration phase could proceed with a tentative approval. the system to continue the integration without waiting the answer from the person(s)> in the negotiation table has a value TENTATIVE members, or ASK, instead of CR If (1) the manager tells (2) a cell <action, the system automatically A tentative approval can be changed to real one during the tentative approval left in the plan when executes DONE proceeds with a tentative approval of the action. integration. The system checks if there action at the end of the integration. restore any previous state is any it A simple backtracking mechanism supported and the system could is of the integration. REPEATING INTEGRATION When programmers integration, they may need can set the status of the are performing to some of modify the plan due CHANGE TASKs CHANGE TASKs to the later changes an integrated plan after an in in the situation. In in the plan to either active, dead or such a case, they inactive , which means being executed, being withdrawn, or waiting for execution respectively. This integrated plan with the status information can be re-integrated with other new CHANGE PLANs status information plays an important role in both the action prioritization The standard possible. ", justification rules include rules such as "Active tasks "Dead tasks should be withdrew first. ", and is known architecture with human as replanning [26]. The next integration. The phase and the negotiation phase. should not be modified as less as "Inactive tasks have a higher priority than tasks because inactive tasks have already been approved". environment at the The problem strategy described above adapt a plan to a changing to is new a way of replanning in our assistance. THE KNOWLEDGE BASE The PCRM knowledge base consists of three major parts: 1) conflict resolution strategies which includes the main algorithm; 2) the coordination strategies which includes the actions, the justification rules, the roles, and the negotiation table; 3) the project target software or the structure of a knowledge such as relationship among users of a development team. In the current implementation, knowledge is represented in one of two ways: - Any Oval object and its relationship can be used to represent knowledge. contains links to Oval object's types. The PCRM A knowledge base object system periodically checks changes in objects of the types and incoqioratc their information into the knowledge. Each object knows what parts of its information or fields should be exported as knowledge. This mechanism enables user to combine the PCRM system with the existing Oval applications [14] such as employee databases, decision making systems or schedule management - A knowledge object in a knowledge base object contains knowledge in a Prolog notation. The conflict resolution strategies and the coordination 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 can he tailored in the system following ways. Customizing Change Request Information Because every data ISSUE is in the PCRM system including defined as a semi-structured object in Oval which is CHANGE PLAN. a "radically tailorable[ 16]" system, easy to customize: (1) their definitions by adding or deleting user-defined them by defining links, Customizing the and Life (3) CHANGE TASK, it is fields, (2) relationships and quite among views of them by selecting appropriate display formats. Cycle of Changes PCRM life cycle editor that is a part of the user interface agent, displays a life cycle view of a CHANGE TASK. This state transition is automatically derived from the definition of the actions in the PCRM system. The life cycle editor helps the CR manager understand the life cycle and In Figure 6, the customize the state transition , by (1) defining a PCRM LIFECVCLE new action and (2) modifying the existing actions. EDITOR: Default Dennltion (Uer1.2) Any agent. and post-integration jobs can be defined as a new action Suppose every the cost of the pre- its manager that is executed by an Oval CHANGE PLAN in a project should be analyzed by a project manager to estimate new change, prior to the integration. This can be modeled by defining a action and assigning OWNER of the action. The life cycle editor creates an action object and also generates which executes the action whenever the status of any CHANGE PLAN becomes to the an Oval agent REQUESTED. When the action manager so can do his/her job with the that he/she The system defined is to how to to the CHANGE PLANs. actions that are executed by the plan integrator can be also customized by creating a subtype of them. Although for example, be executed, the system creates a communication channel change the some status of a characteristics of them cannot be changed, user can customize, CHANGE TASK when a negotiation for an action fails. Customizing Negotiations Role definitions and the negotiation table define how negotiations should be done. The PCRM system provides several standard configurations which can be customized by changing role assignment or changing values of the cells in the negotiation table. It is also possible to model a new role who performs a special job in negotiations such as technical reviewer or configuration manager. For example, suppose a member in a project has a role <DELEGATE, <OWNER, aCHANGE_TASK> MODR> for every CHANGE TASK. TASK when the MODR This means that the action (i.e. the action member is treated as OWNERs which increases the amount of of every CHANGE a resource) is being MODR action in the negotiation table has the ASK attribute for OWNERs of the tasks, the system asks the member to give a permission every time attempts to execute the MODR action over the CHANGE TASKs. Because the execution of MODR action with a software module as a executed. If the entry of the it resource may mean configuration creating a version branch of the module, this negotiation ensures the manager can have a chance to decide whether a version branch is member who is a required or noL Customizing Action Prioritization The strategies justification rules of the actions are used to prioritize actions on how among Oval to deal , the with conflicts and redundancies. The rules have predicates over relationships objects that represents the project knowledge. prioritization and therefore, determine The primary can be done by modifying the fact information in these level modifications to the action Oval objects. The another level modifications can be done by customizing the rules which determine the interpretation of the fact information. rules. The PCRM system has rule libraries to help the CR manager to construct the justification KNOWLEDGE BASE: Rule Library Ver1 2 concept which currently out of the scope of our work. Another difference is the project's policies on change request Softbench [4] features been made. It is is that our system can model management. an event notification mechanism that notifies a change event the opposite approach of notification compared when the change has to ours. Kaiser [12] has extended the u^aditional database transaction models to support the notion of long- programmer term transactions. Their concepts for cooperative development: activity interaction and interaction could provide a very because these concepts could fit mechanism based on by separating the basis to change requests. Lifespan [25] provides that support the life cycle of CCC [7] provides a life cycle support of change requests PCMS [19] concentrates on providing flexibility for the life the life cycle. cycle into four phases. life combine our framework with execution environments well to our support of replanning with the task status information. There are several systems notification good cycle of software items and change requests. In these system, however, the coordination programmers is by the capability of limited the check-in check-out model [9]. their configuration management systems which Conflict and redundancy Huff, et management could be built on their in software and project in organizations the are based on Madhavji [15] defines a universal model of changes development environments. The model can represent changes among policies. model. [10] apply the planning paradigm to software development, featuring a truth al, maintenance system. Croff, et al, [6] use negotiation among agents including human to handle the exception happens during plan execution. Unlike our system, these systems focus on intelligent plan execution process. Martial [17] describes a conversation model for resolving conflicts using temporal relationship among doesn't use any plans of office activities. Although the model has a similar negotiation mechanism, domain Perry, et specific knowledge and [23] discuss a general al, its conflict resolution strategies are not customizable. model of software development. components: policies, mechanisms and structures. One of our goals cooperation. Systems related to policy enforcement such as us various ideas how it ISTAR is to support [8], Darwin It consists of three what they [18], call enforced and [19] can provide to represent project polices. CONCLUSION In this paper, we have described a change request management system which supports integration of change plans into a consistent plan. The integration algorithm and strategies to resolve conflicts and redundancies were described enhancements written In the future in in detail. The current implementation CommonLisp and we expect to work on is based on Oval with several running on networked Apple Macintosh. the following aspects of the PCRM system: - Experimcniation We to - would like lo test our system in practical situations to study effective negotiation protocols, as well as explore representations of project policies on change request Integration with version and configuration We management management plan to extend our architecture by incorporating a version and configuration management system or software database. - Reasoning about time Temporal reasoning and scheduling capability should be added to our system to support project management of software development - Recording the reasons Information about a negotiation process because could explain it is how and why very useful at an execution time as well as after the execution, the decision was made combination of group decision making support such as [14], the mechanism to record the reasons of With in the negotiation process. rcRM a system could provide a changes. REFERENCES [ 1] Adams, E., Honda, M., and Miller, T. Object Management in a Case Environment, in Proc. of 1 1th International Conference on Software Engineering, IEEE, 1989. [2] and Patrinostro, Ayer, S. J. Control. & Management, CVS [3] Berliner, B. [4] Cagan, M. The 11: HP F. Software Configuration Management: Identification, Accounting. McGraw-Hill, Inc., Parallelizing Software 1992. Development, Softbench Environment: An in Proc. of USENIXVO, 1990 Architecture for a New Generation of Software Tools, in Hewlett-Packard Journal, 1990. [5] Curtis, B., Kellener, [6] Croft, W. M. I., Over, J. Process Modeling, in Communications of ACM, Sep. 1992. B. and Lefkowitz, L. S. Knowledge-Based Support of Cooperative Activities, in Proc. of 21st International Hawaii Conference on System Science, 1988 [7] Dart S. Concepts in Configuration Management Systems, Software Version and Configuration Control. ACM, Proc. of International Workshop on 1991. [8] Dowson, M. Integrated Project Support with IStar, in [9] Feiler, P. H. Configuration Management Models in in IEEE Software, Nov. 1987 Commercial Environments., CMU Engineering Institute Technical Report, CMU/SEI-91-TR7. Pittsburgh, PA. March 1991. SoftM-are [10] Development Process, in Proc. Development Environments, [11] A Huff, K. E. and Lesser, V. R. Humphrey, W. Managing Plan-based Intelligent Assistant That Supports the Software of the 3rd Software Engineering Symposium on Practical Software ACM, 1989. the Software Process, SEI Series in Software Engineering, Addison- Wesley Publishing Company, 1989. [12] A Kaiser, G. Rexible Transaction Model for Software Engineering, in Proc. of 6th International Conference on Data Engineering, EEEE, 1990. [13] [14] Lee, J. Lee, G. Oval Application Catalogue, Amherst [15] A tool for managing group design, Sibyl: St. MIT in Proc. ofCSCN'90, ACM, 1990 Center for Coordination Science Technical Report, 1 Cambridge, MA., Sep. 1992 Madhavji, N. H. The Prism Model of Changes, in Proc. of 13th International Conference on Software Engineering, IEEE, 1991. [16] Malone, T., Lai, K., Cooperative Work, [17] and Fry, C. Experiments with Oval: in Proc. A Conversation Martial, F. ofCSCW Model '92, ACM, radically Tailorable Tool for 1992. among for Resolving Conflicts Proc. of Conference on Office Information Systems, [18] A Minsky, N. H. Law-Governed Software Process, ACM, Distributed Office Activities., in 1990. in Proc. of International Software Process Workshop, IEEE, 1990 [19] Moffet, J. D. and Sloman, M. S. The Representation of Conference on Office Information Systems, [20] Montes, J. Narayanaswamy, K. and Goldman, N. "Lazy" Consistency: ofCSCW '92, ACM, A ACM, in Proc. ACM, of of 1988. Basis for Cooperative Software 1992. Harrison, W., Ossher, H., Seeney, P. Coordinating Concurrent Development, in Proc. of '90, [23] in Proc. in Proc. 1991. Workshop on Software Version and Configuration Control, Development, [22] System Objects, and Haque, T. A. Configuration Management System and More!, International [21] ACM, Policies as CSCW 1990. Perry, D. E., Kaiser, G. Models of Software Development Environments, International Conference on Software Engineering, IEEE, 1988. in Proc. of 10th [24] Rosenblill. D. Supporting collaborative planning: The Plan Integration Problem. Ph.D. thesis, Dcpanment of Electrical Engineering and Computer [23] Whitgitt, D. Method and Tools for Software Configuration Management, Wiley engineering practice. John Wiley [26] Science, M.I.T., 1991. & Sons, series in software Inc., 1991. Willkins, D. E. Practical Planning: Extending the Classical AI Planning Paradigm, Morgan Kaufmann, 1988. [27] Winograd, T. A Language/ Action Perspective on the Design of Cooperative Work, Supported Cooperative Work: CA. 1988. A Book of Readings. 1. Greif, Ed. in Computer Morgan Kaufmann, San Mateo, k\3 023 Date Due MIT LIBRARIES 3 9080 02239 0246 ,-mmMmmm^m. ^