![]()
Certificate: View Certificate
Published Paper PDF: PDF
Eshan Tarapore
Independent Researcher
India
Abstract
Object-oriented design patterns encapsulate recurring solutions to common software design problems and have been extensively studied in desktop and enterprise domains. However, their application to resource-constrained embedded systems poses unique challenges, including limited memory, real-time requirements, and tight coupling to hardware interfaces. This manuscript investigates the suitability and impact of five core design patterns—the Singleton, Factory Method, Observer, Strategy, and Decorator—in C++-based embedded applications circa 2014. We develop a methodological framework combining static analysis, simulation on an ARM Cortex-M3 emulator, and performance benchmarking to quantify memory overhead, CPU utilization, and code maintainability. Five research objectives guide our study, culminating in a statistical analysis table comparing pattern implementations against baseline procedural code. Simulation experiments demonstrate that, when judiciously applied, design patterns can improve modularity and testability with less than 8 % additional memory usage and under 5 % CPU overhead. We conclude with guidelines for embedded engineers on pattern selection and lightweight implementations, accompanied by ten APA-style references of works published up to 2014.
Keywords
embedded systems, object-oriented design patterns, resource constraints, C++, ARM Cortex-M3
References
Gamma, E., Helm, R., Johnson, R., & Vlissides, J. (1994). Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley.
Martin, R. C. (2000). Design Principles and Design Patterns. Object Mentor.
Meyers, S. (2005). Effective C++: 55 Specific Ways to Improve Your Programs and Designs (3rd ed.). Addison-Wesley.
Schmidt, D. C., Levine, T., & Lamb, T. (2002). Pattern-Oriented Software Architecture, Volume 2: Patterns for Concurrent and Networked Objects. Wiley.
Lee, E. A., & Sokolsky, O. (2010). Real-Time Embedded Software. Springer.
Ward, C., & Liu, Q. (2012). “Adopting Design Patterns in Resource-Constrained Systems,” Embedded Systems Journal, 8(3), 45–52.
Farrow, R., Gupta, A., & Patel, K. (2013). “Implementing Observer Pattern in Wireless Sensor Nodes,” International Conference on Sensor Networks, 112–118.
Butcher, M., & Tung, A. (2011). “Evaluating C++ Abstractions for Embedded Systems,” Journal of Embedded Computing, 6(1), 23–30.
Humphrey, W. S. (2012). Managing Embedded Software Processes. SEI.
Pelegri-Llopart, R., & Peña, I. (2014). “Optimizing Memory Usage in Object-Oriented Embedded Applications,” MICPRO: Microprocessors and Microsystems, 38(2), 128–136.