Description
CROMMS is a Micro-Macro Swarm Programming approach which uses context-role-oriented programming on the macro level. In this lab the software architecture is applied on a self-organized transport chain swarm. Robots in this lab have the task to deliver load (represented by black circles) collaboratively from the prey (red light) to the nest (orange light). They do this completely decentralized using neither global communication nor a central controller.
The development was guided by the goal of reducing the micro-macro problem of swarm programming. Therefore, two key challenges have been addressed: The program comprehensibility for the developer and the program explainability for the user. CROMMS alleviates the micro-macro problem by introducing the role concept and a runtime model driven software architecture with two metamodels and two MAPE-K (Monitor, Analyze, Plan and Execute over a shared Knowledge) loops.
In CROMMS a dashboard visualizes the current roles and teams of the chain robots. This dashboard receives the runtime model state from the macro level component of each robot. It shows also interesting attributes of the robots like the message the robots currently expose to their environment, the positions, etc.
The self-organized transport chain swarm can respond dynamically to alterations in the number of chain members. A chain member waits on its transfer point with its corresponding robot for a fixed time. If the timeout exceeds, the chain member deletes the absent robot and reverts to the last meaningful behavior. Hence the system can deliver loads in each possible configuration beginning from one robot.
Using Context-Role-Oriented Programming for Swarms to Alleviate the Micro-Macro Problem
The development of systems comprised of multiple robots is challenging. This holds in particular for swarm robotics, where no central coordination is possible. Swarm programming requires the developer to foresee the desired emergent behavior as the result of the interaction between individual robots. The application logic is designed on micro-level, i.e, for an individual robot. But, the envision application is on macro-level, i.e., the swarm. In this paper, we aim to bridge the gap between micro- and macro-level programming by introducing a swarm element feedback loop on top of the individual feedback loop for each swarm constituent. The additional feedback loop uses context-role-oriented programming to capture the current role the robot plays within the swarm as well as its beliefs about its current perception. This enables developers to embed swarm-level application logic into their micro-level application. In turn, program comprehension and explainability of adaptation actions are improved. We evaluate our approach using an exemplary swarm application: a foraging chain. All robots participating in the swarm work together to collect prey and transport it to the nest. When robots detect each other, they form a chain and hand over the collected material to each other. We show the feasibility of our approach by simulating swarms of increasing size, and we assess the performance and scalability of our approach.
Software Components
-
Contexts.jl: A Julia package which implements syntax in Julia to allow context-orient-programming (COP) with roles and mixins.
Authors and Contact Details
- M.Sc Adrian Scholze
Tel: +49 351463 38443
Email: adrian.scholze@tu-dresden.de - Prof. Dr. Uwe Aßmann
Head of Institute http://st.inf.tu-dresden.de
Tel: +49 351 463 38463
Email: uwe.assman@tu-dresden.de
Profile: Uwe Aßmann
Publications
• S. Götz, C. Gutsche, A. Scholze, U. Aßmann. “Using Context-Role-Oriented Programming for Swarms to Alleviate the Micro-Macro Problem,” 2026 IEEE/ACM 21th International Conference on Software Engineering for Adaptive and Self-Managing Systems (SEAMS), Rio de Janeiro, Brasil, 2026 (in press)

