ACTRESS: domain-specific modeling of self-adaptive software architectures
design patterns : elements of reusable object - oriented software .