Analytical approach to semi-automated tradeoffs and negotiation in software development
Date
Authors
Journal Title
Journal ISSN
Volume Title
Publisher
Abstract
Tradeoffs are pervasive throughout a software development lifecycle irrespective of its development stages, size and complexity. In software practices, project managers often have to make decisions that require understanding of tradeoffs between resource allocation, project cost, and delivery time. Many times software architects have to deal with conflicting requirements and may have to design software that trades its security with maintainability and performance. When tradeoff decisions involve many stakeholders with different goals and viewpoints, negotiation is useful to help them reach a decision agreement. Not only that the stakeholders can bargain towards a solution that satisfies their goals, explicit negotiations can also lead to the discovery of overlooked solutions and documented rationales behind the negotiations for future reference. Both tradeoff analysis and negotiation play crucial roles in enabling rational and informed decisions during various stages of software development. They can have a profound impact especially on the success of large and complex software development. Unfortunately, tradeoff analysis and negotiation are knowledge intensive and time-consuming processes that require expertise knowledge. In the current state of the practices, most tradeoff analysis is still manually performed. To date, there is a lack of software frameworks and mechanisms that provide flexible environments to support automation of complex tradeoffs and negotiations in software development activities.
This thesis presents Software Tradeoff and Negotiation Assistant (STANA), an integrated framework for tradeoff analysis and negotiation that provides semi-automatic decision aids for enhancing understanding and resolving complicated tradeoffs throughout the software development lifecycle. STANA includes a tradeoff methodology that facilitates a sound quantitative evaluation of alternatives along with integration of preferences from multiple stakeholders. To support software development negotiations amongst the stakeholders, STANA contains negotiation algorithms which employ an iterative tradeoff technique for evaluating opponent’s offers and generating counter-offers of mutual gain based on selected tradeoff parameters. The STANA mechanisms are illustrated through their applications to two case studies of web service procurement negotiations and web application development requirement analysis along with the experimental analysis of the negotiation algorithms.