Design
SEP WS 09/10
Wer bin ich?
            Vorabinfos
 Ready?
             Go!
Dokumente fürs Design
   Wie man es nicht macht
Besser machen...
Jeffrey Groneberg
                 Master-Student

                   Adobe Flex - Entwickler
                   BSc seit ...
Nicht all zuviel Theorie
Nicht der Master-Plan
Kein Ersatz für   OOT / TPE und SEE

Vorabinfos
Eigene   Erfahrung

Auflistung, die hilft

             Überblick       der Dokumente


Betrachtung der   Voraussetzungen
...
Pflichtenheft
                               Architekturspezifikation

                                              Devel...
Nie alleine     – gegenseitig erklären


     Gutes   Abstraktionsverständnis
Plotting – Studiengebühren
müssen sich renti...
Von Oben nach Unten!
Modul für Modul

Schnittstellen           Mit Programmierern
und Strukturen           absprechen
    ...
Statische Sicht :
  • Klassendiagramm verbalisieren
  • Optional: Datenbank / XML / (Backend)
  • Frameworks              ...
Planlos beginnen
  • Probleme müssen abstrahiert werden
  • Fehler in Architektur  fehlerhaftes Design
                  ...
Konkrete Beispiele durch fehlerhaftes Design:

   • Enge Kopplung
   • Static. Static. Static. zzZZzzzZZzz
   • Doppelter ...
Das   Rad nicht neu erfinden

 Erfahrungen    von anderen   nutzen
Problemlösungen   nutzen, die sich   in der Praxis
bewä...
Best Practices        in OOD sind   Design Pattern
    Strategy        Observer        Decorator     Factory
    Pattern  ...
„Nicht alles Gold, was glänzt“

          Pattern   genau   kennen    für Anwendung




Problem   komplexer     als Beispi...
Strategy Pattern
              Änderung des Verhaltens zur Laufzeit
Veränderungen kapseln
                        Schnitts...
Client                      Gekapseltes Flugverhalten
                                                             <<Inter...
OmondoUML

                                 Jude
              Microsoft Visio
                                  Dia
Rever...
Checkstyle
               JavaDocs
    DocFlex
                    Find-Bugs

   Spring-Framework

Ergänzungen
Head First – Design Pattern
         Gang of Four: Design Pattern

 Refactoring – Improving the Design of Existing Code


...
Fragen?
Upcoming SlideShare
Loading in …5
×

Design OOA OOD

2,647 views

Published on

Präsentation über OOA und OOD als Kurzeinführung für Studenten des Bachelor Studiengang Informatik an der Hochschule Mannheim

Published in: Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,647
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
9
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Design OOA OOD

  1. 1. Design SEP WS 09/10
  2. 2. Wer bin ich? Vorabinfos Ready? Go! Dokumente fürs Design Wie man es nicht macht Besser machen Quak, Quik, Quek Tools Was zum Lesen Ergänzungen Inhalt
  3. 3. Jeffrey Groneberg Master-Student Adobe Flex - Entwickler BSc seit SS09 2. Mal Tutor im SEP www.twitter.com/inkvine www.inkvine.de Wer bin ich?
  4. 4. Nicht all zuviel Theorie Nicht der Master-Plan Kein Ersatz für OOT / TPE und SEE Vorabinfos
  5. 5. Eigene Erfahrung Auflistung, die hilft Überblick der Dokumente Betrachtung der Voraussetzungen Vorabinfos
  6. 6. Pflichtenheft Architekturspezifikation Development Logical View View Process View Physical View http://www.ifi.uzh.ch/swe/teaching/courses/seminar2004/abg aben/Wimmer-Architektur-Sichten.pdf Ready?
  7. 7. Nie alleine – gegenseitig erklären Gutes Abstraktionsverständnis Plotting – Studiengebühren müssen sich rentieren  Mind-Mapping OOA/OOD ist ein autodidaktischer Prozess Guter Programmierer != guter Designer Go!
  8. 8. Von Oben nach Unten! Modul für Modul Schnittstellen Mit Programmierern und Strukturen absprechen Plotten sind wichtig Gute Architektur erleichtert gutes Design Go!
  9. 9. Statische Sicht : • Klassendiagramm verbalisieren • Optional: Datenbank / XML / (Backend) • Frameworks Dynamische Sicht: • Sequenzdiagramm • Aktivitätsdiagramm Design-Validierung: •… • Design <-> Pflichtenheft • Das WAS wird durch das WIE beantwortet Klassendiagramm Dokumente stetig anpassen Dokumente fürs Design
  10. 10. Planlos beginnen • Probleme müssen abstrahiert werden • Fehler in Architektur  fehlerhaftes Design Dynamische Sicht: • Me vs . Framework • Sequenzdiagramm • Aktivitätsdiagramm Design unterschätzen: •…  Probleme bei: Implementierung Anforderungen Veränderungen Klassendiagramm Probleme beim Testen Nicht Validieren Wie man es nicht macht
  11. 11. Konkrete Beispiele durch fehlerhaftes Design: • Enge Kopplung • Static. Static. Static. zzZZzzzZZzz • Doppelter Code • Kein automatisiertes Testen • White-Box-Testing wird umständlich Positives Beispiel durch fehlerhaftes Design: • Anwendung wird kryptographisch  Arbeitsplatz gesichert  Wie man es nicht macht
  12. 12. Das Rad nicht neu erfinden Erfahrungen von anderen nutzen Problemlösungen nutzen, die sich in der Praxis bewährt haben Best Practices Ändernde Anforderungen führen zu anderen Best Practices Besser machen
  13. 13. Best Practices in OOD sind Design Pattern Strategy Observer Decorator Factory Pattern Pattern Pattern Pattern Template Iterator and Singleton Facade Methode Composite Pattern Pattern Pattern Pattern Command State Pattern Proxy Pattern … Pattern Besser machen
  14. 14. „Nicht alles Gold, was glänzt“ Pattern genau kennen für Anwendung Problem komplexer als Beispiel-UML des Pattern Zwang , bei allem ein Pattern zu verwenden Besser machen
  15. 15. Strategy Pattern Änderung des Verhaltens zur Laufzeit Veränderungen kapseln Schnittstellen nutzen Kapselung wiederverwenden Komposition > Vererbung Quak, Quik, Quek
  16. 16. Client Gekapseltes Flugverhalten <<Interface>> Ente FlugVerhalten Flugverhalten flugVerhalten fliegen() Quakverhalten quakVerhalten schwimmen() anzeigen() FliegtMitFlügeln FliegtGarnicht tuQuaken() tuFliegen() fliegen() fliegen() setQuakVerhalten() setFlugVerhalten //ANDERE Enten-Methoden Gekapseltes Quakverhalten <<Interface>> Stockente MoorEnte QuakVerhalten anzeigen() anzeigen() quaken() GummiEnte Lockente anzeigen() anzeigen() Quak, Quik, Quek
  17. 17. OmondoUML Jude Microsoft Visio Dia Reverse-Engineering um Design anzupassen nicht um Design zu erstellen Werkzeuge
  18. 18. Checkstyle JavaDocs DocFlex Find-Bugs Spring-Framework Ergänzungen
  19. 19. Head First – Design Pattern Gang of Four: Design Pattern Refactoring – Improving the Design of Existing Code Karteikarten http://www.mcdonaldland.info/2007/11/28/40/ Ausführliche Erklärungen http://sourcemaking.com/design_patterns Was zum Lesen
  20. 20. Fragen?

×