From 50801d69ecdd5b9e635030ddd115e8d73f9117cd Mon Sep 17 00:00:00 2001 From: Wouter Horlings Date: Thu, 15 Oct 2020 10:04:09 +0200 Subject: [PATCH 1/3] 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} From ca83b0898e3a48482439e2262a54ab34cc6cc76f Mon Sep 17 00:00:00 2001 From: Wouter Horlings Date: Mon, 26 Oct 2020 17:36:19 +0100 Subject: [PATCH 2/3] Update design flow image --- graphics/design_flow.tex | 23 +++++++---------------- graphics/design_flow.tikz | 16 ++++++++++++++++ 2 files changed, 23 insertions(+), 16 deletions(-) create mode 100644 graphics/design_flow.tikz diff --git a/graphics/design_flow.tex b/graphics/design_flow.tex index a60df4e..abe2224 100644 --- a/graphics/design_flow.tex +++ b/graphics/design_flow.tex @@ -1,25 +1,16 @@ \documentclass{standalone} \usepackage{tikz} -\usetikzlibrary {arrows.meta,graphs,graphdrawing} \usegdlibrary {layered, trees} +\usetikzlibrary {arrows.meta,graphs,graphdrawing,positioning} \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 }; - }; +\begin{tikzpicture}[on grid,y=1.2cm,x=3.2cm] + \draw[fill=lightgray] (-1.7cm , 0.5cm) rectangle (5cm, -2.8cm); + \draw[fill=lightgray] (-1.7cm,-3cm) rectangle (5cm, -7.2cm); + \input{design_flow.tikz} + \draw (3.4cm,0cm) node[draw=none, fill=none,text width=2.9cm] (wf) {Systems Engineering:\\Waterfall}; + \node (ridm)[right=1 of fs, fill=none, draw=none] {Rapid Iterative Design Method}; \end{tikzpicture} \end{document} diff --git a/graphics/design_flow.tikz b/graphics/design_flow.tikz new file mode 100644 index 0000000..628113f --- /dev/null +++ b/graphics/design_flow.tikz @@ -0,0 +1,16 @@ +%&tex + \node (pd) {Problem Description}; + \node (sp)[below=1 of pd] {System\\Requirements}; + \node (id)[below=1 of sp] {Initial Design}; + \node (fs)[below=1 of id] {Feature Definition}; + \node (ss)[below=1 of fs] {Feature Selection}; + \node (a1)[below=0.8 of ss,draw=none, fill=none] {}; + \node (rd)[below=0.8 of a1] {Rapid Development}; + \node (va)[right=1 of a1] {Variable Approach}; + \path[->] (pd) edge (sp) + (sp) edge (id) + (id) edge (fs) + (fs) edge (ss) + (ss) edge (rd) + (rd.east) edge[bend right] (va) + (va) edge[bend right] (ss.east); From 301633340995e38f33e9b871553a9794be1eb823 Mon Sep 17 00:00:00 2001 From: Wouter Horlings Date: Wed, 28 Oct 2020 11:31:39 +0100 Subject: [PATCH 3/3] Change Waterfall to SE --- content/background.tex | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/content/background.tex b/content/background.tex index 222f660..86f02f5 100644 --- a/content/background.tex +++ b/content/background.tex @@ -6,19 +6,20 @@ To create a complete design plan, a waterfall model is used as a basis for the d 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} +\section{Systems Engineering} \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. +\textcite{blanchard_systems_2014} describe \ac{se} in their book as: "an interdisciplinary approach and means to enable the realization of successful systems." +Their book extensively covers different design methods and design steps in detail. +As these design methods are presented in complete detail, they are used as a basis for the design plan in this thesis. +Multiple design methods are presented and one of the simplest design methods is the waterfall model. +There are more elaborate methods available like the V-model or the spiral model, but are more interconnected due to build in feedback cycles. +The waterfall model is usefull because it is a list of steps that are executed one by one as shown in \autoref{fig:waterfall} +Because the steps are independent of each other, it is possible to insert or switch steps in the design method. \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.