Software Design Sketching

It all started with a vision, inspired by a video on YouTube of a physics professor drawing on an electronic whiteboard and being able to instantly simulate the behavior of a car barreling down a hill, jumping off, and hitting and setting in motion a variety of obstacles.  What if, Professor André van der Hoek and his graduate student Alex Baker pondered, software engineering diagrams could behave in much the same way?  What if one could quickly sketch a software architecture, and then ask the diagram to tell us how it “felt,” for instance by moving incompatible interfaces further apart, coloring servers red if their expected load is too high, or blinking those components that it deems insecure?  On board came Nicolas Mangano, an undergraduate student at the time, to explore this question.

André van der HoekIt is now five years later and Alex Baker graduated with his Ph.D. in 2010, Nicolas Mangano is close to finishing his Ph.D., and a large group of M.S. students, undergraduates, and visitors have contributed to the project.  

What happened is an intriguing tale of academic research, corporate partnership, a close look at how software designers actually work, a novel software design sketching tool, and technology transition into the classroom and industry.

Van der Hoek and Baker realized early on that they needed to develop a deep understanding of how software designers actually work at the whiteboard.  How do they navigate a design problem?  What kinds of diagrams do they draw?  How do they coordinate their mutual ideas?  What do they do when they get stuck?  What kinds of conversations take place?

To answer these questions, they approached professional, highly experienced software designers and architects and asked if they could videotape them while at work.  “The response was amazing,” says van der Hoek.  “We received positive responses all around, including from designers of some of the most well-known software products to date.”  The resulting video catalogue formed the basis not only for Alex Baker’s eventual dissertation, but also for an NSF-sponsored workshop that took place at UC Irvine in 2010(http://www.ics.uci.edu/design-workshop).  Baker took the idea of video analysis even further, compiling additional videos so as to compare the design approaches of the experienced professionals with those of novice designers.  

The results are intriguing.  Experienced designers exhibited a pattern of rotating between pairs of topics in their discussions.  Unplanned, and indeed even unwittingly, they would spend short blocks of time, with the discussions in each block juxtaposing two of a small handful of topics of importance to the design problem.  The two topics would rotate from block to block, seemingly enabling the designers to push the design forward, designers from a range of local corporations.  These designers would periodically visit, try the software, and provide feedback, which was used to iteratively refine Calico over the years.  “The involvement of day-to-day software design professionals has been instrumental in how we evolved Calico from an early sketch tool to now a full-featured software sketch environment that supports distributed, collaborative design meetings.”

With the help of various M.S. and undergraduate students, Calico has rapidly matured this past year, to the point where it is now regularly used by van der Hoek in two of the courses that he teaches (Software Design, Introduction to Software Engineering) and is also being transitioned into actual use in industry.  In October, van der Hoek, Mangano, and Michele Bonazza (a visiting student from Italy who is working on an Android version of Calico) flew up to the Bay Area to install Calico at Cooper, a user experience design and strategy firm.

Calico

As for the initial vision… five years later, none of the diagrams sketched using Calico can yet tell the designer how they “feel.” All of the research, however, has lead to a much deeper understanding of the behaviors of software designers, a real system in real use, and Calico’s own YouTube video, as well as a platform upon which van der Hoek and his research group are now exploring various exciting extensions.  One such extension is to map sketched elements onto a formal notation.  With this mapping, it becomes possible to analyze the diagrams and provide feedback to the designers.  Indeed, this feedback is provided through diagrammatic elements that color themselves based upon whether they are expected to execute within specified performance limits.  Perhaps that original vision wasn’t so crazy, after all.

For more information about this and other research by van der Hoek’s group, visit their web site at: http://sdcl.ics.uci.edu.

The Calico video is available at:
http://www.youtube.com/watch?v=qmguACcFjSg.

This article appeared in ISR Connector issue: