Proposal by Felipe Bañados for Visualization of profiling information in Pharo and Squeak

Proposed by Felipe Bañados (profile, biography) Don't forget to submit this proposal to official Google Melange site too!

How will I do that project

The project is articulated essentially around three main points. First, getting involved into the Smalltalk community and the development of Pharo. Second, I'll look for a visualization that can take into account the evolution of the software (version comparison and historical evolution) with several levels of detail, and using it into a real case study to optimize a software (a first goal is to identify problems on Mondrian itself, since its performance during the last months has decreased a little.). The third goal is to go beyond the visualization and improve the profiling tool.

What methodologies will I use

Collaborative work with a Mentor. Studying at the same place Alexandre Bergel and others work will make meeting easy. Starting from the present state of software (mainly the Spy and Kai framework), make iterative improvements to design and develop around 3 different visualizations to assess version evolution.

After that, profile a package and obtain metrics to look for improvement on it's code, ideally Metacello, an essential element of the Pharo package system.

Discussion of new ideas and meeting to evaluate progress in the project will combine with self learning and coding.

Suggested timeline and milestones

0.- Learning Pharo (Pharo By Example, done), Mondrian and understanding the present code.

1 - Define the visualization for two different snapshots (for the same input). This implies finding colors and layout (may be tricky to get it right).
2 - Have a small running example based on Mondrian. Pick two different versions to exemplify the visualization
3 - Doing a small but useful case study.  Based on Metacello. Apparently, it spends a lot of time to identify the order of package loading.
       3.1 - finding improvement
       3.2 - testing the visualization
       3.3 - identifying bottlenecks, room for improvement

4 - Extend the two snapshots visualization to the entire history of the code.

5 - (Extra) Try to visualize the behavior of the same instance of code with different inputs.

Where I see the risks

- Time delay in getting used to program in Smalltalk (Pharo), and understanding the present implementation of profiling and it's visualization.

- University obligations and lack of time at moments.

- Difficulty to significantly optimize the case study.

How the results will look like

-A first reference might be Fig. 14 of Gîrba and Ducasse's "Modeling History to Analyze Software Evolution" paper, but part of the proposal is to find a compellig way to express the results. However, it will be a Mondrian visualization. Other inspiring example is in the project description.

Updated: 9.4.2010