JOSER: Journal of Software Engineering for Robotics vol:5 issue:1 pages:17-35
The authors are part of a research group that had the opportunity (i) to develop a large software framework (±5 person
year effort), (ii) to use that framework (“iTaSC”) on several dozen research applications in the context of the specification and execution
of a wide spectrum of mobile manipulator tasks, (iii) to analyse not only the functionality and the performance of the software but also
its readiness for reuse, composition and model-driven code generation, and, finally, (iv) to spend another 5 person years on re-design
This paper presents our major lessons learned, in the form of two best practices that we identified, and are since then bringing
into practice in any new software development: (i) the 5C meta model to realise separation of concerns (the concerns being
Communication, Computation, Coordination, Configuration, and Composition), and (ii) the Composition Pattern as an architectural
meta model supporting the methodological coupling of components developed along the lines of the 5Cs.
These generic results are illustrated, grounded and motivated by what we learned from the huge efforts to refactor the iTaSC software,
and are now behind all our other software development efforts, without any exception. In the concrete iTaSC case, the Composition
Pattern is applied at three levels of (modelling) hierarchy: application, iTaSC, and task level, each of which consist itself of several
components structured in conformance with the pattern.