Software Engineering for Embedded Systems : Methods, Practical Techniques, and Applications