In reusing common organizational assets, the software product line (SPL) provides substantial business opportunities for reducing the unit cost of similar products, improving productivity, reducing time to market, and promoting customer satisfaction [4]. By adopting effective product line practices, return on investment (ROI) becomes increasingly critical in the decision-making process. The majority of SPL cost estimation and ROI models [59] confine themselves to software development costs and savings. However, if software quality cost is considered in the spectrum of the SPL life cycle, product lines can result in considerably larger payoffs, compared to non-product lines.
This article proposes a quality-based product line life cycle cost estimation model, called qCOPLIMO, and investigates the effect of software quality cost on the ROI of SPL. qCOPLIMO is derived from two COCOMO suite models: COPLIMO and COQUALMO, as presented in Figure 1. COPLIMO [2] provides a baseline cost estimation model of the product line life cycle, and COQUALMO [3] estimates the number of residual defects. These models are used to estimate software quality cost. Both models are an extension of COCOMO II [1].
Quality-Based SPL Cost Estimation Model (qCOPLIMO)
Existing SPL cost estimation models [59] do not significantly consider the software quality cost, which is spent on removing undetected defects after product release. In general, the future costs for correction of defects undetected at product release consume a large portion of total maintenance costs. The proposed model is recommended, which includes the software quality cost in the SPL business case analysis. qCOPLIMO consists of the following two cost models: Relative Cost of Writing for Reuse (RCWR) for initial product line development and Relative Cost for Reuse (RCR) for the following product development cases.
Relative Cost of Writing for Reuse (RCWR): RCWR is the added cost of writing software to be most cost-effectively reused across a product line family of applications, relative to the cost of writing a standalone application. The software quality cost is added to the baseline SPL for RCWR (COPLIMORCWR), proposed in [2], as follows:
Relative Cost for Reuse (RCR): RCR is the cost of reusing the software in a new application with the same product line family, relative to developing newly built software for the application. After the initial product is developed using product line engineering practice, which concentrates on development for future reuse, the portion or the whole can be used for other products in the same product line family. Like RCWR, the software quality cost is added to the baseline SPL cost for RCR (COPLIMORCR), [2], as follows:
The estimated quality-based SPL cost for developing N products is as follows:
ROI Analysis of a Quality-Based Product Line: A Case Study
The effect of software quality cost on ROI figures for product line vs. standalone product development is investigated using a representative example, with the parameters shown in the table here based on collected 161 real-world industrial COCOMO II data, and experience in aircraft and spacecraft product line domains.
Non-Product Line (NPL) Development: The NPL cost is calculated by adding the cost of non-product line development to software quality cost as follows:
Product Line (PL) Development: For simplicity, the COCOMO cost drivers in PL are identical to those used in NPL, with the exceptions that RUSE is Very High, DOCU is Very High, and RELY is Very High. Based on Equation 1, the cost of the product line is calculated as follows:
The saving of PL over NPL development is presented in Figure 2. Anywhere from one to five products are developed using NPL and PL development, and all include software quality costs. The first product is developed using RCWR product line development, to invest for future reuse. The remaining N-1 products are developed using the RCR model, and benefit greatly from product line reuse.
The product line saves more money than NPL. These savings come from two sources: product line reuse and savings in software quality cost. After an initial product is developed, the product line, which reuses a portion of the initially developed product, reduces costs below that of standalone products. In addition, software quality cost in product line development is much lower than that in NPL development of standalone products. The size of the product at each factory is reduced and the number of undetected defects is also reduced, due to reuse of some portion of the initially developed product.
To investigate the effect of software quality cost, the ROI figures calculated from qCOPLIMO (with software quality) are presented in Figure 3, and compared to COPLIMO (without considering software quality). This comparison reveals that the ROI based on COPLIMO or other related work is significantly underestimated if software quality cost is not considered.
Conclusion
The proposed qCOPLIMO provides a framework to estimate the effects of software quality cost for enabling cost-benefit analysis of software product lines. The majority of quantitative software product line models significantly underestimates the effect of software quality cost on potential savings and return on investment. These models only address development and life cycle costs. If these models consider the quality factor, however, they can have a considerably larger payoff by accumulating the potential savings of reusing components after removing product defects.
Join the Discussion (0)
Become a Member or Sign In to Post a Comment