Font Size: a A A

Efficient techniques for partitioning software development tasks

Posted on:2011-04-26Degree:M.S. and M.B.AType:Thesis
University:Iowa State UniversityCandidate:Soothram, SamyuktaFull Text:PDF
GTID:2448390002962706Subject:Information Technology
Abstract/Summary:
This research examines the problem of assigning software development tasks to teams. The goal of this study is to model the most efficient way of module assignments in order to reduce the communication and coordination delays among software teams that arise from the improper distribution of software modules. The study quantifies the module interactions using software coupling design measure and models these interactions using Linear Programming and Cluster Analysis techniques. The performance of the two techniques is evaluated to find the one that offers the most favorable set of module assignments that can be used by software practitioners in the real world. The results obtained from this research suggest that though Linear Programming is the most optimal technique for obtaining the solution, it cannot provide solutions for large problems. With an increase in the number of modules, the computational time required for Linear Programming model increased considerably. Cluster Analysis, on the other hand, provided solutions which were not as optimal as Linear Programming but generated module assignments for large module count problems. Two types of Cluster Analysis techniques, namely agglomerative clustering and partitional clustering were implemented in this research. Of the two, agglomerative cluster analysis technique offered the most efficient and practical solution for module assignments. This research is an attempt to improve the decision making capabilities of software practitioners who often make use of intuitions and their past experiences in the process of assigning modules to software development teams.
Keywords/Search Tags:Software, Teams, Techniques, Module, Efficient, Linear programming, Cluster analysis
Related items