The role of the Behavior Developer is responsible for developing tasks or task-plots (composition of tasks) modeling how a robotics system, consisting of software components, is orchestrated at run-time to provide a service as a whole system. The role models robot behavior through the tasks at the according abstraction level of tasks.
The tasks that the behavior developer models make use of the functionalities provided by the components. Functionalities that are implemented within software components become accessible through skills (skill behavior model). Skills lift the abstraction level of components to use them on a task level (see Separation of Levels and Separation of Concerns). Thereby the tasks itself are independent of any component and can be reused with a robotics system consisting of different software components. To connect tasks to components the role uses the skill definitions (Domain Experts, Tier 2), as interface to the skills.
Skills are defined at Tier 2 and are implemented in Tier 3 by the component supplier role.
The resulting tasks are used by the System Builder to compose a run-able system including the behavior models. Thereby the component independent tasks are linked with skills provided by the selected components, according to the skill definitions used by the tasks.
The role of the Behavior Developer is driven by the needs of an application or a service a robotic system has to provide. It realizes variability at a task level, thereby using and fixing some of the variability provided either by skills or by other reused tasks. The role may also introduce additional variability at the task level and specify rules and policies how this variability will be bound at run-time, using the then available information (context).
Related views and models: