The term "software visualisation" refers to the graphical display of characteristics and behaviour of all aspects of software: design and analysis methods, systems, programs and algorithms. The purpose of this book is to collect and compare different experiences of software visualisation both from fundamental and applied viewpoints.The book is divided into four parts, covering important aspects of software visualisation. Part 1 covers a survey on existing software visualisation tools and environments, the strategies for making a software visualisation system language independent, and program animation for C language. Part 2 presents topics and techniques on graph drawing, which supports efficient and aesthetically pleasing visualisation. Some recently developed graph drawing systems and techniques used are described. Part 3 discusses visual programming concepts and techniques for supporting parallel and heterogeneous distributed programming. Part 4 includes several case studies of software visualisation, concentrating on the broader field of software engineering ranging from software metrics to reverse engineering.