Return to Article Details Software Architecture Adaptability: a Non-Functional Requirements Approach