Reuse and Integration of Heterogeneous Components for Efficient Embedded Software Generation