sensors and actuators. & \texttt{TaskDSL.xtext}\\
2 & ER3 & Implement diagnostic functions that print on the \emph{LCD}.
& A \emph{LCD} class that prints to the \emph{LCD} screen.\\
- 3 & - & Implement functions in the code generation for basic motor the
+ 3 & -- & Implement functions in the code generation for basic motor the
motor actions: forward, backward, measure rock, measure lake and
wait. & Code
generation for motors\\
- 4 & - & Implement functions in the code generation for communicating
+ 4 & -- & Implement functions in the code generation for communicating
the sensors from the slave to the master. & Functions in the master
program to read the slave's sensors.\\
- 5 & - & Create functionality for sensor values and determine the
+ 5 & -- & Create functionality for sensor values and determine the
treshholds manually. & Code generation for sensors and threshhold
constants.\\
6 & CR1 & Create functionality to keep the MarsRover in the planet. &
treshholds. & A generatable function to calibrate the sensors.\\
16 & NR5 & Create functionality that when the robot encounters bugs it
can restart itself. & Functionality in the main program to do so.\\
- 17 & - & Speed up the behaviour of the robot within safety limits.\\
+ 17 & -- & Speed up the behaviour of the robot within safety limits.\\
\bottomrule
\end{tabu}
\caption{Spiral model iterations}\label{tab:devit}
\end{table}
\subsection{Evaluation}
+\subsubsection{Realisation}
+%implemented features and mission range
+The final implementation satisfies all the \emph{must have} requirements.
+Besides all the most important requirements it also supports all \emph{should
+have} requirements except \emph{MR8} in which the robot must be able to
+remember the locations of the lakes. This is because we encountered some
+problems during the development phase that lead to a shortage of time. Because
+of that mapping and localization was not implemented. In the end of the process
+we had some time left which we used to implement \emph{ER2} since it was
+relatively simple.
+
+The range of missions the robot can support is a lot bigger then reflected by
+the met functional requirements. All actions specifiable in a behaviour consist
+of atomic operations that take very little time leading to the action being
+interruptible at all times. Together with the rudimentary variable storage we
+can make missions very complex. Possible combinations of behaviour can perform
+actions such as: counting, following moving objects and grouping objects.
+
+In the beginning of the running program, the user need to press any button to start
+the program in the robot. This is because both bricks need to start the bluetooth
+communication pairing at the same time. If we were given more time we would make
+the bluetooth pairing automatically run from the beginning of the program without
+waiting button press in order to limit the user involvement in the robot.
+
+The DSL can accomodate the improvement in the case of adding new sensors or actuators.
+For instance, if we want to add a new sensor, then it is easy to add new \emph{StoppingExpression}
+in the DSL. In addition, if we want to add a new actuator to the robot, we can just add
+a new action defined in the DSL and implement the use of the action in the program.
+
+\subsubsection{Discussion}
+%development process, use of dsl/technologies, general lessons
+From our experience, the most important think in the development process was to
+start working from a small functionality and to test it. As soon as we knew
+something wrong with the program we can fix and test it again in order to ensure
+the functionality worked. This would be good for the development of the next
+functionality. The difficulty in the development was in the testing phase. The
+reason was sometimes we got an error when running the program in the robot (for
+example: sensor exception) and it took so much time for loading all sensors to be
+ready for testing. Moreover, there was a time when the robot was crashed and needed
+to be restarted which took some time from the development time.
\ No newline at end of file