Unter Objektorientierung, kurz
OO, versteht man eine Sichtweise auf
komplexe Systeme, bei der ein System
durch das Zusammenspiel
kooperierender Objekte beschrieben
wird.
Wikipedia
Slide 3
Slide 3 text
Vorgehensmodelle
der Softwareentwicklung
Slide 4
Slide 4 text
Wasserfallmodell
linear / nicht-iterative
Slide 5
Slide 5 text
Agile Softwareentwicklung
iterativ und inkrementell
Slide 6
Slide 6 text
Phasen
Slide 7
Slide 7 text
Anforderungsanalyse
Slide 8
Slide 8 text
Design
Slide 9
Slide 9 text
Implementierung
Slide 10
Slide 10 text
Notationsformen
Slide 11
Slide 11 text
ER-Modell
Slide 12
Slide 12 text
UML Klassendiagramm
Slide 13
Slide 13 text
Elemente der
Objektorientierung
Slide 14
Slide 14 text
Eine Klasse ist die Definition der
Attribute, Operationen und der
Semantik für eine Menge von
Objekten. Alle Objekte einer Klasse
entsprechen dieser Definition.
Bernd Oestereich
Slide 15
Slide 15 text
Klassen
Slide 16
Slide 16 text
Objekte
Slide 17
Slide 17 text
Attribute
Slide 18
Slide 18 text
Methoden
Slide 19
Slide 19 text
Konstruktoren
Slide 20
Slide 20 text
Konzepte der
Objektorientierung
Slide 21
Slide 21 text
Code
Daten
Code
Daten
Kapselung
Slide 22
Slide 22 text
Abstraktion
Kuh
Elsa Frida Vera
Slide 23
Slide 23 text
Assoziation
Kuh Wiese
steht auf
Slide 24
Slide 24 text
Aggregation
Kuh Herde
ist Mitglied
Slide 25
Slide 25 text
Komposition
Rechnung Positionen
besteht aus
Slide 26
Slide 26 text
Vererbung
Figur
Rechteck
Quadrat
Kreis
Generalisierung
Spezialisierung
Slide 27
Slide 27 text
Schnittstelle
List
LinkedList ArrayList
Slide 28
Slide 28 text
Polymorphie
Figur
Rechteck
Quadrat
a Figur
Slide 29
Slide 29 text
Benennung von
Bezeichnern
Slide 30
Slide 30 text
Variable
= Substantiv
Slide 31
Slide 31 text
Methode
= Verb
Slide 32
Slide 32 text
Objektorientierte
Analyse
Slide 33
Slide 33 text
Verstehen der
fachlichen Domäne
Slide 34
Slide 34 text
No content
Slide 35
Slide 35 text
Ein Anwendungsfall beschreibt
eine Menge von Aktivitäten eines
Systems aus der Sicht seiner
Akteure, die für die Akteure zu
einem wahrnehmbaren Ergebnis
führen.
Bernd Oesterreich
Slide 36
Slide 36 text
Use Cases
Slide 37
Slide 37 text
Bei der statischen Analyse
werden die Geschäftsklassen und
deren Beziehungen untereinander
identifiziert. Weiterhin findet eine
Spezifikation der Attribute und
Operationen statt.
Sebastian Hempel
Slide 38
Slide 38 text
Statische Analyse
Slide 39
Slide 39 text
No content
Slide 40
Slide 40 text
Bei der dynamischen Analyse
werden die Interaktionen der
erkannten Geschäftsklassen
untereinander identifiziert und die
dabei verwendeten Operationen
beschrieben.
Sebastian Hempel
Slide 41
Slide 41 text
Dynamische Analyse
Slide 42
Slide 42 text
Analysemodell
Slide 43
Slide 43 text
Modell für Check-In
Slide 44
Slide 44 text
Objektorientiertes
Design
Slide 45
Slide 45 text
Konkretisierung des
Analysemodells mit der Erweiterung
um nicht-fachliche Klassen.
Integration der Klassen in eine
Laufzeitumgebung / Framework.
Sebastian Hempel
Slide 46
Slide 46 text
Komponenten
Slide 47
Slide 47 text
No content
Slide 48
Slide 48 text
Klassebibliotheken
Slide 49
Slide 49 text
Frameworks
Slide 50
Slide 50 text
Objektorientierte
Programmierung
Slide 51
Slide 51 text
Implementierung
Slide 52
Slide 52 text
Favour Composition
over Inheritance
Mitarbeiter Mitarbeiter
Lehrgangsteilnehmer Lehrgangsteilnehmer
Slide 53
Slide 53 text
Das Liskov Substitution
Principle besagt, dass Subtypen
sich wie ihre Basistypen verhalten
müssen.
Slide 54
Slide 54 text
Lehrgangsteilnehmer
Mitarbeiter
- SollStunden: long
+ berechneUeberstunden() …
Slide 55
Slide 55 text
Das Open Closed Principle
(OCP) besagt, dass eine Klasse offen
für Erweiterungen sein muss,
jedoch geschlossen gegenüber
Modifikationen.
Slide 56
Slide 56 text
public double Preis() {
const decimal StammkundenRabatt = 0.95m;
switch(kundenart) {
case Kundenart.Einmalkunde:
return menge * einzelpreis;
case Kundenart.Stammkunde:
return menge * einzelpreis * StammkundenRabatt;
default:
throw new ArgumentOutOfRangeException();
}
}
Interface Segregation bedeutet
Schnittstellen klein zu halten. Teilen Sie
nicht zusammengehörende
Methoden auf mehrere
Schnittstellen auf.
Slide 59
Slide 59 text
Nach dem Law of Demeter soll
eine Methode nur folgende andere
Methoden verwenden:
●
Methoden der eigenen Klasse
●
Methoden der Parameter
●
Methoden assoziierter Klassen
●
Methoden selbst erzeugter Objekte
Slide 60
Slide 60 text
Bei der Dependency Inversion
wird darauf geachtet, dass Klassen
Abhängigkeit zu
Schnittstellen und nicht zu
anderen (Low-Level) Klassen haben.
Dies verbessert die Testbarkeit.
Slide 61
Slide 61 text
Objektorientierte
Programmmier-
Sprachen
Slide 62
Slide 62 text
C++ (Bjarne Stroustrup)
Slide 63
Slide 63 text
Java
(James
Gosling)
Slide 64
Slide 64 text
C# (Anders Hejlsberg)
Slide 65
Slide 65 text
UML
(unified modelling
language)
Slide 66
Slide 66 text
Grady
Booch
Ivar
Jacobson
James
Rumbaugh
The Three Amigos
Mit dem
Anwendungsfall-
diagramm wird
beschrieben was das
System leisten soll.
Slide 69
Slide 69 text
Ein
Klassendiagramm
besteht aus Klassen,
Attributen, Methode
und Interfaces.
Slide 70
Slide 70 text
Ein
Klassendiagramm
beschreibt die
Beziehungen von
Klassen.
Slide 71
Slide 71 text
Das
Aktivitätsdiagramm
beschreibt einen Ablauf
in einem System.
Slide 72
Slide 72 text
Das
Kollaborationsdiag
ramm beschreibt
Interaktionen zwischen
Objekten.
Slide 73
Slide 73 text
Mit dem
Sequenzdiagramm
wird der Austausch von
Nachrichten von
Objekten im zeitlichen
Zusammenhang
beschrieben.
Slide 74
Slide 74 text
CASE
Computer
Aided
Software
Engineering
Slide 75
Slide 75 text
NClass (OpenSource)
Slide 76
Slide 76 text
ArgoUML (OS)
Slide 77
Slide 77 text
Borland Together
Slide 78
Slide 78 text
Rational Rose
Slide 79
Slide 79 text
Bildnachweis
1. Modellbahn - Elbbrücken / Pieter & Renée Lanser / Flickr
4. Krka Wasserfälle / Karl-Hermann Loges / Flickr
5. The Zombie Attack project plan / Jez Nicholson / Flickr
7. Old couple analyzing Railway timetable / Pedro Ribeiro Simões / Flickr
8. Sketching a System / Ben and Kaz Askins / Flickr
9. Pat on his Mac / Kevin Galens / Flickr
11. Minmax_Notation_Mannschaft_Spieler / PhilippWeissenbacher / Wikipedia
15. Waffle Recipe / Brian Kelley / Flickr
16. Light Waffeln / sushiina / Flickr
17. ALFA ROMEO Giulia 1964 / Will Will / Flickr
18. Alfa Romeo Giulia Sprint GT RUD66 / Flickr
19. Ich liebe Waffeln! / Tine Steiss Flickr
30. Flohmarkt / cbronziski / Flickr
30. The Point Is im Studio der SAE Leipzig / Andre Lademann / Flickr
33. J&W Autos - Mechanic At Work 2 / Emyr Jones / Flickr
36. Self check-in at BOS / Karl Baron / Flickr
38. Everyone getting in on macroinvertebrate identification / External Affairs / Flickr
41. Marius Zierold / Marius Zierold / Flickr
42. Dresden bei VW / Dierk Schäfer / Flickr
46. highend-96 / noeffred / Flickr
48. Dombücherei Linz, 3 / Monika Bargmann / Flickr
49. Framework / jphilipg / Flickr
64. Anders Hejlsberg / D. Begley / Flickr
Slide 80
Slide 80 text
Sebastian Hempel
Staatlich geprüfter
Informatiker
Selbständiger Software-
Entwickler und Dozent
in den Bereichen Java
und OpenSource
Clean Code Developer
shempel@it-hempel
http://www.it-hempel.de/