Department of Software Technology

The Department of Software Technology (ST) of the Faculty of Electrical Engineering, Mathematics, and Computer Science (EEMCS) of Delft University of Technology covers the design, engineering and analysis of complex, distributed and cooperative software and computer systems.

Together with the Department of Intelligent Systems (INSY), the department of Software Technology is responsible for all computer science research and education of the faculty.

Organization

The department employs over 25 faculty and 100 postdoctoral and PhD researchers.

The department is organized into three layers with their corresponding sections: systems layer - Distributed Systems and Embedded and Networked Systems, software layer - Programming Languages and Software Engineering and information layer - Algorithmics and Web Information Systems covering the main research themes of the department.

Sections

The department's management team consists of the heads of the sections, the director of the computer science education programs Hans Tonino, and the department coordinator Janneke Hermans. The management team is chaired by the Head of Department Arie van Deursen.

The management team meets bi-weekly to discuss organizational matters. The full faculty also meets bi-weekly in its faculty lunch, to share the newest research ideas and emerging results

Department's management team

Research

The research mission of the Department of Software Technology (ST) is to conduct world-class research in the design, engineering and analysis of complex, distributed and data-intensive software and computer systems. Society is on its way to be completely dependent on such systems, which include online payment systems, smart grids, smart cities, and self-driving cars. Designers of these systems face many fundamental and practical challenges including managing their complexity, reliability, scalability, predictability, evolution, adaptability, and explainability.

In its research area of software and computer systems, the ST department covers the following three layers; each layer has two defined research programmes with their own research focus.

Systems Layer

The systems layer, with the programmes Distributed Systems (the programming, effectiveness and efficiency of data centres and internet overlays) and Embedded and Networked Systems (micro- and networked controllers, with an emphasis on wireless systems).

Systems Layer

Distributed Systems - DS - Distributed Systems

Blockchain Technology
Big-data processing
Scheduling

ES - Embedded and Networked Systems

Internet of Things
Software-Defined Networking
Visual light communications
Intermittent computing

In the Distributed Systems programme, we aim at designing and understanding the operation of large-scale distributed systems.

Focus area

  • Blockchain Technology: How to design mechanisms for trust, reputations, privacy, and anti-censorship, and how to incorporate these mechanisms into trustworthy blockchain-based overlays?
  • Big-Data Processing: How to enable efficient analytics over large and complex data sets on modern and emerging data centre infrastructure, and how to design efficient runtime systems for distributed computation at scale?
  • Scheduling: How to design mechanisms and policies for schedulers in large-scale infrastructures that target modern and emerging hardware and compute data-intensive workloads

In the Embedded and Networked Systems programme, we are interested in improving the software development and maintenance process of embedded systems.

Focus area:

  • The Internet of Things (IoT): How to craft the sensor and actuators for innovative IoT platforms that should be collaborative in nature, yet consume minimal resources to reduce operation costs?
  • Software-Defined Networking: How to provide a robust, yet flexible network infrastructure accommodating the mobile systems and applications of the future?
  • Visual Light Communications: How to unlock the demonstrated capabilities of visual light at the link level, and create/integrate LED-based networking serving realistic indoor scenarios?
  • Intermittent Computing: How to architect autonomous battery-less systems that face frequent power loss due to the intermittent nature of ambient energy sources?

Software Layer

The software layer, with the programmes Programming Languages (the effectiveness and reliability of programming languages and their programming environments) and Software Engineering (software quality attributes and software developer productivity).

Software Layer

Programming Languages - PL - Programming Languages

Language Engineering
Program analysis
Semantics engineering
Language design

SE - Software Engineering

Search-based software engineering
Software analytics
Software engineering education and end user programming
Software testing

In the Programming Languages programme, we aim at improving the effectiveness and reliability of programming languages and systems.

Focus area:

  • Language Engineering: How can declarative language definitions be used to derive rich development environments for (domain-specific) programming languages?
  • Program Analysis: How to define program analyses at a high-level of abstraction and efficiently and incrementally execute these definitions?
  • Semantics Engineering: How to efficiently verify the consistency of language definitions in order to check properties such as type soundness and semantics preservation?
  • Language Design: How to systematically design (domain-specific) software languages with an optimal trade-off between expressivity, completeness, portability, coverage, and maintainability.

In the Software Engineering programme, we aim at making the engineering of software more effective.

Focus area:

  • Search-Based Software Engineering: How can search-based techniques be used to automate complex software development tasks?
  • Software Analytics: How can streams of data collected from versioning, issue tracking, and continuous integration repositories be used to understand and improve the software development process?
  • Software Engineering Education and End User Programming: How can non-developers be helped to become proficient in coding at a level suitable for their needs?
  • Software Testing: What are effective software testing methods and techniques?

Information Layer

The information layer, with the two programmes Web Information Systems (the processing, retrieving and interpreting of human-ge-nerated web data) and Algorithmics (support for intelligent decision making in real-world applications).

Information Layer

Web Information Systems - WIS - Web Information Systems

Web-based user modeling
Web data processing and retrieval
Human-enhanced web systems

ALG - Algorithmics

Model-based reinforcement learning
Multi-party optimzation
Constraint reasoning
Meta-heuristics

In the Web Information Systems programme, we aim at making web information system engineering more effective in processing, retrieving and interpreting human-generated web data.

Focus area:

  • Web-Based User Modeling: How can human-generated data that are retrieved and semantically enriched from the web, be used to enhance systems’ interpretation of people’s actions for user-adaptation?
  • Web Data Processing and Retrieval: How to efficiently process data at web-scale and design effective information retrieval mechanisms for domain-specific web tasks?
  • Human-Enhanced Web Systems: What are effective ways to augment web-based systems with automated, large-scale human computation and interaction?

In the Algorithmics programme, we aim to design, and understand the fundamental properties of, planning and coordination algorithms for intelligent decision-making in real world applications.

Focus area:

  • Model-Based Reinforcement Learning: How to deal with uncertainty in planning?
  • Multi-Party Optimization: How to account for strategic behaviour in multi-actor planning?
  • Constraint Reasoning: How to support individual and group scheduling decisions?
  • Meta-Heuristics: What are effective general heuristic methods to support decisions taking into account different preferences?

In its research, the ST department wants to contribute both to the foundations of software and computer systems, and to the understanding of the operation of such systems. Therefore, its research approach is both fundamental - designing algorithms and abstractions, developing new concepts and theories, and identifying principles, as well as experimental - engineering and analysing the behaviour of actual systems. It is this combination of design, engineering and analysis that characterises the research of the department.

Furthermore, the department is involved in various cross-faculty initiatives. The most important of these are:

The department's publications can be found on the TU Delft Institutional Repository as well as in our Departmental Publication Server.

In our research, we collaborate with academic and industrial partners around the world. We welcome new collaborations: Contact the researcher closest to your interest, or our department coordinator Janneke Hermans for more information.

Education

The department plays a key role in various educational programs, including the following:

Contact information

Visiting Address
Building 28

Room: 620 West 4rd floor
Van Mourik Broekmanweg 6
2628 XE Delft
The Netherlands

Mailing Address
EEMCS, Software Technology
P.O. Box 5031, 2600 GA Delft
The Netherlands

News from the Department

We frequently post updates of recent developments on our Medium @delftswtech Pages. You can also follow us and many of our group members via our Twitter handle @delftswtech.

The view of the Twitter-feed can be disabled by your browser or browser plug-in.