Fast Draw is a desktop application that allows users (artists) to create and save drawings composed of curves and regions bounded by curves.
The application domain of Fast Draw is the artist's studio and its contents: a canvas, a palette of colors, tools (pen, pencil, eraser,) and a collection of stencils for drawing various shapes:
Shapes include points, curves, regions bounded by curves, labels, and composite shapes (a collection of shapes that has been logically grouped together as a single shape.) We use the Composite Design Pattern to represent the Shape hierarchy:
The design instantiates the Model-View-Controller Pattern. In this case the model is the (virtual) studio. The view is a window that shows the canvas being edited, and the controllers are control panels that allow the user to select files, colors, tools, and shapes.
A main application window contains the view and the control panels and uses a gateway to interface with the underlying file system.