Visual Software Engineering

Graphical notations, such as data flow diagrams and class diagrams, are widely used in software design and development. While being easy to understand and convenient to use, these graphical notations are not amendable to automated verification and transformation. This article provides an overview on visual assistance in software engineering, and it focuses on a graph grammar approach to visual software modeling, architectural design, and evolution. A graph grammar enables a high-level abstraction of the general organization of a class of software architectures, and it forms a basis for formal analysis and transformations. In this approach, software verification is performed through a syntax analyzer. Architectural evolution is achieved by applying predefined transformation rules. Keywords: software engineering; visual languages; graph grammars