|
|
|
@@ -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}. |