Improving Product Line Architecture Design and Customization by Raising the Level of Variability Modeling
Product Line Architecture (PLA) plays a central role in software product line development. In order to support architecture-level variability modeling, most architecture description languages (ADLs) introduce architectural variation elements, such as optional component, connector and interface, which must be customized during product derivation. Variation elements are many, and design and customization of PLA at the level of individual variation elements are difficult and error-prone. We observed that developers usually perceive architecture variability from the perspective of variant features or variant design decisions that are mapped into groups of architecture variation elements. In the paper, we describe heuristics to identify configurations of variation elements that typically form such groups. We call them variation constructs. We developed an architecture variability management method and a tool that allow developers to work at the variation construct level rather than at the level of individual variation elements. We have applied and evaluated the proposed method in the development and maintenance of a medium-size financial product line. Our experience indicates that by raising variability modeling from variation element to construct level, architecture design and customizations become more intuitive. Not only does our method reduce the design and customization effort, but also better ensures consistent configuration of architectural variation elements, avoiding errors.
Keywordssoftware product line architecture variability ADL
Unable to display preview. Download preview PDF.
- 3.Clements, P., Northrop, L.M.: Software Product Lines: Practices and Patterns. Addison-Wesley, New York (2002)Google Scholar
- 4.Garlan, D., Monroe, R., Wile, D.: ACME: An Architecture Description Interchange Language. In: Proceedings of the 1997 Conference of the Centre for Advanced Studies on Collaborative Research, CASCON (1997)Google Scholar
- 5.Medvidovic, N., Oreizy, P., Robbins, J.E., Taylor, R.N.: Using object-oriented typing to support architectural design in the C2 style. In: Proceedings of the 4th ACM Symposium on the Foundations of Software Engineering, FSE (1996)Google Scholar
- 6.Magee, J., Kramer, J.: Dynamic Structure in Software Architectures. In: Proceedings of the 4th Symposium on the Foundations of Software Engineering (1996)Google Scholar
- 12.Swanson, E.B.: The dimensions of maintenance. In: Proceedings of the 2nd International Conference on Software Engineering (ICSE), pp. 492–497 (1976)Google Scholar
- 14.Pohl, K., Metzger, A.: Variability management in software product line engineering. In: Proceedings of the 28th International Conference on Software Engineering, ICSE (2006)Google Scholar
- 16.Jarzabek, S., Bassett, P., Zhang, H., Zhang, W.: XVCL: XML-based variant configuration language. In: Proceedings of the 25th International Conference on Software Engineering, ICSE (2003)Google Scholar
- 18.Hendrickson, S.A., van der Hoek, A.: Modeling Product Line Architectures Through Change Sets and Relationships. In: Proceedings of the 29th International Conference on Software Engineering (ICSE), Minneapolis, USA, pp. 189–198 (2007)Google Scholar
- 19.López, N., Casallas, R., van der Hoek, A.: Issues in Mapping Change-Based Product Line Architectures to Configuration Management Systems. In: Proceedings of the 13th Software Product Lines Conference (SPLC), pp. 21–30 (2009)Google Scholar
- 22.Jiang, J., Ruokonen, A., Systä, T.: Pattern-based variability management in Web service development. In: Proceedings of the 3rd European Conference on Web Services, ECOWS 2005 (2005)Google Scholar
- 23.Kang, K.C., Cohen, S.G., Hess, J.A., Novak, W.E., Spencer Peterson, A.: Feature-Oriented Domain Analysis (FODA) Feasibility Study. Technical Report CMU/SEI-90-TR-21, Software Engineering Institute, Carnegie Mellon University, Pittsburgh, PAGoogle Scholar
- 24.Peng, X., Shen, L., Zhao, W.: An Architecture-based Evolution Management Method for Software Product Line. In: Proceedings of the 21st International Conference on Software Engineering and Knowledge Engineering, SEKE (2009)Google Scholar