Abstract
Model driven engineering (MDE) of software product lines (SPLs) merges two increasing important paradigms that synthesize programs by transformation. MDE creates programs by transforming models, and SPLs elaborate programs by applying transformations called features. In this paper, we present the design and implementation of a transformational model of a product line of scalar vector graphics and JavaScript applications. We explain how we simplified our implementation by lifting selected features and their compositions from our original product line (whose implementations were complex) to features and their compositions of another product line (whose specifications were simple). We used operators to map higher-level features and their compositions to their lower-level counterparts. Doing so exposed commuting relationships among feature compositions in both product lines that helped validate our model and implementation.
Similar content being viewed by others
References
Ancona, D., Lagorio, G., Zucca, E.: True separate compilation of Java classes. In: Principles and Practice of Declarative Programming (PPDP’02), pp. 189–200. Pittsburgh (2002)
Anastaspoulos, M., Forster, T., Muthig, D.: Optimizing model driven development by deriving code generation patterns from product line architectures. In: Hirschfeld, R., Kowalczyk, R., Polze, A., Weske, M. (eds.) Net ObjectDays, pp. 425–438. Erfurt (2005)
Anfurrutia, F.I., Diaz, O., Trujillo, S.: On refining XML artifacts. In: International Conference on Web Engineering, pp. 473–478. Como (2007)
Avila-Garcia, O., Garcia, A.E., Rebull, E.V.S.: Using software product lines to manage model families in model-driven engineering. In: ACM Symposium on Applied Computing, pp. 1006–1011. Seoul (2007)
Batory, D., Lofaso, B., Smaragdakis, Y.: JTS: tools for implementing domain-specific languages. In: International Conference on Software Reuse, pp. 143–153. Victoria (1998)
Batory, D.: Feature models, grammars, and propositional formulas. In: Software Product Line Conference (SPLC), pp. 7–20. Rennes (2005)
Batory, D., Robertson, E., Chen, G., Wang, T.: Design wizards and visual programming environments for genvoca generators. IEEE Trans. Softw. Eng. doi:10.1109/32.846301 (2000)
Batory D., O’Malley S.: The design and implementation of hierarchical software systems with Reusable Components. ACM Trans. Softw. Eng. Methodol. 1(4), 355–398 (1992)
Batory, D., Sarvela, J.N.: The AHEAD Tool Suite (ATS). Website: Department of Computer Sciences, The University of Texas at Austin. http://www.cs.utexas.edu/users/schwartz/index.html (2003–2009). Accessed 24 July 2009
Batory, D., Sarvela, J.N., Rauschmayer, A.: Scaling step wise refinement. IEEE Trans. Softw. Eng. doi:10.1109/TSE.2004.23 (2004)
Baxter, I.: Design maintenance systems, Commun. of the ACM. doi:10.1145/129852.129859 (1992)
Bezivin, J.: Model driven engineering: an emerging technical space. Generative and transformational techniques in software engineering. LNCS volume 4143/2006, pp. 36–44
Booch, G., Brown, A., Iyengar, S., Rumbaugh, J., Selic, B.: An MDA Manifesto. MDA J. 2–9 (2004)
Colyer, A., Rashid, A., Blair, G.: On the separation of concerns in program families. Technical report COMP-001-2004, Computing Department, Lancaster University. http://www.comp.lancs.ac.uk/computing/aose/papers/COMP-001-2004.pdf (2004). Accessed 27 July 2009
Cuadrado, J., Molina, J.: Approaches for model transformation reuse: factorization and composition. In: International Conference on Theory and Practice of Model Transformations, pp. 168–182. Zurich (2008)
Czarnecki K., Eisenecker U.: Generative Programming Methods, Tools, and Applications. Addison-Wesley, Boston (2000)
Czarnecki, K., Antkiewicz, M.: Mapping features to models: a template approach based on superimposed variants. In: International Conference on Generative Programming and Component Engineering (GPCE), pp. 422–437. Tallinn (2005)
Czarnecki K., Helsen S.: Feature-based survey of model transformation approaches. IBM Syst. J. 45(3), 621–645 (2006)
Deelstra, S., Sinnema, M., van Gurp, J., Bosch, J.: Model driven architecture as approach to manage variability in software product families. In: Model Driven Architecture Foundations and Applications (MDAFA) Workshop (2003)
Drossopoulou, S., Eisenbach, S., Wragg, D.: A fragment calculus towards a model of separate compilation, linking and binary compatibility. In: Symposium on Logic in Computer Science (1999)
Earley J.: An efficient context-free parsing algorithm. Commun. ACM 13(2), 92–104 (1970)
Ehrig, H., Ehrig, K., Ermel, C., Hermann, F., Taentzer, G.: Information preserving bidirectional model transformations. In: Fundamental Approaches to Software Engineering (FASE), pp. 72–86 (2007)
Gonzlez-Baixauli, B., Laguna, M.A., Crespo, Y.: Product lines, features, and MDD. In: European Workshop on Model Transformations (EWMT) (2005)
Gray, J., et al.: Model driven program transformation of a large avionics framework. In: International Conference on Generative Programming and Component Engineering (GPCE), pp. 361–378 (2004)
Gronmo, R., Sorensen, F., Moller-Pedersen, B., Krogdahl, S.: Semantics-based weaving of UML sequence diagrams. In: International Conference on Model Transformations (ICMT), pp. 122–136 (2008)
Hemel, Z., Kats, L., Visser, E.: Code generation by model transformation: a case study in transformation modularity. In: International Conference on Model Transformations (ICMT), pp. 183–198 (2008)
JavaCC. https://javacc.dev.java.net. Accessed 23 July 2009
Jouault, F., Kurtev, I.: Transforming models with ATL. In: Model Transformations in Practice Workshop at Model Driven Engineering, Languages and Systems (MODELS) (2005)
Kang, K., Cohen, S., Hess, J., Nowak, W., Peterson, S.: Feature-oriented domain analysis (FODA) feasibility study. TR. CMU/SEI-90TR-21 (1990)
Kleppe A., Warmer J., Bast W.: MDA Explained: The Model Driven Architecture: Practice and Promise. Addison-Wesley, Boston (2003)
Kolbly, D.: Extensible language implementation. Ph.D. Department of Computer Sciences, University of Texas at Austin (2002)
Kurtev, I., van den Berg, K.: Building adaptable and reusable XML applications with model transformations. In: International World Wide Web (WWW) Conference (2005)
Khurshid, S., Uzuncaova, E., Garcia, D., Batory, D.: Testing software product lines using incremental test generation. In: International Symposium on Software Reliability Engineering (ISSRE) (2008), pp. 249–258
Lagorio, G.: Type systems for Java separate compilation and selective recompilation. PhD thesis, University of Genova (2004)
Lopez-Herrejon, R., Batory, D.: Using hyper/J to implement product lines: a case study. Department of Computer Sciences, University of Texas at Austin (2002)
Lopez-Herrejon, R., Batory, D., Lengauer, C.: A disciplined approach to aspect composition. In: Partial Evaluation and Program Manipulation (PEPM), pp. 68–77 (2006)
Memon, A.M., Pollack, M.E., Soffa, M.L.: Using a goal-driven approach to generate test Cases for GUIs. In: International Conference on Software Engineering (ICSE), pp. 257–266 (1999)
Mens, T., Czarnecki, K., van Gorp, P.: A taxonomy of model transformations. In: International Workshop on Graph and Model Transformations (GraMoT). doi:10.1016/j.entcs.2005.10.021 (2005)
Neuman, A.: US Population 2000: Ethnic structure and age distribution. http://www.carto.net/papers/svg/samples. Accessed April 2006
Ossher H., Tarr P.: Multi-Dimensional Separation of Concerns and the Hyperspace Approach: Software Architecture and Component Technology. Kluwer, Boston (2002)
Rath, I., Bergmann, G., Okros, A., Varro, D.: Live model transformations driven by incremental pattern matching. In: International Conference on Model Transformation (ICMT), doi:10.1007/978-3-540-69927-9_8 (2008)
Rivera, J., Vallecillo, A.: Representing and operating with model differences. In: International Conference Objects, Models, Components, Patters (TOOLS EUROPE). doi:10.1007/978-3-540-69824-1_9 (2008)
Sabetzadeh, M., Easterbrook, S.M.: Analysis of inconsistency in graph-based viewpoints: a category-theoretic approach. In: Automated Software Engineering (ASE), p. 12 (2003)
Schmidt, D., Nechypurenko, A., Wuchner, E.: MDD for software product lines: fact or fiction? Workshop 8 at MODELS (2005)
Selinger, P., et al.: Access path selection in a relational database system. In: ACM Special Interest Group On Management of Data (SIGMOD), pp. 23–34 (1979)
Smaragdakis, Y., Batory, D.: Scoping constructs for program generators. In: Generative and Component-Based Software Engineering (GPCE) (1999)
Thaker, S., Batory, D., Kitchin, D., Cook, W.: Safe composition of product lines. In: Generative Programming and Component Engineering (GPCE), pp. 95–104 (2007)
Tomita M.: Efficient Parsing for Natural Language: A Fast Algorithm for Practical Systems. Kluwer, Boston (1985)
Trujillo, S., Azanza, W., Diaz, O.: Generative metaprogramming. In: Generative Programming and Component Engineering (GPCE), pp. 105–114 (2007)
Trujillo, S., Batory, D., Diaz, O.: Feature oriented model driven development: a case study for portlets. In: International Conference on Software Engineering (ICSE), pp. 44–53 (2007)
Trujullo, S.: Feature oriented model driven product lines. PhD thesis, The University of the Basque Country (2007)
Wagelaar, D.: Composition techniques for rule-based model transformation languages. In: International Conference on Model Transformations (ICMT). doi:10.1007/978-3-540-69927-9_11 (2008)
Wirth N.: Program development by stepwise refinement. Commun. ACM 14(4), 221–227 (1971)
Author information
Authors and Affiliations
Corresponding author
Additional information
Communicated by Dr. Jeff Gray.
Rights and permissions
About this article
Cite this article
Freeman, G., Batory, D., Lavender, G. et al. Lifting transformational models of product lines: a case study. Softw Syst Model 9, 359–373 (2010). https://doi.org/10.1007/s10270-009-0131-6
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10270-009-0131-6