SlideShare une entreprise Scribd logo
1  sur  41
Télécharger pour lire hors ligne
Software Design
und Design Patterns
FIO SYSTEMS AG®
Gliederung
•Gutes Design
•Typische Designprobleme
•Software-Wartung
•Schichtenarchitektur
•Architektur-Patterns
•Übergreifende Patterns
•Aufgabenstellung
Was ist gutes Design?
•Einfach
•Modular
•Gekapselt
•Erweiterbar
•Stabil
•Zweckmäßig
Typische Probleme
•Frontend == Anwendung
•Prozeduraler Code
•Code Duplication
•Architektur, die nicht zum Problem passt
•Pattern madness
•Design for the unpredictable
Typische Probleme
●
Untestbar / keine Unit-Tests
●
Spaghetti-Code
Folge:
●
hohe Wartungs- und Pflegekosten
●
ineffektive Erweiterungen
●
hohe Fehlerquote
●
Demotivation
●
Enge Kopplung
Praxisbeispiel Wartung
(stark vereinfacht)
•FIOPORT Vermarktung
•Grobkonzept 2003, 35 Seiten
•Entwicklungszeit: 1 Jahr, 5 Entwickler
•Wartungszeit: 9 Jahre, Wartung und Erweiterung durch
mittlerweile 10 Entwickler
Erstellung vs. Wartung / Pflege
Erstellung
Wartung / Pflege
2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013
0
1
2
3
4
5
6
7
8
9
10
Entwickler
Praxisbeispiel Wartung
Praxisbeispiel Wartung 2
(stark vereinfacht)
•FIOPORT Account
•Grobkonzept 2003
•Entwicklungszeit: 4 Monate, 1 Entwicklerin
•Wartungszeit: 9 Jahre, Wartung und Erweiterung durch
mittlerweile 8 Entwickler
Erstellung vs. Wartung / Pflege
Erstellung
Wartung / Pflege
Praxisbeispiel Wartung 2
2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013
0
1
2
3
4
5
6
7
8
Entwickler
Schichtenarchitektur
Schichtenarchitektur
Schichtenarchitektur
Dependency Inversion
•Abhängigkeit Frontend → … → Backend erscheint
natürlich
•Dadurch haben Änderungen in niederen Schichten
jedoch Auswirkungen auf alles darüber
•Außerdem erschwert eine solche Architektur die
Wiederverwendung
Dependency Inversion Principle
Formuliert von Robert C. Martin, 1996:
A. High-level modules should not depend on low-level
modules. Both should depend on abstractions.
B. Abstractions should not depend upon details. Details should
depend upon abstractions.
Architektur-Patterns
•Frontend Patterns
●
MVC
●
Front Controller
●
Page Controller
●
MVP
•BLL-Patterns
●
Service Layer
●
Domain Model
•DAL-Patterns
●
Repository
●
Data Mapper
●
Active Record
Frontend-Patterns - MVC
Frontend-Patterns - FC
Frontend-Patterns - FC
Code
Frontend-Patterns - PC
Frontend-Patterns - MVP
Frontend-Patterns - MVP
Code
BLL-Patterns – Service Layer
BLL-Patterns – Service Layer 2
BLL-Patterns – Domain Model
DAL-Patterns – Repository
DAL-Patterns – Data Mapper
DAL-Patterns – Active Record
@products = Product.all
@product = Product.find(params[:id])
@product = Product.new
Übergreifende Patterns
•Value Object
•Data Transfer Object
•Factory
•Singleton
•Observer
•Facade
•Proxy
Value Object
Data Transfer Object
Factory
Singleton
Observer
Facade
Proxy
Zusammenfassung
•einfaches Design, bereit für geplante Anforderungen
•Dependencies planen – Interfaces verwenden
•Unit-Tests als Absicherung für Umbauten
•Wartungskosten minimieren durch Investition in gute
Architektur-Planung am Projektanfang
•Bei bestehendem Code – schrittweise umstellen
Denn: Änderungen werden kommen!
Aufgabe
•Erstellen einer Web-Anwendung für das fiktive
Maklerbüro “Alt & Schimmel GmbH” unter Verwendung
von mind. 3 Patterns
•Seite für Kunden mit aktuellen Angeboten
•Seiten für Händler zur Pflege der Angebote
•Architekturdiagramm
•Beliebige Programmiersprache
•Vorstellung der Patterns mit Begründung
Quellen, Lesetipps
•Wikipedia (de, en)
•Martin Fowler “Patterns of Enterprise Application
Architecture”
•Eric Evans “Domain Driven Design”
•http://www.oodesign.com
•"Design Patterns. Elements of Reusable Object-Oriented
Software" Erich Gamma, Richard Helm, Ralph Johnson
und John Vlissides
Fragen?
(Spätere Fragen einfach per E-Mail an die Adresse auf der Veranstaltungswebsite schicken!)
Vielen Dank!
www.fio.de

Contenu connexe

En vedette

C'è un ragazzo che mi piace
C'è un ragazzo che mi piaceC'è un ragazzo che mi piace
C'è un ragazzo che mi piace
Maruzells zells
 
Sîrchle lokal new
Sîrchle lokal newSîrchle lokal new
Sîrchle lokal new
Daneli7
 
Irish National Strategic Research (INSTAR) programme findings from the first...
Irish National Strategic Research (INSTAR) programme  findings from the first...Irish National Strategic Research (INSTAR) programme  findings from the first...
Irish National Strategic Research (INSTAR) programme findings from the first...
Robert M Chapple
 
Modelo ontologico de muebles
Modelo ontologico de mueblesModelo ontologico de muebles
Modelo ontologico de muebles
riboo1973
 
Primer gobierno de yrigoyen
Primer gobierno de yrigoyenPrimer gobierno de yrigoyen
Primer gobierno de yrigoyen
Fede Gomez
 

En vedette (20)

C'è un ragazzo che mi piace
C'è un ragazzo che mi piaceC'è un ragazzo che mi piace
C'è un ragazzo che mi piace
 
Going Mobile in the Retail Environment
Going Mobile in the Retail EnvironmentGoing Mobile in the Retail Environment
Going Mobile in the Retail Environment
 
iPhone + Botnets = Fun
iPhone + Botnets = FuniPhone + Botnets = Fun
iPhone + Botnets = Fun
 
Sîrchle lokal new
Sîrchle lokal newSîrchle lokal new
Sîrchle lokal new
 
Irish National Strategic Research (INSTAR) programme findings from the first...
Irish National Strategic Research (INSTAR) programme  findings from the first...Irish National Strategic Research (INSTAR) programme  findings from the first...
Irish National Strategic Research (INSTAR) programme findings from the first...
 
Panel de Emprendedores YUZZ Alicante
Panel de Emprendedores YUZZ AlicantePanel de Emprendedores YUZZ Alicante
Panel de Emprendedores YUZZ Alicante
 
Modelo ontologico de muebles
Modelo ontologico de mueblesModelo ontologico de muebles
Modelo ontologico de muebles
 
Wiederherstellung von Daten im Rechenzentrum - OPITZ CONSULTING - Andreas Rei...
Wiederherstellung von Daten im Rechenzentrum - OPITZ CONSULTING - Andreas Rei...Wiederherstellung von Daten im Rechenzentrum - OPITZ CONSULTING - Andreas Rei...
Wiederherstellung von Daten im Rechenzentrum - OPITZ CONSULTING - Andreas Rei...
 
Tango cambalache 2011
Tango cambalache  2011Tango cambalache  2011
Tango cambalache 2011
 
Itinerari Literari per La Mar De La Frau
Itinerari Literari per La Mar De La FrauItinerari Literari per La Mar De La Frau
Itinerari Literari per La Mar De La Frau
 
SharePoint Designer 2013 Workflows - SP Intersection
SharePoint Designer 2013 Workflows - SP IntersectionSharePoint Designer 2013 Workflows - SP Intersection
SharePoint Designer 2013 Workflows - SP Intersection
 
Proyecto para las actuaciones ambientales en la explotación de la estación de...
Proyecto para las actuaciones ambientales en la explotación de la estación de...Proyecto para las actuaciones ambientales en la explotación de la estación de...
Proyecto para las actuaciones ambientales en la explotación de la estación de...
 
Six sigma-black-belt-project-sample
Six sigma-black-belt-project-sampleSix sigma-black-belt-project-sample
Six sigma-black-belt-project-sample
 
Primer gobierno de yrigoyen
Primer gobierno de yrigoyenPrimer gobierno de yrigoyen
Primer gobierno de yrigoyen
 
MLA
MLAMLA
MLA
 
Intergen Think! Seminar: Assesing your fit for ERP cloud
Intergen Think! Seminar: Assesing your fit for ERP cloudIntergen Think! Seminar: Assesing your fit for ERP cloud
Intergen Think! Seminar: Assesing your fit for ERP cloud
 
Investigación derecho
Investigación derechoInvestigación derecho
Investigación derecho
 
m-Station Channel Xpander5 020325
m-Station Channel Xpander5 020325m-Station Channel Xpander5 020325
m-Station Channel Xpander5 020325
 
Alexandre Knight: Digital Strategy at AXA
Alexandre Knight: Digital Strategy at AXA  Alexandre Knight: Digital Strategy at AXA
Alexandre Knight: Digital Strategy at AXA
 
Information santé & Solutions digitales - MediQual Research - Janvier 2013
Information santé & Solutions digitales - MediQual Research - Janvier 2013Information santé & Solutions digitales - MediQual Research - Janvier 2013
Information santé & Solutions digitales - MediQual Research - Janvier 2013
 

Similaire à Ringvorlesung: FIO Systems AG stellt Projektziel zum Thema Software Design Patterns vor

AdminCamp 2014: Quo Vadis – Wohin mit IBM Notes/Domino?
AdminCamp 2014: Quo Vadis – Wohin mit IBM Notes/Domino?AdminCamp 2014: Quo Vadis – Wohin mit IBM Notes/Domino?
AdminCamp 2014: Quo Vadis – Wohin mit IBM Notes/Domino?
panagenda
 
Einführung Vorgehensmodelle und Agile Software Entwicklung
Einführung Vorgehensmodelle und Agile Software EntwicklungEinführung Vorgehensmodelle und Agile Software Entwicklung
Einführung Vorgehensmodelle und Agile Software Entwicklung
Christian Baranowski
 
2023-08_RPA-ChapterEvent_Überprüfung-der-Codequalität
2023-08_RPA-ChapterEvent_Überprüfung-der-Codequalität2023-08_RPA-ChapterEvent_Überprüfung-der-Codequalität
2023-08_RPA-ChapterEvent_Überprüfung-der-Codequalität
FotiosKaramitsos
 

Similaire à Ringvorlesung: FIO Systems AG stellt Projektziel zum Thema Software Design Patterns vor (20)

Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...
Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...
Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...
 
CodeFluent Entities and AppSofa
CodeFluent Entities and AppSofaCodeFluent Entities and AppSofa
CodeFluent Entities and AppSofa
 
AdminCamp2017 - ApplicationInsights
AdminCamp2017 - ApplicationInsightsAdminCamp2017 - ApplicationInsights
AdminCamp2017 - ApplicationInsights
 
AdminCamp 2014: Quo Vadis – Wohin mit IBM Notes/Domino?
AdminCamp 2014: Quo Vadis – Wohin mit IBM Notes/Domino?AdminCamp 2014: Quo Vadis – Wohin mit IBM Notes/Domino?
AdminCamp 2014: Quo Vadis – Wohin mit IBM Notes/Domino?
 
Serverless Application Framework
Serverless Application FrameworkServerless Application Framework
Serverless Application Framework
 
Nefos: Nefos Mobile iPad App
Nefos: Nefos Mobile iPad AppNefos: Nefos Mobile iPad App
Nefos: Nefos Mobile iPad App
 
CCD 2013: JIRA goes i18n
CCD 2013: JIRA goes i18nCCD 2013: JIRA goes i18n
CCD 2013: JIRA goes i18n
 
Zurück in die Zukunft - DNUG 2014 - Track 5.2
Zurück in die Zukunft - DNUG 2014 - Track 5.2Zurück in die Zukunft - DNUG 2014 - Track 5.2
Zurück in die Zukunft - DNUG 2014 - Track 5.2
 
Grails im Überblick und in der Praxis
Grails im Überblick und in der PraxisGrails im Überblick und in der Praxis
Grails im Überblick und in der Praxis
 
Roslyn DDC Kompakt 2014
Roslyn DDC Kompakt 2014Roslyn DDC Kompakt 2014
Roslyn DDC Kompakt 2014
 
PLM Open Hours - Softwareentwicklung im Innovationsprozess
PLM Open Hours - Softwareentwicklung im InnovationsprozessPLM Open Hours - Softwareentwicklung im Innovationsprozess
PLM Open Hours - Softwareentwicklung im Innovationsprozess
 
Von Windows Forms zu Web Components: robuste und flexible User Experience mit...
Von Windows Forms zu Web Components: robuste und flexible User Experience mit...Von Windows Forms zu Web Components: robuste und flexible User Experience mit...
Von Windows Forms zu Web Components: robuste und flexible User Experience mit...
 
Einführung Vorgehensmodelle und Agile Software Entwicklung
Einführung Vorgehensmodelle und Agile Software EntwicklungEinführung Vorgehensmodelle und Agile Software Entwicklung
Einführung Vorgehensmodelle und Agile Software Entwicklung
 
2023-08_RPA-ChapterEvent_Überprüfung-der-Codequalität
2023-08_RPA-ChapterEvent_Überprüfung-der-Codequalität2023-08_RPA-ChapterEvent_Überprüfung-der-Codequalität
2023-08_RPA-ChapterEvent_Überprüfung-der-Codequalität
 
Frontend Development für Backend Developer
Frontend Development für Backend DeveloperFrontend Development für Backend Developer
Frontend Development für Backend Developer
 
30. Treffen der .NET User Group Rhein-Neckar mit Constantin Klein - „Bekommen...
30. Treffen der .NET User Group Rhein-Neckar mit Constantin Klein - „Bekommen...30. Treffen der .NET User Group Rhein-Neckar mit Constantin Klein - „Bekommen...
30. Treffen der .NET User Group Rhein-Neckar mit Constantin Klein - „Bekommen...
 
Modell der Zusammenarbeit. Migration von Progress 4GL nach C#.NET
Modell der Zusammenarbeit. Migration von Progress 4GL nach C#.NET Modell der Zusammenarbeit. Migration von Progress 4GL nach C#.NET
Modell der Zusammenarbeit. Migration von Progress 4GL nach C#.NET
 
JavaScript und trotzdem Softwerker
JavaScript und trotzdem SoftwerkerJavaScript und trotzdem Softwerker
JavaScript und trotzdem Softwerker
 
DACHNUG50 Erfolgreiche Digitalisierung Notes Anwendungen mit Low Code L”sung ...
DACHNUG50 Erfolgreiche Digitalisierung Notes Anwendungen mit Low Code L”sung ...DACHNUG50 Erfolgreiche Digitalisierung Notes Anwendungen mit Low Code L”sung ...
DACHNUG50 Erfolgreiche Digitalisierung Notes Anwendungen mit Low Code L”sung ...
 
Citrix Day 2014: APPDNA
Citrix Day 2014: APPDNACitrix Day 2014: APPDNA
Citrix Day 2014: APPDNA
 

Plus de Community ITmitte.de

Silicon saxony zff führungs- und organisationskultur
Silicon saxony   zff führungs- und organisationskulturSilicon saxony   zff führungs- und organisationskultur
Silicon saxony zff führungs- und organisationskultur
Community ITmitte.de
 
Personaltrends 2014 Mitteldeutschland Themen AK Personalentwicklung Silicon...
Personaltrends 2014 Mitteldeutschland   Themen AK Personalentwicklung Silicon...Personaltrends 2014 Mitteldeutschland   Themen AK Personalentwicklung Silicon...
Personaltrends 2014 Mitteldeutschland Themen AK Personalentwicklung Silicon...
Community ITmitte.de
 
31. Community Training von ITmitte und OFFICEmitte
31. Community Training von ITmitte und OFFICEmitte31. Community Training von ITmitte und OFFICEmitte
31. Community Training von ITmitte und OFFICEmitte
Community ITmitte.de
 
31. Community Training ITmitte und OFFICEmitte
31. Community Training ITmitte und OFFICEmitte31. Community Training ITmitte und OFFICEmitte
31. Community Training ITmitte und OFFICEmitte
Community ITmitte.de
 
Vorstellung der Aufgabenstellung der lpa GmbH im Rahmen der Ringvorlesung
Vorstellung der Aufgabenstellung der lpa GmbH im Rahmen der RingvorlesungVorstellung der Aufgabenstellung der lpa GmbH im Rahmen der Ringvorlesung
Vorstellung der Aufgabenstellung der lpa GmbH im Rahmen der Ringvorlesung
Community ITmitte.de
 

Plus de Community ITmitte.de (20)

IT-Ringvorlesung - Ein Projekt von ITmitte mit der Uni Leipzig
IT-Ringvorlesung - Ein Projekt von ITmitte mit der Uni LeipzigIT-Ringvorlesung - Ein Projekt von ITmitte mit der Uni Leipzig
IT-Ringvorlesung - Ein Projekt von ITmitte mit der Uni Leipzig
 
34. Open Network *mitte
34. Open Network *mitte34. Open Network *mitte
34. Open Network *mitte
 
IT-Ringvorlesung
IT-RingvorlesungIT-Ringvorlesung
IT-Ringvorlesung
 
Silicon saxony zff führungs- und organisationskultur
Silicon saxony   zff führungs- und organisationskulturSilicon saxony   zff führungs- und organisationskultur
Silicon saxony zff führungs- und organisationskultur
 
Personaltrends 2014 Mitteldeutschland Themen AK Personalentwicklung Silicon...
Personaltrends 2014 Mitteldeutschland   Themen AK Personalentwicklung Silicon...Personaltrends 2014 Mitteldeutschland   Themen AK Personalentwicklung Silicon...
Personaltrends 2014 Mitteldeutschland Themen AK Personalentwicklung Silicon...
 
33. Community Training
33. Community Training33. Community Training
33. Community Training
 
31. Community Training von ITmitte und OFFICEmitte
31. Community Training von ITmitte und OFFICEmitte31. Community Training von ITmitte und OFFICEmitte
31. Community Training von ITmitte und OFFICEmitte
 
31. Community Training ITmitte und OFFICEmitte
31. Community Training ITmitte und OFFICEmitte31. Community Training ITmitte und OFFICEmitte
31. Community Training ITmitte und OFFICEmitte
 
28. OpenNetwork Event 2013
28. OpenNetwork Event 201328. OpenNetwork Event 2013
28. OpenNetwork Event 2013
 
29. OpenNetwork Event, Präsentation Absolventenmesse Mitteldeutschland
29. OpenNetwork Event, Präsentation Absolventenmesse Mitteldeutschland29. OpenNetwork Event, Präsentation Absolventenmesse Mitteldeutschland
29. OpenNetwork Event, Präsentation Absolventenmesse Mitteldeutschland
 
29. OpenNetwork Event, Präsentation leipzig school of media
29. OpenNetwork Event, Präsentation leipzig school of media29. OpenNetwork Event, Präsentation leipzig school of media
29. OpenNetwork Event, Präsentation leipzig school of media
 
29. OpenNetwork Event, Initiative "Faire-Karriere"
29. OpenNetwork Event, Initiative "Faire-Karriere"29. OpenNetwork Event, Initiative "Faire-Karriere"
29. OpenNetwork Event, Initiative "Faire-Karriere"
 
29. OpenNetwork Event, kanaleo.de
29. OpenNetwork Event, kanaleo.de29. OpenNetwork Event, kanaleo.de
29. OpenNetwork Event, kanaleo.de
 
DataHaptics GmbH stellt ihr Projekt aus dem Bereich Online Marketing in Ringv...
DataHaptics GmbH stellt ihr Projekt aus dem Bereich Online Marketing in Ringv...DataHaptics GmbH stellt ihr Projekt aus dem Bereich Online Marketing in Ringv...
DataHaptics GmbH stellt ihr Projekt aus dem Bereich Online Marketing in Ringv...
 
Vorstellung der Aufgabenstellung der lpa GmbH im Rahmen der Ringvorlesung
Vorstellung der Aufgabenstellung der lpa GmbH im Rahmen der RingvorlesungVorstellung der Aufgabenstellung der lpa GmbH im Rahmen der Ringvorlesung
Vorstellung der Aufgabenstellung der lpa GmbH im Rahmen der Ringvorlesung
 
Kickoff Präsentation Ringvorlesung ITmitte.de Sommersemester 2013 Universität...
Kickoff Präsentation Ringvorlesung ITmitte.de Sommersemester 2013 Universität...Kickoff Präsentation Ringvorlesung ITmitte.de Sommersemester 2013 Universität...
Kickoff Präsentation Ringvorlesung ITmitte.de Sommersemester 2013 Universität...
 
Vorstellung der Aufgabenstellung der Adyton Systems AG im Rahmen der Ringvorl...
Vorstellung der Aufgabenstellung der Adyton Systems AG im Rahmen der Ringvorl...Vorstellung der Aufgabenstellung der Adyton Systems AG im Rahmen der Ringvorl...
Vorstellung der Aufgabenstellung der Adyton Systems AG im Rahmen der Ringvorl...
 
Vorstellung der Aufgabenstellung der lpa im Rahmen der Ringvorlesung ITmitte.de
Vorstellung der Aufgabenstellung der lpa im Rahmen der Ringvorlesung ITmitte.deVorstellung der Aufgabenstellung der lpa im Rahmen der Ringvorlesung ITmitte.de
Vorstellung der Aufgabenstellung der lpa im Rahmen der Ringvorlesung ITmitte.de
 
Ringvorlesung ITmitte.de : Vortrag der FIO SYSTEMS AG über Unit Tests und TDD
Ringvorlesung ITmitte.de : Vortrag der FIO SYSTEMS AG über Unit Tests und TDDRingvorlesung ITmitte.de : Vortrag der FIO SYSTEMS AG über Unit Tests und TDD
Ringvorlesung ITmitte.de : Vortrag der FIO SYSTEMS AG über Unit Tests und TDD
 
9. Community Training ITmitte.de - technische Weiterentwicklungen und Neuerun...
9. Community Training ITmitte.de - technische Weiterentwicklungen und Neuerun...9. Community Training ITmitte.de - technische Weiterentwicklungen und Neuerun...
9. Community Training ITmitte.de - technische Weiterentwicklungen und Neuerun...
 

Ringvorlesung: FIO Systems AG stellt Projektziel zum Thema Software Design Patterns vor