Model-based software development has become a mainstream approach for efficiently producing designs, test suites and program code. In this context, model-to-model transformations have become first-class entities and their classification, formalization and implementation are the subject of ongoing research. This work surveys the characteristics and properties of graph rewriting systems and their application to formalize and implement transformations of language-based software models. A model's structure or behaviour can be abstracted into the definition of a given graph type. Its structural and behavioural changes can be represented by rule-based transformation of graphs.