Improving Product Line Architecture Design and Customization by Raising the Level of Variability Modeling

  • Jiayi Zhu
  • Xin Peng
  • Stan Jarzabek
  • Zhenchang Xing
  • Yinxing Xue
  • Wenyun Zhao
Part of the Lecture Notes in Computer Science book series (LNCS, volume 6727)


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.


software product line architecture variability ADL 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    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)CrossRefGoogle Scholar
  2. 2.
    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)CrossRefGoogle Scholar
  3. 3.
    Clements, P., Northrop, L.M.: Software Product Lines: Practices and Patterns. Addison-Wesley, New York (2002)Google Scholar
  4. 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. 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. 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
  7. 7.
    Luckham, D.C., Vera, J.: An Event-Based Architecture Definition Language. IEEE Transactions on Software Engineering 21(9), 717–734 (1995)CrossRefGoogle Scholar
  8. 8.
    Shaw, M., et al.: Abstractions for Software Architecture and Tools to Support Them. IEEE Transactions on Software Engineering 21(4), 314–335 (1995)CrossRefGoogle Scholar
  9. 9.
    Allen, R., Garlan, D.: A Formal Basis for Architectural Connection. ACM Transactions on Software Engineering and Methodology 6(3), 213–249 (1997)CrossRefGoogle Scholar
  10. 10.
    van Ommering, R., et al.: The Koala Component Model for Consumer Electronics Software. Computer 33(3), 78–85 (2000)CrossRefGoogle Scholar
  11. 11.
    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)CrossRefGoogle Scholar
  12. 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
  13. 13.
    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)CrossRefGoogle Scholar
  14. 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
  15. 15.
    Schmid, K., John, I.: A customizable approach to full lifecycle variability management. Science of Computer Programming 53(3), 259–284 (2004)MathSciNetCrossRefGoogle Scholar
  16. 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
  17. 17.
    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)CrossRefGoogle Scholar
  18. 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. 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
  20. 20.
    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)CrossRefGoogle Scholar
  21. 21.
    Keepance, B., Mannion, M.: Using patterns to model variability in product families. IEEE Software 16(4), 102–108 (1999)CrossRefGoogle Scholar
  22. 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. 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. 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
  25. 25.
    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)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2011

Authors and Affiliations

  • Jiayi Zhu
    • 1
    • 2
  • Xin Peng
    • 1
    • 2
  • Stan Jarzabek
    • 3
  • Zhenchang Xing
    • 3
  • Yinxing Xue
    • 3
  • Wenyun Zhao
    • 1
    • 2
  1. 1.Shanghai Key Laboratory of Intelligent Information ProcessingChina
  2. 2.School of Computer ScienceFudan UniversityChina
  3. 3.School of ComputingNational University of SingaporeSingapore

Personalised recommendations