Integrating semantic run-time models for adaptive software systems