Analysing and engineering self-organising emergent applications by