design ooa ood
DESCRIPTION
Präsentation über OOA und OOD als Kurzeinführung für Studenten des Bachelor Studiengang Informatik an der Hochschule MannheimTRANSCRIPT
![Page 1: Design OOA OOD](https://reader033.vdokument.com/reader033/viewer/2022052321/5553ff64b4c90544428b4df6/html5/thumbnails/1.jpg)
Design
SEP WS 09/10
![Page 2: Design OOA OOD](https://reader033.vdokument.com/reader033/viewer/2022052321/5553ff64b4c90544428b4df6/html5/thumbnails/2.jpg)
Vorabinfos
Inhalt
Ready?
Wie man es nicht macht
Go!
Wer bin ich?
Besser machen
Dokumente fürs Design
ToolsErgänzungenWas zum Lesen
Quak, Quik, Quek
![Page 3: Design OOA OOD](https://reader033.vdokument.com/reader033/viewer/2022052321/5553ff64b4c90544428b4df6/html5/thumbnails/3.jpg)
Wer bin ich?
Jeffrey Groneberg
2. Mal Tutor im SEP
Master-Student
BSc seit SS09
Adobe Flex - Entwickler
www.twitter.com/inkvine
www.inkvine.de
![Page 4: Design OOA OOD](https://reader033.vdokument.com/reader033/viewer/2022052321/5553ff64b4c90544428b4df6/html5/thumbnails/4.jpg)
Vorabinfos
Nicht all zuviel Theorie
Nicht der Master-Plan
Kein Ersatz für OOT / TPE und SEE
![Page 5: Design OOA OOD](https://reader033.vdokument.com/reader033/viewer/2022052321/5553ff64b4c90544428b4df6/html5/thumbnails/5.jpg)
Vorabinfos
Eigene Erfahrung
Auflistung, die hilft
Überblick der Dokumente
Betrachtung der Voraussetzungen
![Page 6: Design OOA OOD](https://reader033.vdokument.com/reader033/viewer/2022052321/5553ff64b4c90544428b4df6/html5/thumbnails/6.jpg)
Ready?
Pflichtenheft
Logical ViewDevelopment
View
Process View Physical View
Architekturspezifikation
http://www.ifi.uzh.ch/swe/teaching/courses/seminar2004/abgaben/Wimmer-Architektur-Sichten.pdf
![Page 7: Design OOA OOD](https://reader033.vdokument.com/reader033/viewer/2022052321/5553ff64b4c90544428b4df6/html5/thumbnails/7.jpg)
Go!
Nie alleine – gegenseitig erklären
Gutes Abstraktionsverständnis
Mind-Mapping
Plotting – Studiengebühren müssen sich rentieren
OOA/OOD ist ein autodidaktischer Prozess
Guter Programmierer != guter Designer
![Page 8: Design OOA OOD](https://reader033.vdokument.com/reader033/viewer/2022052321/5553ff64b4c90544428b4df6/html5/thumbnails/8.jpg)
Go!
Plotten
Von Oben nach Unten!
Modul für Modul
Gute Architekturerleichtert gutes Design
Schnittstellenund Strukturen sind wichtig
Mit Programmierern absprechen
![Page 9: Design OOA OOD](https://reader033.vdokument.com/reader033/viewer/2022052321/5553ff64b4c90544428b4df6/html5/thumbnails/9.jpg)
Dokumente fürs Design
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
![Page 10: Design OOA OOD](https://reader033.vdokument.com/reader033/viewer/2022052321/5553ff64b4c90544428b4df6/html5/thumbnails/10.jpg)
Wie man es nicht macht
Dynamische Sicht:• Sequenzdiagramm• Aktivitätsdiagramm• …
Klassendiagramm
Planlos beginnen• Probleme müssen abstrahiert werden• Fehler in Architektur fehlerhaftes Design
• Me vs. Framework
Design unterschätzen: Probleme bei:
Implementierung
AnforderungenVeränderungenProbleme beim Testen
Nicht Validieren
![Page 11: Design OOA OOD](https://reader033.vdokument.com/reader033/viewer/2022052321/5553ff64b4c90544428b4df6/html5/thumbnails/11.jpg)
Wie man es nicht macht
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
![Page 12: Design OOA OOD](https://reader033.vdokument.com/reader033/viewer/2022052321/5553ff64b4c90544428b4df6/html5/thumbnails/12.jpg)
Besser machen
Das Rad nicht neu erfinden
Problemlösungen nutzen, die sich in der Praxis bewährt haben
Erfahrungen von anderen nutzen
Ändernde Anforderungen führen zu anderen Best Practices
Best Practices
![Page 13: Design OOA OOD](https://reader033.vdokument.com/reader033/viewer/2022052321/5553ff64b4c90544428b4df6/html5/thumbnails/13.jpg)
Besser machen
StrategyPattern
ObserverPattern
DecoratorPattern
Factory Pattern
Singleton Pattern
FacadePattern
Template Methode Pattern
Iterator andComposite
Pattern
State Pattern Proxy PatternCommand
Pattern…
Best Practices in OOD sind Design Pattern
![Page 14: Design OOA OOD](https://reader033.vdokument.com/reader033/viewer/2022052321/5553ff64b4c90544428b4df6/html5/thumbnails/14.jpg)
Besser machen
„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
![Page 15: Design OOA OOD](https://reader033.vdokument.com/reader033/viewer/2022052321/5553ff64b4c90544428b4df6/html5/thumbnails/15.jpg)
Quak, Quik, Quek
Strategy Pattern
Änderung des Verhaltens zur Laufzeit
Veränderungen kapseln
Schnittstellen nutzen
Kapselung wiederverwenden
Komposition > Vererbung
![Page 16: Design OOA OOD](https://reader033.vdokument.com/reader033/viewer/2022052321/5553ff64b4c90544428b4df6/html5/thumbnails/16.jpg)
Flugverhalten flugVerhalten
Quakverhalten quakVerhalten
schwimmen()
anzeigen()
tuQuaken()
tuFliegen()
setQuakVerhalten()
setFlugVerhalten
//ANDERE Enten-Methoden
Stockente MoorEnte
LockenteGummiEnte
anzeigen() anzeigen()
anzeigen()
<<Interface>>
FlugVerhalten
fliegen()
FliegtMitFlügeln FliegtGarnicht
fliegen() fliegen()
quaken()
<<Interface>>
QuakVerhalten
Quak, Quik, Quek
Ente
anzeigen()
Gekapseltes Quakverhalten
Gekapseltes FlugverhaltenClient
![Page 17: Design OOA OOD](https://reader033.vdokument.com/reader033/viewer/2022052321/5553ff64b4c90544428b4df6/html5/thumbnails/17.jpg)
OmondoUML
Microsoft Visio
Dia
Jude
Werkzeuge
Reverse-Engineering um Design anzupassennicht um Design zu erstellen
![Page 18: Design OOA OOD](https://reader033.vdokument.com/reader033/viewer/2022052321/5553ff64b4c90544428b4df6/html5/thumbnails/18.jpg)
Checkstyle
DocFlexFind-Bugs
JavaDocs
Ergänzungen
Spring-Framework
![Page 19: Design OOA OOD](https://reader033.vdokument.com/reader033/viewer/2022052321/5553ff64b4c90544428b4df6/html5/thumbnails/19.jpg)
Was zum Lesen
Head First – Design PatternGang of Four: Design Pattern
Refactoring – Improving the Design of Existing Code
Karteikartenhttp://www.mcdonaldland.info/2007/11/28/40/
Ausführliche Erklärungenhttp://sourcemaking.com/design_patterns
![Page 20: Design OOA OOD](https://reader033.vdokument.com/reader033/viewer/2022052321/5553ff64b4c90544428b4df6/html5/thumbnails/20.jpg)
Fragen?