Click here to load reader
View
1
Download
0
Embed Size (px)
SWAR #10
Felix Hohlwegler – WS1920
Wiederholung
Felix Hohlwegler – WS1920
Fassade Pattern
• verbirgt die Komplexität des Systems
• bietet Schnittstelle zum Client
• Strukturmuster
• fügt eine Schnittstelle zu einem bestehenden System hinzu
• eine einzige Klasse wird hinzugefügt
• stellt vereinfachte Methoden bereit
Felix Hohlwegler – WS1920
Fassade Pattern
https://www.tutorialspoint.com/design_pattern/facade_pattern.htm
Felix Hohlwegler – WS1920
https://www.tutorialspoint.com/design_pattern/facade_pattern.htm
Fassade Pattern
• Step3 → Fassade
Felix Hohlwegler – WS1920
Strategy Pattern
• Klassenverhalten oder Algorithmus kann zur Laufzeit geändert werden
• Objekte repräsentieren verschiedene Strategien
• Kontextobjekt ändert sein Verhalten je nach Strategieobjekt
• Strategieobjekt ändert den Ausführungsalgorithmus des Kontextobjekts
Felix Hohlwegler – WS1920
Strategy Pattern
https://www.tutorialspoint.com/design_pattern/strategy_pattern.htm
Felix Hohlwegler – WS1920
https://www.tutorialspoint.com/design_pattern/strategy_pattern.htm
Strategy Pattern
• Step 3: Context
Felix Hohlwegler – WS1920
Adapter Pattern
• Brücke zwischen zwei inkompatiblen Schnittstellen
• Strukturmuster
• Es gibt eine einzige Klasse, welche die Funktionalitäten unabhängiger oder
inkompatibler Schnittstellen verbindet.
Felix Hohlwegler – WS1920
Adapter Pattern
https://www.tutorialspoint.com/design_pattern/adapter_pattern.htm
Felix Hohlwegler – WS1920
https://www.tutorialspoint.com/design_pattern/adapter_pattern.htm
Adapter Pattern
• Step 3 → Adapter Class
Felix Hohlwegler – WS1920
Tempo der Softwareentwicklung
• Desktop Anwendungen
• Office Suites, Browser, IDEs, Tools etc.
• Releases im Bereich von 0.5 – 3 Jahren
• Release Trains, fixe Release Zeitpunkte, z.B.: alle 12 Monate
• Mobile Applications
• Whatsapp, Instagram
• automatische Updates
• Release alle paar Tage (Maximal 1-3 Monate)
Felix Hohlwegler – WS1920
Tempo der Softwareentwicklung
• Release Train
Ein Software-Release-Zug ist eine
Form eines Software-Release-
Zeitplans, in dem eine Reihe
verschiedener Serien von
versionierten Software-Releases für
mehrere Produkte als eine Anzahl
verschiedener "Züge" in
regelmäßigen Abständen
veröffentlicht werden. Wikipedia
https://www.google.com/search?q=release+trains&safe=off&source=lnms&tbm=isch&sa=X&ved=0ahU KEwjJyMmJt57iAhXC8qYKHWkpCXoQ_AUIDigB#imgrc=hZ75ys37WfHpXM:
Felix Hohlwegler – WS1920
https://en.wikipedia.org/wiki/Software_release_train https://www.google.com/search?q=release+trains&safe=off&source=lnms&tbm=isch&sa=X&ved=0ahUKEwjJyMmJt57iAhXC8qYKHWkpCXoQ_AUIDigB#imgrc=hZ75ys37WfHpXM:
Fehlerbehebungskosten
Felix Hohlwegler – WS1920
Anforderungen an den SW-Entwicklungsprozess
• kleine Teams
• Agile Entwicklung
• Testgetriebene Entwicklung
• Komponentenbasierte Architektur
• passende zugrundeliegende Architektur -> Gute Architektur ;)
• wenig Abhängigkeiten
• innerhalb der Applikation
• zu 3rd Party SW/Libs/Hardware
Felix Hohlwegler – WS1920
Continuous Integration
• Was ist Continuous Integration ?
• kontinuierliches Zusammenfügen von Komponenten einer Anwendung
• kontinuierliche Integration von Softwarekomponenten in die Gesamtcode-
Basis eines Programms
• Was ist das Ziel von CI?
• Steigerung der Softwarequalität
Felix Hohlwegler – WS1920
Continuous Integration
• Typische Tätigen beim CI?
• Build Prozesse
• Linking Prozesse
• beliebige andere Prozesse
• komplettes „Bauen“ einer Applikation
• automatisierte Tests
• Softwaremetriken erfassen
Felix Hohlwegler – WS1920
Themenblock 10
Felix Hohlwegler – WS1920
Ziele
• Sie wissen was Continuous Integration ist
• Sie wissen was Continuous Deployment ist
• Sie wissen was Continuous Delivery ist
• Sie wissen was ein Build Management ist
• Sie kennen CI Tools
Felix Hohlwegler – WS1920
Continuous Integration
Felix Hohlwegler – WS1920
Continuous Integration
• Typische Kombinationen?
• Nightly Build (Vorstufe des CI)
• Merge in Branch der Versionsverwaltung
Felix Hohlwegler – WS1920
Continuous Integration
• wird üblicherweise als Pipeline bezeichnet
• Prozesse werden sequentiell abgearbeitet
• Geschwindigkeit
• CI geht in der Regel sehr schnell, max. 5 min
• Entwickler erhält sehr schnell Feedback, ob die Qualitätsansprüche
erreicht wurden
Felix Hohlwegler – WS1920
Continuous Integration
• Grundsätze von CI
• gemeinsame Codebase
• sinnvolle Integration nur mit Versionsverwaltung möglich
• kontinuierliches committen
• automatischer Build
• automatisches compilen der Applikation
Felix Hohlwegler – WS1920
Continuous Integration
• Grundsätze von CI
• kontinuierliche Test-Entwicklung
• vor oder zumindest zeitgleiche Test-Implementierung
• getrennte Test-Umgebung
• kontinuierliche Integration
• Entwickler muss Code häufig ins Gesamte integrieren
• reduziert Risiko fehlgeschlagener Integrationen
• sichert Arbeitsfortschritt
Felix Hohlwegler – WS1920
Continuous Integration
• Grundsätze von CI
• Integration in Haupt-Branch
• sollte häufig durchgeführt werden
• Tests müssen getriggert werden
• gespiegelte Produktionsumgebung
• Integrationstest in Spiegelsystem des Live-Systems
• einfacher Zugriff
• auch Nicht-Entwickler brauchen einfachen Zugriff auf Test-Systeme
und Test-Ergebnisse
Felix Hohlwegler – WS1920
Continuous Integration
• Grundsätze von CI
• automatisches Reporting
• Ergebnisse der Integrationstests müssen einfach zugänglich sein
• automatisches Verteilen der Ergebnisse
• automatische Verteilung
• Deployment auf Dev/Test/Live-System muss automatisch
erfolgen
Felix Hohlwegler – WS1920
Continuous Integration
• Vorteile von CI
• Integrationsprobleme werden schnell erkannt und früh behoben
• frühe Warnung bei nicht zusammenpassenden „Teilen“
• ständige Verfügbarkeit eines laufenden Systems
• generelle Zeitersparnis
Felix Hohlwegler – WS1920
Continuous Integration
• Typische
Schritte
https://www.silverstripe.org/blog/developers-how-we-use-continuous-integration-at-silverstripe/
Felix Hohlwegler – WS1920
https://www.silverstripe.org/blog/developers-how-we-use-continuous-integration-at-silverstripe/
Continuous Integration
https://www.fpcomplete.com/hubfs/Blog/DevOps%20Infinity%20-%20Small%20Cropped.jpg
Felix Hohlwegler – WS1920
https://www.fpcomplete.com/hubfs/Blog/DevOps%20Infinity%20-%20Small%20Cropped.jpg
Continuous Integration
• Tools
• TeamCity (IDEA) / frei bis 100 Buildkonfigurationen
• AWS CodePipeline
• Bamboo (Atlassian)
• Travis CI / oldest solution
• Gitlab CI
• CodeShift
• Hudson • Kohsuke Kawaguchi, Sun, Oracle / Opensource
• Jenkins • Fork von Hudson / OpenSource Kohsuke Kawaguchi
Felix Hohlwegler – WS1920
Continuous Integration
• Jenkins vs. Hudson
Source: http://blog.cloudbees.com/2011/10/jenkins-safe-and-sensible-choice-for-ci.html
Felix Hohlwegler – WS1920
Jenkins
• CI Build Server
• läuft in einem Servlet Container (z.B. Tomcat)
• Plugin-Server
• über 600 Plugins verfügbar
• Version Control
• Build Tools
• Bug Databases
• Metric Tools
• Report Gen
Felix Hohlwegler – WS1920
Jenkins
Felix Hohlwegler – WS1920
Jenkins
Felix Hohlwegler – WS1920
Jenkins
Felix Hohlwegler – WS1920
AWS CodePipeline
• CI Build Server
• AWS CodePipeline ist ein vollständig verwalteter Continuous Delivery-Service, mit dem Sie Ihre
Veröffentlichungs-Pipelines für schnelle und zuverlässige Updates von Anwendungen und