skip to main content
research-article

Generative software product line development using variability-aware design patterns

Published:26 October 2015Publication History
Skip Abstract Section

Abstract

Software Product Lines (SPLs) are an approach to reuse in-the-large that models a set of closely related software systems in terms of commonalities and variabilities. Design patterns are best practices for addressing recurring design problems in object-oriented source code. In the practice of implementing an SPL, instances of certain design patterns are employed to handle variability, which makes these "variability-aware design patterns" a best practice for SPL design. However, there currently is no dedicated method for proactively developing SPL using design patterns suitable for realizing variable functionality. In this paper, we present a method to perform generative SPL development with design patterns. We use role models to capture design patterns and their relation to a variability model. We further allow mapping of individual design pattern roles to elements of realization artifacts to be generated (e.g., classes, methods) and check the conformance of the realization with the specification of the pattern. With this method, we support proactive development of SPL using design patterns to apply best practices for the realization of variability. We present an implementation of our approach within the Eclipse IDE and demonstrate it within a case study.

References

  1. H. Albin-amiot, Y. gal Guhneuc, and R. A. Kastler. Meta-modeling design patterns: Application to pattern detection and code synthesis. In Proceedings of the First ECOOP Workshop on Automating Object-Oriented Software Development Methods, pages 01–35, 2001.Google ScholarGoogle Scholar
  2. S. Apel and D. Beyer. Feature Cohesion in Software Product Lines: An Exploratory Study. In Proceedings of the 33rd International Conference on Software Engineering, ICSE ’11, pages 421–430. IEEE, May 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. D. Batory. Feature-Oriented Programming and the AHEAD Tool Suite. In Proceedings of the 26th International Conference on Software Engineering, pages 702–703. IEEE Computer Society, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. D. Batory. Feature Models, Grammars, and Propositional Formulas. Software Product Lines, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. D. Benavides, P. Trinidad, and A. Ruiz-Cortés. Automated Reasoning on Feature Models. In O. Pastor and J. a. Falc˜ao e Cunha, editors, Advanced Information Systems Engineering, volume 3520 of Lecture Notes in Computer Science, pages 491–503. Springer Berlin Heidelberg, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. D. Benavides, S. Segura, P. Trinidad, and A. Ruiz-Cortés. Using Java CSP Solvers in the Automated Analyses of Feature Models. In R. Lmmel, J. Saraiva, and J. Visser, editors, Generative and Transformational Techniques in Software Engineering, volume 4143 of Lecture Notes in 13 http://www.jhotdraw.org Computer Science, pages 399–408. Springer Berlin Heidelberg, 2006. ISBN 978-3-540-45778-7.. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. G. Bracha and W. Cook. Mixin-Based Inheritance. In Proceedings of the European Conference on Object-oriented Programming on Object-oriented Programming Systems, Languages, and Applications, OOPSLA/ECOOP ’90, pages 303–311, New York, NY, USA, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. ACM. ISBN 0-89791-411-2..Google ScholarGoogle Scholar
  9. F. J. Budinsky, M. A. Finnie, J. M. Vlissides, and P. S. Yu. Automatic Code Generation from Design Patterns. IBM Systems Journal, 35(2): 151–171, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. M. Ó. Cinnéide and P. Nixon. A Methodology for the Automated Introduction of Design Patterns. In Proceedings of the IEEE International Conference on Software Maintenance (ICSM’99), pages 463–472. IEEE, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. D. Clarke, M. Helvensteijn, and I. Schaefer. Abstract Delta Modeling. In Proceedings of the Ninth International Conference on Generative Programming and Component Engineering, GPCE ’10, pages 13–22, New York, NY, USA, 2010. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. M. Couto, M. Valente, and E. Figueiredo. Extracting Software Product Lines: A Case Study Using Conditional Compilation. In 15th European Conference on Software Maintenance and Reengineering (CSMR), pages 191–200, 2011.. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. K. Czarnecki, S. Helsen, and U. Eisenecker. Formalizing Cardinality-Based Feature Models and their Specialization. Software Process: Improvement and Practice, 10(1):7–29, 2005.Google ScholarGoogle ScholarCross RefCross Ref
  14. D. Duggan and C. Sourelis. Mixin Modules. In Proceedings of the First ACM SIGPLAN International Conference on Functional Programming, ICFP ’96, pages 262–273, New York, NY, USA, 1996. ACM. ISBN 0-89791-770-7.. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. A. H. Eden, A. Yehudai, and J. Gil. Precise Specification and Automatic Application of Design Patterns. In Proceedings of the 12th IEEE International Conference Automated Software Engineering, pages 143– 152. IEEE, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. G. Florijn, M. Meijers, and P. van Winsen. Tool Support for Object-Oriented Patterns. In ECOOP’97 – Object-Oriented Programming, pages 472–495. Springer, 1997.Google ScholarGoogle Scholar
  17. E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Pearson Education, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. J. Hannemann and G. Kiczales. Design Pattern Implementation in Java and AspectJ. ACM SIGPLAN Notices, 37(11):161–173, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. K. Kang, S. Cohen, J. Hess, W. Novak, and A. Peterson. Feature-Oriented Domain Analysis (FODA) Feasibility Study. Technical report, DTIC Document, 1990.Google ScholarGoogle ScholarCross RefCross Ref
  20. C. Kästner, S. Apel, and M. Kuhlemann. Granularity in Software Product Lines. In Proceedings of the 30th International Conference on Software Engineering, pages 311–320. ACM, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. C. Kästner, S. Apel, and K. Ostermann. The Road to Feature Modularity? In Proceedings of the 15th International Software Product Line Conference, Volume 2, SPLC ’11, pages 5:1–5:8, New York, NY, USA, 2011. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. Lopes, J.-M. Loingtier, and J. Irwin. Aspect-Oriented Programming. Springer, 1997.Google ScholarGoogle ScholarCross RefCross Ref
  23. G. Kiczales, E. Hilsdale, J. Hugunin, M. Kersten, J. Palm, and W. Griswold. An Overview of AspectJ. In J. Knudsen, editor, ECOOP 2001 – Object-Oriented Programming, volume 2072 of Lecture Notes in Computer Science, pages 327–354. Springer Berlin Heidelberg, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. C. Krueger. Variation Management for Software Production Lines. In Software Product Lines, pages 37–48. Springer, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. J. Liebig, S. Apel, C. Lengauer, C. Kästner, and M. Schulze. An Analysis of the Variability in Forty Preprocessor-Based Software Product Lines. In 32nd International Conference on Software Engineering, volume 1, pages 105–114, 2010.. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. T. Reenskaug, P. Wold, and O. A. Lehne. Working with Objects: The OOram Software Engineering Method. Manning Greenwich, 1996.Google ScholarGoogle Scholar
  27. J. Reimann, M. Seifert, and U. Aßmann. Role-Based Generic Model Refactoring. In D. Petriu, N. Rouquette, and Ø. Haugen, editors, Model Driven Engineering Languages and Systems. Springer Berlin/Heidelberg, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. D. Riehle. Describing and Composing Patterns using Role Diagrams. In White Object-Oriented Nights: Proceedings of the 1st International Conference on Object-Oriented Technology, volume 96, 1996.Google ScholarGoogle Scholar
  29. D. Riehle. A Role-Based Design Pattern Catalog of Atomic and Composite Patterns Structured by Pattern Purpose. Technical Report Ubilab Technical Report 97.1. 1., Zürich, Switzerland: Union Bank of Switzerland, 1997.Google ScholarGoogle Scholar
  30. D. Riehle and T. Gross. Role Model Based Framework Design and Integration. In Proceedings of the 13th ACM SIGPLAN Conference on Object-oriented Programming, Systems, Languages, and Applications, pages 117–133, New York, NY, USA, 1998. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. I. Schaefer, L. Bettini, V. Bono, F. Damiani, and N. Tanzarella. Delta-Oriented Programming of Software Product Lines. In Software Product Lines: Going Beyond, pages 77–91. Springer, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. I. Schaefer, R. Rabiser, D. Clarke, L. Bettini, D. Benavides, G. Botterweck, A. Pathak, S. Trujillo, and K. Villela. Software Diversity: State of the Art and Perspectives. International Journal on Software Tools for Technology Transfer, 14(5):477–495, 2012.Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. S. Schuster. Pattern-Based Software Product Line Design using Role Modeling. Diploma thesis, Technische Universität Braunschweig, 2014. URL www.digibib.tu-bs.de/?docid=00060381.Google ScholarGoogle Scholar
  34. S. Schuster and S. Schulze. Object-Oriented Design in Feature-Oriented Programming. In Proceedings of the 4th International Workshop on Feature-Oriented Software Development, FOSD ’12, 2012. ISBN 978- 1-4503-1309-4. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. S. Schuster, S. Schulze, and I. Schaefer. Structural Feature Interaction Patterns: Case Studies and Guidelines. In Proceedings of the 8th International Workshop on Variability Modelling of Software-Intensive Systems (VaMoS), VaMoS’14, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. Y. Smaragdakis and D. Batory. Mixin Layers: An Object-Oriented Implementation Technique for Refinements and Collaboration-Based Designs. ACM Transactions on Software Engineering and Methodology, 11(2): 215–255, Apr. 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. E. Tsang. Foundations of Constraint Satisfaction. Academic Press, 1995.Google ScholarGoogle Scholar

Index Terms

  1. Generative software product line development using variability-aware design patterns

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in

        Full Access

        • Published in

          cover image ACM SIGPLAN Notices
          ACM SIGPLAN Notices  Volume 51, Issue 3
          GPCE '15
          March 2016
          184 pages
          ISSN:0362-1340
          EISSN:1558-1160
          DOI:10.1145/2936314
          • Editor:
          • Andy Gill
          Issue’s Table of Contents
          • cover image ACM Conferences
            GPCE 2015: Proceedings of the 2015 ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences
            October 2015
            184 pages
            ISBN:9781450336871
            DOI:10.1145/2814204

          Copyright © 2015 ACM

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 26 October 2015

          Check for updates

          Qualifiers

          • research-article

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader
        About Cookies On This Site

        We use cookies to ensure that we give you the best experience on our website.

        Learn more

        Got it!