An embedded system is a computer designed to perform specific control functions within a larger system or product. It contains a processor, either a microcontroller or digital signal processor, and is embedded as part of a complete device including both hardware and mechanical parts. The embedded systems model indicates that all embedded systems share the similarity of having layers of hardware, system software, and application software. When designing embedded systems, different models can be applied including the big-bang, code-and-fix, waterfall, and spiral models. Embedded systems must be dependable, efficient, dedicated to a certain application, have a dedicated user interface, and can be hybrid systems containing both analog and digital parts.