Software design sketching refers to the practice of software designers to, when faced with a design problem, not immediately turn to existing modeling tools, instead choosing to use pen-and-paper or the whiteboard to work through the problem and come up with a solution. This research explores modern hardware such as electronic whiteboards, tablets, and their latest incarnations, iPads and Slates, in creating a novel, computer-supported software design sketching environment that significantly enhances the software design sketching experience.
The work consists of two interwoven strands. One strand involves field studies of professional software designers at three different companies working on real design problems in their native environments. Findings from these studies anchor the work in the second strand, which involves the design, development, and evaluation of Calico, a design sketching environment centering on five distinct features: (1) fluid manipulation of sketched content through carefully designed gestures, (2) refinement from rough sketches to precise models through scraps and softmodes, (3) approximate analysis of incomplete and imprecise models via annotations and imprecise languages, (4) abstraction from code to sketch through contextualized sketching, and (5) access to and reflection upon design history through intentional interfaces and design history views.
The techniques and tools developed by this project are intended to transform how software designers work and improve the quality of the resulting software-intensive systems, with impact in both in industry and in education.
Software design sketching refers to the practice of software developers to, when faced with a design problem, not immediately turn to existing modeling tools, instead choosing to use pen-and-paper or the whiteboard to work through the problem and come up with a solution. This research explored modern hardware, such as electronic whiteboards, tablets, and mobile phones, in creating a novel, computer-supported software design sketching environment that significantly enhances the software design sketching experience. The work consisted of two interwoven strands. One strand involved field studies of professional software developers at a variety of companies working on real design problems in their native environments. Findings from these studies anchored the work of the second strand, which involved the design, development, and evaluation of Calico, a design sketching environment centered on five distinct features: (1) fluid manipulation of sketched content through carefully designed gestures, (2) refinement from rough sketches to precise models through scraps and softmodes, (3) approximate analysis of incomplete and imprecise models via annotations and imprecise languages, (4) abstraction from code to sketch through contextualized sketching, and (5) access to and reflection upon design history through intentional interfaces and design history views. Outcomes of the research are varied, with our studies of developers 'at work' revealing new lessons regarding how they work at the whiteboard, and tool development leading to a new, free and open-source software design sketching tool. The tool was evaluated at three field sites, with results showing that it effectively supported software design at the whiteboard. Because we received highly significant interest in the work from commercial organizations who constantly face difficult design problems, particularly across multiple locations, we worked with one such company to install Calico at three different sites and now are working on commercializing Calico.