ABSTRACT This research is concerned with the problem of software flexibility. Specifically, it addresses the problem of managing change in workflow management systems. A large change in business requirements naturally leads to a large change in the supporting software. However, a small change in business requirements may lead to a huge change in the supporting software. This is a result of software systems that are built with no consideration to flexibility. The suggested solution is based on separating activities from execution rules. Activities are implemented as a set of loosely coupled services. Services can be replaced when necessary. The execution sequence may be changed without the need to rewrite or reconstruct a given workflow. The work presented here is based upon ongoing research into software application flexibility which focuses on building flexible workflow engines.
