\section{Development Plan}
-
-We will work using spiral software development model where all works are divided into small iterations. Each of iterations will have implementation phase, testing phase, analysis phase, and design phase.
-Furthermore, each of iterations will have goals and results.
-The iterations are:
-
-\begin{enumerate}
-\item Iteration 1: Create a basic DSL for MarsRover's missions to use available sensors and actuators
-\item Iteration 2: Test the DSL and make it works in MarsRover
-\item Iteration 3: Create a functionality to use motors for the movement. The actions are drive forward, drive backward, stop, turn left, and turn right.
-\item Iteration 4: Create a functionality to use right sensor, left sensor, and back ultrasone sensor
-\item Iteration 5: Create a functionality to keep the MarsRover in the planet. This will combine the use of the motors for the movement and the most safety critical sensors
-\item Iteration 6: Implement a protocol for the communication between two bricks
-\item Iteration 7: Implement color sensor and create a functionality to find lakes by color
-\item Iteration 8: Implement front ultrasone sensor and create a functionality to find rocks
-\item Iteration 9: Implement functionality to avoid rocks
-\item Iteration 10: Implement measurement motor and create a functionality to measure lakes and rocks
-\item Iteration 11: Implement left and right touch sensors. Also, create a functionality to push rocks
-\item Iteration 12: Implement a functionality to be able to perform multiple missions in sequence
-\item Iteration 13: Implement Gyro sensor and create a functionality to park MarsRover in certain position
-\item Iteration 14: Implement a functionality to remember where the lakes are after the MarsRover found them
-\item Iteration 15: Implement a functionality to play a sound for the viewer's notification
-\item Iteration 16: Implement SLAM functionality and make the MarsRover be able to navigate with the map
-\end{enumerate}
\ No newline at end of file
+The development plan is written following the spiral software development model
+in which all requirements are divided into small iterations. Each of the
+iterations will have an implementation phase, a testing phase, an analysis
+phase, and a design phase. Furthermore, each of the iterations will have goals
+and results. The iterations and their deliverables are listed in
+\autoref{tab:devit}. The schedule for finishing iterations are listed in
+\autoref{tab:deadli}. On the 6th of January the must-have should be finished
+and if they are we try to complete as many iterations as possible.
+\begin{table}[h!]
+ \centering
+ \begin{tabu} to \linewidth{llX}
+ \toprule
+ Deadline & Iterations\\
+ \midrule
+ 9 Dec 2015 & 1--2\\
+ 16 Dec 2015 & 3--5\\
+ 23 Dec 2015 & 6--9\\
+ 6 Jan 2015 & 10--11\\
+ 13 Jan 2015 & Demo\\
+ \bottomrule
+ \end{tabu}
+ \caption{Deadlines}\label{tab:deadli}
+\end{table}
+\begin{table}[h!]
+ \centering
+ \begin{tabu} to \linewidth{rlXX}
+ \toprule
+ It. & Req. & Description & Deliverables\\
+ \midrule
+ 1 & NR1 & Create a DSL for MarsRover's missions to use available
+ 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
+ motor actions: forward, backward, measure rock, measure lake and
+ wait. & Code
+ generation for motors\\
+ 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
+ treshholds manually. & Code generation for sensors and threshhold
+ constants.\\
+ 6 & CR1 & Create functionality to keep the MarsRover in the planet. &
+ A generatable behaviour to stay on the planet.\\
+ 7 & MR3 & Create functionality for not bumping into rocks. & A
+ generatable behaviour to not bump into rocks.\\
+ 8 & MR1 & Create functionality to find lakes. & A generatable mission
+ to find lakes.\\
+ 9 & MR6 & Create functionality to perform missions in sequence. & A
+ generatable main program that performs missions.\\
+ 10 & MR2, MR4& Create functionality to find rocks. & A generatable
+ mission to find rocks.\\
+ 11 & MR5 & Create functionality to push rocks and detect when the
+ robots is pushing. & A generatable behaviour for pushing.\\
+ 12 & MR7 & Create functionality to find the parking space. & A
+ generatable behaviour that can find the parking space.\\
+ 13 & MR8, ER1 & Create functionality to map the environment and to
+ localize. & A generatable behaviour that can map while
+ performing.\\
+ 14 & ER2 & Create functionality to play sounds. & Add a generatable
+ function for playing sounds.\\
+ 15 & NR3, NR4 & Create functionality to calibrate the sensor
+ 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.\\
+ \bottomrule
+ \end{tabu}
+ \caption{Spiral model iterations}\label{tab:devit}
+\end{table}