Embedded Software Modeling and Design