Abstract: A computer-implemented method and system that systematically and analytically uses information about change to design evolvable compositions of reusable software components (modules and other units of software encapsulation) for the development of evolvable software solutions. The invention provides a computerized framework for identifying, capturing, encoding, codifying, learning, verifying, applying, and reusing information acquired through requirements and design analyses to systematically determine compositions of reusable components that localize the impact of expected and feasible or feasible (EFF) change, promote reuse, and thereby can help lower the cost associated with software evolution.