Abstract:
Large-scale software development typically requires participation of multiple people. One motivation of the participants to collaborate with others is to maximize the profit they may gain from the software development. Therefore, the collaborative relations between the participants should be established through negotiation in order to ensure that all the participants can gain profit. Traditional software process modeling approaches model software collaboration as a set of rules or transactions. When entry criteria are satisfied or operations are explicitly invoked, the collaborations will take place necessarily and are performed in a predefined manner. Negotiation issues are mostly overlooked by these approaches. A negotiation-based approach for software process collaboration is proposed, In this approach, software process is modeled as a group of independent, autonomous, rational, and collaborative process agents. The collaborative relations between the process agents are established through negotiation.Using this approach, software organizations can carry out software development more efficiently and effectively.