Abstract
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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Dashofy, E.M., van der Hoek, A., Taylor, R.N.: A comprehensive approach for the development of modular software architecture description languages. ACM Transactions on Software Engineering and Methodology 14(2), 199–245 (2005)
Medvidovic, N., Taylor, R.N.: A Classification and Comparison Framework for Software Architecture De-scription Languages. IEEE Transactions on Software Engineering 26(1), 70–93 (2000)
Clements, P., Northrop, L.M.: Software Product Lines: Practices and Patterns. Addison-Wesley, New York (2002)
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)
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)
Magee, J., Kramer, J.: Dynamic Structure in Software Architectures. In: Proceedings of the 4th Symposium on the Foundations of Software Engineering (1996)
Luckham, D.C., Vera, J.: An Event-Based Architecture Definition Language. IEEE Transactions on Software Engineering 21(9), 717–734 (1995)
Shaw, M., et al.: Abstractions for Software Architecture and Tools to Support Them. IEEE Transactions on Software Engineering 21(4), 314–335 (1995)
Allen, R., Garlan, D.: A Formal Basis for Architectural Connection. ACM Transactions on Software Engineering and Methodology 6(3), 213–249 (1997)
van Ommering, R., et al.: The Koala Component Model for Consumer Electronics Software. Computer 33(3), 78–85 (2000)
Roshandel, R., van der Hoek, A., Mikic-Rakic, M., Medvidovic, N.: Mae—a system model and environment for managing architectural evolution. ACM Transactions on Software Engineering and Methodology 13(2), 240–276 (2004)
Swanson, E.B.: The dimensions of maintenance. In: Proceedings of the 2nd International Conference on Software Engineering (ICSE), pp. 492–497 (1976)
Ye, P., Peng, X., Xue, Y., Jarzabek, S.: A Case Study of Variation Mechanism in an Industrial Product Line. In: Edwards, S.H., Kulczycki, G. (eds.) ICSR 2009. LNCS, vol. 5791, pp. 126–136. Springer, Heidelberg (2009)
Pohl, K., Metzger, A.: Variability management in software product line engineering. In: Proceedings of the 28th International Conference on Software Engineering, ICSE (2006)
Schmid, K., John, I.: A customizable approach to full lifecycle variability management. Science of Computer Programming 53(3), 259–284 (2004)
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)
Deelstra, S., Sinnema, M., Bosch, J.: Experiences in Software Product Families: Problems and Issues During Product Derivation. In: Nord, R.L. (ed.) SPLC 2004. LNCS, vol. 3154, pp. 165–182. Springer, Heidelberg (2004)
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)
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)
Loughran, N., Sánchez, P., Garcia, A., Fuentes, L.: Language Support for Managing Variability in Architectural Models. In: Pautasso, C., Tanter, É. (eds.) SC 2008. LNCS, vol. 4954, pp. 36–51. Springer, Heidelberg (2008)
Keepance, B., Mannion, M.: Using patterns to model variability in product families. IEEE Software 16(4), 102–108 (1999)
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)
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, PA
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)
Mei, H., Chen, F., Wang, Q., Feng, Y.-D.: ABC/ADL: An ADL Supporting Component Composition. In: George, C.W., Miao, H. (eds.) ICFEM 2002. LNCS, vol. 2495, p. 38. Springer, Heidelberg (2002)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2011 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Zhu, J., Peng, X., Jarzabek, S., Xing, Z., Xue, Y., Zhao, W. (2011). Improving Product Line Architecture Design and Customization by Raising the Level of Variability Modeling. In: Schmid, K. (eds) Top Productivity through Software Reuse. ICSR 2011. Lecture Notes in Computer Science, vol 6727. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-21347-2_12
Download citation
DOI: https://doi.org/10.1007/978-3-642-21347-2_12
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-21346-5
Online ISBN: 978-3-642-21347-2
eBook Packages: Computer ScienceComputer Science (R0)