Workflow management

From PmWiki

Table of contents [hide]

Semi-formal summary of introductions to Workflow Management

The goal of this page is to collect and represent important semantic relations between important concepts of Workflow Management. The representation is semi-formal: the adopted notation and conventions permit to represent a semantic-network that has a logic-based interpretation but some parts (typically the sentences within quotes) are just strings (their content is in English, not in a notation that machines can understand and exploit).

One of the rationales for this page is to permit the quick retrieval of important concepts of Workflow Management and their relationships, and hence help their discovery, comparison, understanding and memorizing. Indeed, in books or articles, these concepts and their relationships are scattered and hidden within hundreds or thousands of sentences, and sometimes presented in very general and fuzzy ways; it is then extremely difficult to remember and correlate all these descriptions in owns head to get a mental picture and understanding of theses concepts and their relationships.

Currently, only some concepts from the "Workflow Management" book by Aalst and Hee (, and their main relationships, have been represented. These concepts are those defined in the first three chapters of the book and presented in italics when first introduced. The terminology of this book follows the one used by the Workflow Management Coalition. We assume that each of those terms has a unique meaning, at least in this page (that is, each term can be used as a concept identifier).

This page will progressively be complemented by other concepts and relations coming from other parts of the book and other sources.

The classic ontological distinctions of "processus" (action, ...), "agent" (people, organization or software agent) and "tool" (software, method, ...) have been followed. However, in the Workflow Management domain, no explicit distinction is made between such entities and "descriptions of such entities". Hence, the distinction is not made below either even though this is incorrect from an ontological viewpoint.

The notation that is used below follow the schema "CONCEPT1 RELATION1: CONCEPT2 (AUTHOR1);" which can be read "AUTHOR1 has entered the fact that 'any CONCEPT1 may have for RELATION1 one or many CONCEPT2'". (Have a quick look below for some examples). It is recommended to use a singular noun (not a verb, nor a plural noun) for the name of a concept or a relation. Here is more complex but still generic example to illustrate the meaning of the separator "," and of the indentation.

  relation1: concept2 (author1)  concept3 (author2),
  relation2: at least 1 concept5 (author3)  concept6 (author4),
  relation3: concept7 (author5),  //"some comment here"(author7) 
  relation4: "some informal statement here"(author8)   concept8 (author9),
  relation5: {concept9 concept10 concept11}(author10)  concept12 (author11); 

It is read as follows. Any concept1 may have for relation1 one or many concept2 (this has been entered by author1) and may have for relation1 one or many concept3 (this has been entered by author2). Any concept1 has for relation2 at least 1 concept5 (this has been entered by author3) and may have for relation2 one or many concept6 (this has been entered by author4). Any concept1 may have for relation3 one or many concept7 (this has been entered by author5); a comment on this is "some comment here" (comment entered by author7). Any concept1 may have for relation4 "some informal statement here" (this has been entered by author8) and may have for relation4 one or many concept8 (this has been entered by author9). Any concept1 may have for relation5 one or many of the exclusive concepts concept9, concept10 and concept11 (this has been entered by author10) and may have for relation5 one or many concept12 (this has been entered by author11).

The statements below illustrate 1) how statements about already introduced concepts should be indented, 2) how lines can be wrapped so that this file can be printed correctly with a 12 point font. They also also illustrates some common kinds of relationships that should be re-used whenever possible. If not, new kinds of relationships can be invented (but singular nouns should still be used to name them). For normalization purposes, it is recommended to use "synonym" even when "acronym" would seem more appropriate.

Processus / Description of processus

  synonym: business_process (pm)  WF (pm)  BP (pm);

  parameter: WF_theory (pm),
  object: workflow (pm);

  synonym: WFM (pm),
  part: WF_modeling (pm)   WF_execution (pm),
  tool: WFMS (pm),
  object: workflow (pm);

  part: knowledge_acquisition (pm)  knowledge_enrichment (pm)
        knowledge_distribution (pm),
  object: knowledge (pm);

  synonym: business_process_reengineering (pm)  BPR (pm),
  method of: "improving the effectiveness and efficiency of BPs" (pm),
  agent: organizational_expert (pm)  business_expert (pm)  IT_person (pm)
         business_unit (pm),
  part: establish_the_objective_of_the_process (pm)
        ignore_the_existence_of_resources_when_definining_a_process (pm)
        whenever_possible_make_one_person_responsible_for_a_case (pm)
        check_the_need_for_each-tack (pm)  consider_the_scope_of_tasks (pm)
        strive_for_the_simplest_possible_process (pm)
        weigh_a_generic_process_versus_several_versions_of_a_same_process (pm)
        weigh_specialization_versus_generalization (pm)
        whenever_possible_try_to_achieve_parallel_processing_of_tasks (pm)
        investigate_new_opportunities_opened_up_by_technical_progress (pm)
        treat_geographically_scattered_as_if_they_are_centralised (pm)
        allow_a_resource_to_practise_its_specialty (pm)
        try_to_achieve_as_much_flexibility_for_the_near_future (pm)
        allow_a_resource_to_work_as_much_as_possible_on_the_same_case (pm);

  part: triggering (pm)  actual_performance_of_a_process (pm);

 object: trigger (pm);

  specialization: activity (pm);

    informal_definition: "a work_item actually performed by a resource"(pm),
    performance of: 1 work_item (pm),
    performer: at least 1 resource (pm);

  synonym: order (pm),
  source: principal (pm),
  destination: contractor (pm);

  object: contract, //"a contract specifying a process"(pm)
  method: communications_protocol (pm),
  description:  contract_tree (pm);

  specialization: {real-time management operational_management 
                   tactical_management strategic_management}(pm),
  part: planning (pm)  control (pm)  solving_decision_problems (pm),
  method: planning_and_control_cycle (pm),
          //"using reports to revise objectives, preconditions and decisions"(pm)
  agent: management_system (pm);

    specialization: definition (pm)  creation (pm)  evaluation (pm)
                    selection (pm);

    example: production_scheduling (pm)  train_routing (pm);

    specialization: capacity_planning (pm)
                    budgeting_for_operational_management (pm);

    object: structural_aspects_of_processes_and_types_of_resources;

  specialization: working_on_a_case (pm);

    informal_definition: "a unit of work that can be distinguished from
                          all others"(pm),
    example: baking_bread (pm)  making_a_bed (pm)  designing_a_house (pm),
    object: 1 case (pm);

  informal_definition: "a generic piece of work; can be seen as the description
                        of activities"(pm),
  specialization: process (pm);

    informal_definition: "a procedure for a particular case type"(pm),
    synonym: workflow (pm)  network_of_task (pm)
    specialization: business_process (pm)  project (pm) 
                    {primary_process secondary_process tertiary_process} (pm),
    performer: resource (pm),
    part: process (pm), //"a process may or may not have sub-processes"(pm)
                        //"a (sub)process which does not have sub-processes
                        // is a task"(pm)
    description: at least 1 condition (pm)  process_diagram (pm),
     //"both the process_diagram and the conditions associated to some processes
     //  determine the order in which the processes are executed"(pm)
    object: at least 1 case (pm),
    characteristic: complexity; //"the higher the tasks depends on the case,
                                // the higher the complexity"(pm)
    primary_process    synonym: production_process (pm);
    secondary_process  synonym: support_process (pm);
    tertiary_process   synonym: managerial_process (pm);

      informal_definition: "a process for only one case"(pm),
      object: 1 case;
      synonym: atomic_process (pm)  logical_unit_of_work (pm),
      informal_definition: "when a process is considered indivisible by an actor,
          in the eye of this actor, it is a "task": this actor does not see or care
          about the possible decomposition of the task into sub-processes;
          if a task is not performed entirely by a resource, a rollback may have to
          be done by the resource so that the task can be performed again; 
          a task can be performed by several resources but only one is responsible
          for it"(pm),
      specialization: work_item (pm),
                      {manual_task  automatic_task}(pm)  semi-automatic_task (pm),
      example:  typing_a_letter (pm)  stamping_a_document (pm),
      responsible_agent: 1 resource (pm),
      parameter: knowledge (pm);

        informal_definition: "a task for a particular case"(pm);

  part: routing_structure (pm);

  specialization: sequence_structure (pm)  selection_structure (pm)
                  parallelisation_structure (pm)  synchonisation_structure (pm)
                  iteration_structure (pm);

    synonym: parallel_routing (pm)  AND-split (pm);

    synonym: selective_routing (pm)  OR-split (pm);

    synonym: conditional_routing (pm)  OR-join (pm);

Agent / Description of agent

  synonym: WFMC (pm),
  goal: "developing standard terminology and standard interfaces 
         for WFMS components" (pm);

  informal_definition: "one or several person(s) or machine/program(s) assigning
                        or performing a process",
  specialization: principal (pm)  contractor (pm)  manager (pm) system (pm)
                  business_unit (pm),
  agent of: negotiation (pm),
  characteristic: role (pm); //"role or function"(pm)

      informal_definition: "an actor that gives an assignment"(pm),
      specialization: boss (pm)  customer (pm);

        specialization: manager (pm);

          specialization: functional_boss (pm)  case_manager (pm),
          characterics: span_of_control (pm);

      synonym: contractor (pm),
      informal_definition: "an actor accepting an assignment"(pm),
      specialization: co-maker (pm)  outsourcer (pm),
      member of: resource_class (pm);

        specialization: role (pm)  organizational_unit (pm);

      informal_definition: "people, machine or computerized information system
                            carying out particular processes"(pm),
                   //"system seems a specialization of agent but I am not sure
                   //  of the difference"[pm]
      specialization: management_system (pm)  managed_system (pm),
      part: management_system (pm)  managed_system (pm),
      part of: managed_system (pm);

        specialization: enactement_system (pm);
      informal_definition: "agent producing a limited range of product
                            in an efficient way"(pm);

  specialization: hierarchical_organization (pm)  matrix_organization (pm)
                  network_organization (pm);

      part: capacity_group (pm)  functional_department (pm)
            process_department (pm)  production_department (pm),
      description: organizational_chart (pm);

      synonym: virtual_organization (pm);

Tool (software, method) / Tool description

  synonym: IS,
  generalization: software (pm),
  specialization: workflow_management_system (pm)  computer (pm)
                  office_IS  transaction-processing_system control_system
                  knowledge_management_system decision_support_system;

    synonym: WFMS (pm),
    purpose: "insuring that the right information reaches the
              right agent (person or computer application) at the right time" (pm),
    not purpose: "performing any task in a process" (pm);
                    //"hence, application software is usually also needed" (pm)

     specialization: interorganizational_IS;

  specialization: Petri-net_theory (pm),
  object: Petri-net;

  part: place (pm)  transition (pm)  token (pm);

  specialization: input_place (pm)  output_place (pm);

  specialization: enabled_transition (pm);

  part: time_stamp (pm);


  specialization: {tacit_knowledge  explicit_knowledge}(pm);

  synonym: product (pm),
  informal_definition: "the particular object of a work; 
                        example: an insurance claim that is about to be handled;
                        each case has a unique identity that permits to refer to it;
                        a case has a lifetime (see case_state)"(pm)
  description: case_state (pm);

  specialization: case_state (pm)  case_attribute (pm)  case_condition (pm)
                  procedure (pm); 

    informal_definition: "a category of cases"(pm),
    member: at least 1 case (pm),
    characteristic: case_attribute (pm);

    informal_definition: "a description of the case betweeen its appearance and
    part: case_content (pm)   at least 1 case_attribute (pm)
          at least 1 case_condition (pm);

    synonym: phase (pm);