Computational Logic plays a very relevant role in engineering complex systems. It can be used to specify systems at different levels of abstraction. The specifications are executable, thus providing a working prototype for free. Thanks to its well-founded semantics it can be used to rea- son about the correctness of the specifications, a fundamen- tal aspect when safety critical applications are developed. Researchers working in the Logic Programming Group at DISI, a Genova University Department, have applied meth- ods and tools of Computational Logic for modelling, proto- typing, and verifying complex systems. These three research lines are largely overlapping: the complex systems we take into account are often multiagent systems, for which we pro- pose modelling languages as well as prototyping environ- ments and verification techniques. In this paper we describe activities that, in the last decade, we carried out along these research lines.