Abstract Engineers have used construction of models to investigate properties of designs, before implementations, for generations. This trend is gradually being transferred to the software engineering. Today UML is well established in the modelling of applications where the structure of data is the main concern, e.g. traditional office applications and applications for database access. During the process of creating and testing the models the designers gain insight which allow them to improve their designs and try different solutions before crucial design decisions are made. Coloured Petri Nets and the tools Design/CPN and CPN Tools offers a supplement to the mainly data driven models of UML, and we will show examples of models where Coloured Petri Nets are used to capture essential behavioural properties of systems. We address important issues of the modelling process, such as: finding the right level of abstraction, how to structure large models and what not to model. For the modelling to be successful it is equally important that we have rich formalisms, powerful computer tools, and skilled engineers. Only this combination will allow us to build the increasingly complex systems needed in the future.