The advancement of AI methods and techniques in design the educational software makes understanding of ITSs (Intelligent Tutoring Systems) more difficult, so that the teachers are less and less prepared to accept these systems. As a result, the gap between the researchers in the field of ITSs and the educational community is constantly widening. While ITSs are becoming more common and proving to be increasingly effective, each one must still be built from scratch at a significant cost. Also, the present ITSs need quite big development environments, huge computing resources and, in consequence, are expensive and hardly portable to personal computers. The concept of software components has received relatively little attention so far by the researchers in the field of AIED. This paper is an attempt to bring more light on this important concept and to describe the benefits that component-based ITSs can bring to the field. Surprisingly enough, there is still no consensus on the notion of component among AIED researchers. By carefully structuring the description of software components in general, as well as by showing some examples of components for ITS design, the paper presents several important related issues, like functionality of components, their granularity, generality, interoperability, and reusability. Special attention is given to the architectural and communication considerations, as well as to the relation between components and ontologies for ITS design.