syst_11_codierung_3.ppt1 Systementwicklung Continuous Integration Prof. Dr.-Ing. Axel Benz, Berlin School of Economics and Law
syst_11_codierung_3.ppt2 Struktur der Softwareentwicklung AnalyseEntwurfImplementierungTest Papier-Prototypen Fragebögen Long Term Forecast Activity Analysis Try it yourself Card Sort Error Analysis Szenario Rollenspiel Konkurrenzanalyse 5 Mal warum? Vorgehensmodelle (V-Modell, Unified Process) Strategien zum Umgang mit Komplexität E/R-Modelle Objekt- orientierte Modellierung Architektur Schichten- modelle Design Pattern Programmierung Unit Tests... Black Box Test Zweig- abeckung Systemtest...
syst_11_codierung_3.ppt3 Ziele Alle Entwickler sind zeitnah über den Gesamtzustand des Projektes informiert. Spaghetti-Fehler werden schnell erkannt und lokalisiert. Alle Entwickler haben ein gutes Gefühl bei dem Projekt. Sicherheit, dass die Software die Anforderungen erfüllt.
Zum Thema Spaghetti prog_sammelfolie.pptm4 Man zieht hier Oh! hier bewegt sich was!
Spaghetti-Code ohne Spaghetti prog_sammelfolie.pptm5 Man ändert was hier Oh! hier geht was nicht mehr!
syst_11_codierung_3.ppt6 Prinzipien des Continuous Integration Quelle aller Information: -Maintain a Single Source Repository.Maintain a Single Source Repository. -Automate the BuildAutomate the Build -Make Your Build Self-TestingMake Your Build Self-Testing -Everyone Commits To the Mainline Every DayEveryone Commits To the Mainline Every Day -Every Commit Should Build the Mainline on an Integration MachineEvery Commit Should Build the Mainline on an Integration Machine -Keep the Build FastKeep the Build Fast -Test in a Clone of the Production EnvironmentTest in a Clone of the Production Environment -Make it Easy for Anyone to Get the Latest ExecutableMake it Easy for Anyone to Get the Latest Executable -Everyone can see what's happeningEveryone can see what's happening -Automate DeploymentAutomate Deployment
syst_11_codierung_3.ppt7 Ci-Frameworks -Vereinfachen die Automatisierung durch Scripting -Stellen die Ergebnisse übersichtlich dar -Erlauben die regelmäßige, automatische Überwachung der Ergebnisse Beispiele: Continuum - ein Subprojekt des Apache Maven Projekts. Unterstützt Maven 1, Maven 2, Ant und Shell-Skripte. ContinuumApache Maven CruiseControl – ein Java-basiertes Framework für kontinuierliche Erstellungsprozesse, Derivate auch für.NET und Ruby CruiseControlJava.NETRuby Xinc – Continuous-Integration-Server für PHP-Anwendungen Xinc NabiCI - Lightweight Continuous Integration Framework für PHP- Projekte NabiCI
syst_11_codierung_3.ppt8 Beispiel Cruise Control -
syst_11_codierung_3.ppt9 Beispiel NabiCI s/Result/Result.php
Der Build bei Nabidoo: Checkout from SVN (Compilieren nicht notwendig) Alle Unit Tests Obfuscator (Code unlesbar machen) Alle Unit Tests auf obfuskierter Version Automatische Erstellung des Installationsmediums (zip-Datei) Automatische Installation Alle Unit Tests auf frisch installierter Version syst_11_codierung_3.ppt10
Überwachung bei NabiCI: Freies Website-Monitoring-Programm „SiteUP“ syst_11_codierung_3.ppt11
syst_11_codierung_3.ppt12 Jetzt geht’s los .... bis gleich