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