A pattern and dependency based approach to the design of process models