Modeling and Simulating Software Architectures (The Palladio Approach)