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.
- 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 Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- D. Batory. Feature Models, Grammars, and Propositional Formulas. Software Product Lines, 2005. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- ACM. ISBN 0-89791-411-2..Google Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Cross Ref
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
- E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Pearson Education, 1994. Google Scholar
Digital Library
- J. Hannemann and G. Kiczales. Design Pattern Implementation in Java and AspectJ. ACM SIGPLAN Notices, 37(11):161–173, 2002. Google Scholar
Digital Library
- K. Kang, S. Cohen, J. Hess, W. Novak, and A. Peterson. Feature-Oriented Domain Analysis (FODA) Feasibility Study. Technical report, DTIC Document, 1990.Google Scholar
Cross Ref
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. Lopes, J.-M. Loingtier, and J. Irwin. Aspect-Oriented Programming. Springer, 1997.Google Scholar
Cross Ref
- 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 Scholar
Digital Library
- C. Krueger. Variation Management for Software Production Lines. In Software Product Lines, pages 37–48. Springer, 2002. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- T. Reenskaug, P. Wold, and O. A. Lehne. Working with Objects: The OOram Software Engineering Method. Manning Greenwich, 1996.Google Scholar
- 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 Scholar
Digital Library
- 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 Scholar
- 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 Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- E. Tsang. Foundations of Constraint Satisfaction. Academic Press, 1995.Google Scholar
Index Terms
Generative software product line development using variability-aware design patterns
Recommendations
Generative software product line development using variability-aware design patterns
GPCE 2015: Proceedings of the 2015 ACM SIGPLAN International Conference on Generative Programming: Concepts and ExperiencesSoftware 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-...
Generative software product line development using variability-aware design patterns
SPLC '18: Proceedings of the 22nd International Systems and Software Product Line Conference - Volume 1A Software Product Line (SPL) is an approach to reuse in-the-large that models closely related software systems in terms of commonalities and variabilities. Design patterns are best practices for addressing recurring design problems. When implementing ...
Detecting and Describing Variability-Aware Design Patterns in Feature-Oriented Software Product Lines
MODELSWARD 2018: Proceedings of the 6th International Conference on Model-Driven Engineering and Software DevelopmentSoftware Product Lines (SPLs) enable customization by reusing commonalities and variabilities within a family of similar software systems. Design patterns are best practices of established solutions in object-oriented source code for recurring design ...






Comments