A method and software engineering environment for configuring applications from reusable specifications and architectures