Title: Geoinformation Technology: lecture 2 b Object Modeling
1Geoinformation Technology lecture 2 (b)Object
Modeling
- Prof. Dr. Thomas H. Kolbe
- Institute for Geodesy and Geoinformation Science
- Technische Universität Berlin
Credits This material is mostly an english
translation of the course module no. 2
(Geoobjekte und ihre Modellierung) of the open
e-content platform www.geoinformation.net.
2Object-orientation Generalization ?
Specialization
- Abstraction principle for the hierarchical
structuring of a model - a specialized class concretises a more general
class by adding specific properties - the general class is called superclass, the
specialized class subclass - one superclass can have different subclasses
- also one subclass can have different
superclasses (alsocalled parent classes)
general class
generalization
specialization
specialized class
3OO Example 1 for generalization, specialization
staff_member
research_associate
professor
non_ research_associate
- staff_member is a more general concept as
non_
research_associate, research_associate or
professor - staff_member is the superclass
- non_ research_associate, research_associate,
and professor are subclasses
4OO Example 2 for generalization, specialization
geometrical figure
circle
rectangle
triangle
- geometrical figure is a more general concept
than triangle, circle or rectangle
5Object-orientation Taxonomy
- generalization and specialization describe a
taxonomical (i.e. systematic) relationship
between general and specific concepts - Example Taxonomy of flies with two wings (from
biology)
Orthorrhapha
Brachycera - flies
Cyclorrhapha
Diptera Flies (with two wings)
Aschiza
Schizophora
Nematocera - mosquito
Acalyptratae
Calyptratae
6Object-orientation Aggregation vs.
Generalization
- What is the difference between an aggregation and
a generalization? - aggregation and generalization build hierarchies,
but - aggregation relates objects
- generalization relates classes
- Please note the systematic difference between
following relationships - University Faculty (aggregation of objects)
- Rectangle Figure (generalization of the same
object)
7Object-orientation Inheritance and
specialization (I)
- A superclass represents a concept.
- A subclass specializes this concept, such that
that it - explicitly adopts the attributes of the
superclass - Inheritance of properties
- explicitly adopts or overrides methods of the
superclass - Inheritance of the behavior
- defines new attributes
- defines new methods
8Object-orientation Example 1 for Inheritance
student
staff member
- name
- first name
- registration number
- - subject
- address
- date of birth
- registration-date
- Bachelor
- Master
- name
- first name
- personnel number
- - institute
- address
- date of birth
- bank account no.
- salary
9Object-orientation Example 1 for Inheritance
person
- name
- first name
- - address
- - date of birth
student
staff member
- - registration number
- - subject
- registration-date
- . . .
- personnel number
- - bank account no.
- salary
- . . .
10Object-orientation Example 2 Overriding
geometrical figure
- center Point
- visible Boolean
display ( ) delete ( ) move ( )
circle
rectangle
triangle
- a number
- b number
- c number
display ( ) delete ( )
display ( ) delete ( )
display ( ) delete ( )
11Object-orientation Inheritance and
specialization (II)
- subclasses differ systematically wrt. each other
- attributes and methods of a class represent a
self-contained concept - the specialized class is fully compatible to the
general class - attributes and methods of the superclass do not
have to be repeated in the specification of the
subclass(es)
geometrical figure
- center Point
- visible Boolean
display( ) delete( ) move( )
circle
rectangle
triangle
- a number
- b number
- c number
display( ) delete( )
display ( ) delete ( )
display ( ) delete ( )
12Object-orientation Polymorphism
- congeneric (similar) methods, that are to be
executed on objects of different classes, can be
named with the same identifier - when calling such a method, the (most)
object-specific one is activated in each case - advantage of the polymorphism specific objects
can be handled in a general way - triangles, circles, and rectangles can be treated
as geometrical figures
geometrical figure
- center Point
- visible Boolean
display ( ) delete ( ) move ( )
circle
rectangle
triangle
- a number
- b number
- c number
display ( ) delete ( )
display ( ) delete ( )
display( ) delete( )
13Example 2 with spatial reference
14Example 2 state - district - municipality -
parcel
state
district
1..
- name string
- inhabitants number
- area number
- name string
- inhabitants number
- area number
getname( ) name getinhabitants(
)number getarea( ) number
getname( ) string getinhabitants(
)number getarea( ) number
Declare the methods
Name the relationships
Declare the multiplicities
Declare the attributes
municipality
property
- name string
- inhabitants number
- area number
1..
1..
getname( ) string getinhabitants(
)number getarea( ) number
getowner( ) Person getarea( ) number
15Example 2 property - parcel - polygon
- Can this subdivision of space can be extended
further than "property"? - at first
- transition from the legal object "property" to
the geometrical object "polygon"
1 . . n
property
parcel
polygon
geometry
16Example 2 Topological relationships of
polygons
bounds
node
edge
bounds
face
17Example 2 polygon edge node - point
1..2
3 . .
polygon
edge
? bounds
2 . .
Declare the multiplicitys and names
Name the relationships
? bounds
2
1
1
geometry
point
node
18Example 2 Class point
point
- latitude degree
- longitude degree
- X number
- Y number
- projection text
- registration textGPS
- registration-date date
getlatitude( ) degree getlongitude( )
degree setlatitude(lat degree)
setlongitude(lon degree) getX( ) number
getY( ) number . . .
19Data Modelling Literature
- Balzert, Heide Lehrbuch der Objektmodellierung.
Akademischer Verlag, 1999 - Oestereich, Bernd Objektorientierte
Softwareentwicklung Analyse und Design mit
der Unified Modeling Language. 4. Auflage -
Oldenbourg, - München Wien, 1998
- (english titles will be added soon)