Using Architecture Models to Support the Generation and Operation of Component-Based Adaptive Systems