Software Modeling Laboratory
The Software Modeling Lab focuses on the definition and investigation of models, modeling and specification languages, and related formal methods for automated reasoning and analyses, in order to provide software engineers with useful abstractions and powerful tools that address major challenges in the design, construction, execution, and evolution of complex software systems. Most of our work combines algorithmic and theoretical contributions with prototype tool implementations and evaluations.
We have recently worked on synthesis of structure and behavior (generating correct-by-construction software from its specification, see the SYNTECH project and the Spectra specification language and synthesis environment), differencing (semantic comparison between models), testing (comprehension and evolution of combinatorial test designs), and log analysis (inferring models from execution logs).
The lab is supervised by Dr. Shahar Maoz.