  The benefits that can be derived from reusing software include accelerated
development, reduced cost, reduced risk and effective use of specialists. Reuse
of software artifacts during the initial stages of software development
increases reuse benefits, because it allows subsequent reuse of later stage
artifacts derived from earlier artifacts. UML is the de facto modeling language
used by software developers during the initial stages of software development
such as requirements engineering, architectural and detailed design. This
survey analyzes previous works on UML artifacts reuse. The analysis considers
four perspectives: retrieval method, artifact support, tool support and
experiments performed. As an outcome of the analysis, some suggestions for
future work on UML artifacts reuse are also provided
