From e2da93d720d3bf1aa382ceae5f3c64036677ef01 Mon Sep 17 00:00:00 2001 From: Rosario Polito Date: Mon, 31 Mar 2025 19:59:46 +0200 Subject: [PATCH] init --- .gitignore | 4 + Abbildungen/SLR.drawio.png | Bin 0 -> 33963 bytes Abbildungen/fom_logo.png | Bin 0 -> 51262 bytes KompiliereAlles.bat | 6 + KompiliereAlles.sh | 33 + KompiliereAllesdocker.sh | 7 + Skripte/formatierung.tex | 43 + Skripte/literaturmakros.tex | 134 ++ Skripte/meta.tex | 49 + Skripte/nomenclature.tex | 23 + Skripte/quelltext.tex | 18 + Skripte/titelblatt.tex | 35 + .../titelblatt_seminararbeit_leitfaden.tex | 29 + Textteil/Kapitel/appendix.tex | 18 + Textteil/Kapitel/diskussion.tex | 25 + Textteil/Kapitel/einleitung.tex | 5 + Textteil/Kapitel/ergebnisse.tex | 4 + Textteil/Kapitel/fazit.tex | 4 + Textteil/Kapitel/grundlagen.tex | 9 + Textteil/Kapitel/vorgehen.tex | 4 + Textteil/textteil.tex | 9 + custom.bst | 1436 +++++++++++++++++ docker/Dockerfile | 2 + lit.bib | 1131 +++++++++++++ main.tex | 180 +++ outlines/user.md | 20 + 26 files changed, 3228 insertions(+) create mode 100644 .gitignore create mode 100644 Abbildungen/SLR.drawio.png create mode 100644 Abbildungen/fom_logo.png create mode 100644 KompiliereAlles.bat create mode 100644 KompiliereAlles.sh create mode 100644 KompiliereAllesdocker.sh create mode 100644 Skripte/formatierung.tex create mode 100644 Skripte/literaturmakros.tex create mode 100644 Skripte/meta.tex create mode 100644 Skripte/nomenclature.tex create mode 100644 Skripte/quelltext.tex create mode 100644 Skripte/titelblatt.tex create mode 100644 Skripte/titelblatt_seminararbeit_leitfaden.tex create mode 100644 Textteil/Kapitel/appendix.tex create mode 100644 Textteil/Kapitel/diskussion.tex create mode 100644 Textteil/Kapitel/einleitung.tex create mode 100644 Textteil/Kapitel/ergebnisse.tex create mode 100644 Textteil/Kapitel/fazit.tex create mode 100644 Textteil/Kapitel/grundlagen.tex create mode 100644 Textteil/Kapitel/vorgehen.tex create mode 100644 Textteil/textteil.tex create mode 100644 custom.bst create mode 100644 docker/Dockerfile create mode 100644 lit.bib create mode 100644 main.tex create mode 100644 outlines/user.md diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..dafda32 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +# Ignore output folder +out/ +main.pdf +*.pdf \ No newline at end of file diff --git a/Abbildungen/SLR.drawio.png b/Abbildungen/SLR.drawio.png new file mode 100644 index 0000000000000000000000000000000000000000..e8934efcc67642b8b11c54c06ca856f1069834ac GIT binary patch literal 33963 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 literal 0 HcmV?d00001 diff --git a/Abbildungen/fom_logo.png b/Abbildungen/fom_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..cbca3d29e1e80a7c8e801a8f6671740123706918 GIT binary patch literal 51262 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 literal 0 HcmV?d00001 diff --git a/KompiliereAlles.bat b/KompiliereAlles.bat new file mode 100644 index 0000000..037f8dd --- /dev/null +++ b/KompiliereAlles.bat @@ -0,0 +1,6 @@ +SET dokument=main +call pdflatex -draftmode %dokument%.tex +%call biber %dokument% +call makeindex -q %dokument%.nlo -s nomencl.ist -o %dokument%.nls +call pdflatex %dokument%.tex +call pdflatex %dokument%.tex diff --git a/KompiliereAlles.sh b/KompiliereAlles.sh new file mode 100644 index 0000000..ff14617 --- /dev/null +++ b/KompiliereAlles.sh @@ -0,0 +1,33 @@ +#!/bin/bash +dokument=main +pdflatex -draftmode $dokument.tex +bibtex $dokument +makeindex -q $dokument.nlo -s nomencl.ist -o $dokument.nls +pdflatex $dokument.tex +pdflatex $dokument.tex +pdflatex $dokument.tex + +rm *.bbl 2> /dev/null +rm *.blg 2> /dev/null +rm *.aux 2> /dev/null +rm *.bcf 2> /dev/null +rm *.ilg 2> /dev/null +rm *.lof 2> /dev/null +rm *.log 2> /dev/null +rm *.lot 2> /dev/null +rm *.nlo 2> /dev/null +rm *.nls* 2> /dev/null +rm *.out 2> /dev/null +rm *.toc 2> /dev/null +rm *.run.xml 2> /dev/null +rm *.lot 2> /dev/null +rm *.sub 2> /dev/null +rm *.suc 2> /dev/null +rm *.syc 2> /dev/null +rm *.sym 2> /dev/null +rm ./Textteil/Kapitel/*.aux 2> /dev/null +rm *.aux 2> /dev/null +rm *.fls 2> /dev/null +rm *.fdb_latexmk 2> /dev/null + +exit 0 \ No newline at end of file diff --git a/KompiliereAllesdocker.sh b/KompiliereAllesdocker.sh new file mode 100644 index 0000000..245fe69 --- /dev/null +++ b/KompiliereAllesdocker.sh @@ -0,0 +1,7 @@ +#!/bin/bash +docker run -it --rm -v $(pwd):/data -w="/data" texlive/texlive /data/KompiliereAlles.sh +pdftk main.pdf cat 2-89 output main-split.pdf +pdftk deckblatt.pdf main-split.pdf output abgabe.pdf + +#rm main-split.pdf +#rm main.pdf \ No newline at end of file diff --git a/Skripte/formatierung.tex b/Skripte/formatierung.tex new file mode 100644 index 0000000..1786f73 --- /dev/null +++ b/Skripte/formatierung.tex @@ -0,0 +1,43 @@ +\setlength{\parindent}{0em}%Einrückung nach Absatz auf 0 setzen}%Seitenränder gesetzt +\setlength{\parskip}{6pt}%Absatzabstand +%-----------Kopf/Fußzeile-------------- + +\usepackage[automark, headsepline=.4pt]{scrlayer-scrpage}%Paket für Kopfzeile +\newpairofpagestyles{myheading}%Kopfzeile definieren +{ + \ihead{\leftmark}%Kapitelname links in Kopfzeile + \chead{}%nichts in der Mitte + \ifoot{\thepage}%Seitenzahl rechts in Kopfzeile +} + +\usepackage[automark, headsepline=.4pt]{scrlayer-scrpage}%Paket für Kopfzeile +\newpairofpagestyles{leer}%Kopfzeile definieren +{ + \ihead{}%Kapitelname links in Kopfzeile + \chead{}%nichts in der Mitte + \ohead{}%Seitenzahl rechts in Kopfzeile +} + + +\pagestyle{myheading}%Kopfzeile aktiv machen +\renewcommand*\chapterpagestyle{myheading}%Kopfzeile auch auf Seiten mit neuem Kapitel anzeigen + +%----------Kapitelüberschriften formatieren------- + +\setkomafont{disposition}{\rmfamily\bfseries}%Alle Überschriften mit Serifen und Fett +\setkomafont{chapter}{\huge}%Kapitelüberschriften in Groß +\setkomafont{section}{\large}%Sektionsüberschriften in Groß + +\RedeclareSectionCommand[beforeskip=12pt, afterskip=6pt]{chapter}%12pt vor und 6pt nach Kapitelüberschrift +\RedeclareSectionCommand[beforeskip=12pt, afterskip=6pt]{section}%12pt vor und 6pt nach Kapitelüberschrift +\RedeclareSectionCommand[beforeskip=12pt,afterskip=6pt]{subsection} +\RedeclareSectionCommand[beforeskip=12pt,afterskip=6pt]{subsubsection} + +\let\befehl\lstinline + +%---- Tabellenformatierung ----- +\usepackage{makecell} +\renewcommand{\cellalign}{vh} +\renewcommand{\theadalign}{vh} + +\newcommand*{\Appendixautorefname}{appendix} \ No newline at end of file diff --git a/Skripte/literaturmakros.tex b/Skripte/literaturmakros.tex new file mode 100644 index 0000000..9aa9f1f --- /dev/null +++ b/Skripte/literaturmakros.tex @@ -0,0 +1,134 @@ +\renewcommand*{\bibfont}{\normalfont\normalsize\singlespacing\raggedright} + +\setlength\bibhang{1cm} + +\DeclareLabeldate{% + \field{date} + \field{year} + \field{eventdate} + \field{origdate} + \literal{nodate} +} + +\renewcommand*{\finentrypunct}{} + +\renewcommand*{\newunitpunct}{\addcomma\space} +\DeclareDelimFormat[bib,biblist]{nametitledelim}{\addcolon\space} +\DeclareDelimFormat{titleyeardelim}{\newunitpunct} +\renewcommand*{\mkbibnamefamily}{\mkbibemph} +\renewcommand*{\mkbibnamegiven}{\mkbibemph} +\renewcommand*{\mkbibnamesuffix}{\mkbibemph} +\renewcommand*{\mkbibnameprefix}{\mkbibemph} +\DeclareDelimAlias{finalnamedelim}{multinamedelim} + +\DeclareNameFormat{family-given:init}{% + \usebibmacro{name:family-given} + {\namepartfamily} + {\namepartgiveni} + {\namepartprefix} + {\namepartsuffix}% + \usebibmacro{name:andothers}} + +\DeclareNameAlias{default}{family-given} +\DeclareNameAlias{sortname}{default} +\DeclareNameAlias{labelname}{family-given:init} + +\DeclareFieldFormat{editortype}{\mkbibparens{#1}} +\DeclareDelimFormat{editortypedelim}{\addspace} +\DeclareFieldFormat{translatortype}{\mkbibparens{#1}} +\DeclareDelimFormat{translatortypedelim}{\addspace} +\DeclareDelimFormat[bib,biblist]{innametitledelim}{\addcomma\space} + +\DeclareFieldFormat*{citetitle}{#1} +\DeclareFieldFormat*{title}{#1} +\DeclareFieldFormat*{booktitle}{#1} +\DeclareFieldFormat*{journaltitle}{#1} + +\newbibmacro*{organization+location}[1]{% + \printlist{location}% + \setunit*{\locdatedelim}% + \printlist{organization}% + \newunit} + + +\usepackage{xpatch} +\xpatchbibdriver{online} + {\usebibmacro{organization+location+date}} + {\usebibmacro{organization+location}} + {}{} + +\DeclareFieldFormat[online]{date}{\mkbibparens{#1}} + +\DeclareFieldFormat{url}{<\url{#1}>}% oder {$\langle$\url{#1}$\rangle$} oder \textlangle/\textrangle +\DeclareFieldFormat{urldate}{\mkbibbrackets{\bibstring{urlseen}\addcolon\space#1}} +\renewbibmacro*{url+urldate}{% + \usebibmacro{url}% + \ifentrytype{online} + {\setunit{\addspace}% + \usebibmacro{date}} + {}% + \iffieldundef{urlyear} + {} + {\setunit*{\addspace}% + \usebibmacro{urldate}}} + +\renewbibmacro*{date+extradate}{% + \printtext[parens]{% + \printfield{usera}% + \setunit{\printdelim{titleyeardelim}}% + \printlabeldateextra}} + +\renewbibmacro*{date}{% + \usebibmacro{bbx:ifmergeddate} + {} + {\iffieldundef{year} + {\printtext[date]{\bibstring{nodate}}} + {\printdate}}} + +\DefineBibliographyStrings{german}{ + nodate = {{}o.\adddot \addabbrvspace J\adddot}, + andothers = {et\addabbrvspace al\adddot}, + urlseen = {Zugriff}, +} + +\DeclareSourcemap{ + \maps[datatype=bibtex]{ + \map{ + \pernottype{set} + \step[notfield=translator, final] + \step[notfield=editor, final] + \step[fieldset=author, fieldvalue={\string{o.\noexpand\,V\noexpand\adddot\string}}, final] + \step[fieldset=sortname, fieldvalue={zzzzzzzzz}] + } + \map{ + \pernottype{online} + \step[fieldset=location, fieldvalue={o\noexpand\adddot \addabbrvspace O\noexpand\adddot}] + } + } +} + +\renewbibmacro*{cite}{% + \iffieldundef{shorthand} + {\ifthenelse{\ifnameundef{labelname}\OR\iffieldundef{labelyear}} + {\usebibmacro{cite:label}% + \setunit{\printdelim{nonametitledelim}}} + {\printnames{labelname}% + \setunit{\printdelim{nametitledelim}}}% + \printfield{usera}% + \setunit{\printdelim{titleyeardelim}}% + \usebibmacro{cite:labeldate+extradate}} + {\usebibmacro{cite:shorthand}}} + +\renewbibmacro*{postnote}{% + \setunit{\postnotedelim}% + \iffieldundef{postnote} + {\printtext{o. S\adddot}} + {\printfield{postnote}}} + +\defbibfilter{articleonline}{% + type=article or type=online +} + +%\newcommand{\directAutocite}[3][]{\enquote{#3}\autocite[#1]{#2}}%Command für direkte Zitate +\newcommand{\direkt}[3][]{\enquote{#3}\autocite[#1]{#2}}%Command für direkte Zitate +\newcommand{\indirekt}[2][]{\autocite[Vgl.][#1]{#2}}%Command für indirekte Zitate \ No newline at end of file diff --git a/Skripte/meta.tex b/Skripte/meta.tex new file mode 100644 index 0000000..d7d2567 --- /dev/null +++ b/Skripte/meta.tex @@ -0,0 +1,49 @@ +%----------------------------------- +% Meta Informationen zur Arbeit +%----------------------------------- + +%Group +%\newcommand{\myGroup}{Gruppe WD-40} +% Autor +\newcommand{\myAutor}{Rosario-Francesco Polito} +% Adresse +\newcommand{\myAdresse}{Robert-Koch-Straße 45 \\ \> \> 41539 Dormagen} +% Titel der Arbeit +\newcommand{\myTitel}{,,Architektur für Cloud-native Anwendungen: Ein Leitfaden zur Entscheidungsfindung''} +% Betreuer +\newcommand{\myBetreuer}{Hier Kommt der Dozent} +% Lehrveranstaltung +\newcommand{\myLehrveranstaltung}{} +% Matrikelnummer +\newcommand{\myMatrikelNr}{598723} +% Ort +\newcommand{\myOrt}{Köln} +% Datum der Abgabe +%TODO +\newcommand{\myAbgabeDatum}{28. Februar 2023} +% Semesterzahl +\newcommand{\mySemesterZahl}{7} +% Name der Hochschule +\newcommand{\myHochschulName}{FOM Hochschule für Oekonomie \& Management} +% Standort der Hochschule +\newcommand{\myHochschulStandort}{Standort Köln} +% Studiengang +\newcommand{\myStudiengang}{Informatik} +% Art der Arbeit +\newcommand{\myThesisArt}{Bachelorarbeit} +% Zu erlangender akademische Grad +\newcommand{\myAkademischerGrad}{Bachelor of Science (B. Sc.)} +% Firma +%\newcommand{\myFirma}{CGI Inc.} + +%--------------------------------------- +% PDF Meta setzen +%--------------------------------------- +\hypersetup{ + pdfinfo={ + Title={\myTitel}, + Subject={\myStudiengang}, + Author={\myAutor}, + Build=1.1 + } +} \ No newline at end of file diff --git a/Skripte/nomenclature.tex b/Skripte/nomenclature.tex new file mode 100644 index 0000000..891879c --- /dev/null +++ b/Skripte/nomenclature.tex @@ -0,0 +1,23 @@ +\nomenclature{NIST}{Standards and Technology} +\nomenclature{TCO}{Total Cost of Ownership} +\nomenclature{TTM}{Time to Market} +\nomenclature{SaaS}{Software as a Service} +\nomenclature{PaaS}{Platform as a Service} +\nomenclature{IaaS}{Infrastructure as a Service} +\nomenclature{aws}{Amazon Web Services} +\nomenclature{GCP}{Google Cloud Platform} +\nomenclature{SOA}{serviceorientierte Architektur} +\nomenclature{RPC}{Remote Procedure Call} +\nomenclature{REST}{Representational State Transfer} +\nomenclature{MQTT}{Message Queuing Telemetry Transport} +\nomenclature{API}{Programmierschnittstelle} +\nomenclature{CI/CD}{Continuous Integration/Continuous Delivery} +\nomenclature{SLA}{Service Level Agreement} +\nomenclature{S3}{Simple Storage Service} +\nomenclature{ASD}{Average Service Depth} +\nomenclature{KAI}{Key Assurance Indicators} +\nomenclature{KSI}{Key Security Indicators} +\nomenclature{CC}{zyklische Komplexität} +\nomenclature{PbD}{Privacy by Design} +\nomenclature{DSGVO}{Datenschutz-Grundverordnung} +\nomenclature{DSRM}{Design Science Research Method} \ No newline at end of file diff --git a/Skripte/quelltext.tex b/Skripte/quelltext.tex new file mode 100644 index 0000000..06dd47d --- /dev/null +++ b/Skripte/quelltext.tex @@ -0,0 +1,18 @@ +% sauber formatierter Quelltext +\usepackage{listings} +\lstset{numbers=left, + numberstyle=\tiny, + numbersep=5pt, + breaklines=true, + showstringspaces=false, + frame=l , + xleftmargin=5pt, + xrightmargin=5pt, + basicstyle=\ttfamily,%\scriptsize, + stepnumber=1, + keywordstyle=\color{blue}, % keyword style + commentstyle=\color{dkgreen}, % comment style + stringstyle=\color{mauve} % string literal style +} + +\let\befehl\lstinline \ No newline at end of file diff --git a/Skripte/titelblatt.tex b/Skripte/titelblatt.tex new file mode 100644 index 0000000..d26c75a --- /dev/null +++ b/Skripte/titelblatt.tex @@ -0,0 +1,35 @@ +\begin{titlepage} + \newgeometry{left=4cm, right=2cm, top=4cm, bottom=2cm} + \begin{center} + \textbf{\myHochschulName}\\ + \textbf{\myHochschulStandort}\\ + \vspace{1.5cm} + \includegraphics[width=3cm]{Abbildungen/fom_logo.png} \\ + \vspace{1cm} + Berufsbegleitender Studiengang\\ + \myStudiengang, \mySemesterZahl. Semester\\ + \vspace{1cm} + \textbf{\myThesisArt}\\ + %\textbf{zur Erlangung des Grades eines}\\ + %\textbf{\myAkademischerGrad}\\ + \textbf{im Rahmen der Lehrveranstaltung}\\ + \textbf{\myLehrveranstaltung}\\ + \vspace{1cm} + über das Thema\\ + \Huge{\myTitel}\\ + \vspace{0.2cm} + \end{center} + \normalsize + \vfill + \begin{tabbing} + Links \= Mitte \= Rechts\kill + Betreuer: \> \> \myBetreuer\\ + \> \> \\ + + Autor: \> \> \myAutor\\ + \> \> Matrikelnr.: \myMatrikelNr\\ + \> \> \myAdresse\\ + \> \> \\ + Abgabe: \> \> \myAbgabeDatum + \end{tabbing} +\end{titlepage} \ No newline at end of file diff --git a/Skripte/titelblatt_seminararbeit_leitfaden.tex b/Skripte/titelblatt_seminararbeit_leitfaden.tex new file mode 100644 index 0000000..be807d0 --- /dev/null +++ b/Skripte/titelblatt_seminararbeit_leitfaden.tex @@ -0,0 +1,29 @@ +\begin{titlepage} + \newgeometry{left=4cm, right=2cm, top=4cm, bottom=2cm} + + \noindent \textbf{\myHochschulName~Essen}\\ + \noindent \textbf{\myHochschulStandort}\\ + \vspace{1cm}\\ + \noindent Berufsbegleitender Studiengang zum\\ + \noindent\myAkademischerGrad~\myStudiengang \\ + \vspace{1cm} \\ + \mySemesterZahl. Semester\\ + \vspace{0.5cm}\\ + %\textbf{zur Erlangung des Grades eines}\\ + %\textbf{\myAkademischerGrad}\\ + \textbf{\myThesisArt~\myTitel~}\\ + \vspace{2cm}\\ + \begin{figure} + \includegraphics[width=3cm]{Abbildungen/fom_logo.png} + \end{figure}\\ + \vspace{0.2cm} + \normalsize + \vfill + \begin{tabbing} + Linkslinks \= Mitte \= Rechts\kill + Dozent: \> \> \myBetreuer\\ + Autoren: \> \> \myAutor\\ + Matrikelnr.: \> \> \myMatrikelNr\\ + Abgabedatum: \> \> \myAbgabeDatum + \end{tabbing} +\end{titlepage} \ No newline at end of file diff --git a/Textteil/Kapitel/appendix.tex b/Textteil/Kapitel/appendix.tex new file mode 100644 index 0000000..2a484cb --- /dev/null +++ b/Textteil/Kapitel/appendix.tex @@ -0,0 +1,18 @@ +\pagestyle{empty} + +\newpage +\renewcommand{\thesection}{\Alph{section}} +\renewcommand{\appendixname}{Anhänge} +\renewcommand{\appendixtocname}{Anhänge} +\renewcommand{\appendixpagename}{Anhänge} + +\begin{appendices} +\section{Experteninterview 1}\label{app:interview1} + +\setcounter{linenumber}{1} +\begin{linenumbers} + Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. + + Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, +\end{linenumbers} +\end{appendices} \ No newline at end of file diff --git a/Textteil/Kapitel/diskussion.tex b/Textteil/Kapitel/diskussion.tex new file mode 100644 index 0000000..4d69d5a --- /dev/null +++ b/Textteil/Kapitel/diskussion.tex @@ -0,0 +1,25 @@ +% !TeX root = ../../main.tex + +\chapter{Diskussion}\label{ch:diskussion} +Citeauthor: \Citeauthor{scoring} + +Citep: \citep[][S. 69ff.]{scoring}. + +\begin{table}[H] +\centering +\resizebox{0.9\textwidth}{!}{ +\begin{tabular}{l l c c c} + +\textbf{Kat1} & \textbf{Kat2} & \textbf{Kat3} & \textbf{Kat4} & \textbf{Kat 5}\\ +\midrule +Total Cost of Ownership & & 8 & 1 & 8 \\ +\bottomrule +\end{tabular} +} +\caption{Nutzwertanalyse nach Total Cost of Ownership} +\label{tab:nutzw-tco} +\end{table} + +Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. + +Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, \ No newline at end of file diff --git a/Textteil/Kapitel/einleitung.tex b/Textteil/Kapitel/einleitung.tex new file mode 100644 index 0000000..de8f49b --- /dev/null +++ b/Textteil/Kapitel/einleitung.tex @@ -0,0 +1,5 @@ +% !TeX root = ../../main.tex +\chapter{Einleitung}\label{ch:einleitung1} +Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. + +Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, diff --git a/Textteil/Kapitel/ergebnisse.tex b/Textteil/Kapitel/ergebnisse.tex new file mode 100644 index 0000000..23a82ad --- /dev/null +++ b/Textteil/Kapitel/ergebnisse.tex @@ -0,0 +1,4 @@ +\chapter{Analyse}\label{ch:auswertung} +Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. + +Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, \ No newline at end of file diff --git a/Textteil/Kapitel/fazit.tex b/Textteil/Kapitel/fazit.tex new file mode 100644 index 0000000..b7b76c9 --- /dev/null +++ b/Textteil/Kapitel/fazit.tex @@ -0,0 +1,4 @@ +\chapter{Fazit}\label{ch:fazit} +Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. + +Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, \ No newline at end of file diff --git a/Textteil/Kapitel/grundlagen.tex b/Textteil/Kapitel/grundlagen.tex new file mode 100644 index 0000000..1cd9cf5 --- /dev/null +++ b/Textteil/Kapitel/grundlagen.tex @@ -0,0 +1,9 @@ +\chapter{Ausgangssituation}\label{ch:grundlagen} +Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. + +Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, + +\section{Cloud-Computing} +Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. + +Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, \ No newline at end of file diff --git a/Textteil/Kapitel/vorgehen.tex b/Textteil/Kapitel/vorgehen.tex new file mode 100644 index 0000000..1cd61e6 --- /dev/null +++ b/Textteil/Kapitel/vorgehen.tex @@ -0,0 +1,4 @@ +\chapter{Methodisches Vorgehen}\label{ch:vorgehen} +Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. + +Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, \ No newline at end of file diff --git a/Textteil/textteil.tex b/Textteil/textteil.tex new file mode 100644 index 0000000..962a5c3 --- /dev/null +++ b/Textteil/textteil.tex @@ -0,0 +1,9 @@ +\include{Textteil/Kapitel/einleitung.tex} +\include{Textteil/Kapitel/grundlagen.tex} +\include{Textteil/Kapitel/vorgehen.tex} +\include{Textteil/Kapitel/ergebnisse.tex} +\include{Textteil/Kapitel/diskussion.tex} +\include{Textteil/Kapitel/fazit.tex} +\include{Textteil/Kapitel/appendix.tex} + +\bibliographystyle{dinat} diff --git a/custom.bst b/custom.bst new file mode 100644 index 0000000..a307276 --- /dev/null +++ b/custom.bst @@ -0,0 +1,1436 @@ +%% File: `plainnat.bst' +%% A modification of `plain.bst' for use with natbib package +%% +%% Copyright 1993-2007 Patrick W Daly +%% Max-Planck-Institut f\"ur Sonnensystemforschung +%% Max-Planck-Str. 2 +%% D-37191 Katlenburg-Lindau +%% Germany +%% E-mail: daly@mps.mpg.de +%% +%% This program can be redistributed and/or modified under the terms +%% of the LaTeX Project Public License Distributed from CTAN +%% archives in directory macros/latex/base/lppl.txt; either +%% version 1 of the License, or any later version. +%% + % Version and source file information: + % \ProvidesFile{natbst.mbs}[2007/11/26 1.93 (PWD)] + % + % BibTeX `plainnat' family + % version 0.99b for BibTeX versions 0.99a or later, + % for LaTeX versions 2.09 and 2e. + % + % For use with the `natbib.sty' package; emulates the corresponding + % member of the `plain' family, but with author-year citations. + % + % With version 6.0 of `natbib.sty', it may also be used for numerical + % citations, while retaining the commands \citeauthor, \citefullauthor, + % and \citeyear to print the corresponding information. + % + % For version 7.0 of `natbib.sty', the KEY field replaces missing + % authors/editors, and the date is left blank in \bibitem. + % + % Includes field EID for the sequence/citation number of electronic journals + % which is used instead of page numbers. + % + % Includes fields ISBN and ISSN. + % + % Includes field URL for Internet addresses. + % + % Includes field DOI for Digital Object Idenfifiers. + % + % Works best with the url.sty package of Donald Arseneau. + % + % Works with identical authors and year are further sorted by + % citation key, to preserve any natural sequence. + % + ENTRY + { address + author + booktitle + chapter + doi + eid + edition + editor + howpublished + institution + isbn + issn + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + url + volume + year + } + {} + { label extra.label sort.label short.list } + +INTEGERS { output.state before.all mid.sentence after.sentence after.block } + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := +} + +STRINGS { s t } + +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { add.period$ write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + { add.period$ " " * write$ } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + s +} + +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} + +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull + if$ +} + +FUNCTION {fin.entry} +{ add.period$ + write$ + newline$ +} + +FUNCTION {new.block} +{ output.state before.all = + 'skip$ + { after.block 'output.state := } + if$ +} + +FUNCTION {new.sentence} +{ output.state after.block = + 'skip$ + { output.state before.all = + 'skip$ + { after.sentence 'output.state := } + if$ + } + if$ +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\emph{" swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " und " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.key} +{ empty$ + { key field.or.null } + { "" } + if$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", editors" * } + { ", editor" * } + if$ + } + if$ +} + +FUNCTION {format.isbn} +{ isbn empty$ + { "" } + { new.block "ISBN " isbn * } + if$ +} + +FUNCTION {format.issn} +{ issn empty$ + { "" } + { new.block "ISSN " issn * } + if$ +} + +FUNCTION {format.url} +{ url empty$ + { "" } + { new.block "URL \url{" url * "}" * } + if$ +} + +FUNCTION {format.doi} +{ doi empty$ + { "" } + { new.block "\doi{" doi * "}" * } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ } + if$ +} + +FUNCTION {format.full.names} +{'s := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}" format.name$ 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " und " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {author.editor.full} +{ author empty$ + { editor empty$ + { "" } + { editor format.full.names } + if$ + } + { author format.full.names } + if$ +} + +FUNCTION {author.full} +{ author empty$ + { "" } + { author format.full.names } + if$ +} + +FUNCTION {editor.full} +{ editor empty$ + { "" } + { editor format.full.names } + if$ +} + +FUNCTION {make.full.names} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.full + { type$ "proceedings" = + 'editor.full + 'author.full + if$ + } + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem[" write$ + label write$ + ")" make.full.names duplicate$ short.list = + { pop$ } + { * } + if$ + "]{" * write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {n.dashify} +{ 't := + "" + { t empty$ not } + { t #1 #1 substring$ "-" = + { t #1 #2 substring$ "--" = not + { "--" * + t #2 global.max$ substring$ 't := + } + { { t #1 #1 substring$ "-" = } + { "-" * + t #2 global.max$ substring$ 't := + } + while$ + } + if$ + } + { t #1 #1 substring$ * + t #2 global.max$ substring$ 't := + } + if$ + } + while$ +} + +FUNCTION {format.date} +{ year duplicate$ empty$ + { "empty year in " cite$ * warning$ + pop$ "" } + 'skip$ + if$ + month empty$ + 'skip$ + { month + " " * swap$ * + } + if$ + extra.label * +} + +FUNCTION {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "volume" volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edition" * } + { edition "t" change.case$ " edition" * } + if$ + } + if$ +} + +INTEGERS { multiresult } + +FUNCTION {multi.page.check} +{ 't := + #0 'multiresult := + { multiresult not + t empty$ not + and + } + { t #1 #1 substring$ + duplicate$ "-" = + swap$ duplicate$ "," = + swap$ "+" = + or or + { #1 'multiresult := } + { t #2 global.max$ substring$ 't := } + if$ + } + while$ + multiresult +} + +FUNCTION {format.pages} +{ pages empty$ + { "" } + { pages multi.page.check + { "pages" pages n.dashify tie.or.space.connect } + { "page" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.eid} +{ eid empty$ + { "" } + { "art." eid tie.or.space.connect } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { "\penalty0 (" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ":\penalty0 " * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.vol.num.eid} +{ volume field.or.null + number empty$ + 'skip$ + { "\penalty0 (" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + eid empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.eid } + { ":\penalty0 " * eid * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "In " booktitle emphasize * } + { "In " format.editors * ", " * booktitle emphasize * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "In \emph{" journal * "}" * } + if$ + } + { "In " } + if$ + " \citet{" * crossref * "}" * +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Volume" volume tie.or.space.connect + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "\emph{" * series * "}" * } + if$ + } + 'skip$ + if$ + } + 'skip$ + if$ + " \citet{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "In \emph{" booktitle * "}" * } + if$ + } + { "In " } + if$ + } + { "In " } + if$ + " \citet{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + author format.key output + new.block + format.title "title" output.check + new.block + crossref missing$ + { journal emphasize "journal" output.check + eid empty$ + { format.vol.num.pages output } + { format.vol.num.eid output } + if$ + format.date "year" output.check + } + { format.article.crossref output.nonnull + eid empty$ + { format.pages output } + { format.eid output } + if$ + } + if$ + format.issn output + format.doi output + format.url output + new.block + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check + editor format.key output + } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + format.isbn output + format.doi output + format.url output + new.block + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + author format.key output + new.block + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + format.isbn output + format.doi output + format.url output + new.block + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check + editor format.key output + } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + format.isbn output + format.doi output + format.url output + new.block + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + author format.key output + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + format.isbn output + format.doi output + format.url output + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + author format.key output + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + format.isbn output + format.doi output + format.url output + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + format.authors output + author format.key output + new.block + format.btitle "title" output.check + organization address new.block.checkb + organization output + address output + format.edition output + format.date output + format.url output + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + new.block + format.title "title" output.check + new.block + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + format.url output + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + author format.key output + title howpublished new.block.checkb + format.title output + howpublished new.block.checka + howpublished output + format.date output + format.issn output + format.url output + new.block + note output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + new.block + format.btitle "title" output.check + new.block + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + format.url output + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + format.editors output + editor format.key output + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address output + format.date "year" output.check + new.sentence + organization output + publisher output + format.isbn output + format.doi output + format.url output + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + author format.key output + new.block + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + format.url output + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + author format.key output + new.block + format.title "title" output.check + new.block + note "note" output.check + format.date output + format.url output + fin.entry +} + +FUNCTION {default.type} { misc } + + +MACRO {jan} {"January"} + +MACRO {feb} {"February"} + +MACRO {mar} {"March"} + +MACRO {apr} {"April"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"October"} + +MACRO {nov} {"November"} + +MACRO {dec} {"December"} + + + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} +{"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + + +READ + +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} + +INTEGERS { len } + +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} + +FUNCTION {format.lab.names} +{ 's := + s #1 "{vv~}{ll}" format.name$ + s num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " und " * s #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.lab.names } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.key.organization.label} +{ author empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + 'key + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.organization.label} +{ editor empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + 'key + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.short.authors} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.organization.label + { type$ "manual" = + 'author.key.organization.label + 'author.key.label + if$ + } + if$ + } + if$ + 'short.list := +} + +FUNCTION {calc.label} +{ calc.short.authors + short.list + "(" + * + year duplicate$ empty$ + short.list key field.or.null = or + { pop$ "" } + 'skip$ + if$ + * + 'label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { + s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := + nameptr #1 > + { + " " * + namesleft #1 = t "others" = and + { "zzzzz" * } + { numnames #2 > nameptr #2 = and + { "zz" * year field.or.null * " " * } + 'skip$ + if$ + t sortify * + } + if$ + } + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {sort.format.title} +{ 't := + "A " #2 + "An " #3 + "The " #4 t chop.word + chop.word + chop.word + sortify + #1 global.max$ substring$ +} + +FUNCTION {author.sort} +{ author empty$ + { key empty$ + { "to sort, need author or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {author.editor.sort} +{ author empty$ + { editor empty$ + { key empty$ + { "to sort, need author, editor, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { editor sort.format.names } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + + +FUNCTION {presort} +{ calc.label + label sortify + " " + * + type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + " " + * + year field.or.null sortify + * + " " + * + cite$ + * + #1 entry.max$ substring$ + 'sort.label := + sort.label * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { longest.label last.label next.extra } + +INTEGERS { longest.label.width last.extra.num number.label } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #0 int.to.chr$ 'last.label := + "" 'next.extra := + #0 'longest.label.width := + #0 'last.extra.num := + #0 'number.label := +} + +FUNCTION {forward.pass} +{ last.label label = + { last.extra.num #1 + 'last.extra.num := + last.extra.num int.to.chr$ 'extra.label := + } + { "a" chr.to.int$ 'last.extra.num := + "" 'extra.label := + label 'last.label := + } + if$ + number.label #1 + 'number.label := +} + +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + extra.label 'next.extra := + extra.label + duplicate$ empty$ + 'skip$ + { "{\natexlab{" swap$ * "}}" * } + if$ + 'extra.label := + label extra.label * 'label := +} + +EXECUTE {initialize.longest.label} + +ITERATE {forward.pass} + +REVERSE {reverse.pass} + +FUNCTION {bib.sort.order} +{ sort.label 'sort.key$ := +} + +ITERATE {bib.sort.order} + +SORT + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" number.label int.to.str$ * "}" * + write$ newline$ + "\providecommand{\natexlab}[1]{#1}" + write$ newline$ + "\providecommand{\url}[1]{\texttt{#1}}" + write$ newline$ + "\expandafter\ifx\csname urlstyle\endcsname\relax" + write$ newline$ + " \providecommand{\doi}[1]{doi: #1}\else" + write$ newline$ + " \providecommand{\doi}{doi: \begingroup \urlstyle{rm}\Url}\fi" + write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} diff --git a/docker/Dockerfile b/docker/Dockerfile new file mode 100644 index 0000000..c9c2e15 --- /dev/null +++ b/docker/Dockerfile @@ -0,0 +1,2 @@ +FROM texlive/texlive +CMD tail -f /dev/null \ No newline at end of file diff --git a/lit.bib b/lit.bib new file mode 100644 index 0000000..483836b --- /dev/null +++ b/lit.bib @@ -0,0 +1,1131 @@ +% Encoding: UTF-8 +@misc{felisberto2024tradeoffsmonolithicvsdistributed, + title = {The trade-offs between Monolithic vs. Distributed Architectures}, + author = {Matheus Felisberto}, + year = {2024}, + eprint = {2405.03619}, + archiveprefix = {arXiv}, + primaryclass = {cs.SE}, + url = {https://arxiv.org/abs/2405.03619} +} + +@article{cloudArchHistory, + author = {Kratzke, Nane}, + title = {A Brief History of Cloud Application Architectures}, + journal = {Applied Sciences}, + volume = {8}, + year = {2018}, + number = {8}, + article-number = {1368}, + url = {https://www.mdpi.com/2076-3417/8/8/1368}, + issn = {2076-3417}, + abstract = {This paper presents a review of cloud application architectures and its evolution. It reports observations being made during a research project that tackled the problem to transfer cloud applications between different cloud infrastructures. As a side effect, we learned a lot about commonalities and differences from plenty of different cloud applications which might be of value for cloud software engineers and architects. Throughout the research project, we analyzed industrial cloud standards, performed systematic mapping studies of cloud-native application-related research papers, did action research activities in cloud engineering projects, modeled a cloud application reference model, and performed software and domain-specific language engineering activities. Two primary (and sometimes overlooked) trends can be identified. First, cloud computing and its related application architecture evolution can be seen as a steady process to optimize resource utilization in cloud computing. Second, these resource utilization improvements resulted over time in an architectural evolution of how cloud applications are being built and deployed. A shift from monolithic service-oriented architectures (SOA), via independently deployable microservices towards so-called serverless architectures, is observable. In particular, serverless architectures are more decentralized and distributed, and make more intentional use of separately provided services. In other words, a decentralizing trend in cloud application architectures is observable that emphasizes decentralized architectures known from former peer-to-peer based approaches. This is astonishing because, with the rise of cloud computing (and its centralized service provisioning concept), the research interest in peer-to-peer based approaches (and its decentralizing philosophy) decreased. However, this seems to change. Cloud computing could head into the future of more decentralized and more meshed services.}, + doi = {10.3390/app8081368} +} + +@article{ieecloudcomputing, + author = {Saraswat Manish}, + journal = {SMART –2020, IEEE Conference ID: 50582}, + title = {Cloud Computing: Comparison and Analysis of Cloud Service Providers — AWS, Microsoft and Google}, + year = {2021} +} + +@article{javaTheUnixWay, + author = {Lewis, James}, + journal = {33rd Degree Conference Krakow Poland Micro services}, + title = {Java, the Unix Way}, + date = {19.21 March 2012}, + year = {2012} +} + +@article{theComparisonofMicroserviceandMonolithicArchitecture, + author = {Gros, Konrad and Zabierowski, Wojciech}, + journal = {MEMSTECH 2020}, + title = {The Comparison of Microservice and Monolithic Architecture}, + date = {22-26 April 2020}, + year = {2020} +} +@article{monolithVsMicroserviceScaling, + author = {Blinowski, Grzegorz and Ojdowska, Anna and PRZYBYŁEK Adam}, + title = {Monolithic vs. Microservice Architecture: A Performance and Scalability Evaluation}, + date = {30 November 2021}, + year = {2021} +} + +@article{7931583, + author = {Dai, Wenbin and Vyatkin, Valeriy and Christensen, James H. and Dubinin, Victor N.}, + journal = {IEEE Transactions on Industrial Informatics}, + title = {Response to “Comments on Bridging Service-Oriented Architecture and IEC 61499 for Flexibility and Interoperability”}, + year = {2017}, + volume = {13}, + number = {4}, + pages = {1497-1502}, + doi = {10.1109/TII.2017.2706066} +} + +@inproceedings{6139091, + author = {Clark, Tony and Barn, Balbir S.}, + booktitle = {Proceedings of 2011 IEEE 6th International Symposium on Service Oriented System (SOSE)}, + title = {Event driven architecture modelling and simulation}, + year = {2011}, + volume = {}, + number = {}, + pages = {43-54}, + doi = {10.1109/SOSE.2011.6139091} +} + +@book{45210920120101, + abstract = {Cloud computing is considered to be one of the main business drivers for growth and innovation, and a global survey by Gartner listed cloud computing as one of the top three technology priorities for CIOs in 2012. Yet debate continues around its real benefits, security and data protection issues. The articles in this ebook look at different aspects of cloud computing, from strategic and infrastructure considerations to legal and security issues, aiming to provide practical advice and a clearer picture of its benefits and drawbacks.}, + author = {{BCS The Chartered Institute for IT}}, + isbn = {9781780171302}, + publisher = {BCS The Chartered Institute for IT}, + title = {Cloud Computing: Moving IT Out of the Office.}, + year = {2012} +} + +@inbook{Dressel2011, + author = {Dressel, Kathrin + and Pfeiffer, Birgit}, + editor = {Schweiger, Stefan + and Dressel, Kathrin + and Pfeiffer, Birgit}, + title = {Total Cost of Ownership -- ein innovativer Ansatz zum Ausbau des Servicegesch{\"a}fts}, + booktitle = {Serviceinnovationen in Industrieunternehmen erfolgreich umsetzen: Neue Gesch{\"a}ftspotenziale gezielt durch Dienstleistungen aussch{\"o}pfen}, + year = {2011}, + publisher = {Gabler Verlag}, + address = {Wiesbaden}, + pages = {25--42}, + abstract = {Die Bedeutung des Servicesektors kann aufgrund technologischer und struktureller Ver{\"a}nderungen, die sowohl auf Anbieter- als auch auf Nachfragerseite die Entwicklung des Servicesektors vorantreiben, nicht mehr geleugnet werden. Seit den 1970er Jahren vollzieht sich in den modernen Industriestaaten ein Strukturwandel von einer Industrie- zu einer Dienstleistungsgesellschaft. Aufgrund dieser sogenannten Terti{\"a}risierung verzeichnet Deutschland einen Besch{\"a}ftigungsanstieg, so dass mittlerweile mehr als 70 Prozent der Erwerbst{\"a}tigkeit auf Dienstleistungsberufe entf{\"a}llt. Dieser fr{\"u}her eher unbedeutende Bereich hat sich bis heute zum Job-Motor entwickelt und schafft in wirtschaftlich entwickelten L{\"a}ndern sieben von zehn neuen Arbeitspl{\"a}tzen. Es hat „gemessen an den Zust{\"a}nden von 1995 {\ldots} eine Neuorientierung von Wirtschaft und Gesellschaft hinsichtlich der Dienstleistungswirtschaft stattgefunden``.}, + isbn = {978-3-8349-6834-0}, + doi = {10.1007/978-3-8349-6834-0_2}, + url = {https://doi.org/10.1007/978-3-8349-6834-0_2} +} + +@inproceedings{6299509, + author = {Bechhoefer, Eric and Morton, Brogan}, + booktitle = {2012 IEEE Conference on Prognostics and Health Management}, + title = {Condition monitoring architecture: To reduce total cost of ownership}, + year = {2012}, + volume = {}, + number = {}, + pages = {1-9}, + doi = {10.1109/ICPHM.2012.6299509} +} + +@inproceedings{6149074, + author = {Martens, Benedikt and Walterbusch, Marc and Teuteberg, Frank}, + booktitle = {2012 45th Hawaii International Conference on System Sciences}, + title = {Costing of Cloud Computing Services: A Total Cost of Ownership Approach}, + year = {2012}, + volume = {}, + number = {}, + pages = {1563-1572}, + doi = {10.1109/HICSS.2012.186} +} + +@article{tayal2019determining, + title = {Determining the Total Cost of Ownership of Serverless Technologies when compared to Traditional Cloud}, + author = {Tayal, Akash and Lam, Eric and Choudhury, Diganto and Dickerson, Meghan and Moovera, Ganesh and Arora, Gary}, + journal = {Deloitte Consulting LLP, New York, USA, White Paper}, + year = {2019} +} + +@incollection{incollection, + author = {Martens, Benedikt and Zarvic, Novica and Teuteberg, Frank and Thomas, Oliver}, + title = {Designing a risk-based partner selection process for collaborative cloud computing environments}, + year = 2011, + booktitle = {Enterprise modelling and information systems architectures (EMISA 2011)}, + publisher = {Gesellschaft für Informatik e.V.}, + address = {Bonn}, + pissn = {1617-5468}, + isbn = {978-3-88579-284-0}, + pages = {237--242} +} + +@article{TotalCostofOwnershipModelsAnExploratoryStudy, + author = {Ferrin, Bruce G. and Plank, Richard E.}, + title = {Total Cost of Ownership Models: An Exploratory Study}, + journal = {Journal of Supply Chain Management}, + volume = {38}, + number = {2}, + pages = {18-29}, + doi = {https://doi.org/10.1111/j.1745-493X.2002.tb00132.x}, + url = {https://onlinelibrary.wiley.com/doi/abs/10.1111/j.1745-493X.2002.tb00132.x}, + eprint = {https://onlinelibrary.wiley.com/doi/pdf/10.1111/j.1745-493X.2002.tb00132.x}, + abstract = {SUMMARY This research examines organizational purchasing models focusing on the use of total cost of ownership (TCO) to value purchase opportunities. The research presents evidence that leading-edge companies actually use such models. This exploratory study provides, for the first time, data on the nature, and use, of the cost drivers on which organizations base their TCO computations. The study suggests a generic model of total cost of ownership is not appropriate. However, the findings of this research suggest a TCO model based on a core set of cost drivers, along with an auxiliary set of cost drivers, is appropriate. The core cost drivers would be present in all, or most, TCO computations. Purchasing managers could use different, specific cost drivers from the auxiliary set to tailor the TCO computation for a particular purchase situation. The authors also suggest that a value-based, multi-firm, or supply chain, TCO computation model is needed. Such a TCO model should be similar to a single-firm TCO model.}, + year = {2002} +} + +@article{sowmya2014layers, + title = {Layers of cloud--IaaS, PaaS and SaaS: a survey}, + author = {Sowmya, SK and Deepika, P and Naren, J}, + journal = {International Journal of Computer Science and Information Technologies}, + volume = {5}, + number = {3}, + pages = {4477--4480}, + year = {2014}, + publisher = {Citeseer} +} + +@inproceedings{9702776, + author = {Pramono, Luthfan Hadi and Yana Javista, Yohanes Krisna}, + booktitle = {2021 4th International Seminar on Research of Information Technology and Intelligent Systems (ISRITI)}, + title = {Firebase Authentication Cloud Service for RESTful API Security on Employee Presence System}, + year = {2021}, + volume = {}, + number = {}, + pages = {1-6}, + doi = {10.1109/ISRITI54043.2021.9702776} +} + +@inproceedings{seethamraju2013determinants, + title = {Determinants of SaaS ERP Systems Adoption.}, + author = {Seethamraju, Ravi}, + booktitle = {PACIS}, + pages = {244}, + year = {2013} +} + +@inproceedings{7577423, + author = {Jha, Madan Mohan and Vilardell, Rosa Maria Ferrer and Narayan, Jai}, + booktitle = {2016 IEEE 11th International Conference on Global Software Engineering (ICGSE)}, + title = {Scaling Agile Scrum Software Development: Providing Agility and Quality to Platform Development by Reducing Time to Market}, + year = {2016}, + volume = {}, + number = {}, + pages = {84-88}, + doi = {10.1109/ICGSE.2016.24} +} + +@article{dsgvoWDDB, + title = {DSGVO und Nutzung US-amerikanischer Cloud-Dienste}, + author = {Wissenschaftliche Dienste Deutscher Bundestag}, + year = {2021}, + doi = {WD3-3000-102/21}, + publisher = {Deutscher Bundestag} +} + +@misc{akbarimoghanjoughi2023service, + title = {Service Level Agreements for Communication Networks: A Survey}, + author = {Ayyoub Akbari-Moghanjoughi and José Roberto de Almeida Amazonas and Germán Santos-Boada and Josep Solé-Pareta}, + year = {2023}, + eprint = {2309.07272}, + archiveprefix = {arXiv}, + primaryclass = {cs.NI} +} + +@article{8057255, + author = {Aslam, Adeel and Ahmad, Naveed and Saba, Tanzila and Almazyad, Abdulaziz S. and Rehman, Amjad and Anjum, Adeel and Khan, Abid}, + journal = {IEEE Access}, + title = {Decision Support System for Risk Assessment and Management Strategies in Distributed Software Development}, + year = {2017}, + volume = {5}, + number = {}, + pages = {20349-20373}, + doi = {10.1109/ACCESS.2017.2757605} +} + +@article{riskMgm, + author = {Tzvi Raz and Aaron J. Shenhar and Dov Dvir}, + title = {Risk management, project success, and technological uncertainty}, + journal = {R\&D Management}, + year = {2002}, + pages = {101-109}, + doi = {0.1111/1467-9310.00243} +} + +@article{373966, + author = {Andrews, C.J.}, + journal = {IEEE Transactions on Power Systems}, + title = {Evaluating risk management strategies in resource planning}, + year = {1995}, + volume = {10}, + number = {1}, + pages = {420-426}, + doi = {10.1109/59.373966} +} + +@article{TATE1990207, + title = {Case study of risk management, incremental development, and evolutionary prototyping}, + journal = {Information and Software Technology}, + volume = {32}, + number = {3}, + pages = {207-214}, + year = {1990}, + issn = {0950-5849}, + doi = {https://doi.org/10.1016/0950-5849(90)90179-U}, + url = {https://www.sciencedirect.com/science/article/pii/095058499090179U}, + author = {G Tate and J Verner}, + keywords = {case study, development methodology, evolutionary prototyping, incremental development, risk management, user development}, + abstract = {The planning, development, and implementation of an administrative information system for the New Zealand Correspondence School is described. This was a brand new computer system for users with little or no previous experience of computing. The constraints on the project were such that conventional waterfall development using a third-generation language was impracticable. There was, moreover, a number of significant project risks, including requirements uncertainty, a tight time-schedule, staffing constraints, and possible problems of data quality and user acceptance. The case study describes how risk management was used to determine development strategies, including the selection of an appropriate life-cycle model, development methodology, and fourth-generation language development environment. A feature of the project, which contributed significantly to its ultimate success, was the high level of user involvement in the development process, including project management, requirements analysis, documentation, education, liaison, and some implementation.} +} + +@inproceedings{101007, + author = {Boehm, Barry}, + editor = {Ghezzi, C. + and McDermid, J. A.}, + title = {Software risk management}, + booktitle = {ESEC '89}, + year = {1989}, + publisher = {Springer Berlin Heidelberg}, + address = {Berlin, Heidelberg}, + pages = {1--19}, + abstract = {Although software risk management is not yet a fully articulated discipline, its contributions to date have helped many software projects avoid devastating pitfalls and reach successful conclusions. The techniques of risk assessment and risk control outlined here stimulate a ``no surprises'' approach to software management which improves project management visibility and control, and significantly reduces software rework. (Rework costs generally comprise 40--50{\%} of overall software development costs; typically, 80{\%} of the rework costs are caused by the highest-risk 20{\%} of the software problems encountered.) And finally, risk management provides a useful framework for determining which software V{\&}V activities to pursue, and at what level of effort.}, + isbn = {978-3-540-46723-6} +} + +@article{SHRIVASTAVA20171, + title = {A risk management framework for distributed agile projects}, + journal = {Information and Software Technology}, + volume = {85}, + pages = {1-15}, + year = {2017}, + issn = {0950-5849}, + doi = {https://doi.org/10.1016/j.infsof.2016.12.005}, + url = {https://www.sciencedirect.com/science/article/pii/S0950584916304815}, + author = {Suprika Vasudeva Shrivastava and Urvashi Rathod}, + keywords = {Distributed Agile Development (DAD), Agile Software Development, Distributed Software Development (DSD), Risk factor classification, Risk management framework in distributed agile development} +} + +@article{relationVsNoSQL, + author = {Mohamed A. Mohamed, Obay G. Altrafi and Mohammed O. Ismail}, + title = {Relational vs. NoSQL Databases: A Survey}, + journal = {nternational Journal of Computer and Information Technology}, + issn = {2279 – 0764}, + year = {2014} +} + +@article{5742778, + author = {Sakr, Sherif and Liu, Anna and Batista, Daniel M. and Alomari, Mohammad}, + journal = {IEEE Communications Surveys \& Tutorials}, + title = {A Survey of Large Scale Data Management Approaches in Cloud Environments}, + year = {2011}, + volume = {13}, + number = {3}, + pages = {311-336}, + doi = {10.1109/SURV.2011.032211.00087} +} + +@inproceedings{6809438, + author = {Emeakaroha, Vincent C. and Healy, Philip and Fatema, Kaniz and Morrison, John P.}, + booktitle = {2013 IEEE/ACM 6th International Conference on Utility and Cloud Computing}, + title = {Analysis of Data Interchange Formats for Interoperable and Efficient Data Communication in Clouds}, + year = {2013}, + volume = {}, + number = {}, + pages = {393-398}, + doi = {10.1109/UCC.2013.79} +} + +@article{ttm, + author = {Mohamed A. Youssef}, + title = {Design for Manufacturability and Time-to-Market}, + year = {1994} +} + +@article{ttmCost, + author = {Randy Perry, Robert P. Mahowald, Eric Hatcher and Stephen D. Hendrick}, + title = {Force.com Cloud Platform Drives Huge Time to Market and Cost Savings}, + journal = {IDC}, + year = {2009} +} + +@article{nist, + author = {Mell, Peter and Grance, Thimothy}, + title = {The NIST Definition of Cloud Computing}, + year = {2011}, + month = {2011-09-28}, + publisher = {Special Publication (NIST SP), National Institute of Standards and Technology, Gaithersburg, MD}, + doi = {https://doi.org/10.6028/NIST.SP.800-145}, + language = {en} +} + +@article{validationOfStrategicDecisionModel, + author = { + Derkinderen, Frans G. J. and Crum, Roy L.}, + title = {The Development and Empirical Validation of Strategic Decision Models}, + journal = {Int. Studies of Mgt. \& Org., Vol. XVIU, No. 2}, + year = {1988}, + doi = {10.1080/00208825.1988.11656479} +} + +@inproceedings{5235004, + author = {Valipour, Mohammad Hadi and Amirzafari, Bavar and Maleki, Khashayar Niki and Daneshpour, Negin}, + booktitle = {2009 2nd IEEE International Conference on Computer Science and Information Technology}, + title = {A brief survey of software architecture concepts and service oriented architecture}, + year = {2009}, + volume = {}, + number = {}, + pages = {34-38}, + keywords = {Software architecture;Service oriented architecture;Computer architecture;Algorithm design and analysis;Software systems;Stability;Programming;Control systems;Web services;History;Software Architecture;Service-Oriented Architecture;Web Services}, + doi = {10.1109/ICCSIT.2009.5235004} +} + +@inproceedings{8966423, + author = {Ponce, Francisco and Márquez, Gastón and Astudillo, Hernán}, + booktitle = {2019 38th International Conference of the Chilean Computer Science Society (SCCC)}, + title = {Migrating from monolithic architecture to microservices: A Rapid Review}, + year = {2019}, + volume = {}, + number = {}, + pages = {1-7}, + keywords = {Proposals;Computer architecture;Systematics;Architecture;Software;Databases;Microservices;Microservice Architecture;Migration to Microservices;Monolithic to Microservices}, + doi = {10.1109/SCCC49216.2019.8966423} +} + + @article{101007, + author = {Mangwani, Poonam and Mangwani, Niti and Motwani, Sachin}, + journal = {SN Computer Science}, + title = {Evaluation of a Multitenant SaaS Using Monolithic and Microservice Architectures}, + volume = {4}, + year = {2023}, + doi = {10.1007/s42979-022-01610-2} +} + + +@article{Mulahuwaish2022, + author = {Mulahuwaish, Aos + and Korbel, Shane + and Qolomany, Basheer}, + title = {Improving datacenter utilization through containerized service-based architecture}, + journal = {Journal of Cloud Computing}, + year = {2022}, + month = {Sep}, + day = {15}, + volume = {11}, + number = {1}, + pages = {44}, + abstract = {The modern datacenter's computing capabilities have far outstripped the applications running within and have become a hidden cost of doing business due to how software is architected and deployed. Resources are over-allocated to monolithic applications that sit idle for large parts of the day. If applications were architected and deployed differently, shared services could be used for multiple applications as needed. When combined with powerful orchestration software, containerized microservices can both deploy and dynamically scale applications from very small to very large within moments---scaling the application not only across a single datacenter but across all datacenters where the application(s) are deployed.}, + issn = {2192-113X}, + doi = {10.1186/s13677-022-00319-0}, + url = {https://doi.org/10.1186/s13677-022-00319-0} +} + + +@article{sym14091824, + author = {Milić, Miloš and Makajić-Nikolić, Dragana}, + title = {Development of a Quality-Based Model for Software Architecture Optimization: A Case Study of Monolith and Microservice Architectures}, + journal = {Symmetry}, + volume = {14}, + year = {2022}, + number = {9}, + article-number = {1824}, + url = {https://www.mdpi.com/2073-8994/14/9/1824}, + issn = {2073-8994}, + abstract = {Various architectures can be applied in software design. The aim of this research is to examine a typical implementation of Jakarta EE monolithic and microservice software architectures in the context of software quality attributes. Software quality standards are used to define quality models, as well as quality characteristics and sub-characteristics, i.e., software quality attributes. This paper evaluates monolithic and microservice architectures in the context of Coupling, Testability, Security, Complexity, Deployability, and Availability quality attributes. The performed examinations yielded a quality-based mixed integer goal programming mathematical model for software architecture optimization. The model incorporates various software metrics and considers their maximal, minimal or targeted values, as well as upper and lower deviations. The objective is the sum of all deviations, which should be minimal. Considering the presented model, a solution which incorporated multiple monoliths and microservices was defined. This way, the internal structure of the software is defined in a consistent and symmetrical context, while the external software behavior remains unchanged. In addition, an intersection point of monolithic and microservice software architectures, where software metrics obtain the same values, was introduced. Within the intersection point, either one of the architectures can be applied. With the exception of some metrics, an increase in the number of features leads to a value increase of software metrics in microservice software architecture, whilst these values are constant in monolithic software architecture. An increase in the number of features indicated a quality attribute’s importance for the software system should be examined and an appropriate architecture should be selected accordingly. Finally, practical recommendations regarding software architectures in terms of software quality were given. Since each software system needs to meet non-functional in addition to functional requirements, a quality-driven software engineering can be established.}, + doi = {10.3390/sym14091824} +} + +@inproceedings{4335232, + author = {Heitlager, Ilja and Kuipers, Tobias and Visser, Joost}, + booktitle = {6th International Conference on the Quality of Information and Communications Technology (QUATIC 2007)}, + title = {A Practical Model for Measuring Maintainability}, + year = {2007}, + volume = {}, + number = {}, + pages = {30-39}, + keywords = {Software quality;Software maintenance;ISO standards;Communication system software;Software systems;Software testing;IEC standards;Software standards;Communications technology;Software measurement}, + doi = {10.1109/QUATIC.2007.8} +} + +@inproceedings{4670162, + author = {Mani, Senthil and Sinha, Vibha S. and Sukaviriya, Noi and Ramachandra, Thejaswini}, + booktitle = {2008 IEEE International Conference on Web Services}, + title = {Using User Interface Design to Enhance Service Identification}, + year = {2008}, + volume = {}, + number = {}, + pages = {78-87}, + keywords = {User interfaces;Service oriented architecture;Web services;Context modeling;Process design;Application software;Navigation;Specification languages;USA Councils;Software design;SOA;Service Identification;UI Modeling}, + doi = {10.1109/ICWS.2008.86} +} + +@techreport{bianco_2007, + author = {Bianco, Philip and Kotermanski, Rick and Merson, Paulo}, + title = {Evaluating a Service-Oriented Architecture}, + month = {Sep}, + year = {2007}, + number = {CMU/SEI-2007-TR-015}, + howpublished = {Carnegie Mellon University, Software Engineering Institute's Digital Library}, + url = {https://doi.org/10.1184/R1/6573479.v1}, + note = {Accessed: 2024-Mar-13} +} + +@article{doi:10.2753/MIS0742-1222260409, + author = {Jae Choi, Derek L. Nazareth and Hemant K. Jain}, + title = {Implementing Service-Oriented Architecture in Organizations}, + journal = {Journal of Management Information Systems}, + volume = {26}, + number = {4}, + pages = {253-286}, + year = {2010}, + publisher = {Routledge}, + doi = {10.2753/MIS0742-1222260409}, + url = { + https://doi.org/10.2753/MIS0742-1222260409 + }, + eprint = { + https://doi.org/10.2753/MIS0742-1222260409 + } +} + +@inproceedings{4273267, + author = {Liu, Yanguo and Traore, Issa}, + booktitle = {Third International Workshop on Predictor Models in Software Engineering (PROMISE'07: ICSE Workshops 2007)}, + title = {Complexity Measures for Secure Service-Oriented Software Architectures}, + year = {2007}, + volume = {}, + number = {}, + pages = {11-11}, + keywords = {Software measurement;Software architecture;Software systems;Service oriented architecture;Business communication;Security;Software quality;Open source software;Application software;Resists}, + doi = {10.1109/PROMISE.2007.4} +} + + @inproceedings{5557959, + author = {Azeez, Afkham and Perera, Srinath and Gamage, Dimuthu and Linton, Ruwan and Siriwardana, Prabath and Leelaratne, Dimuthu and Weerawarana, Sanjiva and Fremantle, Paul}, + booktitle = {2010 IEEE 3rd International Conference on Cloud Computing}, + title = {Multi-tenant SOA Middleware for Cloud Computing}, + year = {2010}, + volume = {}, + number = {}, + pages = {458-465}, + keywords = {Carbon;Servers;Service oriented architecture;Security;Business;Databases;Cloud computing;multi-tenancy;SaaS;PaaS;Cloud Computing;SOA}, + doi = {10.1109/CLOUD.2010.50} +} + +@article{Paraiso2016, + author = {Paraiso, Fawaz + and Merle, Philippe + and Seinturier, Lionel}, + title = {soCloud: a service-oriented component-based PaaS for managing portability, provisioning, elasticity, and high availability across multiple clouds}, + journal = {Computing}, + year = {2016}, + month = {May}, + day = {01}, + volume = {98}, + number = {5}, + pages = {539-565}, + abstract = {Multi-cloud computing is a promising paradigm to support very large scale world wide distributed applications. Multi-cloud computing is the usage of multiple, independent cloud environments, which assumed no priori agreement between cloud providers or third party. However, multi-cloud computing has to face several key challenges such as portability, provisioning, elasticity, and high availability. Developers will not only have to deploy applications to a specific cloud, but will also have to consider application portability from one cloud to another, and to deploy distributed applications spanning multiple clouds. This article presents soCloud a service-oriented component-based Platform as a Service for managing portability, elasticity, provisioning, and high availability across multiple clouds. soCloud is based on the OASIS Service Component Architecture standard in order to address portability. soCloud provides services for managing provisioning, elasticity, and high availability across multiple clouds. soCloud has been deployed and evaluated on top of ten existing cloud providers: Windows Azure, DELL KACE, Amazon EC2, CloudBees, OpenShift, dotCloud, Jelastic, Heroku, Appfog, and an Eucalyptus private cloud.}, + issn = {1436-5057}, + doi = {10.1007/s00607-014-0421-x}, + url = {https://doi.org/10.1007/s00607-014-0421-x} +} + + +@article{killalea2016hidden, + title = {The hidden dividends of microservices}, + author = {Killalea, Tom}, + journal = {Communications of the ACM}, + volume = {59}, + number = {8}, + pages = {42--45}, + year = {2016}, + publisher = {ACM New York, NY, USA} +} + +@inproceedings{29915612991566, + author = {Perera, Charith and McCormick, Ciaran and Bandara, Arosha K. and Price, Blaine A. and Nuseibeh, Bashar}, + title = {Privacy-by-Design Framework for Assessing Internet of Things Applications and Platforms}, + year = {2016}, + isbn = {9781450348140}, + publisher = {Association for Computing Machinery}, + address = {New York, NY, USA}, + url = {https://doi.org/10.1145/2991561.2991566}, + doi = {10.1145/2991561.2991566}, + abstract = {The Internet of Things (IoT) systems are designed and developed either as standalone applications from the ground-up or with the help of IoT middleware platforms. They are designed to support different kinds of scenarios, such as smart homes and smart cities. Thus far, privacy concerns have not been explicitly considered by IoT applications and middleware platforms. This is partly due to the lack of systematic methods for designing privacy that can guide the software development process in IoT. In this paper, we propose a set of guidelines, a privacy by-design framework, that can be used to assess privacy capabilities and gaps of existing IoT applications as well as middleware platforms. We have evaluated two open source IoT middleware platforms, namely OpenIoT and Eclipse SmartHome, to demonstrate how our framework can be used in this way.}, + booktitle = {Proceedings of the 6th International Conference on the Internet of Things}, + pages = {83–92}, + numpages = {10}, + keywords = {privacy, Software Engineering, Internet of Things}, + location = {Stuttgart, Germany}, + series = {IoT'16} +} + +@misc{EU-DSGVO, + added-at = {2019-09-19T11:05:39.000+0200}, + author = {{Verordnung (EU) 2016/679}}, + biburl = {https://www.bibsonomy.org/bibtex/27ceec40814c62a8d2938b0bb8693487f/bcoldewey}, + description = {EUR-Lex - 32016R0679 - DE - EUR-Lex}, + interhash = {7434db135dfcb4d89034bc0409fe260f}, + intrahash = {7ceec40814c62a8d2938b0bb8693487f}, + keywords = {DSGVO EU Verordnung}, + timestamp = {2019-09-19T11:09:10.000+0200}, + title = {Verordnung (EU) 2016/679 des Europäischen Parlaments und des Rates vom 27. April 2016 zum Schutz natürlicher Personen bei der Verarbeitung personenbezogener Daten, zum freien Datenverkehr und zur Aufhebung der Richtlinie 95/46/EG (Datenschutz-Grundverordnung) (Text von Bedeutung für den EWR)}, + year = 2016 +} + +@inproceedings{9781685, + author = {Mashaly, Bahgat and Selim, Sahar and Yousef, Ahmed H. and Fouad, Khaled M.}, + booktitle = {2022 2nd International Mobile, Intelligent, and Ubiquitous Computing Conference (MIUCC)}, + title = {Privacy by Design: A Microservices-Based Software Architecture Approach}, + year = {2022}, + volume = {}, + number = {}, + pages = {357-364}, + keywords = {Data privacy;Privacy;Software architecture;Law;Microservice architectures;Systems architecture;Organizations;Privacy;GDPR;Software Architecture;Microservice;Architecture;Software Design;Regulations;Compliance}, + doi = {10.1109/MIUCC55081.2022.9781685} +} + +@article{abs210300170, + author = {Rodrigo Laigner and + Yongluan Zhou and + Marcos Antonio Vaz Salles and + Yijian Liu and + Marcos Kalinowski}, + title = {Data Management in Microservices: State of the Practice, Challenges, + and Research Directions}, + journal = {CoRR}, + volume = {abs/2103.00170}, + year = {2021}, + url = {https://arxiv.org/abs/2103.00170}, + eprinttype = {arXiv}, + eprint = {2103.00170}, + timestamp = {Thu, 04 Mar 2021 17:00:40 +0100}, + biburl = {https://dblp.org/rec/journals/corr/abs-2103-00170.bib}, + bibsource = {dblp computer science bibliography, https://dblp.org} +} + +@inproceedings{10.1007/978-3-319-43949-5_18, + author = {Messina, Antonio + and Rizzo, Riccardo + and Storniolo, Pietro + and Tripiciano, Mario + and Urso, Alfonso}, + editor = {Renda, M. Elena + and Bursa, Miroslav + and Holzinger, Andreas + and Khuri, Sami}, + title = {The Database-is-the-Service Pattern for Microservice Architectures}, + booktitle = {Information Technology in Bio- and Medical Informatics}, + year = {2016}, + publisher = {Springer International Publishing}, + address = {Cham}, + pages = {223--233}, + abstract = {Monolithic applications are the most common development paradigm but they have some drawback related to the maintenance, upgrading and scaling. Microservice architectures were recently proposed in order to solve some of these issues, because they are simpler to scale and more flexible. Both architectures use a database and this component can act as a component for micro service. In the paper we present a pattern for microservice architecture that uses a database as component, and this pattern is used in an health record application. We explain also the requirements of the database for this pattern and the advantages achieved.}, + isbn = {978-3-319-43949-5} +} + +@inproceedings{9130516, + author = {Munonye, K. and Martinek, P.}, + booktitle = {2020 IEEE 15th International Conference of System of Systems Engineering (SoSE)}, + title = {Evaluation of Data Storage Patterns in Microservices Archicture}, + year = {2020}, + volume = {}, + number = {}, + pages = {373-380}, + keywords = {Enterprise Application Integration(EAI);Microservices;REST API;Shared Databases;Database Per Service}, + doi = {10.1109/SoSE50414.2020.9130516} +} + + @inproceedings{10.1007/978-3-030-14070-0_26, + author = {da Silva, Hugo Henrique S. + and de F. Carneiro, Glauco + and Monteiro, Miguel P.}, + editor = {Latifi, Shahram}, + title = {An Experience Report from the Migration of Legacy Software Systems to Microservice Based Architecture}, + booktitle = {16th International Conference on Information Technology-New Generations (ITNG 2019)}, + year = {2019}, + publisher = {Springer International Publishing}, + address = {Cham}, + pages = {183-189}, + isbn = {978-3-030-14070-0} +} + +@article{onMicroServices, + author = {Namiot, Dmitry and sneps-sneppe, Manfred}, + year = {2014}, + month = {09}, + pages = {24-27}, + title = {On Micro-services Architecture}, + volume = {2}, + journal = {Interenational Journal of Open Information Technologies} +} + +@inproceedings{114533388403355659, + author = {Smid, Antonin and Wang, Ruolin and Cerny, Tomas}, + title = {Case study on data communication in microservice architecture}, + year = {2019}, + isbn = {9781450368438}, + publisher = {Association for Computing Machinery}, + address = {New York, NY, USA}, + url = {https://doi.org/10.1145/3338840.3355659}, + doi = {10.1145/3338840.3355659}, + booktitle = {Proceedings of the Conference on Research in Adaptive and Convergent Systems}, + pages = {261–267}, + numpages = {7}, + keywords = {system integration, microservices, cloud-computing}, + location = {Chongqing, China}, + series = {RACS '19} +} + +@article{512120123602, + author = {Shamsoddin-Motlagh, Ebrahim}, + year = {2012}, + month = {12}, + title = {A Survey of Service Oriented Architecture Systems Testing}, + volume = {3}, + journal = {International Journal of Software Engineering \& Applications}, + doi = {10.5121/ijsea.2012.3602} +} + +@inbook{Mayring2010, + author = {Mayring, Philipp}, + editor = {Mey, G{\"u}nter + and Mruck, Katja}, + title = {Qualitative Inhaltsanalyse}, + booktitle = {Handbuch Qualitative Forschung in der Psychologie}, + year = {2010}, + publisher = {VS Verlag f{\"u}r Sozialwissenschaften}, + address = {Wiesbaden}, + pages = {601--613}, + isbn = {978-3-531-92052-8}, + doi = {10.1007/978-3-531-92052-8_42}, + url = {https://doi.org/10.1007/978-3-531-92052-8_42} +} + +@article{Khan2023, + author = {Khan, Saad Ullah + and Khan, Abdul Wahid + and Khan, Faheem + and Khan, Jawad + and Lee, Youngmoon}, + title = {Factors influencing vendor organizations in the selection of DevOps for global software development: an exploratory study using a systematic literature review}, + journal = {Cognition, Technology {\&} Work}, + year = {2023}, + month = {Nov}, + day = {01}, + volume = {25}, + number = {4}, + pages = {411-426}, + issn = {1435-5566}, + doi = {10.1007/s10111-023-00733-7}, + url = {https://doi.org/10.1007/s10111-023-00733-7} +} + +@inbook{Witte2023, + author = {Witte, Frank}, + title = {Auswahl und Evaluierung geeigneter Tools und Entscheidungsmatrix}, + booktitle = {Konzeption und Umsetzung automatisierter Softwaretests: Testautomatisierung zur Optimierung von Testabdeckung und Softwarequalit{\"a}t}, + year = {2023}, + publisher = {Springer Fachmedien Wiesbaden}, + address = {Wiesbaden}, + pages = {103--111}, + abstract = {Bevor ein Werkzeug zur Unterst{\"u}tzung der Testautomatisierung beschafft wird, ist ein geeigneter Auswahlprozess mit definierten Kriterien zur Bestimmung des geeigneten Tools erforderlich. Die Einbindung der Stakeholder in den Auswahlprozess tr{\"a}gt dabei wesentlich zur Akzeptanz des Tools bei. Zur neutralen Beurteilung empfiehlt sich eine entsprechende Gewichtung der einzelnen Kriterien.}, + isbn = {978-3-658-42661-3}, + doi = {10.1007/978-3-658-42661-3_12}, + url = {https://doi.org/10.1007/978-3-658-42661-3_12} +} + +@article{cloudPerspectiveStudy, + author = {Wang Lizhe and von Laszewski Gregor and Kunze Marcel and Tao Jie}, + title = {Cloud computing: a perspective study.}, + journal = {New Generation Computing 28}, + year = {2010} +} + +@article{primeScaling, + author = {Marcin Kolny}, + title = {Scaling up the Prime Video audio/video monitoring service and reducing costs by 90}, + year = {2023} +} + +@article{RAZAVIAN2019360, + title = {Empirical research for software architecture decision making: An analysis}, + journal = {Journal of Systems and Software}, + volume = {149}, + pages = {360-381}, + year = {2019}, + issn = {0164-1212}, + doi = {https://doi.org/10.1016/j.jss.2018.12.003}, + url = {https://www.sciencedirect.com/science/article/pii/S016412121830267X}, + author = {Maryam Razavian and Barbara Paech and Antony Tang}, + keywords = {Empirical research, Software architecture, Decision making, Human aspects} +} + +%soa compliance +@article{Lotz2008, + author = {Lotz, Volkmar and Pigout, Emmanuel and Fischer, Peter M, and Kossmann, Donald and Massacci, Fabio and Pretschner, Alexander}, + title = {Towards Systematic Achievement of Compliance in Service-Oriented Architectures: The MASTER Approach}, + journal = {WIRTSCHAFTSINFORMATIK}, + year = {2008}, + month = {Oct}, + day = {01}, + volume = {50}, + number = {5}, + pages = {383-391}, + issn = {1861-8936}, + doi = {10.1007/s11576-008-0086-1}, + url = {https://doi.org/10.1007/s11576-008-0086-1} +} + +@inproceedings{10.1145/3275219.3275230, + author = {Ren, Zhongshan and Wang, Wei and Wu, Guoquan and Gao, Chushu and Chen, Wei and Wei, Jun and Huang, Tao}, + title = {Migrating Web Applications from Monolithic Structure to Microservices Architecture}, + year = {2018}, + isbn = {9781450365901}, + publisher = {Association for Computing Machinery}, + address = {New York, NY, USA}, + url = {https://doi.org/10.1145/3275219.3275230}, + doi = {10.1145/3275219.3275230}, + booktitle = {Proceedings of the 10th Asia-Pacific Symposium on Internetware}, + articleno = {7}, + numpages = {10}, + keywords = {application migration, function clustering, microservices, monolithic application}, + location = {Beijing, China}, + series = {Internetware '18} +} + +@incollection{Rajasekar2012-uw, + title = {Micro-services}, + booktitle = {Advances in Systems Analysis, Software Engineering, and High + Performance Computing}, + author = {Rajasekar, Arcot and Wan, Mike and Moore, Reagan and Schroeder, + Wayne}, + publisher = {IGI Global}, + pages = {74--93}, + year = 2012 +} + +@inbook{Familiar2015, + author = {Familiar, Bob}, + title = {What Is a Microservice?}, + booktitle = {Microservices, IoT, and Azure: Leveraging DevOps and Microservice Architecture to Deliver SaaS Solutions}, + year = {2015}, + publisher = {Apress}, + address = {Berkeley, CA}, + pages = {9--19}, + isbn = {978-1-4842-1275-2}, + doi = {10.1007/978-1-4842-1275-2_2}, + url = {https://doi.org/10.1007/978-1-4842-1275-2_2} +} + +@inproceedings{Conway1967HOWDC, + title = {HOW DO COMMITTEES INVENT}, + author = {Melvin E. Conway}, + year = {1967}, + url = {https://api.semanticscholar.org/CorpusID:55165854} +} + +@book{Wolff18a, + address = {Heidelberg}, + author = {Wolff, Eberhard}, + isbn = {978-3-86490-313-7}, + origdate = {2015}, + owner = {flint}, + pagetotal = {384}, + publisher = {dpunkt}, + referencetype = {book}, + title = {Microservices: Grundlagen flexibler Softwarearchitekturen}, + year = 2015 +} + +@article{Alonso2023, + author = {Alonso, Juncal + and Orue-Echevarria, Leire + and Casola, Valentina + and Torre, Ana Isabel + and Huarte, Maider + and Osaba, Eneko + and Lobo, Jesus L.}, + title = {Understanding the challenges and novel architectural models of multi-cloud native applications -- a systematic literature review}, + journal = {Journal of Cloud Computing}, + year = {2023}, + month = {Jan}, + day = {12}, + volume = {12}, + number = {1}, + pages = {6}, + issn = {2192-113X}, + doi = {10.1186/s13677-022-00367-6}, + url = {https://doi.org/10.1186/s13677-022-00367-6} +} + +@book{Josuttis08, + author = {Josuttis, Nicolai}, + isbn = {978-3-89864-476-1}, + keywords = {01841 101 book shelf software development soa service architecture middleware enterprise process admin}, + publisher = {dpunkt}, + timestamp = {2018-04-16T11:48:09.000+0200}, + title = {SOA in der Praxis: System-Design f\"{u}r verteilte Gesch\"{a}ftsprozesse}, + username = {flint63}, + year = 2008 +} + +@inproceedings{8928192, + author = {Al-Debagy, Omar and Martinek, Peter}, + booktitle = {2018 IEEE 18th International Symposium on Computational Intelligence and Informatics (CINTI)}, + title = {A Comparative Review of Microservices and Monolithic Architectures}, + year = {2018}, + volume = {}, + number = {}, + pages = {000149-000154}, + keywords = {Computer architecture;Throughput;Time factors;Testing;Cloud computing;Service-oriented architecture;Concurrent computing;Microservices Architecture;Monolithic Architecture;Performance Evaluation}, + doi = {10.1109/CINTI.2018.8928192} +} + +@inproceedings{10114511342851134355, + author = {LaToza, Thomas D. and Venolia, Gina and DeLine, Robert}, + title = {Maintaining mental models: a study of developer work habits}, + year = {2006}, + isbn = {1595933751}, + publisher = {Association for Computing Machinery}, + address = {New York, NY, USA}, + url = {https://doi.org/10.1145/1134285.1134355}, + doi = {10.1145/1134285.1134355}, + abstract = {To understand developers' typical tools, activities, and practices and their satisfaction with each, we conducted two surveys and eleven interviews. We found that many problems arose because developers were forced to invest great effort recovering implicit knowledge by exploring code and interrupting teammates and this knowledge was only saved in their memory. Contrary to expectations that email and IM prevent expensive task switches caused by face-to-face interruptions, we found that face-to-face communication enjoys many advantages. Contrary to expectations that documentation makes understanding design rationale easy, we found that current design documents are inadequate. Contrary to expectations that code duplication involves the copy and paste of code snippets, developers reported several types of duplication. We use data to characterize these and other problems and draw implications for the design of tools for their solution.}, + booktitle = {Proceedings of the 28th International Conference on Software Engineering}, + pages = {492–501}, + numpages = {10}, + keywords = {agile software development, code duplication, code ownership, communication, debugging, interruptions}, + location = {Shanghai, China}, + series = {ICSE '06} +} + +@inproceedings{4724537, + author = {Slyngstad, Odd Petter N. and Conradi, Reidar and Babar, M. Ali and Clerc, Viktor and van Vliet, Hans}, + booktitle = {2008 15th Asia-Pacific Software Engineering Conference}, + title = {Risks and Risk Management in Software Architecture Evolution: An Industrial Survey}, + year = {2008}, + volume = {}, + number = {}, + pages = {101-108}, + keywords = {Risk management;Software architecture;Computer industry;Computer architecture;Software systems;Software performance;Software maintenance;Software engineering;Open source software;Information science;software architecture;software evolution;risk management;software architecture evaluation}, + doi = {10.1109/APSEC.2008.70} +} + +@inproceedings{1691406, + author = {Ramachandra, P. and Haeng-Kon Kim and Byeongdo Kang and Yan Ha and Lee, R.}, + booktitle = {Fourth International Conference on Software Engineering Research, Management and Applications (SERA'06)}, + title = {Risk Management through Architecture Design}, + year = {2006}, + volume = {}, + number = {}, + pages = {386-395}, + keywords = {Risk management;Project management;Costs;Risk analysis;Uncertainty;Computer architecture;Engineering management;Software engineering;Educational institutions;Software architecture}, + doi = {10.1109/SERA.2006.60} +} + +@book{karrenbrock, + author = {Karrenbrock, Till}, + publisher = {Springer Gabler Wiesbaden}, + title = {Produktsprache als Determinante der Markenauthentizität}, + year = {2023}, + doi = {https://doi.org/10.1007/978-3-658-41800-7} +} + +@misc{pricecalc, + author = {{Amazon Web Services}}, + howpublished = {\url{https://calculator.aws}}, + note = {Aufgerufen: 01.07.2024} +} + +@inproceedings{10.1145/1774088.1774504, + author = {Chowdhury, Istehad and Zulkernine, Mohammad}, + title = {Can complexity, coupling, and cohesion metrics be used as early indicators of vulnerabilities?}, + year = {2010}, + isbn = {9781605586397}, + publisher = {Association for Computing Machinery}, + address = {New York, NY, USA}, + url = {https://doi.org/10.1145/1774088.1774504}, + doi = {10.1145/1774088.1774504}, + abstract = {It is difficult to detect vulnerabilities until they manifest themselves as security failures in the operational stage of software, because the security concerns are not addressed or known sufficiently early during software development. Complexity, coupling, and cohesion (CCC) related software metrics can be measured during the earlier phases of software development. If empirical relationships can be discovered between CCC metrics and vulnerabilities, these metrics could aid software developers to take proactive actions against potential vulnerabilities in software. In this paper, we conduct an extensive case study on Mozilla Firefox to provide empirical evidence on how vulnerabilities are related to complexity, coupling, and cohesion. We find that CCC metrics are correlated to vulnerabilities at a statistically significant level. We further examine the correlations to determine which level (design or code) of CCC metrics are better indicators of vulnerabilities. We also observe that the correlation patterns are stable across multiple releases of the software. These observations show that CCC metrics can be dependably used as early indicators of vulnerabilities in software.}, + booktitle = {Proceedings of the 2010 ACM Symposium on Applied Computing}, + pages = {1963–1969}, + numpages = {7}, + keywords = {vulnerability, software security, software metrics, security, empirical study, coupling, complexity, cohesion}, + location = {Sierre, Switzerland}, + series = {SAC '10} +} + +@article{doi:10.2753/MIS0742-1222240302, + author = {Ken Peffers, Tuure Tuunanen, Marcus A. Rothenberger and Samir Chatterjee}, + title = {A Design Science Research Methodology for Information Systems Research}, + journal = {Journal of Management Information Systems}, + volume = {24}, + number = {3}, + pages = {45--77}, + year = {2007}, + publisher = {Routledge}, + doi = {10.2753/MIS0742-1222240302} +} + +@article{cloudcomputingbenefits, + author = {Sether, Ayob}, + year = {2016}, + month = {01}, + pages = {}, + title = {Cloud Computing Benefits}, + journal = {SSRN Electronic Journal}, + doi = {10.2139/ssrn.2781593} +} + +@inbook{Strohmeier2008, + title = {Architektonische Grundlagen}, + booktitle = {Informationssysteme im Personalmanagement}, + year = {2008}, + publisher = {Vieweg+Teubner}, + address = {Wiesbaden}, + pages = {3--14}, + isbn = {978-3-8348-9475-5}, + doi = {10.1007/978-3-8348-9475-5_1}, + author = {Stefan Strohmeier} +} + +@inbook{Paik2017, + author = {Paik, Hye-young + and Lemos, Angel Lagares + and Barukh, Moshe Chai + and Benatallah, Boualem + and Natarajan, Aarthi}, + title = {Introduction to Service Oriented Architecture}, + booktitle = {Web Service Implementation and Composition Techniques}, + year = {2017}, + publisher = {Springer International Publishing}, + address = {Cham}, + pages = {1--23}, + isbn = {978-3-319-55542-3}, + doi = {10.1007/978-3-319-55542-3_1}, + url = {https://doi.org/10.1007/978-3-319-55542-3_1} +} + +@inproceedings{10061800, + author = {Dürr, Karolin and Lichtenthäler, Robin}, + booktitle = {2022 IEEE/ACM 15th International Conference on Utility and Cloud Computing (UCC)}, + title = {An Evaluation of Modeling Options for Cloud-native Application Architectures to Enable Quality Investigations}, + year = {2022}, + volume = {}, + number = {}, + pages = {297-304}, + keywords = {Cloud computing;Software architecture;Computational modeling;Computer architecture;Distance measurement;Reliability;Standards;cloud-native;modeling;architecture description language;quality evaluation}, + doi = {10.1109/UCC56403.2022.00053} +} + +@inproceedings{1590147, + author = {Zayaraz, G. and Thambidurai, P.}, + booktitle = {2005 Annual IEEE India Conference - Indicon}, + title = {Software Architecture Selection Framework Based on Quality Attributes}, + year = {2005}, + volume = {}, + number = {}, + pages = {167-170}, + keywords = {Software architecture;Decision making;Computer architecture;Software quality;Software systems;Security;Educational institutions;Decision support systems;Failure analysis;Requirements;Quality Attributes;Software Architecture;Decision Making}, + doi = {10.1109/INDCON.2005.1590147} +} + +@article{afrizal_zein_2024, + title = { Implementation of Service Oriented Architecture in Mobile Applications to Improve System Flexibility, Interoperability, and Scalability }, + author = { Afrizal Zein }, + year = { 2024 }, + doi = { 10.61487/jiste.v2i1.60 } +} + +@misc{jing_nie_2013, + title = { A Study on the Application Cost of Server Virtualisation }, + author = { Jing Nie }, + year = { 2013 }, + publisher = { IEEE }, + pages = { 807-811 }, + doi = { 10.1109/CIS.2013.176 } +} + +@inproceedings{8666479, + author = {Shah, Jay and Dubaria, Dushyant}, + booktitle = {2019 IEEE 9th Annual Computing and Communication Workshop and Conference (CCWC)}, + title = {Building Modern Clouds: Using Docker, Kubernetes \& Google Cloud Platform}, + year = {2019}, + volume = {}, + number = {}, + pages = {0184-0189}, + keywords = {Containers;Cloud computing;Google;Monitoring;Web servers;Cloud;Docker;Kubernetes;Google Cloud Platform;Containers;Orchestration}, + doi = {10.1109/CCWC.2019.8666479} +} + +@inproceedings{10072238, + author = {Parikh, Aman and Kumar, Pranav and Gandhi, Parshav and Sisodia, Jignesh}, + booktitle = {2022 International Conference on Computer, Power and Communications (ICCPC)}, + title = {Monolithic to Microservices Architecture - A Framework for Design and Implementation}, + year = {2022}, + volume = {}, + number = {}, + pages = {90-96}, + doi = {10.1109/ICCPC55978.2022.10072238} +} + +@book{Newman:15:MS, + added-at = {2015-09-09T21:30:50.000+0200}, + author = {Newman, Sam}, + biburl = {https://www.bibsonomy.org/bibtex/261a28f122c347b555b88a0d835080b6a/gron}, + description = {Building Microservices: Sam Newman: 9781491950357: Amazon.com: Books}, + edition = {1st}, + interhash = {cd274e4310da91cad9f07dfbed64cb9f}, + intrahash = {61a28f122c347b555b88a0d835080b6a}, + isbn = {978-1491950357}, + keywords = {Architecture Microservices SOA}, + month = {February}, + pages = 280, + publisher = {O'Reilly Media}, + refid = {903609686}, + timestamp = {2015-09-09T21:30:50.000+0200}, + title = {Building Microservices: Designing Fine-Grained Systems}, + year = 2015 +} + +@misc{amazon2023, + author = {Kolny, Marcin}, + title = {Scaling up the Prime Video audio/video monitoring service and reducing costs by 90\%}, + day = {22}, + month = {03}, + year = {2023}, + url = {https://www.primevideotech.com/video-streaming/scaling-up-the-prime-video-audio-video-monitoring-service-and-reducing-costs-by-90}, + note = {Aufgerufen am: 15.07.2024, 19:16 Uhr} +} + +@misc{itm, + howpublished = {\url{https://oc-digital.de/node/6199}}, + title = {Leitfaden zur Gestaltung wissenschaftlicher Arbeiten}, + month = {03}, + year = {2024}, + note = {Aufgerufen am: 17.07.2024}, + author = {FOM-Hochschule} +} + +@misc{interestInArchitecture, + howpublished = {\url{https://trends.google.de/trends/explore?date=2019-05-01%202024-07-17&q=%2Fm%2F011spz0k,%2Fm%2F0315s4,software%20architecture&hl=de}}, + title = {Google-Trends Analyse zu Suchverhalten nach Microservices, SOA und Software Architektur}, + note = {Aufgerufen am: 17.07.2024}, + author = {Google-Trends} +} + +@article{muhammad_iqbal__2023, + title = { Penerapan Monolitic Arsitecture Pada Aplikasi Ujian Online BERBASIS Berbasis Web }, + author = { Muhammad Iqbal and Abdul Karim Syahputra and Wiwin Handoko }, + year = { 2023 }, + volume = { 2 }, + pages = { 213-213 }, + number = { 2 }, + doi = { 10.54314/jpstm.v2i2.1107 } +} + + @article{SUGUMAR_2020, + title = {MQTT -A LIGHTWEIGHT COMMUNICATION PROTOCOL RELATIVE STUDY}, + url = {http://dx.doi.org/10.22541/au.159076954.48540044}, + doi = {10.22541/au.159076954.48540044}, + publisher = {Authorea, Inc.}, + author = {SUGUMAR, KALAIVANAN}, + year = {2020}, + month = may +} +@article{williams2008harvard, + title = {The harvard family of bibliography styles}, + author = {Williams, Peter and Schnier, Thorsten}, + year = {2008}, + publisher = {Citeseer} +} + +@book{scoring, + author = {Jörg B. Kühnapfel}, + publisher = {Springer Gabler Wiesbaden}, + title = {Scoring und Nutzwertanalysen}, + year = {2021}, + doi = {https://doi.org/10.1007/978-3-658-34810-6} +} \ No newline at end of file diff --git a/main.tex b/main.tex new file mode 100644 index 0000000..3b21d10 --- /dev/null +++ b/main.tex @@ -0,0 +1,180 @@ +%!TEX TS-program = Arara +% arara: pdflatex: { draft : yes } +% arara: nomencl +% arara: biber +% arara: pdflatex + +%------------------------------------------------------------------------------ +%Dokumentenklasse und Schriftarten +%------------------------------------------------------------------------------ +\documentclass[12pt, a4paper, ngerman,toc=chapterentrydotfill, listof=totoc,bibliography=totoc,captions=figureheading,hidelinks,listof=nochaptergap,fleqn, twoside]{scrreprt} +\usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} +\usepackage[toc,page]{appendix} %Appendix +\usepackage{booktabs} + +\usepackage{mathptmx} % Times New Roman Schriftart + +\usepackage[euler]{textgreek} +%\usepackage{newtxtext,newtxmath} +\usepackage{longtable} + +\usepackage{url} +\def\UrlBreaks{\do\/\do-} + +% \usepackage{arev} % Mathematik-Font ohne Serifen +% \usepackage{helvet} % Helvetica (Arial) ohne Serifen +% \renewcommand{\rmdefault}{\sfdefault} % Standardschrift setzen + +\usepackage{microtype} % Mikrotypografie +\usepackage[ngerman]{babel}%Sprache und Silbentrennung +\usepackage{paralist} + +\usepackage[onehalfspacing]{setspace}%Zeilenabstand auf 1,5 stellen +\usepackage[a4paper, left=4cm, right=2cm, top=2cm, bottom=2cm, headsep=2cm, includehead=true, footskip=2cm, includefoot=true, headheight = 1cm]{geometry} +%\usepackage[a4paper, left=4cm, right=2cm, top=2cm, bottom=2cm, headsep=2cm, includehead=true, footskip=0cm, includefoot=true, headheight = 2cm]{geometry} + +\usepackage{nameref} + +%------------------------------------------------------------------------------- +%Mathematische Ausdrücke +%------------------------------------------------------------------------------- +\usepackage{amsmath} +%\usepackage{amssymb} +\counterwithout{equation}{chapter}%Nummerierung aufsteigend ohne Kapitelnummer + +% Mathe Einrückung +\setlength{\mathindent}{1cm} + +%------------------------------------------------------------------------------- +%Link Umbrueche im Verzeichnis +%------------------------------------------------------------------------------- +\usepackage{hyperref}%zum Setzen von PDF Daten und umbrechen von Links +\sloppy + +%------------------------------------------------------------------------------- +%Meta Infos laden +%------------------------------------------------------------------------------- +\input{Skripte/meta} + +%------------------------------------------------------------------------------- +%Abbildungen einbinden +%------------------------------------------------------------------------------- +\usepackage{graphicx} +\usepackage{subcaption} +\usepackage{float}%Festlegen von Float Objects mit [H] +\usepackage{chngcntr}%Paket für Abbildungsnummerierung ändern +\counterwithout{footnote}{chapter}%ändern der Fussnoten-Nummerierung zu aufsteigend +\counterwithout{figure}{chapter}%ändern der Nummerierung zu aufsteigend +\counterwithout{table}{chapter}%ändern der Nummerierung zu aufsteigend +\usepackage[labelfont=bf,position=top, belowskip = 6pt, aboveskip=12pt]{caption}%Abstand zum Text festlegen + +%------------------------------------------------------------------------------- +%Zitate und Literaturverzeichnis +%------------------------------------------------------------------------------- +\usepackage[babel,german=guillemets]{csquotes} %Festlegen der Anführungszeichen +%\usepackage[backend=biber, style=ext-authoryear, isbn=false, maxcitenames=2, maxbibnames=999, mergedate=false, innamebeforetitle, dashed=false, autocite=footnote, mincrossrefs=1, autopunct=false, urldateusetime=true]{biblatex}%Bibliotheksverwaltung (siehe goLatex FOM) +\usepackage{babelbib} +\selectbiblanguage{english} + +\usepackage{lineno} +\usepackage[round]{natbib} +\bibliographystyle{custom} + +\usepackage{blindtext}%Paket für Blindtext Generierung + +%------------------------------------------------------------------------------- +%Abkuerzungsverzeichnis +%------------------------------------------------------------------------------- +\usepackage[intoc]{nomencl} +\renewcommand{\nomname}{Abkürzungsverzeichnis}%umbenennen +\setlength{\nomlabelwidth}{.15\textwidth}%Breite des Tabstops festlegen +%\renewcommand{\nomlabel}[1]{#1 \dotfill}%Füllen mit Punkt +\setlength{\nomitemsep}{-\parsep} +\makenomenclature +\include{Skripte/nomenclature} + +%------------------------------------------------------------------------------- +%Weitere Einstellungen +%------------------------------------------------------------------------------- + +\input{Skripte/formatierung}%Datei mit Zitieranpassungen und Format des Literaturverzeichnisses +%\input{Skripte/literaturmakros}%Datei mit Zitieranpassungen und Format des Literaturverzeichnisses +\input{Skripte/quelltext}%Sauber formatierter Quelltext +%\addbibresource{lit.bib}%include der Literatur Datenbank +%\nocite{*}%UNBEDINGT AUSKOMMENTIEREN. DURCH DIESEN BEFEHL WERDEN AUCH NICHT ZITIERTE QUELLEN VERZEICHNET +%\addbibresource{biblatex-examples.bib}%Beispielliteratur einfügen + + + +%------------------------------------------------------------------------------- +%Dokumentbeginn +%------------------------------------------------------------------------------- +\begin{document}%Beginn des Dokumentes +\newcounter{savepage} +\pagenumbering{Roman}%Die ersten Seiten römisch nummerieren + +%------------------------------------------------------------------------------- +%Titelblatt +%------------------------------------------------------------------------------- +\input{Skripte/titelblatt_seminararbeit_leitfaden.tex} + +%------------------------------------------------------------------------------- +%Verzeichnisse +%------------------------------------------------------------------------------- +\setcounter{page}{1}%TOC als erste Seite +\tableofcontents%Inhaltsverzeichnis einfügen +\listoftables%Tabellenverzeichnis einfügen +\listoffigures%Abbildungsverzeichnis +\printnomenclature%Abkürzungsverzeichnis einfügen +\cleardoublepage + +%------------------------------------------------------------------------------- +%Text +%------------------------------------------------------------------------------- +\setcounter{savepage}{\arabic{page}}%Seitenstand der römischen Nummerierung speichern um später dort weiterzuzählen +\pagenumbering{arabic}%arabische Nummerierung + +\input{Textteil/textteil}%Datei mit eigentlichem Text einbinden + +% \include{Textteil/Kapitel/Anhang} Anhänge +%------------------------------------------------------------------------------- +%Verzeichnisse +%------------------------------------------------------------------------------- +\pagenumbering{Roman}%römische Nummerierung +\setcounter{page}{\thesavepage}%Seitencounter auf die gespeicherte Zahl setzen + +%--------FÜR HAUSARBEIT NACH LEITFADEN---------------------- +%\addchap{Literaturverzeichnis} +\bibliography{lit} +%\printbibliography[nottype=online,heading=none]%Literaturverzeichnis der NICHT-Onlinequellen drucken und %ins Inhaltsverzeichnis einfügen +%\section*{Internetquellen} +%\printbibliography[type=online,heading=none,title={Internetquellen}]%Literaturverzeichnis der Onlinequellen drucken. +%--------FÜR HAUSARBEIT BEI KRAUSE---------------------- +% \addchap{Literaturverzeichnis} +% \printbibliography[nottype=online, nottype=article,heading=none]%Literaturverzeichnis der NICHT-Artikel/Onlinequellen drucken. +% \addchap{Quellenverzeichnis} +% \printbibliography[filter=articleonline,heading=none]%Literaturverzeichnis der /ArtikelOnlinequellen drucken. +%------------------------------------------------------- + +% \input{Textteil/Kapitel/Erklaerung} Erklärung +\newpage +\textbf{Eigenständigkeitserklärung} \\ +Hiermit versichere ich, dass ich die angemeldete Prüfungsleistung in allen Teilen eigenständig ohne Hilfe von Dritten anfertigen und keine anderen als die in der Prüfungsleistung angegebenen Quellen und zugelassenen Hilfsmittel verwenden werde. +Sämtliche wörtlichen und sinngemäßen Übernahmen inklusive KI-generierter Inhalte werde ich kenntlich machen. + +Diese Prüfungsleistung hat zum Zeitpunkt der Abgabe weder in gleicher noch in ähnlicher Form, auch nicht auszugsweise, bereits einer Prüfungsbehörde zur Prüfung vorgelegen; +hiervon ausgenommen sind Prüfungsleistungen, für die in der Modulbeschreibung ausdrücklich andere Regelungen festgelegt sind. + +Mir ist bekannt, dass die Zuwiderhandlung gegen den Inhalt dieser Erklärung einen Täuschungsversuch darstellt, +der das Nichtbestehen der Prüfung zur Folge hat und daneben strafrechtlich gem. § 156 StGB verfolgt werden kann. Darüber hinaus ist mir bekannt, +dass ich bei schwerwiegender Täuschung exmatrikuliert und mit einer Geldbuße bis zu 50.000 EUR nach der für mich gültigen Rahmenprüfungsordnung belegt werden kann. + +Ich erkläre mich damit einverstanden, dass diese Prüfungsleistung zwecks Plagiatsprüfung auf die Server externer Anbieter hochgeladen werden darf. +Die Plagiatsprüfung stellt keine Zurverfügungstellung für die Öffentlichkeit dar. + +Köln, 19.08.2024 +\\ \\ \\ \\ \\ +Rosario-Francesco Polito + +\end{document}%Ende des Dokumentes diff --git a/outlines/user.md b/outlines/user.md new file mode 100644 index 0000000..a1933dd --- /dev/null +++ b/outlines/user.md @@ -0,0 +1,20 @@ +# User +## Gruppen +1. Installateur +2. Besitzer / Verwalter +3. Benutzer + +## Kurzbeschreibung +### Installateur +Der Installateur ist ein Techniker oder eine technisch versierte Person. +Der Installateur verfügt über Grundlagen an logischem Denken welche über das Befolgen einer "Ikea Anleitung" hinaus geht. +Der Installateur kennt sich mit den Grundladen von Netzwerktechnik aus und ist in der Lage einen Router ggf. so zu konfigueren, dass die Gerätschaften kommunizieren. Weiter ist er in der Lage eine Netzwerkverbindung (bsp via Ping) zu kontrollieren. +BONUS: Monitoring einrichten? + +### Besitzer / Verwalter +Der Besitzer / Verwalter ist eine Person welche nicht vor technik zurückschreckt und sich die Zeit nimmt, sich mit einem System zu beschäftigen. Dazu gehört u.U. auch das Lesen von technisch angehauchter Dokumentation. +Der Verwalter ist in der Lage eine Webanwendung zu bedienen und ist sich auch über die Auswirkungen seines Handelns bewusst. + +### Benutzer +Die Benutzer müssen lediglich in der Lage sein das für die passende Objekt auszuwählen und ihr Token vor den Sensor zu halten. +Im Fehlerfall ist der Besitzer / Verwalter der Ansprechpartner für den Benutzer.