In this paper we define and describe syntactical substitution and syntactical similarity relationships between software objects, in order to make the reuse process more effective. As software objects we consider well documented programs and files, procedures, implementing a certain function, as well as object types, as they are defined and used in object oriented languages. We introduce a model for the description and storage of syntactical substitution or syntactical similarity relationships in a Software Information Base (SIB). We also define a model for the description of the syntactical structure of CooL, in order to describe the syntax of software objects in CooL. Both models are described using the TELOS, a knowledge representation language. We define the syntactical substitution reletionship between basic and structured types used in the programming language. Then we introduce a function for the evaluation of the degree of syntactical substitution between two given types. After that, we present a set of attributes for the software objects we deal with, which characterizes them. Having defined those attributes we introduce the function for the evaluation of the degree of syntactical substitution between two given software objects. This function uses the results of the same function with other intermediate operants, such as basic or structured types or software objects, in order to evaluate the degree of syntactical substitution. In the end we introduce an extended model for the evaluation of of the degree of syntactical substitution between software objects with respect to sets of attributes and we introduce a similar function for the evaluation of the degree of syntactical substitution with respect to sets of attributes. Our model was used in two different application examples : a car rental system and a library of optimization algorithms.