Desarrollo de aplicaciones móviles mediante ingeniería dirigida por modelos: Caso de estudio basado en Android
Palabras clave:
Ingeniería dirigida por modelos, Aplicaciones móviles, Arquitectura limpia, Cadenas de transformación de modelosSinopsis
La industria del software debe satisfacer el cumplimiento de atributos de calidad, como mantenibilidad, extensibilidad, entre otros. El Object Management Group (OMG) ha propuesto la arquitectura dirigida por modelos como una especificación de interoperabilidad que permite resolver problemas asociados con el cumplimiento de atributos de calidad. También, propuso la ingeniería dirigida por modelos como una práctica para modelar artefactos de procesos de ingeniería de software.
Cada día se producen nuevas versiones de tecnologías, así como necesidades de negocio que demandan aplicaciones de software extensibles y escalables. Sin embargo, todas estas acciones requieren un esfuerzo altísimo que puede ser mayor que el de desarrollar una nueva aplicación. De esta forma, cobra mucha importancia la posibilidad de generar aplicaciones de software de manera semiautomática.
Este trabajo de investigación presenta una aproximación para generar de manera semiautomática aplicaciones de software con la capacidad de satisfacer atributos de calidad requeridos para determinado proyecto. Esta aproximación está basada en la construcción de una cadena de transformación de modelos con base en un modelo de dominio, con el fin de generar código fuente de una aplicación de software.
Capítulos
-
Introducción
-
Capítulo 1Marco teórico
-
Capítulo 2Cadena de transformación de modelos
-
Capítulo 3Metamodelo de dominio
-
Capítulo 4Metamodelo de arquitectura
-
Capítulo 5Transformación de modelo a modelo
-
Capítulo 6Transformación de modelo a texto
-
Capítulo 7Validación
-
Capítulo 8Discusión
-
Capítulo 9Conclusiones
-
Anexo AMetamodelo de dominio
-
Anexo BMetamodelo de arquitectura
-
Anexo CCódigo fuente ATL
-
Anexo DCódigo fuente Acceleo
Descargas
Referencias
Arango, E. C. y Loaiza, O. L. (2021). SCRUM Framework Extended with Clean Architecture Practices for Software Maintainability. Computer Science On-line Conference, 667-681.
Benouda, H., Azizi, M., Moussaoui, M. y Esbai, R. (2017). Automatic code generation within MDA approach for cross-platform mobiles apps. 2017 First International Conference on Embedded & Distributed Systems (EDiS), 1-5.
Bettini, L. (2016). Implementing domain-specific languages with Xtext and Xtend. Packt Publishing Ltd.
Bézivin, J. (2005). On the unification power of models. Software and Systems Modeling, 4(2), 171-188.
Bézivin, J., Gérard, S., Muller, P.-A. y Rioux, L. (2003). MDA components: Challenges and Opportunities. Workshop on Metamodelling for MDA, 23-41. Bruel, J.-M., Combemale, B., Guerra, E., Jézéquel, J.-M., Kienzle, J., De Lara, J., Mussbacher, G., Syriani, E. y Vangheluwe, H. (2020). Comparing and classifying model transformation reuse approaches across metamodels. Software and Systems Modeling, 19(2), 441-465.
Budinsky, F., Ellersick, R., Steinberg, D., Grose, T. J. y Merks, E. (2004). Eclipse modeling framework: a developer’s guide. Addison-Wesley Professional. Chaudhary, H. A. A., Guevara, I., John, J., Singh, A., Ghosal, A., Pesch, D. y Margaria, T. (2022). Model-driven engineering in digital thread platforms: A practical use case and future challenges. Leveraging Applications of Formal Methods, Verification and Validation. Practice: 11th International Symposium, ISoLA 2022, Rhodes, Greece, October 22–30, 2022, Proceedings, Part IV, 195-207.
Di Sipio, C., Di Rocco, J., Di Ruscio, D. y Nguyen, D. P. T. (2021). A lowcode tool supporting the development of recommender systems. Fifteenth ACM Conference on Recommender Systems, 741-744.
Fowler, M. (2012). Patterns of Enterprise Application Architecture: Pattern Enterpr Applica Arch. Addison-Wesley.
Fowler, M. (2015). PresentationDomainDataLayering. Frankel, S. I., Miller, J., Mischkinsky, J., Mukerji, J., Siegel, J., Soley, R., TyndalBiscoe, S., Uhl, A., Watson, A. y Wood, B. (2001). Model Driven Architecture (MDA).
Ghezzi, C., Jazayeri, M., Mandrioli, D. et al. (2004). Software qualities and principles. CRC Press.
Gotseva, D., Tomov, Y. y Danov, P. (2019). Comparative study Java vs. Kotlin. 2019 27th National Conference with International Participation (Telecom), 86-89.
Greenfield, J. y Short, K. (2003). Software factories: assembling applications with patterns, models, frameworks and tools. Companion of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, 16-27.
Harrison, W. y Ossher, H. (1993). Subject-oriented programming: a critique of pure objects. Proceedings of the eighth annual conference on Objectoriented programming systems, languages, and applications, 411-428.
Hawking, S. y Mlodinow, L. (2010). The grand design. Random House LLC.
Holderer, K. (2022). Single responsibility principle: software design. POGIL Activity Clearinghouse, 3(4). Iung, A., Carbonell, J., Marchezan, L., Rodrigues, E., Bernardino, M., Basso, F. P. y Medeiros, B. (2020). Systematic mapping study on domainspecific language development tools. Empirical Software Engineering, 25, 4205-4249.
Jemerov, D. y Isakova, S. (2017). Kotlin in action. Simon & Schuster.
Jouault, F., Allilaire, F., Bézivin, J. y Kurtev, I. (2008). ATL: A model transformation tool. Science of computer programming, 72(1-2), 31-39.
Kahani, N., Bagherzadeh, M., Cordy, J. R., Dingel, J. y Varró, D. (2019). Survey and classification of model transformation tools. Software and Systems Modeling, 18(4), 2361-2397.
Kardas, G., Demirezen, Z. y Challenger, M. (2010). Towards a DSML for semantic web enabled multi-agent systems. Proceedings of the International Workshop on Formalization of Modeling Languages, 1-5.
Kaschek, R. H. (2008). On the evolution of conceptual modeling. Dagstuhl Seminar Proceedings. https://drops.dagstuhl.de/storage/16dagstuhlseminar - proceedings/dsp - vol08181/DagSemProc . 08181 . 5/DagSemProc.08181.5.pdf
Kelly, S. y Tolvanen, J.-P. (2021). Collaborative modelling and metamodelling with MetaEdit+. 2021 ACM/IEEE International Conference on Model Driven Engineering Languages and Systems Companion (MODELSC), 27-34.
Kim, W. Y., Son, H. S., Kim, J. S. y Kim, R. Y. C. (2011). Adapting model transformation approach for android smartphone application. Advanced Communication and Networking: Third International Conference, ACN 2011, Brno, Czech Republic, August 15-17, 2011. Proceedings, 421-429.
Lindland, O. I., Sindre, G. y Solvberg, A. (1994). Understanding quality in conceptual modeling. IEEE Software, 11(2), 42-49.
Ludewig, J. (2003). Models in software engineering–an introduction. Software and Systems Modeling, 2(1), 5-14.
Martin, R. C. (2000). Design principles and design patterns. Object Mentor, 1(34), 597.
Martin, R. C. (2018). Clean architecture: a craftsman’s guide to software structure and design. Prentice Hall.
Mernik, M., Heering, J. y Sloane, A. M. (2005). When and how to develop domain-specific languages. ACM Computing Surveys (CSUR), 37(4), 316-344.
Moskala, M. y Wojda, I. (2017). Android Development with Kotlin. Packt Publishing Ltd.
Muller, P.-A., Fondement, F., Baudry, B. y Combemale, B. (2012). Modeling modeling modeling. Software and Systems Modeling, 11(3), 347-359.
Nozik, A. (2019). Kotlin language for science and Kmath library. AIP Conference Proceedings, 2163, 40004.
Oakes, B. J., Troya, J., Lúcio, L. y Wimmer, M. (2018). Full contract verification for ATL using symbolic execution. Software and Systems Modeling, 17(3), 815-849.
Object Management Group. (2015). OMG Meta Object Facility (MOF) Core Specification. Open Management Group.
Open Management Group. (2005). Unified modeling language: Superstructure.
Parr, T. y Fisher, K. (2011). LL (*) the foundation of the ANTLR parser generator. ACM Sigplan Notices, 46(6), 425-436.
Rachovski, T., Hadzhikoleva, S., Hadzhikolev, E. y Lengerov, A. (2022). Using clean architecture principles to improve the design and implementation of the mobiles online platform. Proceedings of Second International Conference on Sustainable Expert Systems, 11-19.
Roussopoulos, N. y Karagiannis, D. (2009). Conceptual modeling: past, present and the continuum of the future. En Conceptual Modeling: Foundations and Applications (pp. 139-152). Springer.
Rumbaugh, J., Jacobson, I. y Booch, G. (2004). The Unified Modeling Language Reference Manual. Pearson Higher Education.
Sánchez, D. y Flórez, H. (2018). Model driven engineering approach to manage peripherals in mobile devices. International Conference on Computational Science and Its Applications, 353-364.
Sánchez, D., Rojas, A. E. y Flórez, H. (2022). Towards a clean architecture for android apps using model transformations. IAENG International Journal of Computer Science, 49(1), 270-278.
Schmidt, D. (1996). Programming language semantics. ACM Computing Surveys (CSUR), 28(1), 265-267.
Schmidt, D. (2006). Model-driven engineering. IEEE Computer, 39(2), 25-31.
Seidewitz, E. (2003). What models mean. IEEE Software, 20(5), 26-32.
Selic, B. (2003). The pragmatics of model-driven development. IEEE Software, 20(5), 19-25.
Sousa, G. C., Costa, F. M., Clarke, P. J. y Allen, A. A. (2012). Model-driven development of DSML execution engines. Proceedings of the 7th Workshop on Models@ run. time, 10-15.
Stachowiak, H. (1973). General model theory. Springer.
Steinberg, D., Budinsky, F., Merks, E. y Paternostro, M. (2008). EMF: eclipse modeling framework. Pearson Education.
Van Deursen, A. y Klint, P. (2002). Domain-specific language design requires feature descriptions. Journal of Computing and Information Technology, 10(1), 1-17.
Weinstein, R. (2005). RFID: a technical overview and its application to the enterprise. IT Professional, 7(3), 27-33.
Descargas
Publicado
Colección
Licencia

Esta obra está bajo una licencia internacional Creative Commons Atribución-NoComercial-SinDerivadas 4.0.
