MDD4CPD: Model Driven Development Approach Proposal for Cyber-Physical Devices
ResumoContext: the Internet of Things (IoT) is a paradigm that provides an ecosystem for a fast-growing quantity of connected devices, also defined as cyber-physical devices. Problem: the creation of Internet of Things solutions is fairly complex, having to integrate and communicate between sensors, devices, and larger systems, presenting many technical challenges not present in the same magnitude as other paradigms. One of the most affected segments is the development of cyber-physical devices. Much of its development energy is spent on the connecting and efficacy of these devices, often overlooking the future impacts of the proposed solution, caused by a lack of software quality. SI Theory: this work was designed under the Design Theory, currently found in the Justify/Evaluate stage's refinement process. Methodology: model-driven development (MDD), a software development methodology that allows the generation of software solutions through abstract models, which aims to facilitate development, bringing the abstract solution closer to the problem's implementation. In this work, a custom MDD approach for cyber-physical devices is presented. Results: the proposed approach and tool were able to generate C++ source code for Arduino devices, the generated source code performed better than control when compared using OOP specific software metrics. Contributions: this study presents an MDD approach for cyber-physical devices, where the innovative models are based and coupled to the hardware specifications, being extensible and flexible.
Luigi Atzori, Antonio Iera, and Giacomo Morabito. 2010. The Internet of Things: A survey. Computer Networks 54, 15 (10 2010), 2787–2805. Issue 15. https://doi.org/10.1016/j.comnet.2010.05.010
Dhouha Ayed, Didier Delanote, and Yolande Berbers. 2007. MDD approach for the development of context-aware applications. In International and Interdisciplinary Conference on Modeling and Using Context. Springer, 15–28.
Louis Coetzee and Johan Eksteen. 2011. Internet of things–promise for the future? An Introduction. (2011).
Richard Grimmett. 2015. Raspberry Pi robotics projects. Packt Publishing Ltd.
Jayavardhana Gubbi, Rajkumar Buyya, Slaven Marusic, and Marimuthu Palaniswami. 2013. Internet of Things (IoT): A vision, architectural elements, and future directions. Future generation computer systems 29, 7 (2013), 1645–1660. https://doi.org/10.1016/j.future.2013.01.010
Jenalea Howell. 2017. Number of Connected IoT Devices Will Surge to 125 Billion by 2030, IHS Markit Says. [link].
InternetWorldStats. 2019. World Internet Users Statistics and 2019 World Population Stats. https://www.internetworldstats.com/stats.htm
Adeel Javed. 2016. Building Arduino projects for the Internet of Things: experiments with real-world applications. Apress.
Tim Kapteijns, Slinger Jansen, Sjaak Brinkkemper, Henry Houët, and Rick Barendse. 2009. A comparative case study of model driven development vs traditional development: The tortoise or the hare. From code centric to model centric software engineering: Practices, Implications and ROI 22(2009).
Duncan Ki-Aries, Shamal Faily, Huseyin Dogan, and Christopher Williams. 2018. Assessing system of systems security risk and requirements with oasosis. Proceedings - 2018 5th International Workshop on Evolving Security and Privacy Requirements Engineering, ESPRE 2018(2018), 14–20. https://doi.org/10.1109/ESPRE.2018.00009
Hari Kishan Kondaveeti, Nandeesh Kumar Kumaravelu, Sunny Dayal Vanambathina, Sudha Ellison Mathe, and Suseela Vappangi. 2021. A systematic literature review on prototyping with Arduino: Applications, challenges, advantages, and limitations. Computer Science Review 40 (2021). https://doi.org/10.1016/j.cosrev.2021.100364
Rodger Lea and Michael Blackstock. 2014. City hub: A cloud-based iot platform for smart cities. In 2014 IEEE 6th international conference on cloud computing technology and science. IEEE, 799–804.
Edward A Lee. 2008. Cyber physical systems: Design challenges. In 2008 11th IEEE international symposium on object and component-oriented real-time distributed computing (ISORC). IEEE.
Robert Martin. 1994. OO design quality metrics. An analysis of dependencies 12 (1994), 151–170.
Rebeca C Motta, Káthia M de Oliveira, and Guilherme H Travassos. 2018. On challenges in engineering IoT software systems. In Proceedings of the XXXII Brazilian symposium on software engineering. 42–51.
Xuan Thang Nguyen, Huu Tam Tran, Harun Baraki, and Kurt Geihs. 2015. FRASAD: A framework for model-driven IoT Application Development. In 2015 IEEE 2nd World Forum on Internet of Things (WF-IoT). IEEE, 387–392.
Alberto S Nuñez-Varela, Hector G Perez-Gonzalez, Francisco E Martínez-Perez, and Carlos Soubervielle-Montalvo. 2017. Source code metrics: A systematic mapping study. Journal of Systems and Software 128 (2017), 164–197.
Silviu-George Pantelimon, Tudor Rogojanu, Andreea Braileanu, Valeriu-Daniel Stanciu, and Ciprian Dobre. 2019. Towards a seamless integration of iot devices with iot platforms using a low-code approach. In 2019 IEEE 5th World Forum on Internet of Things (WF-IoT). IEEE, 566–571.
Fernando Silva Parreiras, Gerd Gröner, Tobias Walter, Andreas Friesen, Tirdad Rahmani, Jens Lemcke, Hannes Schwarz, Krzysztof Miksa, Christian Wende, and Uwe Aßmann. 2013. Model-driven software development. 21–50 pages. https://doi.org/10.1007/978-3-642-31226-7_2
Izabela Perenc, Tomasz Jaworski, and Piotr Duch. 2019. Teaching programming using dedicated Arduino Educational Board. Computer Applications in Engineering Education 27, 4 (2019), 943–954. https://doi.org/10.1002/cae.22134
Klaus Schwab and Nicholas Davis. 2019. Aplicando a quarta revolução industrial. EDIPRO.
Lu Tan and Neng Wang. 2010. Future internet: The internet of things. In 2010 3rd international conference on advanced computer theory and engineering (ICACTE), Vol. 5. IEEE, V5—-376.
Antonio Terceiro, Joenio Costa, João Miranda, Paulo Meirelles, Luiz Romário Rios, Lucianna Almeida, Christina Chavez, and Fabio Kon. 2010. Analizo: an Extensible Multi-Language Source Code Analysis and Visualization Toolkit.. In Brazilian Conference on Software: Theory and Practice (CBSoft) – Tools. Salvador-Brazil.
Hong-Linh Truong and Schahram Dustdar. 2015. Principles for engineering IoT cloud systems. IEEE Cloud Computing 2, 2 (2015), 68–76.
Guido VanRossum and Fred L Drake. 2010. The python language reference. Python Software Foundation Amsterdam, Netherlands.
Michalis Xenos, D Stavrinoudis, K Zikouli, and D Christodoulakis. 2000. Object-oriented metrics-a survey. In Proceedings of the FESMA. 1–10.