From 50801d69ecdd5b9e635030ddd115e8d73f9117cd Mon Sep 17 00:00:00 2001 From: Wouter Horlings Date: Thu, 15 Oct 2020 10:04:09 +0200 Subject: [PATCH] Add background --- content/analysis.tex | 3 -- content/background.tex | 68 ++++++++++++++++++++++++++++++++++++++++ graphics/design_flow.tex | 25 +++++++++++++++ graphics/waterfall.tex | 16 ++++++++++ report.tex | 4 ++- 5 files changed, 112 insertions(+), 4 deletions(-) delete mode 100644 content/analysis.tex create mode 100644 content/background.tex create mode 100644 graphics/design_flow.tex create mode 100644 graphics/waterfall.tex diff --git a/content/analysis.tex b/content/analysis.tex deleted file mode 100644 index e581494..0000000 --- a/content/analysis.tex +++ /dev/null @@ -1,3 +0,0 @@ -%&tex -\chapter{analysis} -\label{analysis} diff --git a/content/background.tex b/content/background.tex new file mode 100644 index 0000000..222f660 --- /dev/null +++ b/content/background.tex @@ -0,0 +1,68 @@ +%&tex +\chapter{Background} +\label{chap:background} +The \ridm by \textcite{broenink_rapid_2019} only describes a partial design method. +To create a complete design plan, a waterfall model is used as a basis for the design plan. +The techniques of the \ridm are incorporated on top of the waterfall model. +This chapter will analyse the basics of a waterfall model, and analyse what the \ridm provides. + +\section{Waterfall} +\begin{marginfigure} + \centering + \includegraphics[width=2.9cm]{graphics/waterfall.pdf} + \caption{Minimalistic implementation of waterfall model.} + \label{fig:waterfall} +\end{marginfigure} +One of the most basic design method for development is the waterfall model introduced by Royce +\footnote{Interestingly, \textcite{royce_managing_1970} never called it waterfall himself, he also notes that it never worked for large software development efforts.} +in 1970 \autocite{blanchard_systems_2014}. +The simplest implementation has five steps as shown in \autoref{fig:waterfall}. +Methods like the V-model or spiral model give significant advantage over the waterfall model, as they incorporate more evaluation and feedback, but are not as simple as the waterfall. +This simplicity makes changing and adding design steps to the waterfall model possible. + +\section{Rapid Iterative Design Method} +The \ridm by \textcite{broenink_rapid_2019} describes a methodology using two core components for the implementation: the rapid development cycle and the variable detail approach. +The design method also describes the preparation steps that are required prior to this implementation. +In short, the preparation prepares a list of features. +These features are implemented one by one with in the rapid development cycle using the variable detail approach. +This section discusses each of these three parts and how they fit in the waterfall model. + +\subsection{Rapid Development} +The rapid development cycle consists of multiple iterations, where each iteration implements and tests one feature, that was defined during the preparation. +Each iteration of the rapid development incorporates the following steps: +\begin{enumerate} + \item Design new feature and the corresponding tests. + \item Implement and test that feature. +\end{enumerate} +The first step is to create an initial design and tests that are used to verify the requirements of the current feature. +During the second step, the initial design will developed into a detailed design of the feature. +This detailed design of the feature is develop with the variable detail approach, in which the level of detail is stepwise incremented. +When the second step is completed, the implemented feature contains all the required details and passes all the tests as defined in the first step. +From this point the rapid development cycle is repeated for the next feature, or, when no features are left, finish the development. + +\subsection{Variable Detail Approach} +The variable detail approach starts with a low-detailed model and increases the detail discretely over multiple iterations. +The low-detailed model is for example a single transfer function of the system. +In the following iteration, the detail of the model is increased by adding, for example, non-linearity, non-continuity or parasitic elements. +The tests, as specified in the first step of the rapid development cycle, are performed after each addition of detail. +If the tests show that the added detail is not conform the specifications, the added detail is reviewed or redesigned. +When the added detail passes the tests, the process is repeated to add more detail. +The variable detail approach is finished when all the tests are passed and all the detail is added. + +\subsection{Preparation} +Although the \ridm does not specify the complete steps for the preparation, it does state some requirements. +The rapid development cycle requires a list of features that can be implemented one by one. +These features are gained by splitting the system into individual subsystems, where each subsystem can be implemented and tested individually. +About the order of implementation, the \ridm states that critical features should be implemented first, as these features have an increased chance of invalidating the complete design. +Would such a feature fail, the investment loss is limited, because the development is still in an early stage. + +\subsection{Combination} +\begin{marginfigure} + \centering + \includegraphics[width=6cm]{graphics/design_flow.pdf} + \caption{Combined design plan, based on the \ridm and the Waterfall model.} + \label{fig:design_flow} +\end{marginfigure} +As the \ridm integrates the implementation and testing steps together, it replaces these steps in the waterfall model. +The first three steps as seen in \autoref{fig:waterfall} are unchanged and the last two steps are replaced by the \ac{ridm}. +A combined design flow of the both design methods is shown in \autoref{fig:design_flow}. diff --git a/graphics/design_flow.tex b/graphics/design_flow.tex new file mode 100644 index 0000000..a60df4e --- /dev/null +++ b/graphics/design_flow.tex @@ -0,0 +1,25 @@ +\documentclass{standalone} +\usepackage{tikz} +\usetikzlibrary {arrows.meta,graphs,graphdrawing} \usegdlibrary {layered, trees} +\tikzset{nodes={text height=.7em, text width=2.8cm, align=center, +draw=black!50, thick, font=\footnotesize, fill=white}, +>={Stealth[round,sep]}, rounded corners, semithick} + +\begin{document} + + +\begin{tikzpicture} + \draw[fill=lightgray] (-1.7,0.5) rectangle (5, -2.8); + \draw[fill=lightgray] (-1.7,-3) rectangle (5, -5.5); + \draw (3.4,0) node[draw=none, fill=none] (wf) {Waterfall}; + \graph [layered layout, level distance=1.2cm, sibling sep=.5em, sibling distance=3.4cm, component order=by first specified node] { + pd [as=Problem Description,grow=down] -> "Specifications" -> "Initial Design" -> "Feature Separation" -> {Rapid Development ->[bend right] Variable Approach}; + {Rapid Development <-[bend left] Variable Approach}; + {Rapid Interation Design Method[draw=none, fill=none] ->[draw=none] Variable Approach}; + { [same layer] Feature Separation, Rapid Interation Design Method}; + + %-> tree[fill=none, minimum height=3cm, minimum width=6cm] // [tree layout] {Rapid Development -> Variable Approach}; + { [same layer] Variable Approach, Rapid Development }; + }; +\end{tikzpicture} +\end{document} diff --git a/graphics/waterfall.tex b/graphics/waterfall.tex new file mode 100644 index 0000000..495ee88 --- /dev/null +++ b/graphics/waterfall.tex @@ -0,0 +1,16 @@ +\documentclass{standalone} +\usepackage{tikz} +\usetikzlibrary {arrows.meta,graphs,graphdrawing} \usegdlibrary {layered} +\tikzset{nodes={text height=.7em, text width=2.8cm, align=center, +draw=black!50, thick, font=\footnotesize, fill=white}, +>={Stealth[round,sep]}, rounded corners, semithick} + +\begin{document} + +\begin{tikzpicture} + \graph [layered layout, level distance=1.2cm, sibling sep=.5em, sibling distance=1.5cm, sweep crossing minimization] { + pd [as=Problem Description] -> "Specifications" -> "Initial Design" -> "Implementation" -> "Testing"; + }; +\end{tikzpicture} +\end{document} + diff --git a/report.tex b/report.tex index d31fc3c..e9d12c7 100644 --- a/report.tex +++ b/report.tex @@ -1,6 +1,8 @@ \documentclass[english,titlepage,nomath,nopackage,oneside]{siltex-book} \include{include/preamble} +\newcommand{\ridm}{\ac{ridm} } + \title{Title} \subtitle{Thesis Report} \course{} @@ -23,7 +25,7 @@ \input{summary} \tableofcontents \input{introduction} -\input{analysis} +\input{background} \input{case_method} \input{case_experiment} \input{case_evaluation}