Lessons learned applying UML in embedded software systems designs

This paper provides a series of lessons learned with respect to designing embedded software systems using the object-oriented paradigm and specifically with the application of the Unified Modeling Language (UML). The experiences captured in this paper are based on the author's observations across multiple embedded software systems and pertain to both the development processes and the application of UML models.