Horw Präsentation Themenarbeit SWE Wyder Aaron Studiengang Informatik SS Semester 06 23. Juni 2008 Ist Design tot? Evolutionäre.

Slides:



Advertisements
Ähnliche Präsentationen
Software Engeniering II
Advertisements

Persistente Domänenmodelle mit JPA 2.0 und Bean Validation
Bewertung von Yu-Gi-Oh!-Sammelkarten mit Daten des Marktplatzes eBay
Benutzerorientierte Designprinzipien für die Microsoft-Guidelines
Prüfung objektorientierter Programme -1
Integrations- und Funktionstests im Rahmen des V-Modelles
Phasen und ihre Workflows
mit Entwicklungsumgebungen (Eclipse) Software verbessern
Von David Keß, Heinrich Wölk, Daniel Hauck
Das „Vorgehensmodell“
Agiles Software- Projektmanagement mit XP Dipl.-Ing. F. Papenfuß Prof. Dr. H. Pfüller Universität Rostock.
Software-Lebenszyklus
Objektorientierter Entwurf (OOD) Teil 3: Qualitätsmodell
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Was ist Refactoring? Bevor man die Integration angeht, mag es angebracht sein, den.
Erfahrungen aus Tests komplexer Systeme
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Einzeltests im Rahmen des V-Modelles Aufgaben Überprüfung des Programmcodes mit Hilfe.
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Aufgaben des Testens Vergleich des Verhaltens einer Software mit den an sie gestellten.
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Regeln für Tester - best practice 1 Prüfe das eigene Programm nie als Einziger Testen.
Es gibt viele Arten von Risiken
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Agile Software Entwicklung mit dem RUP Agile Softwareentwicklung Best Practice bei.
es gibt (fast) nichts, was nicht anders gemacht werden könnte
Cassey - Common Answer Set Evaluation sYstem Jean Gressmann Benjamin Kaufmann Robert Lenk.
Das Test-Framework JUnit
Vortrag 11: Reengineering - Refactoring
eXtreme Programming (XP)
Experimentaufbau und -design
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 5. Test-First Prinzip Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse.
Projektplan: Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University.
Programmierung verteilter Systeme Lab Institut für Informatik Universität Augsburg Universitätsstraße 14, Augsburg Tel.: (+49) 821/ , Fax:
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Test Summary: m ein Fehler pro Tag m Test First m Funktionstests.
Software Design Patterns Extreme Programming (XP).
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 5. Test-First Prinzip Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse.
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 5. Test-First Prinzip Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse.
Vorgehensmodelle: Schwergewichtige Modelle
XP – eXtreme Programming
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 1 Weitere Vorgehensmodelle Der Rational Unified Process RUP –bei IBM.
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering WS 2006 / 2007Folie 1 Agile Vorgehensweisen Hintergrund –in den letzten Jahren hat.
Software Engineering SS 2009
Zentralübung Automotive Software Engineering – Übungsblatt 4
Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie II (Teil I): Simulation und 3D Programmierung Prof.
IT-Projektmanagement SS 2013 Prof. Dr. Herrad Schmidt
NDK Enterprise Technologien Informationen Infrastruktur und Fallstudie Daniel Nydegger Studienleiter Enterprise System Entwicklung.
Stephan Käppeli, Hochschule Luzern – Wirtschaft / IBR
Clean Code Software-Entwicklung als Handwerkskunst Thomas Nagel, November 2011.
Infopoint Silver Scherrer
Testtechniken-Praktikum WS 2005/06 1 Testgetriebene Entwicklung Andreas Höfer Dr. Matthias Müller mit Beiträgen von Johannes Link.
Kognition (Humberto Maturana; Francesco Varela, 1993) Santiago-Theorie nach Santiago de Chile , dem Wohnort von M. und V. traditionell: Erkennen von.
Studiengang Informatik FHDW
Plugin Design Patterns in
Klaus Woltron © 2007 Klaus Woltron © 2007 Klaus Woltron Folie1 auf vier Jahr- zehnte Eine Rück- schau Wie lern- fähig sind wir?
Rational Unified Process
Hütter Immobilien Tag Baugebiete in Georgsmarienhütte Herbert Reinersmann Stadt GM-Hütte / Christian Meyer NLG.
Referat „Extreme Programming“
Agile Softwareentwicklung
Unit Testing Universität zu Köln Historisch-kulturwissenschaftliche Informationsverarbeitung Planung von Softwareprojekten WS 2014/15 Christoph Stollwerk.
SE2 Projekt Präsentation Wolf, Juchli, Charriere, Leutenegger.
OOSE nach Jacobson Sebastian Pohl/ST7 Betreuer: Prof. Dr. Kahlbrandt.
Test-Driven Development
Seminar: Software-Architektur Einführender Vortrag
XML Seminar: XP und XML 1 XP and XML Gregor Zeitlinger.
Software - Testung ETIS SS05.

Strategy Pattern Teachlet Autor: Sven Wende Replay durch Stephan Schwake Konzepte objektorientierter Programmiersprachen, SS 2006.
XML-basierte Beschreibungssprachen für grafische Benutzerschnittstellen Seminarvortrag im Studiengang „Scientific Programming“ von Steffen Richter.
Gewachsene Architektur Das kann nicht funktionieren!
 Präsentation transkript:

Horw Präsentation Themenarbeit SWE Wyder Aaron Studiengang Informatik SS Semester Juni 2008 Ist Design tot? Evolutionäre Softwarearchitektur in der Praxis

Folie2, 24. Juni 2008 Inhalt 1)Einleitung Ziele der Themenarbeit 2)Design Strategien Geplantes Design Evolutionäres Design 3)Design / Architektur in XP Allgemein Enabling Practices / Exploitation Practices Test und fortlaufende Integration Refactoring Simplicity als Prinzip 4)Geplantes vs. Evolutionäres Design 5)Fazit 6)Quellen 7)Fragen

Folie3, 24. Juni ) Einleitung -Untersuchung von evolutionärem Software Design Kann sowas funktionieren? Wie erreicht man sowas? Ist evolutionäres Design des Teufels? Vor- und Nachteile Eigene Meinung -Evolutionäres Design anhand von XP -Warum sind Verfechter klassischen und evolutionären Designs keine Freunde? -Gegenüberstellung von evolutionärem und geplantem Design

Folie4, 24. Juni ) Design Strategien -2 Design Strategien nach Martin Fowler -Geplantes Design Big Design Up Front (BDUF) Hohe Abstraktionsebene beim Design Erst Planung, dann Implementation Extensives Requirementsengineering Ziel: Ad-hoc Entscheidungen vermeiden -Evolutionäres Design Design evolviert mit der Implementation Nicht alle Design Entscheidungen zu Projektbeginn  Einfachheit Starke Priorisierung der Funktionalität bzw. Anforderungen “Änderungen willkommen” Enabling und Exploitation Practices Keine übermässigen Kosten zu Projektbeginn

Folie5, 24. Juni ) Design / Architektur in XP (Allgemein) -Design / Architektur findet an anderer Stelle statt -Metapher modelliert System -Detailliertes Design zum Implementationszeitpunkt -Eigenverantwortung der Programmierer -Einsatz von Design Patterns -Test First Prinzip -Nach Fowler: Möglichkeit des Programmierens ohne Design Daraus resultiert ein Fehlschlag Code Komplexität als Metrik Enabling und Exploitation Practices Grobarchitektur zu Projektbeginn

Folie6, 24. Juni ) Design / Architektur in XP (Enabling/Exploitation) -Unterscheidung von Enabling und Exploitation Practices -Ohne Enabling Practices keine Exploitation Practices -Fehlschlag -Enabling Practices erlauben eine Abflachung der Kostenkurve

Folie7, 24. Juni ) Design / Architektur in XP (Testing/Integration) -Test, Fortlaufende Integration, Refactoring als wichtigste Enabling Practices -Automatisiertes Testing (JUnit) -Vor Implementation Testfälle schreiben -Testfälle sollten möglichst viele Szenarien beinhalten die unter Umständen schief gehen könnten -Nachdem Code lauffähig  Integration (min. 1 x tägl.) -Korrekturen bis alle Tests erfolgreich -Ansonsten entfernen der Änderungen -Evtl. Code ganz neu schreiben

Folie8, 24. Juni ) Design / Architektur in XP (Refactoring) -“Refaktorisieren ist der Prozess, ein Software System so zu verändern, dass das externe Verhalten nicht geändert wird, der Code aber eine bessere interne Struktur erhält” (Martin Fowler) -Effizientes und kontrolliertes Aufräumen -Designänderung nach Implementation -Unterstützung durch IDE -Wahrscheinlichkeit neue Fehler einzuschleppen minimieren -“Bad Smells” zum Erkennen wann ein Refactoring angebracht ist

Folie9, 24. Juni ) Design / Architektur in XP (Simplicity) -Implementation so einfach wie möglich Verständlichkeit des Codes Simples System ist einfacher zu analysieren / ändern Zeitdruck -YAGNI (You Aren’t Going To Need It) -Keine Implementation falscher Anforderungen -Kein Planungsaufwand für nicht Benötigtes -Änderungen durch Refactoring Ermöglicht durch Abgeflachte Kostenkurve Funktioniert nur unter Verwendung der Enabling Practices

Folie 4) Geplantes vs. Evolutionäres Design Geplant -Grosse Kosten zu Beginn -Vorausplanung -Anforderungen -Flexibilität bei Änderung -Software Architekten Evolutionär -Code and Fix -Dokumentation -Kunde als Teammitglied -Kleinste geschäftlich sinnvolle Lösung -Metapher -Irreversibility

Folie11, 24. Juni ) Fazit -Design ist nicht tot (auch nicht bei XP) -Geschieht an anderer Stelle -Design als Teil der Implementation -Beachtung und Einsatz der Enabling und Exploitation Practices -Design wächst beinahe immer (gewollt oder ungewollt) evolutionär -XP bietet Rahmen um Evolution kontrolliert zu ermöglichen -Keine Ideallösung -> Kompromiss aus beiden Strategien je nach individuellen Projektanforderungen

Folie12, 24. Juni ) Quellen -[Beck01]; Beck, Kent; Extreme Programming – Das Manifest; 2003; Addison-Wesley -[Fowler01]; Fowler, Martin; Refactoring; 2005; Addison- Wesley -[Fowler02]; Fowler, Martin; Is Design dead?; 2004;

Folie13, 24. Juni ) Fragen -Da fragt man sich…