Engineering software is becoming ever more complex. Finite element pro
grams have sophisticated graphical input and output facilities, and ar
e increasingly required to be linked to other software such as CAD or.
databases. The paper shows how an object oriented approach to finite
element programming can be used to handle this complexity. This requir
es an approach that is very different from that adopted in more tradit
ional programming. A foundation finite element class system is develop
ed. This represents the essential data structure of the main finite el
ement classes. It is then shown how this system can be used in a graph
ical model of two dimensional structures. The finite element system im
posed no constraints on the development of the graphical model, yet co
uld still be used easily. An important feature is that the nodes and e
lements are distributed around the graphical model, rather than being
held centrally. For instance nodes may belong to points or lines of th
e graphical model. This means that the data structure used in the prog
ram more closely matches the way that the user of the program is likel
y to think.