Benefits of Using Design Patterns on Microcontrollers in Implemented IoT Applications

. 2024 Dec 05 ; 24 (23) : . [epub] 20241205

Status PubMed-not-MEDLINE Jazyk angličtina Země Švýcarsko Médium electronic

Typ dokumentu časopisecké články

Perzistentní odkaz   https://www.medvik.cz/link/pmid39686340

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

Najít záznam

Citační ukazatele

Nahrávání dat ...

Možnosti archivace

Nahrávání dat ...