add source code in appendix
[des2015.git] / marsrover / document / evaluation.tex
index 1554614..a9aa80c 100644 (file)
@@ -33,14 +33,14 @@ and if they are we try to complete as many iterations as possible.
                        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. &
@@ -66,10 +66,50 @@ and if they are we try to complete as many iterations as possible.
                        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