DISAS: a DISelect-based Middleware for Building Adaptive Systems