Konzeption eines Qualit£¤tsmanagement-Werkzeuges f£¼r die ... MAVEN ¢â‚¬¢Build ¢â‚¬¢ mvn package ¢â‚¬¢Maven

  • View
    1

  • Download
    0

Embed Size (px)

Text of Konzeption eines Qualit£¤tsmanagement-Werkzeuges f£¼r die ... MAVEN...

  • 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