In this paper we describe how to use the COOPN/2 (Concurrent Object-Oriented Petri Net) formalism, by developing a case study on groupware or, more specifically, on a cooperative editor of hierarchical diagrams. First of all, we present COOPN/2 and describe how some aspects specific to object orientation, such as the notions of class/object, of object reference and of the distinction between inheritance and sub-typing, are taken into account within the formalism. Afterwards, we show how these notions may be used for the modeling and the design of an editor of hierarchical Petri nets and discuss some points related to the concurrency. Finally, we show how flexible our modeling architecture is by giving some insight into to the design of other kinds of cooperative diagram editors.

Keywords: groupware, object-orientation, distributed systems, formal methods, Petri nets, algebraic specification, software engineering.