Klassediagrammet viser de forskellige klasser og hvilke instans-variabler og metoder der er public. Klasse-navnene og kendskabsrelationerne er de sammen som i ICE-modellen.
Af tegne-tekniske årsager er klasse-diagrammet delt ud på to illustrationer, hvor den første indeholder alt hvad der har med kunder at gøre.
Den næste illustration indeholder resten af systemet, som der ikke var plads til på den første tegning. Bemærk at MAOVAdapter'en og DBAccess bruges på begge illustrationer, men at deres indhold kun er beskrevet på den første.
De mange instans-variabler er værdier for URL-argumenterne. Det er ikke dem alle der bliver brugt af andre klasser, selvom de er public. Man kan derfor sætte mange af dem private. At de alligevel er public, skyldes at systemet holdes åbent for at linke på tværs af funktionerne
Læg mærke til at alle de klasser der skal generere XML kun indeholder een enkelt metode hver, nemlig invoke( ServiceRequest ). Det er altså den metode der genererer samtlige af de forskellige sider, som denne klasse kan generere. I koden har hver enkelt side dog fået sin egen metode, men eftersom det kun er invoke( ServiceRequest ) der må kaldes udefra er de andre sat til private.
SendEMail ser lidt tom ud, idet der hverken er instans-variabler eller metoder. Det hænger sammen med at alt hvad den gør, foregår i constructor'en, og når den er færdig, smides objektet væk.
De forskellige entitets-objekter indeholder typisk kun get-metoder, og man kan undre sig over hvor de får data fra. De henter data fra databasen i constructoren som ikke er vist på klassediagrammet.