Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Objektorientierte Techniken und UML
Search
Sebastian Hempel
October 19, 2010
Programming
0
1.8k
Objektorientierte Techniken und UML
Einführung in die Grundlagen von Objektorientierter Programmierung und Design
Sebastian Hempel
October 19, 2010
Tweet
Share
More Decks by Sebastian Hempel
See All by Sebastian Hempel
Wer spricht denn da? - Logging in Java (JCON 2022)
shempel
0
35
Kryptographie für Einsteiger
shempel
0
820
Jobs as Code - Jenkins Pipeline Jobs
shempel
0
840
Kryptogragire für Java-Entwickler
shempel
0
1.2k
Integration von MicroServices
shempel
0
1.6k
Dokumentation schreiben kann Spaß machen! (2017)
shempel
0
1.1k
Minifliegen im Schwarm
shempel
0
1.3k
Puppenspielerein
shempel
0
1.2k
Puppet für Entwickler
shempel
0
2k
Other Decks in Programming
See All in Programming
[SF Ruby Conf 2025] Rails X
palkan
0
350
Evolving NEWT’s TypeScript Backend for the AI-Driven Era
xpromx
0
170
JEP 496 と JEP 497 から学ぶ耐量子計算機暗号入門 / Learning Post-Quantum Crypto Basics from JEP 496 & 497
mackey0225
2
460
r2-image-worker
yusukebe
1
180
Feature Flags Suck! - KubeCon Atlanta 2025
phodgson
0
160
flutter_kaigi_2025.pdf
kyoheig3
1
350
AIエージェントでのJava開発がはかどるMCPをAIを使って開発してみた / java mcp for jjug
kishida
4
770
connect-python: convenient protobuf RPC for Python
anuraaga
0
200
TypeScriptで設計する 堅牢さとUXを両立した非同期ワークフローの実現
moeka__c
5
2.1k
なぜ強調表示できず ** が表示されるのか — Perlで始まったMarkdownの歴史と日本語文書における課題
kwahiro
12
7.2k
チーム開発の “地ならし"
konifar
8
5.9k
AIを駆使して新しい技術を効率的に理解する方法
nogu66
1
660
Featured
See All Featured
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Code Review Best Practice
trishagee
72
19k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.5k
Agile that works and the tools we love
rasmusluckow
331
21k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
9.8k
Context Engineering - Making Every Token Count
addyosmani
9
410
YesSQL, Process and Tooling at Scale
rocio
174
15k
For a Future-Friendly Web
brad_frost
180
10k
Building Applications with DynamoDB
mza
96
6.8k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
We Have a Design System, Now What?
morganepeng
54
7.9k
Scaling GitHub
holman
464
140k
Transcript
Objektorientierte Techniken und UML
Unter Objektorientierung, kurz OO, versteht man eine Sichtweise auf komplexe
Systeme, bei der ein System durch das Zusammenspiel kooperierender Objekte beschrieben wird. Wikipedia
Vorgehensmodelle der Softwareentwicklung
Wasserfallmodell linear / nicht-iterative
Agile Softwareentwicklung iterativ und inkrementell
Phasen
Anforderungsanalyse
Design
Implementierung
Notationsformen
ER-Modell
UML Klassendiagramm
Elemente der Objektorientierung
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
Klassen
Objekte
Attribute
Methoden
Konstruktoren
Konzepte der Objektorientierung
Code Daten Code Daten Kapselung
Abstraktion Kuh Elsa Frida Vera
Assoziation Kuh Wiese steht auf
Aggregation Kuh Herde ist Mitglied
Komposition Rechnung Positionen besteht aus
Vererbung Figur Rechteck Quadrat Kreis Generalisierung Spezialisierung
Schnittstelle List LinkedList ArrayList
Polymorphie Figur Rechteck Quadrat a Figur
Benennung von Bezeichnern
Variable = Substantiv
Methode = Verb
Objektorientierte Analyse
Verstehen der fachlichen Domäne
None
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
Use Cases
Bei der statischen Analyse werden die Geschäftsklassen und deren Beziehungen
untereinander identifiziert. Weiterhin findet eine Spezifikation der Attribute und Operationen statt. Sebastian Hempel
Statische Analyse
None
Bei der dynamischen Analyse werden die Interaktionen der erkannten Geschäftsklassen
untereinander identifiziert und die dabei verwendeten Operationen beschrieben. Sebastian Hempel
Dynamische Analyse
Analysemodell
Modell für Check-In
Objektorientiertes Design
Konkretisierung des Analysemodells mit der Erweiterung um nicht-fachliche Klassen. Integration
der Klassen in eine Laufzeitumgebung / Framework. Sebastian Hempel
Komponenten
None
Klassebibliotheken
Frameworks
Objektorientierte Programmierung
Implementierung
Favour Composition over Inheritance Mitarbeiter Mitarbeiter Lehrgangsteilnehmer Lehrgangsteilnehmer
Das Liskov Substitution Principle besagt, dass Subtypen sich wie ihre
Basistypen verhalten müssen.
Lehrgangsteilnehmer Mitarbeiter - SollStunden: long + berechneUeberstunden() …
Das Open Closed Principle (OCP) besagt, dass eine Klasse offen
für Erweiterungen sein muss, jedoch geschlossen gegenüber Modifikationen.
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(); } }
Bestellposition + berechnePreis() : double «interface» PreisRechner + berechnePreis() :
double Einmalkunde Stammkunde
Interface Segregation bedeutet Schnittstellen klein zu halten. Teilen Sie nicht
zusammengehörende Methoden auf mehrere Schnittstellen auf.
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
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.
Objektorientierte Programmmier- Sprachen
C++ (Bjarne Stroustrup)
Java (James Gosling)
C# (Anders Hejlsberg)
UML (unified modelling language)
Grady Booch Ivar Jacobson James Rumbaugh The Three Amigos
Anwendungsfalldiagram Klassendiagram Verhaltendiagramme Implementierungsdiagramme
Mit dem Anwendungsfall- diagramm wird beschrieben was das System leisten
soll.
Ein Klassendiagramm besteht aus Klassen, Attributen, Methode und Interfaces.
Ein Klassendiagramm beschreibt die Beziehungen von Klassen.
Das Aktivitätsdiagramm beschreibt einen Ablauf in einem System.
Das Kollaborationsdiag ramm beschreibt Interaktionen zwischen Objekten.
Mit dem Sequenzdiagramm wird der Austausch von Nachrichten von Objekten
im zeitlichen Zusammenhang beschrieben.
CASE Computer Aided Software Engineering
NClass (OpenSource)
ArgoUML (OS)
Borland Together
Rational Rose
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
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/