The Software Engineering (SE) unit aims at supporting the improvement of the quality of the software, by providing developers with innovative techniques, tools and methodologies that increase their effectiveness and efficiency in two key areas of software development:
The unit provides methods and techniques for the specification and management of the requirements of complex software systems, following a goal-oriented requirements analysis approach; modelling and measuring the risk of open source adoption; gathering user feedback to support requirements elicitation and evolution.
Code analysis and testing
The unit provides advanced testing techniques and tools based on search-based algorithms for automated test case generation; model inference and model driven test case derivation; test oracle assessment and improvement. The unit has also a solid experience in the migration of legacy systems and has developed tools for automated software protection.