Download - Objektorientierte Techniken und UML

Transcript
Page 1: Objektorientierte Techniken und UML

ObjektorientierteTechnikenund UML

Page 2: 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

Page 3: Objektorientierte Techniken und UML

Vorgehensmodelleder Softwareentwicklung

Page 4: Objektorientierte Techniken und UML

Wasserfallmodelllinear / nicht-iterative

Page 5: Objektorientierte Techniken und UML

Agile Softwareentwicklungiterativ und inkrementell

Page 6: Objektorientierte Techniken und UML

Phasen

Page 7: Objektorientierte Techniken und UML

Anforderungsanalyse

Page 8: Objektorientierte Techniken und UML

Design

Page 9: Objektorientierte Techniken und UML

Implementierung

Page 10: Objektorientierte Techniken und UML

Notationsformen

Page 11: Objektorientierte Techniken und UML

ER-Modell

Page 12: Objektorientierte Techniken und UML

UML Klassendiagramm

Page 13: Objektorientierte Techniken und UML

Elemente derObjektorientierung

Page 14: Objektorientierte Techniken und UML

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

Page 15: Objektorientierte Techniken und UML

Klassen

Page 16: Objektorientierte Techniken und UML

Objekte

Page 17: Objektorientierte Techniken und UML

Attribute

Page 18: Objektorientierte Techniken und UML

Methoden

Page 19: Objektorientierte Techniken und UML

Konstruktoren

Page 20: Objektorientierte Techniken und UML

Konzepte derObjektorientierung

Page 21: Objektorientierte Techniken und UML

Code

Daten

Code

Daten

Kapselung

Page 22: Objektorientierte Techniken und UML

Abstraktion

Kuh

Elsa Frida Vera

Page 23: Objektorientierte Techniken und UML

Assoziation

Kuh Wiesesteht auf

Page 24: Objektorientierte Techniken und UML

Aggregation

Kuh Herdeist Mitglied

Page 25: Objektorientierte Techniken und UML

Komposition

Rechnung Positionenbesteht aus

Page 26: Objektorientierte Techniken und UML

Vererbung

Figur

Rechteck

Quadrat

Kreis

Gen

eral

isie

rung

Spez

ialis

ieru

ng

Page 27: Objektorientierte Techniken und UML

Schnittstelle

List

LinkedList ArrayList

Page 28: Objektorientierte Techniken und UML

Polymorphie

Figur

Rechteck

Quadrat

a Figur

Page 29: Objektorientierte Techniken und UML

Benennung vonBezeichnern

Page 30: Objektorientierte Techniken und UML

Variable= Substantiv

Page 31: Objektorientierte Techniken und UML

Methode= Verb

Page 32: Objektorientierte Techniken und UML

ObjektorientierteAnalyse

Page 33: Objektorientierte Techniken und UML

Verstehen derfachlichen Domäne

Page 34: Objektorientierte Techniken und UML
Page 35: Objektorientierte Techniken und UML

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

Page 36: Objektorientierte Techniken und UML

Use Cases

Page 37: Objektorientierte Techniken und UML

Bei der statischen Analyse werden die Geschäftsklassen und deren Beziehungen untereinander identifiziert. Weiterhin findet eine Spezifikation der Attribute und Operationen statt.

Sebastian Hempel

Page 38: Objektorientierte Techniken und UML

Statische Analyse

Page 39: Objektorientierte Techniken und UML
Page 40: Objektorientierte Techniken und UML

Bei der dynamischen Analyse werden die Interaktionen der erkannten Geschäftsklassen untereinander identifiziert und die dabei verwendeten Operationen beschrieben.

Sebastian Hempel

Page 41: Objektorientierte Techniken und UML

Dynamische Analyse

Page 42: Objektorientierte Techniken und UML

Analysemodell

Page 43: Objektorientierte Techniken und UML

Modell für Check-In

Page 44: Objektorientierte Techniken und UML

ObjektorientiertesDesign

Page 45: Objektorientierte Techniken und UML

Konkretisierung des Analysemodells mit der Erweiterung um nicht-fachliche Klassen. Integration der Klassen in eine Laufzeitumgebung / Framework.

Sebastian Hempel

Page 46: Objektorientierte Techniken und UML

Komponenten

Page 47: Objektorientierte Techniken und UML
Page 48: Objektorientierte Techniken und UML

Klassebibliotheken

Page 49: Objektorientierte Techniken und UML

Frameworks

Page 50: Objektorientierte Techniken und UML

ObjektorientierteProgrammierung

Page 51: Objektorientierte Techniken und UML

Implementierung

Page 52: Objektorientierte Techniken und UML

Favour Compositionover Inheritance

Mitarbeiter Mitarbeiter

Lehrgangsteilnehmer Lehrgangsteilnehmer

Page 53: Objektorientierte Techniken und UML

Das Liskov Substitution Principle besagt, dass Subtypen sich wie ihre Basistypen verhalten müssen.

Page 54: Objektorientierte Techniken und UML

LehrgangsteilnehmerMitarbeiter

- SollStunden: long

+ berechneUeberstunden() …

Page 55: Objektorientierte Techniken und UML

Das Open Closed Principle (OCP) besagt, dass eine Klasse offen für Erweiterungen sein muss, jedoch geschlossen gegenüber Modifikationen.

Page 56: Objektorientierte Techniken und UML

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(); }}

Page 57: Objektorientierte Techniken und UML

Bestellposition

+ berechnePreis() : double

«interface»PreisRechner

+berechnePreis() : double

Einmalkunde Stammkunde

Page 58: Objektorientierte Techniken und UML

Interface Segregation bedeutet Schnittstellen klein zu halten. Teilen Sie nicht zusammengehörende Methoden auf mehrere Schnittstellen auf.

Page 59: Objektorientierte Techniken und UML

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

Page 60: Objektorientierte Techniken und UML

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.

Page 61: Objektorientierte Techniken und UML

ObjektorientierteProgrammmier-

Sprachen

Page 62: Objektorientierte Techniken und UML

C++ (Bjarne Stroustrup)

Page 63: Objektorientierte Techniken und UML

Java(JamesGosling)

Page 64: Objektorientierte Techniken und UML

C# (Anders Hejlsberg)

Page 65: Objektorientierte Techniken und UML

UML(unified modelling

language)

Page 66: Objektorientierte Techniken und UML

GradyBooch

IvarJacobson

JamesRumbaugh

The Three Amigos

Page 67: Objektorientierte Techniken und UML

Anwendungsfalldiagram

Klassendiagram

Verhaltendiagramme

Implementierungsdiagramme

Page 68: Objektorientierte Techniken und UML

Mit dem Anwendungsfall- diagramm wird beschrieben was das System leisten soll.

Page 69: Objektorientierte Techniken und UML

Ein Klassendiagramm besteht aus Klassen, Attributen, Methode und Interfaces.

Page 70: Objektorientierte Techniken und UML

Ein Klassendiagramm beschreibt die Beziehungen von Klassen.

Page 71: Objektorientierte Techniken und UML

Das Aktivitätsdiagramm beschreibt einen Ablauf in einem System.

Page 72: Objektorientierte Techniken und UML

Das Kollaborationsdiagramm beschreibt Interaktionen zwischen Objekten.

Page 73: Objektorientierte Techniken und UML

Mit dem Sequenzdiagramm wird der Austausch von Nachrichten von Objekten im zeitlichen Zusammenhang beschrieben.

Page 74: Objektorientierte Techniken und UML

CASEComputer

AidedSoftware

Engineering

Page 75: Objektorientierte Techniken und UML

NClass (OpenSource)

Page 76: Objektorientierte Techniken und UML

ArgoUML (OS)

Page 77: Objektorientierte Techniken und UML

Borland Together

Page 78: Objektorientierte Techniken und UML

Rational Rose

Page 79: Objektorientierte Techniken und UML

Bildnachweis

1. Modellbahn - Elbbrücken / Pieter & Renée Lanser / Flickr4. Krka Wasserfälle / Karl-Hermann Loges / Flickr5. The Zombie Attack project plan / Jez Nicholson / Flickr7. Old couple analyzing Railway timetable / Pedro Ribeiro Simões / Flickr8. Sketching a System / Ben and Kaz Askins / Flickr9. Pat on his Mac / Kevin Galens / Flickr11. Minmax_Notation_Mannschaft_Spieler / PhilippWeissenbacher / Wikipedia15. Waffle Recipe / Brian Kelley / Flickr16. Light Waffeln / sushiina / Flickr17. ALFA ROMEO Giulia 1964 / Will Will / Flickr18. Alfa Romeo Giulia Sprint GT RUD66 / Flickr19. Ich liebe Waffeln! / Tine Steiss Flickr30. Flohmarkt / cbronziski / Flickr30. The Point Is im Studio der SAE Leipzig / Andre Lademann / Flickr33. J&W Autos - Mechanic At Work 2 / Emyr Jones / Flickr36. Self check-in at BOS / Karl Baron / Flickr38. Everyone getting in on macroinvertebrate identification / External Affairs / Flickr41. Marius Zierold / Marius Zierold / Flickr42. Dresden bei VW / Dierk Schäfer / Flickr46. highend-96 / noeffred / Flickr48. Dombücherei Linz, 3 / Monika Bargmann / Flickr49. Framework / jphilipg / Flickr64. Anders Hejlsberg / D. Begley / Flickr

Page 80: Objektorientierte Techniken und UML

Sebastian HempelStaatlich geprüfter

Informatiker

Selbständiger Software-Entwickler und Dozent in den Bereichen Java

und OpenSource

Clean Code Developer

shempel@it-hempelhttp://www.it-hempel.de/