Abstract
Reuse automation is a main concern of software engineering to produce high quality applications in a faster and cheaper manner. Some approaches define cross-platform model-driven software product lines to systematically and automatically reuse generic assets in software development. They improve the product line assets reusability by designing them according to the Model-Driven Architecture specifications. However, their reuse of platform-specific assets is limited due to an inefficient platform-specific variability management. This issue interfere with gains in productivity provided by reuse.
In this paper, we define platform-specific variability by identifying variation points in different software concerns based on the well-known “4+1” view model categorization. Then, we fully manage platform-specific variability by structuring the Platform-Specific Model using two sub-models: the Cross-Cutting Model, obtained by transformation of the Platform-Independent Model; and the Application Structure Model, obtained by reuse of variable platform-specific assets. This structure is supported by a framework, based on a Domain-Specific Modeling Language, helping developers to build an application model. Experiments on three concrete applications confirmed that our approach significantly improves product lines productivity.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
- 2.
- 3.
Sirius website: http://www.eclipse.org/sirius/.
- 4.
Eclipse QVT Operational: https://projects.eclipse.org/projects/modeling.mmt.qvt-oml.
References
Jacobson, I., Griss, M., Jonsson, P.: Software Reuse: Architecture Process and Organization for Business Success. ACM Press, New York (1997)
Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-oriented Software. Addison-Wesley Longman Publishing Co., Inc., Boston (1995)
Vale, T., Crnkovic, I., De Almeida, E.S., Neto, P.A.D.M.S., Cavalcanti, Y.C., de Lemos Meira, S.R.: Twenty-eight years of component-based software engineering. J. Syst. Softw. 111, 128–148 (2016)
Filman, R.E., Elrad, T., Clarke, S., Aksit, M. (eds.): Aspect-Oriented Software Development. Addison Wesley, Boston (2004)
Schmidt, D.C.: Model-driven engineering. Computer 39, 25 (2006)
Clements, P., Northrop, L.: Software Product Lines: Practices and Patterns. ddison-Wesley Professional, Reading (2001)
Deelstra, S., Sinnema, M., van Gurp, J., Bosch, J.: Model driven architecture as approach to manage variability in software product families. ResearchGate (2003)
Kim, S.D., Min, H.G., Her, J.S., Chang, S.H.: Dream : a practical product line engineering using model driven architecture. In: Proceedings of the Third International Conference on Information Technology and Applications (ICITA 2005) (2005)
Miller, J., Mukerji, J.: MDA guide. Object Management Group (2003)
Dageförde, J.C., Reischmann, T., Majchrzak, T.A., Ernsting, J.: Generating app product lines in a model-driven cross-platform development approach. In: 49th Hawaii International Conference on System Sciences (HICSS) (2016)
Verdier, F., Seriai, A.D., Tiam, R.T.: Reusing platform-specific models in model-driven architecture for software product lines. In: Proceedings of the 6th International Conference on Model-Driven Engineering and Software Development, pp. 106–116 (2018)
Object Management Group: OMG unified modeling language (2015)
Frantiska, J.: Entity-relationship diagrams. In: Frantiska, J. (ed.) Visualization Tools for Learning Environment Development. SECT, pp. 21–30. Springer, Cham (2018). https://doi.org/10.1007/978-3-319-67440-7_4
Kardoš, M., Drozdová, M.: Analytical method of CIM to PIM transformation in model driven architecture (MDA). J. Inf. Organ. Sci. 34, 89–99 (2010)
Pohl, K., Metzger, A.: Variability management in software product line engineering. In: Proceedings of the 28th International Conference on Software Engineering, ICSE 2006, pp. 1046–1050. ACM (2006)
Pohl, K., Böckle, G., van der Linden, F.J.: Software Product Line Engineering: Foundations, Principles and Techniques. Springer, New York (2005). https://doi.org/10.1007/3-540-28901-1
Kruchten, P.B.: The 4+1 view model of architecture. IEEE Softw. 12, 42–50 (1995)
Usman, M., Iqbal, M.Z., Khan, M.U.: A product-line model-driven engineering approach for generating feature-based mobile applications. J. Syst. Softw. 123, 1–32 (2017)
Brambilla, M., Cabot, J., Wimmer, M.: Model-driven software engineering in practice, 2nd edn. Synthesis Lectures on Software Engineering. Morgan & Claypool Publishers (2017)
O’Neil, E.J.: Object/relational mapping 2008: hibernate and the entity data model (edm). In: Proceedings of the 2008 ACM SIGMOD International Conference on Management of Data, SIGMOD 2008. ACM, pp. 1351–1356 (2008)
Czarnecki, K., Helsen, S., Eisenecker, U.: Staged configuration using feature models. In: Nord, R.L. (ed.) SPLC 2004. LNCS, vol. 3154, pp. 266–283. Springer, Heidelberg (2004). https://doi.org/10.1007/978-3-540-28630-1_17
Hamed, A., Colomb, R.M.: End to end development engineering. J. Softw. Eng. Appl. 4, 195–216 (2014)
Object Management Group: Business Process Model and Notation. Version 2.0. (2011)
Czarnecki, K., Helsen, S.: Classification of model transformation approaches. In: Proceedings of the 2nd OOPSLA Workshop on Generative Techniques in the Context of the Model Driven Architecture, pp. 1–17 (2003)
Steinberg, D., Budinsky, F., Paternostro, M., Merks, E.: EMF: Eclipse Modeling Framework, 2nd edn. Addison-Wesley Professional, Reading (2009)
Jouault, F., Allilaire, F., Bézivin, J., Kurtev, I., Valduriez, P.: ATL: a QVT-like transformation language. In: Companion to the 21st ACM SIGPLAN Symposium on Object-Oriented Programming Systems, Languages, and Applications, pp. 719–720. ACM (2006)
Paige, R.F., Matragkas, N., Rose, L.M.: Evolving models in model-driven engineering: state-of-the-art and future challenges. J. Syst. Softw. 111, 272–280 (2016)
Haugen, O., Wasowski, A., Czarnecki, K.: CVL: common variability language. In: Proceedings of the 17th International Software Product Line Conference, SPLC 2013, pp. 277–277. ACM (2013)
Acknowledgments
We would like to thank the National Association of Research and Technology (ANRT in French) for its contribution to this research.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2019 Springer Nature Switzerland AG
About this paper
Cite this paper
Verdier, F., Seriai, AD., Tiam, R.T. (2019). Combining Model-Driven Architecture and Software Product Line Engineering: Reuse of Platform-Specific Assets. In: Hammoudi, S., Pires, L., Selic, B. (eds) Model-Driven Engineering and Software Development. MODELSWARD 2018. Communications in Computer and Information Science, vol 991. Springer, Cham. https://doi.org/10.1007/978-3-030-11030-7_19
Download citation
DOI: https://doi.org/10.1007/978-3-030-11030-7_19
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-11029-1
Online ISBN: 978-3-030-11030-7
eBook Packages: Computer ScienceComputer Science (R0)