Choosing Connectors - Software Architecture: Foundations, Theory