Engineering Self-Managed Adaptive Networks