One of the criticisms levelled at people who use logic to model systems is a lack of engineering method. That is, they are more concerned with the mathematical elegance of their solution than in understanding whether the process by which it was derived could be followed by others when tackling related problems. In this talk I summarise some of the methods which we have used. Most of these involve forms of reasoning which are non-standard in the sense that they rely only indirectly on deductive inference. The main methods considered are: