I am a little confused as to exactly what you are trying to achieve. You don't just wake up one day and decide you want to write some BPM software - you must have a reason for doing so, and this reason is your design goal. BPM is a very wide ranging concept that covers many things - what particular aspect are you targeting?
And why do you feel the need to create yet another BPM suite? Is there something in current suites you do not like? Do you feel they are too bloated?
Your reason for writing the BPM is your design goal. Clearly define what these are, then you can begin looking at design patterns and start to look at what approach you are going to take to achieve these goals.