Cookies Policy
The website need some cookies and similar means to function. If you permit us, we will use those means to collect data on your visits for aggregated statistics to improve our service. Find out More
Accept Reject
  • Menu


Software is increasingly present in our lives, covering diverse areas such as navigation systems, control systems, service support systems, teaching support systems, etc. In this context, software quality is a critical aspect that should be seriously considered. Software Engineering is concerned with ensuring that the software is built in a systematic, rigorous, measurable, timely, cost-effective and specification-driven manner.

The laboratory belongs to the Department of Informatics Engineering of FEUP. It is located in the I Building (122). The senior researchers that work in this lab are associated with INESC TEC's Centre for Information Systems and Computer Graphics  (CSIG) , in the area of Software Engineering. Some master and doctoral students and research grantees of FEUP, not associated with INESC TEC, also work in this lab.

Location: FEUP Campus, Porto

Our mission is:

  • to develop new methods, techniques and tools that promote the way software is designed, synthesized and evaluated;
  • to ensure that the results of our research have a lasting impact on software development practice;
  • to provide students with an education that prepares them to take a leading role in complex software development projects; and
  • to contribute to improving the competitiveness of the industry.
Research Areas

Research Areas

General areas:

  • Software Engineering

More specific areas:

  • Software testing
  • Software patterns
  • Software process improvement
  • Knowledge management in software engineering
  • Software requirements evolution
  • Serious games for software engineering education
  • Agile methods
Centres and Stakeholders


CentreHuman-Centered Computing and Information Science


UniversityFaculty of Engineering of the University of Porto



Intelligent Web system to support the management of a social network on music



Ambient Assisted Living for All



Creative Spaces for Creative Kids



Prototypes developed at Software Engineering Laboratory


Pattern Based GUI testing   The main goal of of this project is to improve current model-based GUI testing methods and tools, contributing to construct an effectively applicable testing approach in industry and to contribute to the construction of higher quality GUIs and software systems. One of the problems to overcome when implementing a model-based GUI testing approach is the time required to construct the model and the test case explosion problem. Choosing the right abstraction level of the model, extracting part of that model by a reverse engineering process and focusing the test cases to cover common recurrent behaviour seems to be a way to solve the problems.


A Recommender System for Requirements Maintenance

UML Checker

Conformance Testing against UML Sequence Diagrams   Our novel toolset supports the automatic testing of Java implementations against behavior specifications constituted by test-ready UML sequence diagrams.


Automated Software Process Performance Analysis and Improvement Recommendation    ProcessPAIR is a novel tool for automated model-based analysis of performance data produced in the context of high-maturity software processes, such as the Personal Software Process (PSP)/Team Software Process (TSP).


Automatic Unit Test Generation for Generic Types   The GenT tool, developed in the context of QUEST project, generates JUnit tests and assotiated mock classes for testing implementations of abstract data types in Java with generics, based on algebraic specifications in ConGu. Implementations of the type parameters of the generic classes are synthetized automatically by the tool as mock classes. It relies on the Alloy model finding capabilites to find particular instances that exercise the axioms in the specification.