Benefits of Using Design Patterns on Microcontrollers in Implemented IoT Applications
Status PubMed-not-MEDLINE Jazyk angličtina Země Švýcarsko Médium electronic
Typ dokumentu časopisecké články
PubMed
39686340
PubMed Central
PMC11644894
DOI
10.3390/s24237803
PII: s24237803
Knihovny.cz E-zdroje
- Klíčová slova
- ESP32, IoT, SOLID, design pattern, framework, microcontroller, programming, sensor,
- Publikační typ
- časopisecké články MeSH
As part of our research for microcontroller software support, we have developed a modular framework that utilizes previously unimplemented architectural principles for developing applications on microcontrollers. These principles are still a privilege of enterprise and server applications. The paper describes the benefits of a new architectural approach to developing applications on microcontrollers and describes the most common application scenarios along with examples of IoT application development using a framework with design pattern architecture and SOLID principles. As a result, our framework supports developers in creating robust, adaptive, and scalable applications. It emphasizes a modular and clean design that increases development efficiency and enables easy deployment of new features or integration of new technologies, such as new types of sensors, upgraded development boards, or improved development tools and frameworks. The architectural concepts offered useful guidance for creating applications ready for future challenges and changing technology environments, especially in the IoT area.
Zobrazit více v PubMed
Hourani H., Wasmi H., Alrawashdeh T. A Code Complexity Model of Object Oriented Programming (OOP); Proceedings of the 2019 IEEE Jordan International Joint Conference on Electrical Engineering and Information Technology (JEEIT); Amman, Jordan. 9–11 April 2019; pp. 560–564. DOI
Martin R.C. Clean Code: A Handbook of Agile Software Craftsmanship. 1st ed. Pearson; Upper Saddle River, NJ, USA: 2008. p. 464.
Ostrowski A., Gaczkowski P. Software Architecture with C++ 1st ed. Packt Publishing Limited (Verlag); Birmingham, UK: 2021. p. 540.
Oktafani I., Hendrajaya B. Software Metrics Proposal for Conformity Checking of Class Diagram to SOLID Design Principles; Proceedings of the 2018 5th International Conference on Data and Software Engineering (ICoDSE); Lombok, Indonesia. 7–8 November 2018; pp. 1–6. DOI
Singh H., Hassan S.I. Effect of SOLID Design Principles on Quality of Software: An Empirical Assessment. Int. J. Sci. Eng. Res. 2015;6:1321–1324.
Zhang C., Budgen D. What Do We Know about the Effectiveness of Software Design Patterns? IEEE Trans. Soft. Eng. 2012;38:1213–1231. doi: 10.1109/TSE.2011.79. DOI
Raymond R., Savarimuthu S.M.A. Software Design Patterns and Architecture Patterns—A Study Explored; Proceedings of the 5th International Conference on Contemporary Computing and Informatics (IC3I); Uttar Pradesh, India. 14–16 December 2022; pp. 1998–2006. DOI
Bafandeh Mayvan B., Rasoolzadegan A., Ghavidel Yazdi Z. The state of the art on design patterns: A systematic mapping of the literature. J. Syst Softw. 2017;125:93–118. doi: 10.1016/j.jss.2016.11.030. DOI
Babiuch M., Foltynek P. Implementation of a Universal Framework Using Design Patterns for Application Development on Microcontrollers. Sensors. 2024;24:3116. doi: 10.3390/s24103116. PubMed DOI PMC
Deursen S.V., Seemann M. Dependency Injection Principles, Practices, and Patterns. 1st ed. Manning; Shelter Island, NY, USA: 2019. p. 552.
ESP32. [(accessed on 25 September 2024)]. Available online: https://www.espressif.com/en/products/socs/esp32.
ESP8266. [(accessed on 25 September 2024)]. Available online: https://www.espressif.com/en/products/socs/esp8266.
Raspberry Pi RP2040 Tech Specs. [(accessed on 25 September 2024)]. Available online: https://www.raspberrypi.com/products/rp2040/specifications/
Stmicroelectronics STM32 Nucleo. [(accessed on 25 September 2024)]. Available online: https://www.st.com/en/ecosystems/stm32-nucleo.html.
MCU Framework Github Repository. [(accessed on 25 September 2024)]. Available online: https://github.com/pfoltynek/mcu_framework.
Application Scenarios Github Repository. [(accessed on 25 September 2024)]. Available online: https://github.com/pfoltynek/mcu_framework_samples.
Google Test. [(accessed on 25 September 2024)]. Available online: https://google.github.io/googletest/
About Unity Test Framework. [(accessed on 25 March 2024)]. Available online: https://docs.unity3d.com/Packages/com.unity.test-framework@1.1/manual/index.html.
IoT Analytics—ThingSpeak Internet of Things. [(accessed on 25 September 2024)]. Available online: https://www.thingspeak.com.
Babiuch M., Foltynek P. Creating a Mobile Application with the ESP32 Azure IoT Development Board Using a Cloud Platform; Proceedings of the 22nd International Carpathian Control Conference (ICCC) 2021; Velke Karlovice, Czech Republic. 31 May–1 June 2021; pp. 1–4. DOI
Foltynek P., Babiuch M., Suranek P. Measurement and data processing from Internet of Things modules by dual-core application using ESP32 board. Meas. Control. 2019;52:970–984. doi: 10.1177/0020294019857748. DOI
Krejčí J., Babiuch M., Babjak J., Suder J., Wierbica R. Implementation of an Embedded System into the Internet of Robotic Things. Micromachines. 2023;14:113. doi: 10.3390/mi14010113. PubMed DOI PMC
Abdulwareth A.J., Al-Shagabi A.A. Toward a Multi-Criteria Framework for Selecting Software Testing Tools. IEEE Access. 2021;9:158872–158891. doi: 10.1109/ACCESS.2021.3128071. DOI
Cortez R., Vazhenin A. Lecture Notes in Computer Science (Including Subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) Volume 7813. Springer; Berlin/Heidelberg, Germany: 2013. Developing re-usable components based on the virtual-MVC design pattern; pp. 132–149. DOI
Guaman D., Delgado S., Perez J. Classifying Model-View-Controller Software Applications Using Self-Organizing Maps. IEEE Access. 2021;9:45201–45229. doi: 10.1109/ACCESS.2021.3066348. DOI