Flexible distributed embedded systems require a different kind of software development. Domain and product analysis defines the software features, dividing the architecture of the application software into stable platform services and customisable software components. The software platform supports transparent communication between reactive sub-systems, and a software bus acts as an intelligent agent utilizing the knowledge of the application and configuration domain to provide system-level services through a generic service interface.
Each sub-system has a federative software architecture and cooperative application components. Communication is controlled by one component, which manages local connections between reactive application agents and networked connections through the configurable software bus. Application components with new product features can easily be added to the software bus by using the communication control component and the generic service interface.