Component-based design has become a necessity for networked embedded systems where hardware platforms come in a great variety and evolve extremely rapidly. Operating system components and higher level middleware services call for modular software construction along clear interfaces. The way we describe these interfaces and process the captured information is of crucial importance for exploiting the benefits of component-based design. In this paper we present a model based approach to the development of embedded applications with a special emphasis on interface specification. The proposed formalism captures the temporal and type aspects of interfaces and supports the composition and verification of components. Along with the formal definition of the proposed interface language and component compatibility rules, we present a modeling environment targeting TinyOS, a representative embedded operating system. Two prototype tools are also described that check the composability of components based on their interface models and verify that the implementation of a component matches its formal model, respectively.