Software Analysis and Transformation

Description:

SWAT studies software systems: their design, their construction and their inevitable evolution. Our mission is to learn to understand software systems and to improve their quality. We focus on complexity as the primary quality attribute of software systems. Software complexity is an important subject, which is not only due to the ubiquity of software systems and failing ICT projects in society. We study the causes of software complexity and how complex systems can be made simpler.

With software analysis we propose and evaluate methods for observing software both quantitatively and qualitatively. We automatically extract models of software systems, which can then be simulated, measured, checked and visualized. On the one hand such analyses may provide insight into specific software systems, which is valuable in itself. On the other hand, by collecting information about sets of software systems, we may also use software analysis to come to general insights. We work on a variety of increasingly rich models of software systems that would allow increasingly meaningful analyses to be performed.

Software/Data visualization:

Software visualization is an important aspect of software analysis. We study the use of data visualization techniques in this domain. Our goal is to obtain a better understanding of the methodologies and formalisms involved in building and engineering interactive visualization systems. The scope of this research is wider than software visualization per se.

Software Transformation:With software transformation we propose and evaluate automated methods of construction and maintenance of software systems. Using large-scale automated software renovation we improve software quality by transforming existing systems to better systems. Software transformation and analysis go hand in hand. Automated software analysis is used for checking preconditions of automated software transformations such as refactoring.

Software Generation:

With software generation the goal is to simplify software by automation and abstraction. Using the construction of domain-specific languages we improve quality of newly designed systems by carefully constructing automated but reconfigurable transformations from high-level domain concepts to high quality source code. The questions are which domain specific languages should be defined, and how to implement them effectively.

Applied Logic:

We study epistemic processes, such as voting systems and social protocols, using Epistemic Modal Logic. Another topic under this heading is Computational Linguistics, where we apply functional programming to model and implement language processing tools.

SWAT is heavily involved in the Master Software Engineering. This successful research master covers a big part of the SWEBOK. It is a collaboration between Universiteit van Amsterdam, Vrije Universiteit, CWI and Hogeschool van Amsterdam. Paul Klint is the director of the programme and Jan van Eijck, Tijs van der Storm and Jurgen Vinju are teachers.