Home /Research /The 5C-based architectural Composition Pattern: lessons learned from re-developing the iTaSC framework for constraint-based robot programming
MANIPULATION

The 5C-based architectural Composition Pattern: lessons learned from re-developing the iTaSC framework for constraint-based robot programming

Dominick Vanthienen, Markus Klotzbuecher, Herman Bruyninckx

Year
2014
Citations
23
Access
Open access

Abstract

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 and refactoring. 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.

Keywords

Code refactoringComputer scienceSoftware engineeringSoftware developmentContext (archaeology)Software design patternReuseAspect-oriented programmingComponent-based software engineeringComponent (thermodynamics)

Related papers

Browse all MANIPULATION papers