Maximum commonality problems: Applications and analysis

成果类型:
Article
署名作者:
Dawande, Milind; Kumar, Subodha; Mookerjee, Vijay; Sriskandarajah, Chelliah
署名单位:
University of Texas System; University of Texas Dallas; University of Washington; University of Washington Seattle
刊物名称:
MANAGEMENT SCIENCE
ISSN/ISSBN:
0025-1909
DOI:
10.1287/mnsc.1070.0766
发表日期:
2008
页码:
194-207
关键词:
analysis of algorithms computational complexity integer programming Applications suboptimal algorithms
摘要:
Recently, an agile software development technique called extreme programming has caught the attention of practitioners and researchers in the software industry. A core practice of extreme programming is pair programming, where two developers work on the same piece of code. We introduce the problem of assigning pairs of developers to modules so as to maximize the commonality -a measure of the extent to which common developers work on related modules -subject to a load-balancing constraint that is motivated by the need to control the completion time of the project. We consider two variants of this problem. In MCAP(n), a developer is teamed up with exactly one other developer to form a pair that works together for the entire duration of the project. In MCAP(s), we allow a developer to pair with more than one other developer during the project. This pair-splitting version of the problem facilitates knowledge dissemination among developers, but can increase the effort needed for a developer to adjust to the work habits of several partners. The difference between the commonality achieved with and without pair splitting crucially depends on the underlying structure of the problem. For trees, we show that the value of the maximum commonality is the same for both MCAPn and MCAPs. Additionally, we obtain polynomial-time algorithms for both of these variants. For general graphs, both problems MCAPn and MCAPs are shown to be strongly NP-complete. We prove that the maximum commonality for MCAPs is at most 3 2 times the maximum commonality of MCAPn. We also provide polynomial-time algorithms and approximation results for a number of special cases of these problems.