Software and Systems Engineering

The vision of the Software and Systems Engineering (SSE) group is to develop disruptive research on different facets of software and systems engineering. The group core competences include dependability and security aspects, software development methodologies and languages, and big data processing.

Internationally recognized contributions of the group include: experimental dependability evaluation, using software fault injection as core enabling technology; dependability and security benchmarking in large databases and web based systems; component based software development issues, namely experimental risk assessment and component reutilization techniques; and software verification and validation. The group has also been highly involved in research on: development of concurrent programming models; management in heterogeneous parallel and distributed environments, with emphasis on performance and quality of service; dependable grids; autonomic computing; and automatic fault handling models. Partitioning techniques for data warehouse distribution in large clusters of simple machines and complex event processing (CEP) systems are two recent research topics.

Pursuing a research strategy to increase the impact of the group research at international level, the activities of the group are currently organized in four areas of interest, with a natural overlap among the research activities of each area:

  • Research on Trustworthy and Resilient Software and Systems is mainly concerned with investigating, experimenting and evaluating new methods, techniques and tools for the synergetic development and operation of trustworthy and resilient dynamic and complex software and systems. In practice, the group seeks to provide scientifically sound responses to the following key questions: how to support the development and deployment of resilient software and systems and their compositions? how to conduct continuous system verification and validation? how to support proactive system maintenance? how to predict failures in complex and dynamic software systems?

  • Research on Critical Services on the Cloud focus on providing critical services that must not stop or go off-line, accessing large volumes of very sensitive data available from all sorts of clients, including tablets and smart phones. To ensure 24x7 operation, we intend to develop mechanisms for replication of applications. We intend to develop communication algorithms to enable secure communication between applications. We also intend to work on self-healing secure cloud, through the provision of autonomic authorization, aiming to design and develop a framework for supporting the detection of cyberattacks and the automatic adaptation of the authorization infrastructure in order for the cloud operations to continue providing their services without disruption.
  • Research on Efficiency in Software Development aims to provide software developers with tools, techniques, processes or methodologies for improving the efficiency of software development in terms of cost, performance and quality. This includes creating new ways of increasing productivity through better software reuse; creating languages, tools and programming models for making concurrency simpler, safer and faster; developing new approaches for making Verification & Validation activities less demanding and intrusive in the software development process; and, in a more people-oriented topic, exploring new approaches for training software development teams.
  • Research on Reconfigurable Hardware for Resilient Systems concerns the investigation and evaluation of programmable hardware, namely field-programmable gate array (FPGA), to design resilient systems under the effects of external disturbances, hardware aging, and environmental or functional changes. The group seeks to provide answers to the following key questions: what are the relevant fault and failure models related with reconfigurable hardware? how to evaluate dependability of reconfigurable hardware systems? how to use FPGA partial dynamic reconfiguration for improving system resilience?

The group also comprises informal Special Interest Groups (SIGs), whose goal is to serve as discussion forums to foster discussions and internal collaboration. The focus of these SIGs is transversal to the four areas of interest. Currently we have the following active SIGs: SIGDep (Special Interest Group on Dependability) and SIGDW (Special Interest Group on Data Warehousing).

A close cooperation with the DEI/CISUC spin-off companies is also a key priority for the group, especially with spin-off companies that have been created by researchers or former researchers from the Group, such as Critical Software, Wit Software, Feedzai, and Dognaedis.