Design processes in chemical engineering arc, hard to support. In particular, this applies to conceptual design and basic engineering, in which the fundamental decisions concerning the plant design are performed. The design process is highly creative, many design alternatives are explored, and both unexpected and planned feedback occurs frequently. As a consequence, it is inherently difficult to manage design processes, i.e. to coordinate the effort of experts working on tasks such as creation of flowsheets, steady-state and dynamic simulations, etc. On the other hand, proper management is crucial because of the large economic impact of the performed design decisions.We present a management system which takes the difficulties mentioned above into account by supporting the coordination of dynamic design processes. The management system equally covers products, activities, and resources, and their mutual relationships. In addition to local processes, interorganizational design processes are addressed by delegation of subprocesses to subcontractors. The management system may be adapted to art application domain by a process model which defines types, of tasks. documents, etc. Furthermore, process evolution is supported with respect, to both process model definitions and process model instances; changes may be propagated front definitions to instances and vice versa (round-trip process evolution).
Software process dynamics challenge the capabilities of process-centered software engineering environments. Dynamic task nets represent evolving software processes by hierarchically organized nets of tasks which are connected by control, data, and feedback flows. Project managers operate on dynamic task nets in order to assess the current status of a project, trace its history, perform impact analysis, handle feedback, adapt the project plan to changed product structures, etc. Developers are supported through task agendas and provision of tools and documents. Chained tasks may be executed in parallel (simultaneous engineering), and cooperation is controlled through releases of document versions. Dynamic task nets are formally specified by a programmed graph rewriting system. Operations on task nets are specified declaratively by graph rewrite rules at a high level of abstraction. Furthermore, editing, analysis, and execution steps on a dynamic task net, which may be interleaved seamlessly, are described in a uniform formalism.
While a software process is being executed, many errors and problems occur which require to reconsider previously executed process steps. In order to handle feedback in a process management system, several requirements need to be addressed: adaptability, human intervention, impact analysis, change propagation, restoration of the work context, and traceability. Feedback management in DYNAMITE meets these requirements. DYNAMITE is based on dynamic task nets and specifically supports feedback through feedback relations, task versions, and customized semantics of data flows. A methodology for feedback handling is also represented.
Considerable efforts have been undertaken to construct environments supporting dynamic software processes. The road to success neither takes us into the runtime stack of the process engine (rule-based approaches), nor may we tolerate the straight-jacket of a static Petri net. We propose an environment centered around dynamic task nets, which provide project managers with all details required to plan, analyse, and monitor software projects, taking into account changes to the product structure, feedbacks, simultaneous engineering, and replanning of resource assignments. Developers benefit from the management of dynamic work contents, including control over incoming versions of input documents and intermediate releases of output documents. The environment is based on a formal specification as a graph rewriting system, which allows for describing editing, analysis, and enactment of task nets in a uniform formal framework. By generating code from the specification, we avoid the cumbersome and error-prone task of translating complex graph transformations manually into a low-level programming language.
Managing the software development and maintenance process has been identified as a great challenge for several years. Software processes are highly dynamic and can only rarely be planned completely in advance. Dynamic task nets take this into account. They are built and modified incrementally as a software process is executed. Dynamic task nets have been designed to solve important problems of process dynamics, deciding product-dependent structure evolution, feedback, and concurrent engineering. In order to describe editing and enactment (and their interaction) in a uniform way, task nets are formally defined by means of a programmed graph rewriting system.