From software architecture to analysis models and back: Model-driven refactoring aimed at availability improvement