The process of building an embedded system can be thought of as a system in its own right. It has inputs&#151typically requirements, it has processes, and it has outputs&#151typically software and hardware. Its efficiency should be questioned. It can be optimised to make it smaller and faster, without compromising the quality of the deliverables.

Traditional software development processes based upon a “Waterfall” or “Vee” lifecycle model with an “Analyse&#151Design&#151Implement” approach are stretched to their limit, particularly in their ability to provide a rapid response to customer requirement changes and phased delivery of evolving products. What is required in a development process is the ability to maintain a minimum number of core components, which can be taken into later stages of development.