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. The framework provides computerized support for the systematic transformation of
natural language descriptions of the data and
operational requirements of one or more related solutions into alternative sets of multi-level components via
iterative analysis of required solution elements with respect to EFF change and reuse followed by automated partitioning based on such
iterative analysis. A partition of functionally general or conceptually higher-level required elements can serve as a baseline architecture for the design of evolvable software systems or related software solutions, while a partition of detailed or lower-level required elements may be used to design reusable components that compose larger software components or parts of evolvable software solutions.