Beispiel (1)
define type Zylinder supertype GeoKörper is
structure
[ radius: Float, mittelpunkt1, mittelpunkt2: Punkt ];
define view type ZylinderS is
interface
derived from Zylinder;
declare Float länge(void);
structure
declare Float volumen(void);
[ radius: Float; mittelpunkt1, mittelpunkt2: Punkt ];
interface
declare Float masse(void);
declare Float länge(void);
declare void translation(Punkt p);
declare Float volumen(void);
end type Zylinder;
declare Float masse(void);
define type Rohr supertype Zylinder is
structure
[ innererRadius: Float ];
interface
refine Float volumen(void);
refine Float masse(void);
end type Rohr;
declare void translation(Punkt p);
implementation
...
end view type ZylinderS;
define view type HohlwelleS supertype ZylinderS is
derived from Hohlwelle;
structure
[ innererRadius: Float ];
interface
refine Float volumen(void);
define type Antriebswelle is
refine Float masse(void);
structure
declare Float durchbiegung(void);
[ maxDrehmoment: Float, lagerpunkt1,
lagerpunkt2:
implementation Punkt ];
interface
...
declare void translation(Punkt p);
end view type HohlwelleS;
end type Antriebswelle;
Beispiel (2)
GeoKörper
ZylinderS
Antriebswelle
Zylinder
Vollzylinder
Rohr
Vollwelle
Hohlwelle
HohlwelleS
Sichtschema
Basisschema
Ableitungsschema
Beispiel (3)
GeoKörper
Antriebswelle
Zylinder
ZylinderS
Rohr
Hohlwelle
HohlwelleS
Regel: Sei S Sichttyp. Der Basistyp jedes Obertyps von S
ist ein Obertyp des Basistyps von S.
Translation ausschließlich in Richtung der x-Achse.

Implementierung mit Hilfe des translation()-Operators aus dem Obertyp
ZylinderS möglich.
define
type Zylinder
supertype
GeoKörper
is

Dieser
stammt
wiederum
vom Basistyp
Zylinder.

Beispiel (4)
structure
[ radius: Float, mittelpunkt1, mittelpunkt2:
];
define viewPunkt
type ZylinderS
is
interface
derived from Zylinder;
structure
declare Float länge(void);
[ radius: Float; mittelpunkt1, mittelpunkt2: Punkt ];
declare Float volumen(void);
interface
declare Float masse(void);
declare Float länge(void);
declare void translation(Punkt p);
declare Float volumen(void);
end type Zylinder;
declare Float masse(void);
define type Rohr supertype Zylinder is
structure
[ innererRadius: Float ];
interface
refine Float volumen(void);
refine Float masse(void);
end type Rohr;
declare void translation(Punkt p);
implementation
...
end view type ZylinderS;
define view type HohlwelleS supertype ZylinderS is
derived from Hohlwelle;
structure
[ innererRadius: Float ];
interface
refine Float volumen(void);
define type Antriebswelle is
refine Float masse(void);
structure
declare Float durchbiegung(void);
declare voidPunkt
xTranslation(Float
x) is new;
[ maxDrehmoment: Float, lagerpunkt1, lagerpunkt2:
];
implementation
interface
...
declare void translation(Punkt p);
end view type HohlwelleS;
end type Antriebswelle;

declare