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
From the text above, it can be concluded that
to make available the library enormous amount of information, a categorization scheme has been developed.