This paper introduces a practical application of the UML diagrams and function-class decomposition (FCD) concept to requirements analysis, software architecture analysis and design, and software design and implementation for a complex embedded system. Based on the function-class decomposition concept, the UML diagrams for requirement analysis, and software architecture analysis and design are shown in detail. This is followed by decomposing the complex software architecture into UML class and state diagrams. Two detailed software implementation examples (including an application manager and a device driver) that include UML diagrams and C++ code are shown.