This document provides an overview of software visualization. It discusses how visualization can facilitate understanding of software through the use of design, animation, interaction and graphics. It also discusses how people are visual beings and process information visually through iconic memory and short-term memory by recognizing visual patterns and attributes pre-attentively. Effective software visualization leverages how the human brain perceives and processes visual information.