Object Oriented Design for Embedded Software Engineers
Objects and the concepts of Object Oriented Design are useful in designing embedded software. In this paper, I will try to go beyond the hype and explore a few engineering practices and principles of Object Oriented Design, including coupling and cohesion. Coupling between modules should be loose, and cohesion within a module should be high. Loose coupling and high cohesion can be accomplished in the most popular embedded systems programming language, C, but the language gives the programmer very little help in building modular systems. We might believe that loose coupling and high cohesion are good, but why? What problems are being solved? There is a short answer: Change!