2009.02.10
Visualizing Revision Logs with a UML Sequence Diagram
How can you visualize the developers' contributions in a collaborative project? One way involves drawing timelines adorned with marks indicating each developer's contribution. This is a simple UML sequence diagram, a diagram that allows you to see the interactions of objects, but in this case the objects are the actual developers and the interactions are their contributions.
UMLGraph allows the declarative specification of a sequence diagram. Therefore, all that is needed is a script that will convert a log from a version control system into a sequence diagram. A simple Perl script and a few calls to Unix tools will convert a CVS history log like
M 2007-02-01 16:10 +0000 akp 1.30 istlab.xml [...] M 2007-02-26 09:11 +0000 apaparg 1.31 istlab.xml [...]into a UMLGraph sequence diagram description with commands like
object(Clina,"lina"); object(Cmarkos,"markos"); object(Cmbina,"mbina"); object(Cpanos,"panos"); object(Ctsiaousis,"tsiaousis"); object(Cvbill,"vbill"); step(); spacing = .01; active(Cbkarak); step(); inactive(Cbkarak); active(Cdds);
Then, by feeding the output into pic2plot with a command like
perl timeline.pl cvs-repository-name | pic2plot -Tpng >timeline.png