Consider a large university library. Tens of thousands of books,
periodicals, and other information resources are available for use. But
to access these resources, a categorization scheme must be developed. To
navigate this large volume of information, librarians have defined a
classification scheme that includes a library of congress classification
code, keywords, author names, and other index entries. All enable the
user to find the needed resource quickly and easily. Now,
consider a large component repository. Tens of thousands of reusable
software components reside in it. But how does a software engineer find
the one she needs? To answer this question, another question arises: How
do we describe software components in unambiguous, classifiable terms?
These are difficult questions, and no definitive answer has yet been
developed.R. S. Pressman. Software Engineering - A Practitioner's Approach, 4 edn, th New York: The McGraw-Hill Companies Inc. 1997, p. 743 (with adaptations).From the text above, it can be concluded that"that" can be correctly replaced by which.