Software and data engineering

The Software and Data Engineering (SDE) research area has strong competences in:
  • software engineering
  • development methodologies
  • advanced software architectures
  • data management systems.

Software engineering

SDE has expertise on theoretical and practical aspects of software engineering and development, in particular object-oriented languages, architectures and design patterns, also emphasizing some practical elements related to agile methodologies, like refactoring, unit testing, automatic build, continuous integration and continuous deployment. We apply modern software engineering and development methodologies in complex projects, using the necessary toolchain to manage them.

Advanced software architectures

SDE has also competences in parallel, distributed and cloud computing that span from system configuration, to application development and optimization. The competences include but are not limited to:

  • Development and optimization of parallel processing applications for multi-core processors and accelerators (GPUs and MICs) in embedded computers, workstations and servers.
  • Design and implementation of software architectures for distributed processing,    including architectures for service-oriented systems, blockchain, Big Data processing and high-performance computing.
  • Configuration of cloud computing software systems.
  • Development of cloud based infrastructures, services and applications.

Data engineering

SDE has strong competencies on designing, setting up and operating data infrastructures, from embedded systems to Big Data. Relational and NoSQL databases, relational and object-oriented model, ORM, Hadoop/MapReduce ecosystem, Big Data analytics, machine learning, and streaming processing are among its most important strengths.

Further information

Patrick Ceppi, Lecturer and Researcher