The design ideas and concepts found in user studies and the design process have led to an end-to-end solution in the form of a rich-client application, referred to as the JIGSAW prototype. JIGSAW is a composite application modeling tool that integrates business process modeling, task-oriented workflow modeling, and prototype testing. It targets to empower business process expert with the functionalities to model composite application supporting business processes and workflows. Moreover, it provides an environment to immediately test workflows at design-time.
At the top level, users can construct the high-level structure of a composite application in the flowcharting practice that is comparable to business process modeling. At the second level, after drilling down into a task in the process flow, users can manipulates the composite details of the task by changing the visual model of the workflow, such as adding an user interface screen or a service call and modifying data connections.
The business process modeling and workflow modeling environment in JIGSAW.
We decided to allow our target users to model composite application via the two-level visual programming approach for several reasons that are derived from our design opportunities and implications:
Other design aspects of the modeling environments include the followings:
Once a workflow model is completed, users can test the resulting composite application by going into the testing environment. In the testing environment, a prototype of the composite would be compiled from the workflow model. Users can interact with the composite and step through the entire workflow just like the end-users would. Users can also inspect the input and output of the services called along the workflow. At the end of the testing, users can document the test details including statistical data of the efficiency of the workflow.
During our user study, multiple business process designers have expressed the importance and the pain of process testing, and the common wish for test automation. Integrating the testing environment with the modeling environment strengthen our tool in a number of ways:
Other design aspects of the testing environments include the followings:
In abstraction, the relationship between the three different environments is depicted in the figure below. We deliberately separate the three different environments and provide distinctive set of functionalities in each environment. We believed that the clear separation of functionality at different levels would support users' working pattern. The limited amount of functionality at each environment also will ease the mental workload about making decisions of what to work on.