The Design of Software (CLOSED)

A public forum for discussing the design of software, from the user interface to the code architecture. Now closed.

The "Design of Software" discussion group has been merged with the main Joel on Software discussion group.

The archives will remain online indefinitely.

Workflow Modeling

I've got a requirement for workflow -- basically, FormA needs to go through these steps 1,2,3,4,5 (etc) with various decision points along the way, possibly changing the routing based on specific decision point/criteria.

I've got a decent database model hacked out that basically "table-izes" a finite state machine. This isn't rocket science, and I've done similar before. The problem: users don't tend to think in terms of tables, and states, and transitions between "FromStates" and "ToStates" -- they find maintaiining tables a very difficult process.

I'm looking for tools/components that would facilitate more of a "Drag-N-Drop" approach. They're used to Visio and like to drag shapes & connections -- and see a *visual* representation of what they're modeling.

Anyone got any tools/components they use for modeling workflow visually? Something suitable to incorporate into my app and allow users to doodle their way through designing a custom workflow?

Any pointers welcome.

Even if there's no visual components, anyone know of tools for managing this type of operation? I'd like to take a look and see if I'm missing any common features in designing a workflow process.

Friday, June 16, 2006
What is your environment? ... for Java I like .
Steve Moyer Send private email
Friday, June 16, 2006
Well, it isn't out yet but you might want to look at Windows Workflow Foundation. I've seen a demo of it and it looks really cool. I'm not necessarily recommending it. Just pointing it out as something to consider for ideas of where Microsoft is going in this area.
Turtle Rustler
Friday, June 16, 2006
Well, there are multiple choices.
Workflow technology is very wide, and the implementation of a powerful workflow engine is not trivial. If what you want is use the functionality you already have to manage state machines, then visio interoperability can be an option, you can create a plugin for visio, and with a special template that includes the elementes your engine supports it could export to a format your engine could understand, this option saves you the work of creating the designer logic, but means that user need visio...this also applies if you want to embedd a visio drawing in you application.

The problem with trying to integrate some existing workflow modelling tool with what you have done is the incompatibility of the artifacts that the tool uses to model a process. Normally an engine is designed to support a workflow languaje whereas is standard (xpdl, bpel, etc) or propietary. Other option could be to implement support for xpdl and use some xpdl editor, the format is not complicated but support for every feature of the languaje especification could be a long task ( You can get the spec in the WFMC page ). If you only need the basic constructs AND split for parallel task, or XOR, you could implement support only for this constructs and not the 100% of the spec, sometimes that will be enought for simple process.

If what you want is a very poweful engine so it can handle complex escenarios you should design the workflow keeping in mind the worklfow patterns (google it), there is a powerful languaje called YAWL that support most of the patterns, its based on Petri Nets...You can download the YAWL editor and analyze the XML it produces, that can give you ideas.

In my opinion whatever tool, or decision should be based on the type of processes you will support.

Other option could be use an embedded workflow engine, they exist for java , .NET and possibly other platforms,, i havent payed much attention to them but you should check if  they work for you. (skelta is one of them. but i havent review it).

hope that helps.
feel free to contact me
(hugozap) (at)  (gmail)

Hugo Fernando Zapata
Hugo Fernando Zapata Send private email
Saturday, June 17, 2006
Hey Sausage,

If you're into .NET then take a look at:

This is some sweet stuff.  I think it will change the way apps are developed from 3.0 and on.
Saturday, June 17, 2006
Workflow engine aside, for the visual component I'd suggest looking at

I'm in a similar situation but the visual component is the main piece I need and this control fits that requirement very well.

I need to research WWF some more, but I was under the impression that it's the workflow engine...but not a visual component (from a user perspective...I know it has one for development) I correct?
James Brechtel Send private email
Saturday, June 24, 2006
Sorry, I meant to reccommend the FlowChart.NET component, here
James Brechtel Send private email
Saturday, June 24, 2006
WOW, I am in the exact same boat.  We, in our Accounting/ERP softare, do nearly exactly as you described.

We present users with a drang-n-drop GUI to manipulate the flows.

I use the DevExpress Express Flow Chart tools which allow you to connect them to a database table.

It's a true role your own approach.  Commercial stuff I looked at didn't have everything I needed or they were too overkill. 

My development tools are Borland C++ Builder.  The tool is described here:
Tuesday, June 27, 2006

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics
Powered by FogBugz