1 \section{Development Plan
}
3 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.
4 Furthermore, each of iterations will have goals and results.
8 \item Iteration
1: Create a basic DSL for MarsRover's missions to use available sensors and actuators
9 \item Iteration
2: Test the DSL and make it works in MarsRover
10 \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.
11 \item Iteration
4: Create a functionality to use right sensor, left sensor, and back ultrasone sensor
12 \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
13 \item Iteration
6: Implement a protocol for the communication between two bricks
14 \item Iteration
7: Implement
color sensor and create a functionality to find lakes by
color
15 \item Iteration
8: Implement front ultrasone sensor and create a functionality to find rocks
16 \item Iteration
9: Implement functionality to avoid rocks
17 \item Iteration
10: Implement measurement motor and create a functionality to measure lakes and rocks
18 \item Iteration
11: Implement left and right touch sensors. Also, create a functionality to push rocks
19 \item Iteration
12: Implement a functionality to be able to perform multiple missions in sequence
20 \item Iteration
13: Implement Gyro sensor and create a functionality to park MarsRover in certain position
21 \item Iteration
14: Implement a functionality to remember where the lakes are after the MarsRover found them
22 \item Iteration
15: Implement a functionality to play a sound for the viewer's notification
23 \item Iteration
16: Implement SLAM functionality and make the MarsRover be able to navigate with the map