Run-time Models for Self-managing Systems and Applications