Implementation of a Universal Framework Using Design Patterns for Application Development on Microcontrollers
Status PubMed-not-MEDLINE Jazyk angličtina Země Švýcarsko Médium electronic
Typ dokumentu časopisecké články
PubMed
38793968
PubMed Central
PMC11124992
DOI
10.3390/s24103116
PII: s24103116
Knihovny.cz E-zdroje
- Klíčová slova
- IoT, SOLID, design pattern, framework, microcontroller, programming,
- Publikační typ
- časopisecké články MeSH
This article focuses on the area of software development for microcontrollers and details the implementation of modern programming practices and principles in embedded systems and IoT applications. This article explains how we implemented previously unimplemented principles and applied design patterns for quality software design on microcontrollers, which are currently only used for developing applications on the higher layers of the IoT reference model. A custom modular framework for microcontrollers is presented, based on applying SOLID principles and adapting design patterns specific to the microcontrollers' application development needs. The implemented framework enables independent communication between modules and flexible integration of hardware components. It is designed with platform independence in mind, contributing to its wide adaptability and ease of use in diverse development environments. By applying these technological approaches, we can create applications that are not only testable and extensible in terms of application logic but also allow for easy adaptation to changes in these hardware resources. Utilizing these capabilities represents an innovative approach to development for microcontrollers that fundamentally improves the long-term sustainability and scalability of applications.
Zobrazit více v PubMed
Gaspar G., Fabo P., Kuba M., Flochova J., Dudak J., Florkova Z. What Development of IoT Applications Based on the MicroPython Platform for Industry 4.0 Implementation; Proceedings of the 2020 19th International Conference on Mechatronics (ME 2020); Prague, Czech Republic. 2–4 December 2020; pp. 1–7. DOI
Ionescu V.M., Enescu F.M. Investigating the Performance of MicroPython and C on ESP32 and STM32 Microcontrollers; Proceedings of the 2020 IEEE 26th International Symposium for Design and Technology in Electronic Packaging (SIITME 2020); Virtual, Pitesti, Romania. 21–24 October 2020; pp. 234–237. DOI
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; Virtual, Velke Karlovice, Czech Republic. 31 May–1 June 2021; pp. 1–4. DOI
Madasu V.K., Venna T.V.S.N., Eltaeib T. Classifying SOLID Principles in Software Architecture and Introduction to RESM Concept in OOP. JMEST. 2015;2:1–4.
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) 2018; Lombok, Indonesia. 7–8 November 2018; pp. 1–6. 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
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
Hsueh N.L., Kuo J.Y., Lin C.C. Object-oriented design: A goal-driven and pattern-based approach. Softw. Sys. Model. 2009;8:67–84. doi: 10.1007/s10270-007-0063-y. DOI
Cortez R., Vazhenin A. Developing Re-Usable Components Based on the Virtual-MVC Design Pattern; Proceedings of the Databases in Networked Information Systems: 8th International Workshop, DNIS 2013; Aizu-Wakamatsu, Japan. 25–27 March 2013; pp. 132–149. DOI
Jailia M., Kumar A., Agarwal M., Sinha I. Behavior of MVC (Model View Controller) based Web Application Developed in PHP and, NET Framework; Proceedings of the 2016 International Conference on ICT in Business Industry & Government (ICTBIG); Indore, India. 18–19 November 2016; pp. 1–5. 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
Li D.D., Liu X.Y. Research on MVP Design Pattern Modeling Based on MDA; Proceedings of the 3rd International Conference on Mechatronics and Intelligent Robotics (ICMIR) 2019; Kunming, China. 25–26 May 2019; pp. 51–56. DOI
Wilson A., Wedyan F., Omari S. An Empirical Evaluation and Comparison of the Impact of MVVM and MVC GUI Driven Application Architectures on Maintainability and Testability; Proceedings of the 2022 International Conference on Intelligent Data Science Technologies and Applications (IDSTA 2022); San Antonio, TX, USA. 5–7 September 2022; pp. 101–108. DOI
Aljamea M., Alkandari M. MMVMi: A validation model for MVC and MVVM design patterns in iOS applications. IJCS. 2018;45:377–389.
Kurniawan A.K.A., Hendradjaya B. Integration of metadata generator to Model View Adapter (MVA) architecture pattern; Proceedings of the 2014 International Conference of Advanced Informatics: Concept, Theory and Application (ICAICTA); Bandung, Indonesia. 20–21 August 2014; pp. 1–6. DOI
Singh H., Hassan S.I. Effect of SOLID Design Principles on Quality of Software: An Empirical Assessment. IJSER. 2015;6:1–4.
Janagade R., Barnwal A., Pugla S. Diamond Effect in Object Oriented Programming Languages. IJCSIT. 2015;6:3104–3111.
Kajtazovic N., Hodl P., Macher G. Instrumenting Compiler Pipeline to Synthesise Traceable Runtime Memory Layouts in Mixed-Critical Applications; Proceedings of the 2020 IEEE 31st International Symposium on Software Reliability Engineering Workshops (ISSREW 2020); Virtual, Coimbra. 12–15 October 2020; pp. 73–78. DOI
Fokin A., Troshina K., Chernov A. Reconstruction of Class Hierarchies for Decompilation of C++ Programs; Proceedings of the European Conference on Software Maintenance and Reengineering (CSMR); Madrid, Spain. 15–18 March 2010; pp. 240–243. DOI
Yoo K., Barua R. Recovery of Object Oriented Features from C++ Binaries; Proceedings of the Asia-Pacific Software Engineering Conference (APSEC); Jeju Island, Republic of Korea. 1–4 December 2014; pp. 231–238. DOI
Mamoon S., Yaqoob I., Naseer N., Akram J., Osman R., Zulfiqar S. Modern C++ Design Patterns and Idioms with New Features. IJICSE. 2017;4:102–109.
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
Gurubasava, Anusha L.S. Unit Testing Frameworks: A comparative study. IRJET. 2022;9:2382–2386.
Google Test. [(accessed on 25 March 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.
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
Senoo E.E.K., Ebeneyer A., Mendoca I., Aritsugi M. Implementing SOLID Principles for IoT Arduino Sensor Code; Proceedings of the 10th International Japan-Africa Conference on Electronics, Communications, and Computations (JAC-ECC) 2022; Alexandria, Egypt. 19–20 December 2022; pp. 21–26. DOI
Smutny P. Different Perspectives on Classification of the Internet of Things; Proceedings of the 17th International Carpathian Control Conference (ICCC) 2016; Tatranska Lomnica, Slovakia. 29 May–1 June 2016; pp. 692–696. DOI
Benefits of Using Design Patterns on Microcontrollers in Implemented IoT Applications