This paper proposes an architecture concept to the design of software, for embedded systems and cooperating embedded systems, aimed to simplify not only design but also reuse and reconfigurability. The concept is targeted at software for recurring signal processing and control tasks common in industrial embedded supervision and control applications. An important part of the architecture concept is that the design work is partitioned and described at two major levels. The first level is focused on definition of data structures and reentrant data mapping functions to be supported by a restricted use of an existing programming language. The second level, i.e. the system level, focuses on structural and behavioral concerns including: component encapsulation, connection of actions and components via ports. This level, also handling delays, triggers and actors, is supported by a system modeling language. The thus partitioned approach makes the different design and engineering concerns well separated which simplifies both analysis and verification of functional and time behavioral correctness, compared to if they are mixed and intertwined into each other. Another gain with the proposed architecture concept is that the number of operating system (OS) threads and associated overhead needed to share the processor or a set of processors in a distributed or multi-core case is minimized.