Using Graph Rewriting in the Transformation of Software Architectures program understanding In order to maintain and improve software, we need to have a firm understanding of the way the software components interact. In other words, we need to know the systemís structure or architecture. During software maintenance, it is common that we transform the software architecture in order to understand, analyze and possibly modify the software. For example, we may want to examine the architecture at different levels of abstraction or zoom-in on one portion of the system. In earlier work, we identified architectural transformations that commonly occur, and showed that these can be viewed as graph transformations. In this paper, we use graph rewriting to model and specify these transformations so that we can work towards automating them. Specifically, we use the PROGRES language to formulate executable graph-rewriting specifications for various architectural transformations such as lifting, diagnostic, and repair transformations in order to demonstrate the potential use of graph rewriting in modeling, specifying, and automating architectural transformations.