The paper describes a CAD system for the analysis and restructuring of complex concurrent systems. The design process can be divided into two stages: top-down analysis and bottom-up restructuring. At the top-down stage, a complex system is represented by a hierarchy of subsystems written in the language SDL. Each subsystem is the integration of data and control flow, and can be treated independently for the purpose of design, optimisation, etc. Then, at the bottom-up stage, they are locally or globally restructured to obtain a new construction exhibiting maximal parallelism. Taking full advantage of logic progamming, the system has been implemented entirely in Prolog.