  Analysis and design phases are the most crucial part of the software
development life-cycle. Reusing the artifacts of these early phases is very
beneficial to improve the productivity and software quality. In this paper we
analyze the literature on the automatic transformation of artifacts from the
problem space (i.e., requirement analysis models) into artifacts in the
solution space (i.e., architecture, design and implementation code). The goal
is to assess the current state of the art with regard to the ability of
automatically reusing previously developed software designs in synthesizing a
new design for a given requirement. We surveyed various related areas such as
model-driven development and model transformation techniques. Our analysis
revealed that this topic has not been satisfactorily covered yet. Accordingly,
we propose a framework consists of three stages to address uncovered
limitations in current approaches.
