Embedded system design methodology