|
|
|
@@ -0,0 +1,108 @@ |
|
|
|
\chapter{Introduction} |
|
|
|
This document will describe the feature and test specification step. |
|
|
|
The original plan was to specify features and give these features there own specifications. |
|
|
|
Together these feature specifications have to ensure that the system specifications are met. |
|
|
|
And eventually for each feature a set of tests is designed so that the feature specifications can be monitored. |
|
|
|
|
|
|
|
However, during this step it became clear that this method was not feasible in the limited amount of time. |
|
|
|
Spending more time on this step would not result in a better test of the method. |
|
|
|
It might even have a negative effect as other steps would be overshadowed by this step. |
|
|
|
Eventhough the step has not been finished we still managed to learn some valuable lessons. |
|
|
|
|
|
|
|
One of the lessons was to use RobMoSys for the feature specifications. |
|
|
|
This will be explained in \autoref{chap:robmosys}. |
|
|
|
The feature specifications were very difficult as it turned out that a lot of this depended on the level of detail in the system specifications. |
|
|
|
We will explain this part in \autoref{chap:specifications}. |
|
|
|
|
|
|
|
\chapter{RobMoSys} |
|
|
|
\label{chap:robmosys} |
|
|
|
The original method was to just look at the features of the system and describe them. |
|
|
|
This turned out to be impossible as there are a lot of features at different levels with different dependencies. |
|
|
|
For example \textcite{broenink_variable_2018} defines three features on his segway. |
|
|
|
However, the hardware already exist. |
|
|
|
Therefore, features like wheels, motors, sensors, powerpack, etc. do not have to be considered. |
|
|
|
We underestimated the amount of features if you do not have pre-existing hardware. |
|
|
|
A problem was that, for example, a motor did not fit in our original idea of feature. |
|
|
|
However, taking a high-level feature defeated the purpose of this method with multiple steps of implementation. |
|
|
|
As this high-level feature would then include motors, control, sensors etc. |
|
|
|
|
|
|
|
Eventually we used RobMoSys to separate the features in a way that made sense. |
|
|
|
We started with a mission, which is in this case the 'tweet on a whiteboard' and broke it up in to tasks. |
|
|
|
So what tasks are required to fulfill the mission. |
|
|
|
These tasks required certain skills, which required then functions. |
|
|
|
\autoref{fig:robmosys} shows the resulting graph of the separation into different levels. |
|
|
|
The figure also shows our fifth layer as subsystem. |
|
|
|
A full Robmosys would even separate this in to 4 additional layers but we decided on keeping it simpler. |
|
|
|
The simplification was done as this was mainly in middle- and software which was not the focus of this thesis. |
|
|
|
Furthermore, because we did not see any additional value but it would cost a lot of extra time. |
|
|
|
|
|
|
|
\begin{figure*} |
|
|
|
\centering |
|
|
|
\includegraphics[width=0.8\paperwidth]{graphics/robmosys.pdf} |
|
|
|
\caption{Separation of the mission into tasks, skills, functions and subsystems based on a simplification of RobMoSys.} |
|
|
|
\label{fig:robmosys} |
|
|
|
\end{figure*} |
|
|
|
|
|
|
|
In the end the graph gives us a lot of sub-features. |
|
|
|
We will not implement every single node as a feature because 15 small features would only create loads of overhead. |
|
|
|
But what we can do is group sub-features. |
|
|
|
This also brings another advantage because we include a higher-level feature that can be used as test. |
|
|
|
For example, the SCARA can be tested by successfully moving the marker on the board. |
|
|
|
|
|
|
|
In the later step where we will select one of the features we will use this graph as a basis. |
|
|
|
We can group features from this graph such that they can be implemented in about a week. |
|
|
|
This way we reduce the overhead of implementation and keep an eye on the progress. |
|
|
|
|
|
|
|
\chapter{Specifications} |
|
|
|
\label{chap:specifications} |
|
|
|
The following step was to distribute the system specifications between the features. |
|
|
|
The problem we ran in to is that neither the system specification nor the RobMoSys was implemented with enough detail that they could work together. |
|
|
|
Parts of the specifications lacked in detail, even with the use the EARS-method \autocite{mavin_easy_2009}. |
|
|
|
This resulted that some specification where valid for all sub-features as the specifications where to broad. |
|
|
|
However, improving the specifications would sometimes result in that it did not fit on one of the sub-features. |
|
|
|
This is because the RobMoSys misses sub-features which would specifically implement the control system. |
|
|
|
|
|
|
|
While we were working on this step we updated the system specifications. |
|
|
|
This was done because we found that some of the specification did not make any sense in for this research. |
|
|
|
While others were really easy to expand. |
|
|
|
Therefore, these following list represents the updated specifications: |
|
|
|
\begin{itemize} |
|
|
|
\item The Writer shall be able to write at least 50 characters per line. |
|
|
|
\item The Writer shall be able to write at least 5 lines of text. |
|
|
|
\item The Writer shall plot characters with a size that is readable from 4 meters for a person with good eyesight. |
|
|
|
\item The Writer shall plot in a regular used font with corresponding character spacing. |
|
|
|
\item When a new tweet is send to the Writer, the Writer, shall wipe the existing tweet and write down a new tweet. |
|
|
|
\item If the Writer is not wiping or writing then the Writer shall not obstruct the view of the whiteboard. |
|
|
|
\item While writing, the Writer shall have a writing speed of at least 1 character per second. |
|
|
|
\item If the Writer is tasked to wipe the tweet, the Writer shall wipe the tweet within 60 seconds |
|
|
|
\item When a reset-signal is send to the Writer, the Writer shall re-calibrate its position on the board. |
|
|
|
\item When a wipe-signal is send to the Writer, the Writer shall wipe the board clean. |
|
|
|
\item The Writer shall not damage itself. |
|
|
|
\item While writing, the SCARA shall have a writing speed of at least 1.5 characters per second. |
|
|
|
\item When the Carriage/base of the SCARA is at a static position, the SCARA shall be able to write at least 3 characters at that position. |
|
|
|
\item When the SCARA finished writing at their current position, the Carriage shall move the SCARA to it's next position where it can write the subsequent characters. |
|
|
|
\item When the SCARA has to be moved to a new position, the Carriage shall perform this movement within 1 second. |
|
|
|
\end{itemize} |
|
|
|
|
|
|
|
\chapter{Decision} |
|
|
|
In the end we decided that a it was better to stop the current step. |
|
|
|
We have some specific points that require improvement in a follow up. |
|
|
|
The steps system specifications, initial design, feature separation and feature specifications have to be merged in to a kind of spiral model. |
|
|
|
Where the process would start with a global description of the system and some initial designs. |
|
|
|
This initial design can then be expanded with some course system specifications. |
|
|
|
This would be followed by a RobMoSys-type of analysis. |
|
|
|
The RobMoSys gives a brief interpretation of the different subsystems required. |
|
|
|
For each subsystems we have to assign specifications, if it seems that this is difficult we can choose to review the specifications. |
|
|
|
We can add more detail to the specifications for example, or split them in to multiple separate specifications. |
|
|
|
|
|
|
|
For now, we have enough information to test the next steps. |
|
|
|
At the beginning of each feature-implementation we will write the test specifications. |
|
|
|
And during the selection we have to keep the list of specifications in mind. |
|
|
|
We think that this is possible as the list of specifications and the set of systems is manageable. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|