\subsection{Software Components} \label{software_components} (1) We define in this section the following software components: \addressspace, Task, Resource, Buffer, Message and Task group.\\ (2) \addressspace models a logical unit of memory. \\ (3) \task models a flow of control.\\ (4) \resource models asynchronous communication between tasks of the same address space. \\ (5) \buffer models queued data exchanges between tasks of the same address space. \\ (6) \messages models queued data exchanges between tasks located in different address spaces.\\ (7) \taskgroup models a subset of tasks organized in transactions.\\ (8) \dependency which models relationships between tasks and other software entities.\\