Philipp Schröter Fachbereich für Informatik · Ubuntu Testsystem Windows 7 Testsystem OS X...
Transcript of Philipp Schröter Fachbereich für Informatik · Ubuntu Testsystem Windows 7 Testsystem OS X...
![Page 1: Philipp Schröter Fachbereich für Informatik · Ubuntu Testsystem Windows 7 Testsystem OS X Testsystem Redmine . Continuous Integration im medizinischen Bereich, 14.03.2013 13 Continuous](https://reader033.fdocument.pub/reader033/viewer/2022060604/60588c7caf3ded64d175e7d9/html5/thumbnails/1.jpg)
Philipp Schröter
Fachbereich für Informatik
Continuous Integration im medizinischen Bereich, 14.03.2013
Continuous Integration im
medizinischen Bereich
Ein praktisches Beispiel
![Page 2: Philipp Schröter Fachbereich für Informatik · Ubuntu Testsystem Windows 7 Testsystem OS X Testsystem Redmine . Continuous Integration im medizinischen Bereich, 14.03.2013 13 Continuous](https://reader033.fdocument.pub/reader033/viewer/2022060604/60588c7caf3ded64d175e7d9/html5/thumbnails/2.jpg)
2
Gliederung
1. Einleitung
2. Relevanz im medizinischen Bereich
3. Continuous Integration
4. Continuous Integration System des BZMM
5. openOR Buildsystem
6. openOR Testsystem
7. Ergebnisse
8. Snapshot: Build Tool Chain
Continuous Integration im medizinischen Bereich, 14.03.2013
![Page 3: Philipp Schröter Fachbereich für Informatik · Ubuntu Testsystem Windows 7 Testsystem OS X Testsystem Redmine . Continuous Integration im medizinischen Bereich, 14.03.2013 13 Continuous](https://reader033.fdocument.pub/reader033/viewer/2022060604/60588c7caf3ded64d175e7d9/html5/thumbnails/3.jpg)
3 Continuous Integration im medizinischen Bereich, 14.03.2013
Gliederung
1. Einleitung
2. Relevanz im medizinischen Bereich
3. Continuous Integration
4. Continuous Integration System des BZMM
5. openOR Buildsystem
6. openOR Testsystem
7. Ergebnisse
8. Snapshot: Build Tool Chain
![Page 4: Philipp Schröter Fachbereich für Informatik · Ubuntu Testsystem Windows 7 Testsystem OS X Testsystem Redmine . Continuous Integration im medizinischen Bereich, 14.03.2013 13 Continuous](https://reader033.fdocument.pub/reader033/viewer/2022060604/60588c7caf3ded64d175e7d9/html5/thumbnails/4.jpg)
4 Continuous Integration im medizinischen Bereich, 14.03.2013
Einleitung
• große Projekte ohne Software Engineering Praktiken kaum möglich
• Beispiel: Continuous Integration
• Einführung im BZMM
• Einblick gewähren durch Vortrag
![Page 5: Philipp Schröter Fachbereich für Informatik · Ubuntu Testsystem Windows 7 Testsystem OS X Testsystem Redmine . Continuous Integration im medizinischen Bereich, 14.03.2013 13 Continuous](https://reader033.fdocument.pub/reader033/viewer/2022060604/60588c7caf3ded64d175e7d9/html5/thumbnails/5.jpg)
5 Continuous Integration im medizinischen Bereich, 14.03.2013
BZMM
• Berliner Zentrum für Mechatronische Medizintechnik
• Kooperation aus Frauenhofer und Charite
• Leitung: Prof. Dr.-Ing Erwin Keeve
• Arbeitsbereiche:
• Intraoperative Bildgebung
• Bildgesteuerte Navigation
• Chirurgische Instrumente
Bild
qu
elle
: bzm
m.c
har
ite.
de
![Page 6: Philipp Schröter Fachbereich für Informatik · Ubuntu Testsystem Windows 7 Testsystem OS X Testsystem Redmine . Continuous Integration im medizinischen Bereich, 14.03.2013 13 Continuous](https://reader033.fdocument.pub/reader033/viewer/2022060604/60588c7caf3ded64d175e7d9/html5/thumbnails/6.jpg)
6 Continuous Integration im medizinischen Bereich, 14.03.2013
Gliederung
1. Einleitung
2. Relevanz im medizinischen Bereich
3. Continuous Integration
4. Continuous Integration System des BZMM
5. openOR Buildsystem
6. openOR Testsystem
7. Ergebnisse
8. Snapshot: Build Tool Chain
![Page 7: Philipp Schröter Fachbereich für Informatik · Ubuntu Testsystem Windows 7 Testsystem OS X Testsystem Redmine . Continuous Integration im medizinischen Bereich, 14.03.2013 13 Continuous](https://reader033.fdocument.pub/reader033/viewer/2022060604/60588c7caf3ded64d175e7d9/html5/thumbnails/7.jpg)
7 Continuous Integration im medizinischen Bereich, 14.03.2013
Relevanz im medizinischen Bereich
• Medizinproduktgesetz
• hohes Qualitätsmanagement notwendig
• eher große Projekte
![Page 8: Philipp Schröter Fachbereich für Informatik · Ubuntu Testsystem Windows 7 Testsystem OS X Testsystem Redmine . Continuous Integration im medizinischen Bereich, 14.03.2013 13 Continuous](https://reader033.fdocument.pub/reader033/viewer/2022060604/60588c7caf3ded64d175e7d9/html5/thumbnails/8.jpg)
8 Continuous Integration im medizinischen Bereich, 14.03.2013
Gliederung
1. Einleitung
2. Relevanz im medizinischen Bereich
3. Continuous Integration
4. Continuous Integration System des BZMM
5. openOR Buildsystem
6. openOR Testsystem
7. Ergebnisse
8. Snapshot: Build Tool Chain
![Page 9: Philipp Schröter Fachbereich für Informatik · Ubuntu Testsystem Windows 7 Testsystem OS X Testsystem Redmine . Continuous Integration im medizinischen Bereich, 14.03.2013 13 Continuous](https://reader033.fdocument.pub/reader033/viewer/2022060604/60588c7caf3ded64d175e7d9/html5/thumbnails/9.jpg)
9 Continuous Integration im medizinischen Bereich, 14.03.2013
Continuous Integration
● Praxis aus der Softwareentwicklung
● Idee: Häufige “Integration“ des Codes in das Repository (daher der Name)
![Page 10: Philipp Schröter Fachbereich für Informatik · Ubuntu Testsystem Windows 7 Testsystem OS X Testsystem Redmine . Continuous Integration im medizinischen Bereich, 14.03.2013 13 Continuous](https://reader033.fdocument.pub/reader033/viewer/2022060604/60588c7caf3ded64d175e7d9/html5/thumbnails/10.jpg)
10 Continuous Integration im medizinischen Bereich, 14.03.2013
Continuous Integration
Practices:
● Single repository
● Automatic build
● Self-testing build
● Everyday everyone commits to mainline
● Every commit has to be build on the integration machine
● Fast Build
● Test environment = clone of producton environment
● Easy accessible executable
● Public result
● Automatic Deployment
![Page 11: Philipp Schröter Fachbereich für Informatik · Ubuntu Testsystem Windows 7 Testsystem OS X Testsystem Redmine . Continuous Integration im medizinischen Bereich, 14.03.2013 13 Continuous](https://reader033.fdocument.pub/reader033/viewer/2022060604/60588c7caf3ded64d175e7d9/html5/thumbnails/11.jpg)
11 Continuous Integration im medizinischen Bereich, 14.03.2013
Gliederung
1. Einleitung
2. Relevanz im medizinischen Bereich
3. Continuous Integration
4. Continuous Integration System des BZMM
5. openOR Buildsystem
6. openOR Testsystem
7. Ergebnisse
8. Snapshot: Build Tool Chain
![Page 12: Philipp Schröter Fachbereich für Informatik · Ubuntu Testsystem Windows 7 Testsystem OS X Testsystem Redmine . Continuous Integration im medizinischen Bereich, 14.03.2013 13 Continuous](https://reader033.fdocument.pub/reader033/viewer/2022060604/60588c7caf3ded64d175e7d9/html5/thumbnails/12.jpg)
12 Continuous Integration im medizinischen Bereich, 14.03.2013
Continuous Integration System des BZMM
Xen Hypervisor
Ubuntu Server
Ubuntu Testsystem
Windows 7 Testsystem
OS X Testsystem
Redmine
![Page 13: Philipp Schröter Fachbereich für Informatik · Ubuntu Testsystem Windows 7 Testsystem OS X Testsystem Redmine . Continuous Integration im medizinischen Bereich, 14.03.2013 13 Continuous](https://reader033.fdocument.pub/reader033/viewer/2022060604/60588c7caf3ded64d175e7d9/html5/thumbnails/13.jpg)
13 Continuous Integration im medizinischen Bereich, 14.03.2013
Continuous Integration System des BZMM
Software wird geändert
Einchecken in Redmine
Repository
Jenkins wird getriggert
Code aus Repository
laden
Bauen und Testen
Ergebnisse zurückgeben
Bild
qu
elle
: Wik
emed
ia
![Page 14: Philipp Schröter Fachbereich für Informatik · Ubuntu Testsystem Windows 7 Testsystem OS X Testsystem Redmine . Continuous Integration im medizinischen Bereich, 14.03.2013 13 Continuous](https://reader033.fdocument.pub/reader033/viewer/2022060604/60588c7caf3ded64d175e7d9/html5/thumbnails/14.jpg)
14 Continuous Integration im medizinischen Bereich, 14.03.2013
Gliederung
1. Einleitung
2. Relevanz im medizinischen Bereich
3. Continuous Integration
4. Continuous Integration System des BZMM
5. openOR Buildsystem
6. openOR Testsystem
7. Ergebnisse
8. Snapshot: Build Tool Chain
![Page 15: Philipp Schröter Fachbereich für Informatik · Ubuntu Testsystem Windows 7 Testsystem OS X Testsystem Redmine . Continuous Integration im medizinischen Bereich, 14.03.2013 13 Continuous](https://reader033.fdocument.pub/reader033/viewer/2022060604/60588c7caf3ded64d175e7d9/html5/thumbnails/15.jpg)
15 Continuous Integration im medizinischen Bereich, 14.03.2013
openOR
• plattformunabhängiges, modulares Framework für medizinische Anwendungen
• einfache Benutz- und Erweiterbarkeit
Bild
qu
elle
: bzm
m.c
har
ite.
de
![Page 16: Philipp Schröter Fachbereich für Informatik · Ubuntu Testsystem Windows 7 Testsystem OS X Testsystem Redmine . Continuous Integration im medizinischen Bereich, 14.03.2013 13 Continuous](https://reader033.fdocument.pub/reader033/viewer/2022060604/60588c7caf3ded64d175e7d9/html5/thumbnails/16.jpg)
16 Continuous Integration im medizinischen Bereich, 14.03.2013
openOR Build System
• in CMake entwickelt
• Abhängigkeiten ermitteln und auflösen
![Page 17: Philipp Schröter Fachbereich für Informatik · Ubuntu Testsystem Windows 7 Testsystem OS X Testsystem Redmine . Continuous Integration im medizinischen Bereich, 14.03.2013 13 Continuous](https://reader033.fdocument.pub/reader033/viewer/2022060604/60588c7caf3ded64d175e7d9/html5/thumbnails/17.jpg)
17 Continuous Integration im medizinischen Bereich, 14.03.2013
Gliederung
1. Einleitung
2. Relevanz im medizinischen Bereich
3. Continuous Integration
4. Continuous Integration System des BZMM
5. openOR Buildsystem
6. openOR Testsystem
7. Ergebnisse
8. Snapshot: Build Tool Chain
![Page 18: Philipp Schröter Fachbereich für Informatik · Ubuntu Testsystem Windows 7 Testsystem OS X Testsystem Redmine . Continuous Integration im medizinischen Bereich, 14.03.2013 13 Continuous](https://reader033.fdocument.pub/reader033/viewer/2022060604/60588c7caf3ded64d175e7d9/html5/thumbnails/18.jpg)
18
openOR Testsystem
Continuous Integration im medizinischen Bereich, 14.03.2013
Test konzipieren
Test schreiben
Test einbinden
Test durchführen
Ergebnisse auswerten
![Page 19: Philipp Schröter Fachbereich für Informatik · Ubuntu Testsystem Windows 7 Testsystem OS X Testsystem Redmine . Continuous Integration im medizinischen Bereich, 14.03.2013 13 Continuous](https://reader033.fdocument.pub/reader033/viewer/2022060604/60588c7caf3ded64d175e7d9/html5/thumbnails/19.jpg)
19
openOR Testsystem
Continuous Integration im medizinischen Bereich, 14.03.2013
Test Suiten
- Besteht aus Test Targets
![Page 20: Philipp Schröter Fachbereich für Informatik · Ubuntu Testsystem Windows 7 Testsystem OS X Testsystem Redmine . Continuous Integration im medizinischen Bereich, 14.03.2013 13 Continuous](https://reader033.fdocument.pub/reader033/viewer/2022060604/60588c7caf3ded64d175e7d9/html5/thumbnails/20.jpg)
20
openOR Testsystem
Continuous Integration im medizinischen Bereich, 14.03.2013
Test Suiten
- Besteht aus Test Targets
Test Targets
- Bestehen aus Test Cases
![Page 21: Philipp Schröter Fachbereich für Informatik · Ubuntu Testsystem Windows 7 Testsystem OS X Testsystem Redmine . Continuous Integration im medizinischen Bereich, 14.03.2013 13 Continuous](https://reader033.fdocument.pub/reader033/viewer/2022060604/60588c7caf3ded64d175e7d9/html5/thumbnails/21.jpg)
21
openOR Testsystem
Continuous Integration im medizinischen Bereich, 14.03.2013
Test Suiten
- Besteht aus Test Targets
Test Targets
- Bestehen aus Test Cases
Test Cases
- Bestehen aus Tests
- Bindet Tests ein
![Page 22: Philipp Schröter Fachbereich für Informatik · Ubuntu Testsystem Windows 7 Testsystem OS X Testsystem Redmine . Continuous Integration im medizinischen Bereich, 14.03.2013 13 Continuous](https://reader033.fdocument.pub/reader033/viewer/2022060604/60588c7caf3ded64d175e7d9/html5/thumbnails/22.jpg)
22
openOR Testsystem
Continuous Integration im medizinischen Bereich, 14.03.2013
Test Suiten
- Besteht aus Test Targets
Test Targets
- Bestehen aus Test Cases
Test Cases
- Bestehen aus Tests
- Bindet Tests ein
Tests
- Eigentlicher Testcode
![Page 23: Philipp Schröter Fachbereich für Informatik · Ubuntu Testsystem Windows 7 Testsystem OS X Testsystem Redmine . Continuous Integration im medizinischen Bereich, 14.03.2013 13 Continuous](https://reader033.fdocument.pub/reader033/viewer/2022060604/60588c7caf3ded64d175e7d9/html5/thumbnails/23.jpg)
23
openOR Testsystem
Continuous Integration im medizinischen Bereich, 14.03.2013
![Page 24: Philipp Schröter Fachbereich für Informatik · Ubuntu Testsystem Windows 7 Testsystem OS X Testsystem Redmine . Continuous Integration im medizinischen Bereich, 14.03.2013 13 Continuous](https://reader033.fdocument.pub/reader033/viewer/2022060604/60588c7caf3ded64d175e7d9/html5/thumbnails/24.jpg)
24 Continuous Integration im medizinischen Bereich, 14.03.2013
Gliederung
1. Einleitung
2. Relevanz im medizinischen Bereich
3. Continuous Integration
4. Continuous Integration System des BZMM
5. openOR Buildsystem
6. openOR Testsystem
7. Ergebnisse
8. Snapshot: Build Tool Chain
![Page 25: Philipp Schröter Fachbereich für Informatik · Ubuntu Testsystem Windows 7 Testsystem OS X Testsystem Redmine . Continuous Integration im medizinischen Bereich, 14.03.2013 13 Continuous](https://reader033.fdocument.pub/reader033/viewer/2022060604/60588c7caf3ded64d175e7d9/html5/thumbnails/25.jpg)
25 Continuous Integration im medizinischen Bereich, 14.03.2013
Ergebnisse
● Anfangs oft rote Punkte
● Verbesserung über die Zeit
● weniger Kompatibilitätsprobleme
● Insbesondere bei Linux
![Page 26: Philipp Schröter Fachbereich für Informatik · Ubuntu Testsystem Windows 7 Testsystem OS X Testsystem Redmine . Continuous Integration im medizinischen Bereich, 14.03.2013 13 Continuous](https://reader033.fdocument.pub/reader033/viewer/2022060604/60588c7caf3ded64d175e7d9/html5/thumbnails/26.jpg)
26 Continuous Integration im medizinischen Bereich, 14.03.2013
Gliederung
1. Einleitung
2. Relevanz im medizinischen Bereich
3. Continuous Integration
4. Continuous Integration System des BZMM
5. openOR Buildsystem
6. openOR Testsystem
7. Ergebnisse
8. Snapshot: Build Tool Chain
![Page 27: Philipp Schröter Fachbereich für Informatik · Ubuntu Testsystem Windows 7 Testsystem OS X Testsystem Redmine . Continuous Integration im medizinischen Bereich, 14.03.2013 13 Continuous](https://reader033.fdocument.pub/reader033/viewer/2022060604/60588c7caf3ded64d175e7d9/html5/thumbnails/27.jpg)
27 Continuous Integration im medizinischen Bereich, 14.03.2013
Snapshot: Build Tool Chain
● Aktuelles Projekt in der Implementierung
● Koordiniert Buildprozess
➔ Momentan durch Buildskripte für jedes Betriebssystem separat
● Vereinheitlichung der Tools
➔ Java -> Jenkins und Maven
➔ C++ ?
➔ Änderungen momentan teuer und uneinheitlich
➔ Zugriff über Konfigurationsdateien und durch Übergabe von Parametern
➔ Konfigurationsdateien über SVN Repository abruf- und veränderbar
![Page 28: Philipp Schröter Fachbereich für Informatik · Ubuntu Testsystem Windows 7 Testsystem OS X Testsystem Redmine . Continuous Integration im medizinischen Bereich, 14.03.2013 13 Continuous](https://reader033.fdocument.pub/reader033/viewer/2022060604/60588c7caf3ded64d175e7d9/html5/thumbnails/28.jpg)
28
Snapshot: Build Tool Chain
Build Tool Chain
(Tool)
Fetch Tool
Configuration Tool
Build Tool
Test Tool
Config
Environment
Continuous Integration im medizinischen Bereich, 14.03.2013
![Page 29: Philipp Schröter Fachbereich für Informatik · Ubuntu Testsystem Windows 7 Testsystem OS X Testsystem Redmine . Continuous Integration im medizinischen Bereich, 14.03.2013 13 Continuous](https://reader033.fdocument.pub/reader033/viewer/2022060604/60588c7caf3ded64d175e7d9/html5/thumbnails/29.jpg)
29
Snapshot: Build Tool Chain
Continuous Integration im medizinischen Bereich, 14.03.2013
Build Tool Chain
•Registriert eigene Optionen (Tools, andere Informationen)
•Sucht in Argumenten nach Konfigurationsdatei
•Fügt Tools hinzu (aus Konfigurationsdatei oder Argumenten; Argument > Konfigurationsdatei)
Tool
•Registriert eigene Optionen
Build Tool Chain
•Prüft Argumente und Inhalt der Konfigurationsdatei (durch Config)
•Ruft Tools auf
Tool
•Führt Operationen durch
Output Manager
•Sammelt Output der Tools
•Erstellt Übersicht
![Page 30: Philipp Schröter Fachbereich für Informatik · Ubuntu Testsystem Windows 7 Testsystem OS X Testsystem Redmine . Continuous Integration im medizinischen Bereich, 14.03.2013 13 Continuous](https://reader033.fdocument.pub/reader033/viewer/2022060604/60588c7caf3ded64d175e7d9/html5/thumbnails/30.jpg)
30
Snapshot: Build Tool Chain
Continuous Integration im medizinischen Bereich, 14.03.2013
Fetch
• SVN
Configure
• CMake
Build
• (N)Make
Test
• (N)Make
![Page 31: Philipp Schröter Fachbereich für Informatik · Ubuntu Testsystem Windows 7 Testsystem OS X Testsystem Redmine . Continuous Integration im medizinischen Bereich, 14.03.2013 13 Continuous](https://reader033.fdocument.pub/reader033/viewer/2022060604/60588c7caf3ded64d175e7d9/html5/thumbnails/31.jpg)
31 Continuous Integration im medizinischen Bereich, 14.03.2013
Snapshot: Build Tool Chain
Das geht bisher
➔ Code auschecken, Konfigurieren, Buildprozess und Tests durchführen
➔ Optionen durch Konfigurationsdatei und Argumente übergeben
Das geht bisher noch nicht
➔ Module (generisch) aufrufen
Das ist geplant
➔ Build- und Testergebnisse geordnet zurückgeben und in Redmine einbinden
![Page 32: Philipp Schröter Fachbereich für Informatik · Ubuntu Testsystem Windows 7 Testsystem OS X Testsystem Redmine . Continuous Integration im medizinischen Bereich, 14.03.2013 13 Continuous](https://reader033.fdocument.pub/reader033/viewer/2022060604/60588c7caf3ded64d175e7d9/html5/thumbnails/32.jpg)
32
Vielen Dank für Ihre Aufmerksamkeit
Continuous Integration im medizinischen Bereich, 14.03.2013
Bild
qu
elle
: Ch
arit
é
![Page 33: Philipp Schröter Fachbereich für Informatik · Ubuntu Testsystem Windows 7 Testsystem OS X Testsystem Redmine . Continuous Integration im medizinischen Bereich, 14.03.2013 13 Continuous](https://reader033.fdocument.pub/reader033/viewer/2022060604/60588c7caf3ded64d175e7d9/html5/thumbnails/33.jpg)
33
Fragen?
Continuous Integration im medizinischen Bereich, 14.03.2013
![Page 34: Philipp Schröter Fachbereich für Informatik · Ubuntu Testsystem Windows 7 Testsystem OS X Testsystem Redmine . Continuous Integration im medizinischen Bereich, 14.03.2013 13 Continuous](https://reader033.fdocument.pub/reader033/viewer/2022060604/60588c7caf3ded64d175e7d9/html5/thumbnails/34.jpg)
34
Diskussion
Continuous Integration bietet hohen Mehrwert. Tatsächlich?
Continuous Integration im medizinischen Bereich, 14.03.2013
![Page 35: Philipp Schröter Fachbereich für Informatik · Ubuntu Testsystem Windows 7 Testsystem OS X Testsystem Redmine . Continuous Integration im medizinischen Bereich, 14.03.2013 13 Continuous](https://reader033.fdocument.pub/reader033/viewer/2022060604/60588c7caf3ded64d175e7d9/html5/thumbnails/35.jpg)
35
Quellen
Continuous Integration
• Martin Fowler: http://www.martinfowler.com/articles/continuousIntegration.html
Continuous Integration im medizinischen Bereich, 14.03.2013
![Page 36: Philipp Schröter Fachbereich für Informatik · Ubuntu Testsystem Windows 7 Testsystem OS X Testsystem Redmine . Continuous Integration im medizinischen Bereich, 14.03.2013 13 Continuous](https://reader033.fdocument.pub/reader033/viewer/2022060604/60588c7caf3ded64d175e7d9/html5/thumbnails/36.jpg)
36
Quellen
Bilder:
• http://bzmm.charite.de/typo3temp/pics/756b3e253a.jpg
• http://bzmm.charite.de/typo3temp/pics/921eb6b341.jpg
• http://bzmm.charite.de/fileadmin/user_upload/microsites/ohne_AZ/m_cc09/bzmm/
bilder/Kooperationen/scopis/SCOPIS_System_middle.jpg
• http://bzmm.charite.de/typo3temp/pics/6dddb7d00d.jpg
• http://bzmm.charite.de/fileadmin/user_upload/microsites/ohne_AZ/m_cc09/bzmm/l
ogos/fraunhofer_logo.jpg
• https://upload.wikimedia.org/wikipedia/commons/e/e3/Jenkins_logo_with_title.svg
• https://upload.wikimedia.org/wikipedia/en/7/79/Subversion.png
• https://upload.wikimedia.org/wikipedia/commons/3/3f/Redmine_logo.svg
Continuous Integration im medizinischen Bereich, 14.03.2013