In this article we describe the importance of reusing software artifac
ts resulting from the earliest stages of the development life-cycle, i
.e., software conception, requirements analysis, feasibility study, re
quirements specification, architectural and detailed design. Although
reuse of early artifacts is deemed beneficial to software development
projects, there are no readily available software tools that could fac
ilitate their effective reuse. Hence, we identified nearly one hundred
early artifact types. We analyzed, compared and contrasted them. We c
lustered similar artifact types into distinct artifact affinity groups
. We then proposed several methods and techniques useful in the proces
sing of these artifacts to support their reuse. We believe that the pr
oposed methods could be utilized by tool builders to construct softwar
e development environments capable of assisting analysts, designers, a
rchitects and programmers to effectively reuse the results of early li
fe-cycle activities.