The coordination principle is often cited as: separate computation from coordination. I will present a method for the design of parallel programs based on this principle.
This coordination principle can be extrapolated: separate those aspects of a system that can change independently. In the second part of this talk I will discuss the relevance of this principle for component based software architecting. In particular I will present some requirements for component based software engineering, some design dimensions for component models and some work in progress towards a formalization of component based software architectures.