A finite element program is described as a set of reusable components. Each component from which the finite element program is composed is described and its reusability-extensibility commented. Such an approach is felt to be ideal to foster scientific collaboration, because a researcher interested in using the object oriented programming philosophy for his/her research can use only this part of the environment which is of interest for his/her research.