diff --git a/content/analysis.tex b/content/analysis.tex index e529e79..ea6b5ec 100644 --- a/content/analysis.tex +++ b/content/analysis.tex @@ -1,98 +1,78 @@ %&tex \chapter{Analysis} \label{analysis} -The goal of this chapter is to interpret the design method and crystallize it into a design plan. -\autoref{sec:design_flow} introduces a design flow that contains the basic design steps. -These steps are still undefined but are materialized with the techniques from the design method in \autoref{sec:design_refinement}. -The remaining steps that are not covered by the design method are defined in \autoref{sec:design_extension}. +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{Design Plan} -\label{sec:design_plan} +\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 requirements of the case study is to establish a design plan that can be followed during the case study. -As \textcite{broenink_rapid_2019} do not describe a complete design method, the waterfall model \autocite{blanchard_systems_2014} is used as a basis for the design plan. -The five different steps of the waterfall model are shown in \autoref{fig:waterfall}. -For the structure of this thesis, the steps are split in two phases: preparation and detail design. -The detail design phase is implemented according to the design method. -The preparation phase is based on the approach of Systems Engineering. -\autoref{sec:design_refinement} will discuss the design method in more detail and refine it into the design plan. -\autoref{sec:design_extension} will implement the preparation phase. - -\subsection{Design Method} -\label{sec:design_method} -The design method describes 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 before this implementation can initiate. -The implementation requires an initial design consisting of a list of features. -The list of features results from dividing the functionality of the subject. -Broenink and Broenink do not explain how this should be done, but required that each of these features should be implemented and tested individually. -The details on how the features will be divided are covered in \autoref{sec:preparation}. - -The rapid development cycle consists of multiple iterations, where each iteration implements and tests one feature from the preparation. -Which feature should be implemented first -%%%%%%%%%%%%% - - - -Dividing the subject -These features are specified by dividing the functionality of the subject - - -The rapid development cycle consists of multiple iterations, where each iteration implements and test one feature. - -Each iteration begins with a very low-detailed implementation of the feature. - - -The design method by \textcite{broenink_rapid_2019} is organized in three core components: the preparation phase, the rapid development cycle, and the variable detail approach. -The design method starts with the preparation phase, where the functionality of the subject is split into different features. -The rapid development cycle consists of multiple iterations, where each iteration implements and test one feature. -Each iteration begins with a very low-detailed implementation of the feature. -The level of detail for this implementation is then step-wise increased till the level of detail is sufficient, such that the implementation can be realized as a prototype. -This method of increasing detail is revered to as the variable detail approach. -When the desired level of detail for the implementation is reached, the feature is finished and the rapid development cycle is repeated for the next feature. - - - - - - - - - -The core of the design method by \textcite{broenink_rapid_2019} consists of two techniques: rapid development and variable detail approach. -The rapid development technique incorporates a cycle, that implements and test a single feature each iteration. -The variable detail approach is part of each iteration. - -However, these techniques require some preparation before they can be used. -As preparation, the functionality of the subject is split into different features that can be individually implemented and tested. - - - -The features are defined by splitting the system in such a way that -The implementation - -A development based on the design method by \textcite{broenink_rapid_2019} implements one feature -The prerequisites - - - -A waterfall based design approach is used as the basis for the \emph{design flow}. -The most basic form for a waterfall is shown in \autoref{fig:waterfall}. -The implementation and testing steps will be - -The design method by \textcite{broenink_rapid_2019} consists of three main cycles: Preparatory work, Inner Cycle, and Outer Cycle. -These steps describe the direct -The aim of the preparatory work is to split and order the features and the levels of detail. - -\section{Refinement} -\label{sec:design_refinement} - - -\section{Extension} -\label{sec:design_extension} - +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. +%The list of features results from dividing the functionality of the subject. +%Broenink and Broenink do not explain how this should be done, but required that each of these features should be implemented and tested individually. +%The details on how the features will be divided are covered in \autoref{sec:preparation}. + +\subsection{Rapid Development} %kopje komt uit de lucht +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} +%first, second step, last->third +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. + +%The rapid development cycle does not specify which feature should be implemented first, even though the order of implementation does change the feasibility of the complete development. +%A useful example of the order of features is the development of car suspension. +%To have a critical damped suspension in a car, the weight distribution of the car must be available. +%Thus designing the suspension of a car before other features, that influence the weight distribution, makes it unlikely that the design is meeting the damping requirements. +%Resulting in a feature that has to be redesigned and thus increasing the overall development cost. + +\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}.