Embedded software development has been dramatically improved with model based design and auto code generation tools. However, the development process of complicated embedded control systems still faces great challenges. Modern embedded control becomes so complicated due to sophistical control hardware and control optimization driven by competitive pressure and regulations. For example, engine embedded control development has to consider global emissions and On Board Diagnostics (OBD) regulations besides various vehicle platforms for the global market. This paper presents several design aspects for complex embedded control software architecture including component based design, component management, and software validation. The paper discusses several software architecture design ideas and analyzes their design benefits and disadvantages. Finally, the paper proposes a software architecture design and provides a design example.