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
830
Jobs as Code - Jenkins Pipeline Jobs
shempel
0
850
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
AWS×クラウドネイティブソフトウェア設計 / AWS x Cloud-Native Software Design
nrslib
15
2.9k
エラーログのマスキングの仕組みづくりに役立ったASTの話
kumoichi
0
170
Takumiから考えるSecurity_Maturity_Model.pdf
gessy0129
1
140
Railsの気持ちを考えながらコントローラとビューを整頓する/tidying-rails-controllers-and-views-as-rails-think
moro
5
390
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
480
Agentic AI: Evolution oder Revolution
mobilelarson
PRO
0
140
nuget-server - あなたが必要だったNuGetサーバー
kekyo
PRO
0
220
LangChain4jとは一味違うLangChain4j-CDI
kazumura
1
170
Codex の「自走力」を高める
yorifuji
0
1.1k
API Platformを活用したPHPによる本格的なWeb API開発 / api-platform-book-intro
ttskch
1
130
Go 1.26でのsliceのメモリアロケーション最適化 / Go 1.26 リリースパーティ #go126party
mazrean
1
370
20260228_JAWS_Beginner_Kansai
takuyay0ne
5
470
Featured
See All Featured
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
850
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
300
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.5k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
300
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.7k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.1k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.4k
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
100
Paper Plane (Part 1)
katiecoart
PRO
0
5.4k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Context Engineering - Making Every Token Count
addyosmani
9
740
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
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/