| @@ -1,46 +1,61 @@ | |||||
| %&tex | %&tex | ||||
| \subsection{Feature Definition} | |||||
| \label{sec:case_featuredefinition} | |||||
| At this point there are specifications and an initial design for the system. | |||||
| In the following steps of the design method features will be implemented one by one. | |||||
| The goal of this step is then to define these features. | |||||
| During this step it became clear that this approach was not feasible. | |||||
| Prior to this step the expectation was that this step would produce three features that could be implemented. | |||||
| These three features were the SCARA, the cable suspended carriage, and the end-effector. | |||||
| However, independent of the interpretation of this step, the result was not the three expected features. | |||||
| \subsection{Feature Definition} | |||||
| \label{sec:case_featuredefinition} | |||||
| At this point there are specifications and an initial design for the system. | |||||
| In the following steps of the design method features will be implemented one by one. | |||||
| The goal of this step is to define those features. | |||||
| However, the predefined approach was not able to produces a set of features that could be implemented. | |||||
| This forced me to create a new approach for this step, introducing components into the design. | |||||
| This section will first address why the current approach is not suitable, followed by the alternative approach. | |||||
| Why were those three features expected in the first place? | |||||
| During the previous steps a useful evaluation was to anticipate for the subsequent steps. | |||||
| Where one of the following steps is to implement an individual feature. | |||||
| Therefore, it must be possible to implement the feature. | |||||
| Separating the initial design into the smallest components that could still be implemented, resulted in the SCARA, carriage and end-effector. | |||||
| \subsubsection{Struggles with Features} | |||||
| For their case study, \textcite{broenink_rapid_2019} design a control system for a mini-segway. | |||||
| This mini-segway is an already existing \ac{cps} that is used during the lab-sessions of a control course, and any control-law can be uploaded directly to the system. | |||||
| The specified features of that system are defined as: | |||||
| \begin{enumerate} | |||||
| \item Balancing the mini-segway upright | |||||
| \item Steering the mini-segway | |||||
| \item Driving forward and backward | |||||
| \end{enumerate} | |||||
| Although this is not explicitly explained, these features have dependencies: the steering and the driving both rely on a balanced segway. | |||||
| The problem is that these three components do not describe the complete system. | |||||
| Some functions of the system (feature) is performed by a combination of the components. | |||||
| Therefore can the components in the system not be seen as features of the system. | |||||
| Defining the components as features of the system is not a solution. | |||||
| The relations between the components and features is still required. | |||||
| A set of features for the Whiteboard writer would be: | |||||
| \begin{enumerate} | |||||
| \item Write character on position | |||||
| \item Move carriage to position | |||||
| \item Write text | |||||
| \end{enumerate} | |||||
| In this case, features 1 and 2 are required for feature 3. | |||||
| However, in contrast with the mini-segway, the whiteboard writer does not exist yet. | |||||
| Instead of creating a model based on the system, the system has to be designed first. | |||||
| For these three features, the required hardware can be designed together with the feature. | |||||
| The first feature would then also contain the design of the SCARA and the second feature the cable bot design. | |||||
| Adding the features needed to meet the specifications for wiping the whiteboard, then such a feature would also need to design the SCARA. | |||||
| In other words, more than one feature uses the SCARA in their behavior. | |||||
| Resulting in the question: which feature should implement the hardware? | |||||
| %As the features describe the behavior of the components, it is not a solution to replace the features with components. | |||||
| \subsubsection{Separating Functions and Components} | |||||
| It was decided not to add the SCARA and the cable bot as features, for the reason that they do not define behavior. | |||||
| Instead, the features define how the hardware behaves. | |||||
| A solution to organize the relations between features and components was found in RobMoSys\footnote{\url{https://robmosys.eu/approach/}}. | |||||
| RobMoSys defines a separation of levels in a design. | |||||
| Where the levels start functional and moves via software to hardware implementation. | |||||
| Although not all levels of RobMoSys are used, it was very useful to define the features of the system. | |||||
| The definition is shown in \autoref{fig:robmosys}. | |||||
| The current definition of features allows to start the implementation with a component. | |||||
| When the component is finished features can be implemented by following the tree upwards. | |||||
| \begin{figure*} | |||||
| \centering | |||||
| \includegraphics[width=0.85\linewidth]{graphics/robmosys} | |||||
| \caption{Feature Definition based on the separation of levels introduced by RobMoSys} | |||||
| \label{fig:robmosys} | |||||
| \end{figure*} | |||||
| A solution to organize the relations between features and components was found in RobMoSys\footnote{\url{https://robmosys.eu/approach/}}. | |||||
| RobMoSys defines a separation of levels in a design. | |||||
| Where the levels start functional and moves via software to hardware implementation. | |||||
| Although not all levels of RobMoSys are used, it was very useful to define the features of the system. | |||||
| The definition can be seen in \autoref{fig:robmosys} | |||||
| The current definition of features allows to start the implementation with a component. | |||||
| When the component is finished features can be implemented by following the tree upwards. | |||||
| \begin{figure*} | |||||
| \centering | |||||
| \includegraphics[width=0.85\linewidth]{graphics/robmosys} | |||||
| \caption{Feature Definition based on the separation of levels introduced by RobMoSys} | |||||
| \label{fig:robmosys} | |||||
| \end{figure*} | |||||
| \subsubsection{Evaluation} | |||||
| Even though there is a feature definition that can be used in the next step, there remain a couple of difficulties. | |||||
| There is still a really strong border between features and components. | |||||
| And the single level of components makes it impossible to depict the dependencies between components. | |||||
| Developing larger and complex systems will have sub-components in the system, introducing even more dependencies. | |||||
| Therefore, this is not a valid solution for feature definition. | |||||
| Fortunately the current solution suffices to continue the case study. | |||||
| \subsubsection{Evaluation} | |||||
| Even though there is a feature definition that can be used in the next step, there remain a couple of difficulties. | |||||
| There is still a really strong border between features and components. | |||||
| And the single level of components makes it impossible to depict the dependencies between components. | |||||
| Developing larger and complex systems will have sub-components in the system, introducing even more dependencies. | |||||
| Therefore, this is not a valid solution for feature definition. | |||||
| Fortunately the current solution suffices to continue the case study. | |||||