We will first start by examining the technical details of the MIDI interface to see what is possible technically and design specific requirements from there. Once technical specifications are completely designed, our group will meet several times to whiteboard and brainstorm how to best implement RandyLoops in java is with a well planned object orientated design. Code sections will be divided, as the GUI is modular. Certain features will be embedded and need to run the engine of the program, other features will just drive the GUI, or the MIDI interface. Detailed code reviews and testing throughout will be used as we will be employing the XP interface. Pair programming will be used which should eliminate most errors, as we are dealing with a technical, detailed orientated interface. Much care must be made towards speed and optimizations, as the user can use the scrollbars to create music in real-time.
To break it down even further, we can divide the project into a series of iterations, and get working code together quickly so that testing can being. This is the paradigm of Xtreme Programming.
Iteration 1 - Inception Phase (three weeks, 3 people) This involves creating basic requirements, use cases, risk anaylsis, and technical overview
for the next part the group size is increased to 8 people, we will split into two teams
Iteration 2A - GUI Design (two weeks, 4 people group A ) This involves designing the GUI on the whiteboard in a team setting, and then getting a bare-bones GUI up and running (no implementation of anything MIDI, just a blank interface).
Iteration 2B - Technical Architecture (two weeks, 4 people group B ) Design of the program core arhitecure using UML. Class diagrams, scenerio diagrams, and some written documentation.
The to combine it all together, the two groups will merge the whole program together and implement the planned architecture
Iteration 3 - Putting it all together (three weeks, 8 people) This is where the bulk of the coding takes place, after this stage the program is fully coded, but will need to be tested/
Iteration 4 - Creating Test Plans (one week, 8 people) The use cases created in the inception phase will be expounded on, and integration and unit test cases also will be created here.
Iteration 5 - Testing (one week, 8 people) This phase involves carrying out all the test plans, If any of the test plans dont work properly, then slight code changes are made when necessary. at the end of this phase we are left with a working, tested, and ready to release Java RandyLoops GUI.
This results in a 12 week development cycle, with rapid results as far as a working GUI only after the 2nd iteration, which allows the team to begin testing a bare bones version of the program (use cases) within 5 weeks.