PlanSP: A Framework to Automatically Analyze Software Development and Maintenance Choices

In software engineering, a piece of software is assembled from components or modules and these components in turn can be recursively made up from smaller sub-components. The management of a software project involves tracking the development and maintenance of the individual components. However, this brings to fore the crucial issue of how to manage components in such a way that they could be leveraged effectively - reusing existing components and monitoring their evolution during the life cycle of the software. Currently, when a new piece of software is being created, the user manually has to evaluate the relevance of existing components based on her development objectives like time available and expected performance metric. Similarly, when a software has been released and is now being
maintained, any updates to the dependent components is evaluated, either manually or blindly (through timestamps), to decide if a new build of the software is necessary. Though tools exist to track component dependencies and historical changes, the key software management hurdle is the manual evaluation of the trade-offs. With the growing trend in software engineering to build and distribute software components as web services that can be invoked across platforms and languages in a distributed environment, there is a real need of automated solutions to guide the developer in building and maintaining complex applications.

We introduce an automated decision-support framework for software development and maintenance called PlanSP that can analyze different choices and assist the user in making cost-effective decisions. Our approach is to build a formal model of the software and use automated planning/ reasoning techniques to produce alternative choices (“plans”) to develop or maintain the software under consideration while respecting the user's effort and performance objectives. We have built a proof-of-concept prototype to demonstrate that the PlanSP framework is both useful and practical for software project management.

By: Biplav Srivastava

Published in: RI02025 in 2003

LIMITED DISTRIBUTION NOTICE:

This Research Report is available. This report has been submitted for publication outside of IBM and will probably be copyrighted if accepted for publication. It has been issued as a Research Report for early dissemination of its contents. In view of the transfer of copyright to the outside publisher, its distribution outside of IBM prior to publication should be limited to peer communications and specific requests. After outside publication, requests should be filled only by reprints or legally obtained copies of the article (e.g., payment of royalties). I have read and understand this notice and am a member of the scientific community outside or inside of IBM seeking a single copy only.

RI02025.pdf

Questions about this service can be mailed to reports@us.ibm.com .