소프트웨어 제품라인의 출시 계획을 위한 최적해법

An Exact Solution Approach for Release Planning of Software Product Lines

  • 유재욱 (동아대학교 경영대학 경영학과)
  • Yoo, Jae-Wook (Department of Business Administration, Dong-A University)
  • 투고 : 2012.03.06
  • 심사 : 2012.03.30
  • 발행 : 2012.06.30

초록

소프트웨어 개발에 있어서 소프트웨어를 시장에 출시하는 계획을 수립하는 것은 소프트웨어를 이루고 있는 기능들을 구현하는 데 제약이 되는 조건들(기술, 자원, 위험, 예산 등)을 만족하면서 계획된 출시기간에 이들 기능들을 할당하는 일이다. 이와 같이 소프트웨어 출시를 계획하는 것은 소프트웨어 제품라인에 대해서 고려할 때 더욱 복잡해진다. 본 연구에서는 소프트웨어 제품라인에 있어서 소프트웨어 출시 계획을 수립하기 위한 문제를 우선순위 제약하의 다수 0-1 배낭문제로 수리 모형화하고, 이를 풀기 위한 최적해법이 개발된다. 최적해법은 동적 계획법이 주가 되고, 문제의 크기를 줄이기 위하여 휴리스틱과 축소방법이 이용된다.

Software release planning model of software product lines was formulated as a precedence-constrained multiple 0-1 knapsack problem. The purpose of the model was to maximize the total profit of an entire set of selected features in a software product line over a multi-release planning horizon. The solution approach is a dynamic programming procedure. Feasible solutions at each stage in dynamic programming are determined by using backward dynamic programming approach while dynamic programming for multi-release planning is forward approach. The pre-processing procedure with a heuristic and reduction algorithm was applied to the single-release problems corresponding to each stage in multi-release dynamic programming in order to reduce the problem size. The heuristic algorithm is used to find a lower bound to the problem. The reduction method makes use of the lower bound to fix a number of variables at either 0 or 1. Then the reduced problem can be solved easily by the dynamic programming approaches. These procedures keep on going until release t = T. A numerical example was developed to show how well the solution procedures in this research works on it. Future work in this area could include the development of a heuristic to obtain lower bounds closer to the optimal solution to the model in this article, as well as computational test of the heuristic algorithm and the exact solution approach developed in this paper. Also, more constraints reflecting the characteristics of software product lines may be added to the model. For instance, other resources such as multiple teams, each developing one product or a platform in a software product line could be added to the model.

키워드

참고문헌

  1. http://www.sei.cmu.edu/productlines.
  2. Morin, T. L. and Marsten, R. E.; "An algorithm for nonlinear knapsack problems," Management science, 22(10) : 1147-1158, 1976. https://doi.org/10.1287/mnsc.22.10.1147
  3. Penny, D.; "An Estimation-Based Management Framework for Enhancive Maintenance in Commercial Software Products," Proceedings of the International Conference on Software Maintenance, Montreal, Canada, 122-130, 2002.
  4. Samphaiboon, N. and Yamada, T.; "Heuristic and exact algorithm for the precedence-constrained knapsack problem," Journal of optimization theory and applications, 105(3) : 659-676, 2000. https://doi.org/10.1023/A:1004649425222
  5. Taborda, L.; "Generalized Release Planning for Product Line Architectures," Proceedings of the SPLC, The Third Software Product Lines Conference, Boston, USA, 238-254, 2004.
  6. Ullah, M. and Ruhe, G.; "Towards Comprehensive Release Planning for Software Product Lines," Proceedings of the First International Workshop on Software Product Management, Minneapolis/St. Paul, Minnesota, USA, 55-59, 2006.