Balancing Business and Technical Objectives for Supporting Software Evolution

Abstract
Context: Successful software systems continuously evolve to accommodate feature requests of a diverse customer-base. At some point during this evolution, the variety of customer needs and increased system complexity suggests the consideration of a software product line (SPL). Aim: The goal of this research is to support the decision maker facing the enhancement of an evolving software system (ESS) to determine the most appropriate product line design (out of a given set of candidate SPL portfolios) to minimize the technical risk and maximize the business value. Method: The proposed method called OPTESS is aimed at finding an evolution plan for the ESS which optimizes both the given technical and business objectives. Business analysis using a value-based pricing mechanism is applied to a set of initially proposed SPL portfolios (for enhancing the ESS) such that profit is maximized. Technical analysis is applied to the same initially proposed SPL portfolios to minimize the risk of failure of ESS due to implementation of new features. Business and technical analyses improve the performance of solutions for their respective objectives by modifying the feature sets of candidate SPL portfolios. OPTESS helps the decision maker to select a plan for enhancement of ESS by performing trade-off analysis on the economic and technical objectives. Results: The method was initially evaluated by a case study for a set of 9 new candidate features to be added to an open source text editing system called jEdit. OPTESS helped the decision maker to identify 3 non-dominated solutions considered to be of highest preference for decision-making when looking at both technical and economic criteria.
Description
Keywords
Software engineering decision support, Cost-benefit analysis, Economic analysis, Software product lines, Software product evolution, Open source systems
Citation
Ullah, M.I., Wei, X., Nault, B.R., and G. Rhue, "Balancing Business and Technical Objectives for Supporting Software Evolution," International Journal of Software Engineering and Computing, 2, 2 (July-December 2010), 75-93