Many corporate organizations, especially those that produce and maintain large software systems, have tried to achieve productivity gains by improving their development processes. Process improvement requires detailed modeling and analysis of an organization's development processes. In the past few years, we have attempted to deploy a process modeling and analysis system, Marvel [Bar92], in several production software development projects. In Marvel, a process model is described in a formal specification language that combines objects and rules. Marvel users instantiate objects that represent project artifacts, execute process models, view the process execution, query the state of objects and process execution, and visualize the results.
Experience with Marvel confirmed that it can capture process models in enough detail to support sophisticated process analysis and automation. The problem is that many corporate organizations lack sufficient expertise in formal methods to be comfortable with a system like Marvel. For example, some users found it difficult to work with large sets of non-procedural rules represented as text.
Our hypothesis is that a more convenient, intuitive user interface incorporating multimedia and graph diagrams, connected to Marvel, can simplify process specification while retaining most of Marvel's advantages. Improvise is an experimental process modeling system with a multimedia user interface [Kout95] that was created to address experience in deploying Marvel. Previous work suggests the effectiveness of interactive multimedia for related problems in information retrieval, technical training, and studying simulations [Pat93][Hui93][Bus94][Ber89].
A good starting point is to automate what process engineers were already doing: drawing process flow models manually (on a ``process wall'') or with interactive drafting programs. A process flow is a set of relationships between objects that represent process steps, human developers, software tools, organizations, and so on. Improvise automates the creation and modification of process flow models.
Improvise espouses a graphical model that represents a process flow as a multi-layered directed graph with various node types. Nodes may have associated multimedia objects: text, images, audio-video recordings, and executable objects. A typical recording attached to a node contains excerpts of interviews with the process owner explaining how to perform the task represented by the node. Thus, the process model diagram also serves as a sophisticated browsing interface that is suited for process understanding and training.
Figure 1: Improvise Screen Image
Figure 1 depicts a process flow diagram in Improvise. The top window in the figure, labeled Improvise: objects, is the menu of currently-available node types. The menu contains a default (but customizable) set of node shapes representing different parts of a process flow diagram. The nodes and edges are objects, each with a pre-defined (cut customizable) set of attributes; the particular set of attributes depends on the type of node. Some of the attributes of node types are designated as multimedia attributes. The value of such an attribute can be a video or audio recording, a graphical image, or a textual image. For example, the attribute video of the task node T1.1 has the value ``v1'', as shown in the window labeled Improvise: object attributes, which is a file containing the video recording being played.
Improvise is implemented on top of Dotty, a customizable graph viewer [North94]. Dotty calls the Dot graph layout service to make diagrams of directed graphs. The readability of the resulting diagrams is usually competitive with that of hand-made layouts. Importantly, Dotty has good primitives for communicating with external files and processes, which enabled us to extend it to handle multimedia objects, via external recorders and players.
Process engineers were motivated to accept the automation provided by Improvise because process models are usually refined continually as systems evolve and become more thoroughly understood, making manual editing quite cumbersome. In addition, the incorporation of multimedia annotations makes process flow models in Improvise much more powerful and suitable for process understanding and training. Finally, since Improvise is extendible, it is relatively easy for process engineers to connect it to other tools they may be using for process analysis and simulation.