exposee 1

This commit is contained in:
2019-12-09 10:42:39 +01:00
parent d695a298ce
commit 3f1f6b5786
3 changed files with 42 additions and 30 deletions

0
Neues Textdokument.txt Normal file
View File

1
build.bat Normal file
View File

@@ -0,0 +1 @@
pdflatex thesis.tex

View File

@@ -4,42 +4,53 @@
\begin{otherlanguage}{ngerman}
\pdfbookmark[1]{Zusammenfassung}{Zusammenfassung}
\chapter*{Zusammenfassung}
Der Moderne Softwareentwicklungsprozess wird immer mehr automatisiert.
"Continuous Integration" und "Continuous Deployment/Delivery" werden weiter verbreitet eingesetzt und lassens sich in vielen teilen der IT wiederfinden.\newline
Unteranderem ermöglicht Praktiken wie CI/CD schnellere Entwicklungsgeschwindichkeiten und höhere Warscheinlichkeiten Fehler vorzeitig zu erkennen.\newline
Der Thema der Digitalisierung ist heute nicht mehr wegzudenken, wenn es innerhalb eines Unternehmens darum geht, in der wachsenden Dynamik des Marktes passend zu agieren. Dabei muss auch die Softwareentwicklung sich dieser Entwicklung anpassen. So weichen die klassischen großen, zeit- und kostenintensiven Softwareprojekte einer agilen Entwicklung mit vollautomatisierten Prozessen.
Im modernen Softwareentwicklungsprozess wird immer weiter automatisiert, dabei werden "Continuous Integration"  und "Continuous Deployment/Delivery" (CI/CD) schon weit verbreitet eingesetzt und lassen
sich in vielen Bereichen der IT wiederfinden. Unter anderem ermöglichen Konzepte wie CI/CD schnellere Entwicklungsgeschwindigkeiten und erhöhen die Chance, Fehler frühzeitig zu erkennen.
\medskip
\noindent Wenn jedoch bestimmte CI/CD Praktiken auseracht gelassen werden, so können auch kritische Probleme autreten die viel Zeit und Gelt kosten könnten.
\newline
\noindent Wie bei allen neuen Werkzeugen muss die korrekte Anwendung gelernt und beachtet werden. Denn die Vorteile kommen nur dann zum Tragen, wenn die Methode konsequent und richtig angewandt wird.
Werden bestimmte CI/CD Praktiken außer Acht gelassen, so können auch kritische Probleme auftreten, welche dann zu Lasten von Zeit, Geld und Effizienz gehen:
\newline
\begin{itemize}
\item Es wird sich nun auf die Buildscripte verlassen:
\begin{itemize}
\item Manipulations Gefahr der Skripte.
\item Fehlendes Wissen über Pipeline funktionsweise:
\begin{itemize}
\item Bei Störung bleibt Enwicklungsprozess stecken.
\item Nur Experten können die Probleme beheben.
\end{itemize}
\end{itemize}
\item Fehler werden scheller in release eingebunden.
\item Komplexe scripte machen buildvorgang unübersichtlich.
\item Durch die Unterschätzung der zentralen Bedeutung von Automatisierungskonfigurationen besteht die Gefahr eines ungewollten Deployments von nicht produktionsreifer Software.
\item Fehlendes Wissen über die Funktionsweise der Pipeline führt im Falle einer Störung zum Stillstand des Entwicklungsprozess und nur Experten können diese Probleme beheben.
\item In einer unzureichend konfigurierten Pipeline können Releases, welche noch Fehler enthalten, unbeabsichtigt in die Produktion eingespielt werden.
\item Eine fehlende Standardisierung im Buildvorgang erhöht die Komplexität und erschwert die Wartung der Software und führt damit zu Verzögerungen und Mehr aufwänden.
\end{itemize}
Diese Probleme können durch angemessenes Tooling behoben werden und so die Qualität der Pipline zu verbessern.
\noindent Diese Probleme können durch angemessene Methoden, Tools und Standards verhindert werden um so die Qualität der Pipeline zu gewährleisten.
Genau diese Fragestellung nach der Qualität einer CI/CD Pipeline möchte ich ins Zentrum meiner Seminararbeit stellen.
Hieraus stellen sich die folgenden Fragen:
\medskip
Dardurch ergibt sich jedoch die Frage:
\noindent Was ist eine qualitative CI/CD Pipeline ?\newline
Welche anforderungen sollte eine CI/CD Pipeline erfüllen um eine qualitative Pipeline zu sein ?\newline
Lassen sich grundlegende anforderungen aufstellen unabhänging von Einsatzgebiet der Pipeline ?\newline
\noindent Was bedeutet Qualität für eine CI/CD Pipeline ?
\newline
\noindent Welche Anforderungen stellen sich an eine CI/CD Pipeline mit hoher Qualität ?
\newline
\noindent Lassen sich Basisanforderungen aufstellen, unabhängig von Einsatzgebiet der Pipeline ?
\medskip
\noindent Ziel ist die Ausarbeitung von Anforderungen (und qualitäts Metricken) einer Pipeline, die die Entwicklungsgeschwindichkeiten steigert ohne die Software Qualität zu komprimitieren.
Diese sollen durch suchen von Problemen, die durch nicht sauber durchgefürte Automatisierungen entstehen herausgearbeitet werden.
Gliederung:
- Warum Automatisieren ?
- Vorteile
- (Nachteile)
- Probleme der Automatisierung
\noindent Ziel ist die Ausarbeitung von Anforderungen und Qualitätsmetriken für eine Pipeline, die die Entwicklungsgeschwindigkeit steigert, ohne die Software Qualität zu kompromittieren.
\noindent Dabei werde ich die Funktionsweise von CI/CD vorstellen und die Probleme der Automatisierung analysieren.
Daraus leite ich entsprechende Qualitätsmerkmale ab und erarbeite Anforderungen an die Tools, Standards und Methoden einer CI/CD Pipeline, welche diese Qualitätsmerkmale unterstützen.
\chapter*{Gliederung}
\begin{itemize}
\item Warum Automatisieren ?
\begin{itemize}
\item Vorteile
\end{itemize}
\item Probleme der Automatisierung
\end{itemize}
\chapter{Vorkenntnisse und Unterstützung}
Das Themengebiet und Technologie sind mir bekannt. Weitere Unterstützung bei Problemen kann ich durch Kollegen im Büro anfordern.
\end{otherlanguage}