|Proposed by Juan Pablo Sandoval Alcocer (profile, biography) Don't forget to submit this proposal to official Google Melange site too!
How will I do that project
The overall work will be realized (in) at least 20 hours a week. Doing short development cycles and having daily meetings with my mentor.
What methodologies will I use
We will based on iterative and incremental development. During each iteration, we will create finished parts of the software. Using good practices, specially continuous integrations and test driven development. Promoting evolutionary development and delivery, a time-boxed iterative approach (i.e. restricted to a specific duration).
Suggested timeline and milestones
We suggest to do 3 clearly defined iterations, each one having a length of a month approximately. Each one with a well defined milestone:
API for navigation across software versions.- Designing and developing an intuitive programming interface which permits an easy navigation across software versions.
API for dynamic analysis.- Building a profiler to collect specific runtime information for each variation context in a useful data structure that allows comparisons between them.
Presenting the results.- A visual support to monitor the evolution of benchmarks over multiple versions of software.
Where I see the risks
We need have stable profiles, each execution has to be repeatable and isolated from other execution. This means that two profiles A and B produced by two identical executions have to be “close enough” to be meaningful.
The results must be unambiguously presented, to be able to draw a conclusion and analyze the variation of performance.
How the results will look like
A tool to measure software performance: crystallizing the performance of each software feature into a set of dedicated benchmarks and monitoring the global performance of a software against different versions.