A domain-specific visual language, Function Block Language (FBL), is used in Metso Automation for writing automation control programs. The same engineering environment is used for both forward and reverse engineering activities, providing convenient support for the maintenance and evolution of FBL programs. Various data and program analysis methods are applied to study the FBL programs stored in project library archives. Metadata stored about the program allows various kinds of queries and enables focusing the analysis to certain kinds of programs. The application of the provided analysis methods further aids the maintenance and reuse activities. Software and data reverse engineering techniques are traditionally used to support program and data comprehension, respectively. In this paper we show how corresponding techniques can be used to analyze visual programs. The visual language under study in this paper is FBL. FBL and the analysis techniques proposed have been used in real-world ...