Objektorientierte
          Techniken
          und UML
Unter Objektorientierung, kurz
OO, versteht man eine Sichtweise auf
komplexe Systeme, bei der ein System
durch das Zusamme...
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...
Klassen
Objekte
Attribute
Methoden
Konstruktoren
Konzepte der
Objektorientierung
Code
Code


               Daten

Daten




        Kapselung
Abstraktion

        Kuh




Elsa   Frida   Vera
Assoziation


      steht auf
Kuh               Wiese
Aggregation


      ist Mitglied
Kuh                  Herde
Komposition


           besteht aus
Rechnung                 Positionen
Figur




                                     Generalisierung
                   Spezialisierung
Kreis   Rechteck



    ...
List




LinkedList          ArrayList




         Schnittstelle
Figur



a Figur      Rechteck



              Quadrat


          Polymorphie
Benennung von
    Bezeichnern
Variable
= Substantiv
Methode
 = Verb
Objektorientierte
      Analyse
Verstehen der
fachlichen Domäne
Ein Anwendungsfall beschreibt
eine Menge von Aktivitäten eines
Systems aus der Sicht seiner
Akteure, die für die Akteure z...
Use Cases
Bei der statischen Analyse
werden die Geschäftsklassen und
deren Beziehungen untereinander
identifiziert. Weiterhin findet...
Statische Analyse
Bei der dynamischen Analyse
werden die Interaktionen der
erkannten Geschäftsklassen
untereinander identifiziert und die
da...
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
Laufzei...
Komponenten
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.
Mitarbeiter          Lehrgangsteilnehmer

- SollStunden: long


+ berechneUeberstunden()…
Das Open Closed Principle
(OCP) besagt, dass eine Klasse offen
für Erweiterungen sein muss,
jedoch geschlossen gegenüber
M...
public double Preis() {
    const decimal StammkundenRabatt = 0.95m;
    switch(kundenart) {
         case Kundenart.Einma...
«interface»
     Bestellposition                       PreisRechner


+ berechnePreis() : double            + berechnePrei...
Interface Segregation bedeutet
Schnittstellen klein zu halten. Teilen Sie
nicht zusammengehörende
Methoden auf mehrere
Sch...
Nach dem Law of Demeter soll
eine Methode nur folgende andere
Methoden verwenden:
●
  Methoden der eigenen Klasse
●
  Meth...
Bei der Dependency Inversion
wird darauf geachtet, dass Klassen
Abhängigkeit zu
Schnittstellen und nicht zu
anderen (Low-L...
Objektorientierte
 Programmmier-
    Sprachen
C++ (Bjarne Stroustrup)
Java
(James
Gosling)
C# (Anders Hejlsberg)
UML
(unified modelling
         language)
The Three Amigos




Grady      Ivar    James
Booch   Jacobson Rumbaugh
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...
Sebastian Hempel
    Staatlich geprüfter
           Informatiker

Selbständiger Software-
 Entwickler und Dozent
 in den B...
Objektorientierte Techniken und UML
Objektorientierte Techniken und UML
Objektorientierte Techniken und UML
Nächste SlideShare
Wird geladen in …5
×

Objektorientierte Techniken und UML

3.313 Aufrufe

Veröffentlicht am

Einführung und Überblick über die Objektorientierung und die Unified Modeling Language als Vorbereitung für das Erlernen einer objektorientierten Programmiersprache wie Java oder C#

Veröffentlicht in: Technologie, Bildung
0 Kommentare
2 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

Keine Downloads
Aufrufe
Aufrufe insgesamt
3.313
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
285
Aktionen
Geteilt
0
Downloads
30
Kommentare
0
Gefällt mir
2
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Objektorientierte Techniken und UML

  1. 1. Objektorientierte Techniken und UML
  2. 2. Unter Objektorientierung, kurz OO, versteht man eine Sichtweise auf komplexe Systeme, bei der ein System durch das Zusammenspiel kooperierender Objekte beschrieben wird. Wikipedia
  3. 3. Vorgehensmodelle der Softwareentwicklung
  4. 4. Wasserfallmodell linear / nicht-iterative
  5. 5. Agile Softwareentwicklung iterativ und inkrementell
  6. 6. Phasen
  7. 7. Anforderungsanalyse
  8. 8. Design
  9. 9. Implementierung
  10. 10. Notationsformen
  11. 11. ER-Modell
  12. 12. UML Klassendiagramm
  13. 13. Elemente der Objektorientierung
  14. 14. 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
  15. 15. Klassen
  16. 16. Objekte
  17. 17. Attribute
  18. 18. Methoden
  19. 19. Konstruktoren
  20. 20. Konzepte der Objektorientierung
  21. 21. Code Code Daten Daten Kapselung
  22. 22. Abstraktion Kuh Elsa Frida Vera
  23. 23. Assoziation steht auf Kuh Wiese
  24. 24. Aggregation ist Mitglied Kuh Herde
  25. 25. Komposition besteht aus Rechnung Positionen
  26. 26. Figur Generalisierung Spezialisierung Kreis Rechteck Quadrat Vererbung
  27. 27. List LinkedList ArrayList Schnittstelle
  28. 28. Figur a Figur Rechteck Quadrat Polymorphie
  29. 29. Benennung von Bezeichnern
  30. 30. Variable = Substantiv
  31. 31. Methode = Verb
  32. 32. Objektorientierte Analyse
  33. 33. Verstehen der fachlichen Domäne
  34. 34. 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
  35. 35. Use Cases
  36. 36. Bei der statischen Analyse werden die Geschäftsklassen und deren Beziehungen untereinander identifiziert. Weiterhin findet eine Spezifikation der Attribute und Operationen statt. Sebastian Hempel
  37. 37. Statische Analyse
  38. 38. Bei der dynamischen Analyse werden die Interaktionen der erkannten Geschäftsklassen untereinander identifiziert und die dabei verwendeten Operationen beschrieben. Sebastian Hempel
  39. 39. Dynamische Analyse
  40. 40. Analysemodell
  41. 41. Modell für Check-In
  42. 42. Objektorientiertes Design
  43. 43. Konkretisierung des Analysemodells mit der Erweiterung um nicht-fachliche Klassen. Integration der Klassen in eine Laufzeitumgebung / Framework. Sebastian Hempel
  44. 44. Komponenten
  45. 45. Klassebibliotheken
  46. 46. Frameworks
  47. 47. Objektorientierte Programmierung
  48. 48. Implementierung
  49. 49. Favour Composition over Inheritance Mitarbeiter Mitarbeiter Lehrgangsteilnehmer Lehrgangsteilnehmer
  50. 50. Das Liskov Substitution Principle besagt, dass Subtypen sich wie ihre Basistypen verhalten müssen.
  51. 51. Mitarbeiter Lehrgangsteilnehmer - SollStunden: long + berechneUeberstunden()…
  52. 52. Das Open Closed Principle (OCP) besagt, dass eine Klasse offen für Erweiterungen sein muss, jedoch geschlossen gegenüber Modifikationen.
  53. 53. 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(); } }
  54. 54. «interface» Bestellposition PreisRechner + berechnePreis() : double + berechnePreis() : double Einmalkunde Stammkunde
  55. 55. Interface Segregation bedeutet Schnittstellen klein zu halten. Teilen Sie nicht zusammengehörende Methoden auf mehrere Schnittstellen auf.
  56. 56. 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
  57. 57. 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.
  58. 58. Objektorientierte Programmmier- Sprachen
  59. 59. C++ (Bjarne Stroustrup)
  60. 60. Java (James Gosling)
  61. 61. C# (Anders Hejlsberg)
  62. 62. UML (unified modelling language)
  63. 63. The Three Amigos Grady Ivar James Booch Jacobson Rumbaugh
  64. 64. Anwendungsfalldiagram Klassendiagram Verhaltendiagramme Implementierungsdiagramme
  65. 65. Mit dem Anwendungsfall- diagramm wird beschrieben was das System leisten soll.
  66. 66. Ein Klassendiagramm besteht aus Klassen, Attributen, Methode und Interfaces.
  67. 67. Ein Klassendiagramm beschreibt die Beziehungen von Klassen.
  68. 68. Das Aktivitätsdiagramm beschreibt einen Ablauf in einem System.
  69. 69. Das Kollaborationsdiag ramm beschreibt Interaktionen zwischen Objekten.
  70. 70. Mit dem Sequenzdiagramm wird der Austausch von Nachrichten von Objekten im zeitlichen Zusammenhang beschrieben.
  71. 71. CASE Computer Aided Software Engineering
  72. 72. NClass (OpenSource)
  73. 73. ArgoUML (OS)
  74. 74. Borland Together
  75. 75. Rational Rose
  76. 76. 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
  77. 77. 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/

×