Sie sind auf Seite 1von 31

sew htl krems

OOP: Klassendiagramm
Dipl.-Ing. Msc. Paul Panhofer Bsc.

30. September 2020


sew htl krems

1 Klassendiagramm
Motivation
Elemente des Klassendiagramms

Dipl.-Ing. Msc. Paul Panhofer Bsc. — SEW — 30. September 2020


2/30
sew htl krems

Klassendiagramm
Motivation

Darstellung von Klassen und deren Beziehung unterein-


ander unabhängig von einer Programmiersprache.
• Beschreibung eines Programms in graphischer Form.
• Modellierung eines Sachverhalt von der konkreten
Umsetzung.

Dipl.-Ing. Msc. Paul Panhofer Bsc. — SEW — 30. September 2020


3/30
sew htl krems

Klassendiagramm
Motivation

• Modellierung wird als Mittel verwendet um die Kom-


plexität in der Softwareentwicklung zu senken.
• Erstellung von Entwürfen für Programme auf einer
höheren Abstraktionsebene.

Dipl.-Ing. Msc. Paul Panhofer Bsc. — SEW — 30. September 2020


4/30
sew htl krems

1 Klassendiagramm
Motivation
Elemente des Klassendiagramms

Dipl.-Ing. Msc. Paul Panhofer Bsc. — SEW — 30. September 2020


5/30
sew htl krems

Elemente des Klassendiagramms


Klasse

Dipl.-Ing. Msc. Paul Panhofer Bsc. — SEW — 30. September 2020


6/30
sew htl krems

Elemente des Klassendiagramm


Klasse

public class Window {

private int _size;


private bool _isVisibly;
private XWindow _xwin;

public int Size { get; set; }


protected bool IsVisible { get; set; }

...
}

Dipl.-Ing. Msc. Paul Panhofer Bsc. — SEW — 30. September 2020


7/30
sew htl krems

Elemente des Klassendiagramm


Klasse

public class Window {

...

public void Display(){...}

public void Hide(){...}

public void Create(){...}

Dipl.-Ing. Msc. Paul Panhofer Bsc. — SEW — 30. September 2020


8/30
sew htl krems

Elemente des Klassendiagramms


Beziehungen

Dipl.-Ing. Msc. Paul Panhofer Bsc. — SEW — 30. September 2020


9/30
sew htl krems

Elemente des Klassendiagramms


Beziehungen: Vererbung

Dipl.-Ing. Msc. Paul Panhofer Bsc. — SEW — 30. September 2020


10/30
sew htl krems

Elemente des Klassendiagramm


Beziehungen: Vererbung

public class GeometricFigure{ ... }

public class Circle : GeometricFigure { ... }

public class Triangle : GeometricFigure { ... }

public class Square : GeometricFigure { ... }

Dipl.-Ing. Msc. Paul Panhofer Bsc. — SEW — 30. September 2020


11/30
sew htl krems

Elemente des Klassendiagramms


Beziehungen: Implementierung

Dipl.-Ing. Msc. Paul Panhofer Bsc. — SEW — 30. September 2020


12/30
sew htl krems

Elemente des Klassendiagramm


Beziehungen: Vererbung

public interface IQuackable {


public void Quack();
}

public Choir : IQuackable { public void Quack(){ ... } }

public Bird : IQuackable { public void Quack(){ ... } }

public CucckooClock : IQuackable {


public void Quack(){ ... }
}

Dipl.-Ing. Msc. Paul Panhofer Bsc. — SEW — 30. September 2020


13/30
sew htl krems

Elemente des Klassendiagramms


Beziehungen: Assoziation

Dipl.-Ing. Msc. Paul Panhofer Bsc. — SEW — 30. September 2020


14/30
sew htl krems

Elemente des Klassendiagramms


Beziehungen: Assoziation

Assoziationen bilden Beziehungen zwischen Klassen ab.

Dipl.-Ing. Msc. Paul Panhofer Bsc. — SEW — 30. September 2020


15/30
sew htl krems

Elemente des Klassendiagramms


Beziehungen: Assoziation

Dipl.-Ing. Msc. Paul Panhofer Bsc. — SEW — 30. September 2020


16/30
sew htl krems

Elemente des Klassendiagramm


Beziehungen: Assoziation

public class Person {

private string _firstName;

private string _lastName;

public string FirstName { get; set; }

Dipl.-Ing. Msc. Paul Panhofer Bsc. — SEW — 30. September 2020


17/30
sew htl krems

Elemente des Klassendiagramm


Beziehungen: Assoziation

public class Company{

private List<Person> employees = new List<Person>();

...
}

Dipl.-Ing. Msc. Paul Panhofer Bsc. — SEW — 30. September 2020


18/30
sew htl krems

Elemente des Klassendiagramms


Beziehungen: Assoziation

Dipl.-Ing. Msc. Paul Panhofer Bsc. — SEW — 30. September 2020


19/30
sew htl krems

Elemente des Klassendiagramms


Beziehungen: Assoziation

Dipl.-Ing. Msc. Paul Panhofer Bsc. — SEW — 30. September 2020


20/30
sew htl krems

Elemente des Klassendiagramm


Beziehungen: Assoziation

public class Student {

private List<Lecture> _lectures = new


List<Lecture>();

public List<Lecture> Lectures { get; }

Dipl.-Ing. Msc. Paul Panhofer Bsc. — SEW — 30. September 2020


21/30
sew htl krems

Elemente des Klassendiagramm


Beziehungen: Assoziation

public class Lecture {

private List<Student> students = new List<Student>();

public List<Student> Students { get; }

Dipl.-Ing. Msc. Paul Panhofer Bsc. — SEW — 30. September 2020


22/30
sew htl krems

Elemente des Klassendiagramms


Beziehungen: Assoziation

Dipl.-Ing. Msc. Paul Panhofer Bsc. — SEW — 30. September 2020


23/30
sew htl krems

Elemente des Klassendiagramms


Beziehungen: Assoziation

Dipl.-Ing. Msc. Paul Panhofer Bsc. — SEW — 30. September 2020


24/30
sew htl krems

Elemente des Klassendiagramms


Beziehungen: Assoziation

Dipl.-Ing. Msc. Paul Panhofer Bsc. — SEW — 30. September 2020


25/30
sew htl krems

Elemente des Klassendiagramm


Beziehungen: Assoziation

public class Lecture {

private List<Student> _students = new


List<Student>();

public bool Add(Student student){


if(_student.Count >= 100) return false;

_student.Add(student);
return true;
}
}

Dipl.-Ing. Msc. Paul Panhofer Bsc. — SEW — 30. September 2020


26/30
sew htl krems

Elemente des Klassendiagramm


Beziehungen: Assoziation

public class Student {

private List<Lecture> lectures = new List<Lecture>();

public List<Lecture> Lectures { get; }

Dipl.-Ing. Msc. Paul Panhofer Bsc. — SEW — 30. September 2020


27/30
sew htl krems

Elemente des Klassendiagramms


Beziehungen: Assoziation

Dipl.-Ing. Msc. Paul Panhofer Bsc. — SEW — 30. September 2020


28/30
sew htl krems

Elemente des Klassendiagramm


Beziehungen: Assoziation

public class Person {

private string _firstName;


private string _lastName;

public string FirstName { get; set; }


public string LastName { get; set; }

Dipl.-Ing. Msc. Paul Panhofer Bsc. — SEW — 30. September 2020


29/30
sew htl krems

Elemente des Klassendiagramm


Beziehungen: Assoziation

public class Pair {

private Person[] _pair = new Person[2];

public Person[] Pair { get; }


}

Dipl.-Ing. Msc. Paul Panhofer Bsc. — SEW — 30. September 2020


30/30
sew htl krems

Elemente des Klassendiagramms


Beziehungen: Assoziation

Dipl.-Ing. Msc. Paul Panhofer Bsc. — SEW — 30. September 2020


31/30