Proposal by Mariano Coca for Visualization of profiling information in Pharo and Squeak

Proposed by Mariano Coca (profile, biography) Don't forget to submit this proposal to official Google Melange site too!

How will I do that project

I will start by researching other UI implementations in other languages, and other tools that provide a similar functionality to fully determine the scope and interesting additions of the implementation.

Also, I will look for user interface tools already developed that simplify the project implementation, like Mondrian and Spy Framework.

What methodologies will I use

I will develop the project entirely using Test Driven Development. I believe that software development can't be made any other way that with incremental methodologies. I believe that the code should be documented by tests and it must have a complete specification only of what it should do, leaving the how to the code and the tests. For that, the code must follow intention revealing concepts.

Suggested timeline and milestones

According with the Google Summer of Code timelines, the milestones would be:

  • I will use the community bonding period to start the research of the available tools in other smalltalk dialects, and to learn Mondrian, Spy Framework, and the actual profiling tool (MessageTally) implementation. This should be done by May 24.
  • By June 14 I shall end with the basic model modifications that will allow to the user interface to be as flexible as it should.
  • By July 5 I shall have an initial user interface that displays the execution result, but allows no interactions with it.
  • By July 26 The user interface must be operational and ready for user testing.
  • By August 2 the UI must be stable.
  • By August 9 the framework must have user manual.

Where I see the risks

The risks I foresee are in the inherent complexity (or lack of it) of the MessageTally actual implementation, that could force a major rewriting of the framework. In that case, the initial model modifications phase would expand by two more weeks, and therefore they will be taken from the time available to implement the functionality for the user interface. Anyway I would keep coding them the following year, and keep contributing to the community. This shall be determined on the initial research and functionality specification stage.

How the results will look like

I hope it'll look like the Boot Process Performance Visualization (, but using the Squeak/Pharo morphic environment widgets.

The goal is to have a menu option on the contextual menu of every workspace on the system, and a stand alone window, that for any given bunch of code, can run the profiling. Then on a side pane, or a second label, it would show the execution result with a layout similar to Bootchart's.

Updated: 9.4.2010