See Education

Software Technology Master

If your interest encompasses development of high-end software, unrestricted by application domain, then this degree programme is for you. High-end reliable software development requires a thorough understanding of current technology, polished design, programming and validation skills, and a comprehensive working knowledge of the different phases of software engineering. Aside from these tough requirements, every domain of application has its own special features, languages and techniques.

The specialization in Software Technology offers a combination of courses that teach all of the aspects listed above. Our students graduate as experts in state-of-the-art technologies and software engineering phases. They also acquire specialist insight into their choice of application domains, including databases, wireless and embedded systems, security or cloud computing. In addition to an individual graduation project, students will also carry out an industrial team-based project focusing on a real-life problem. Throughout the programme, students will amass theoretical knowledge and learn practical skills that will make them assets as developers for a broad and diverse range of software products and uses.

Industrial Advisory Board

This Master's programme makes use of the expertise of an Industrial Advisory Board, comprised of representatives from foremost software-intensive high-tech companies, like Océ, Thales and Nedap. The board offers advice on the relevance of the curriculum, suggests improvements, submits interesting case studies and assignments, and organizes guest lectures. The current list of board members can be found here.

The right choice for you?

Software Technology is the right programme for you if your goal is to become any of the following:
researcher, who

  • is well equipped to carry out theoretical and experimental research in the realm of software engineering technologies, programming or design paradigms, or software engineering methods.
  • the reliability of software and systems.

software practitioner, who

  • has theoretical knowledge and practical skills in a broad range of software engineering phases, encompassing architecture, design, construction and validation techniques and tools.
  • is competent to address specific software engineering challenges in application areas, such as sensor networks, information systems and security.

tool builder, who

  • is proficient in the state-of-the-art software engineering techniques needed to create or contribute to fit-for- purpose, maintainable software tools.

Career opportunities

Software is nowadays found in all kinds of application areas, ranging from computer applications, web services and information systems to the automotive or consumer electronics sector. A Master's degree with the Software Technology specialization offers employment opportunities for software developers, consultants, or verification engineers in a software-intensive company, as well as for researchers at the university of industrial research centers or as a verification engineer. You might also indulge your entrepreneurial spirit and start a company of your own, bringing your own state-of-the-art software solutions to the market.

Enrolment and Programme Mentor

In order to enroll in this specialization, you should make a selection of the courses below amounting to 120 EC, and fill in the course programme form (older forms: 2020-2021, 2019-2020, 2018-20192017-2018).
This will be sent to the programme mentor, who will check it agains the regulations and, if correct, forward it to CES. You can always change your choice later, by repeating the same procedure. At the time you are ready to start your Final Project, the courses you actually followed should coincide with those you entered through the above form.

If you have any questions or want to discuss your choice, please contact the programme mentors:

Courses

The courses for the ST specialization are divided in categories to ensure education in a broad range of phases in the software engineering lifecycle, technologies, and application areas of software technology. To enrich the variety of courses in this specialization, we also include courses carried out by sister technical universities, Delft and Eindhoven. The authoritative list of courses in the different categories is specified in the current EER.

General (mandatory)

Course Code

Course Name

Q.

191612680

Computer Ethics

.2..

192199508

Research Topics

1234

192199978

Final Project

1234

Core (mandatory)

Course Code

Course Name

Q.

192135450

ADSA - Model Driven Engineering*

1...

192111332

Design of Software Architectures

1...

192140122

System Validation

1...

202001472

Software Testing and Risk Assessment (STAR)**

..3.

201700082

Programming Principles, Patterns and Processes

...4

* ADSA moved from Core to Mantle starting in academic year 2021. If you have completed ADSA as part of a course programme initially approved in academic year 2020 or earlier, you can keep using it for the Core requirements (please include a remark in the "explanation of the changes" field if you submit an updated Course Programme Form).
** STAR replaces Testing Techniques from academic year 2020 onwards. If you have completed Testing Techniques previously, you fulfil the STAR requirement; if you submit an updated Course Programme Form, select STAR and include a remark that you actually completed Testing Techniques, in the "explanation of the changes" field.

Mantle (choose 4)

Course Code

Course Name

Q.

192135450

ADSA - Model Driven Engineering

1...

192111332

Design of Software Architectures*

1...

192135310

Modeling and Analysis of Concurrent Systems

1...

201900082

Graph Algorithms and Complexity**

.2..

202100126

Interactive Theorem Proving (NEW!)

.2..

201600040

Requirements Engineering Processes and Methods***

.2..

201400225

Software Evolution

..3.

192652150

Service-oriented Architecture with Web services

..3.

192111092

Advanced Logic

...4

192340041

Software Management

...4

* Design of Software Architectures moved from Mantle to Core starting in academic year 2021. If you have completed Design of Software Architectures as part of a course programme initially approved in academic year 2020 or earlier, you can keep using it for the Mantle requirements (please include a remark in the "explanation of the changes" field if you submit an updated Course Programme Form).
** Graph Algorithms and Complexity was called Advanced Algorithms and Computational Complexity in academic years 2020 and earlier. If you want to revise a course programme initially approved in academic year 2020 and have completed Advanced Algorithms and Computational Complexity, please select Graph Algorithms and Complexity instead and add a corresponding remark in the "explanation of the changes" field.
*** Requirements Engineering Processes and Methods moved from Mantle to Electives starting in academic year 2021. If you have completed Requirements Engineering Processes and Methods as part of a course programme initially approved in academic year 2020 or earlier, you can keep using it for the Mantle requirements (please include a remark in the "explanation of the changes" field if you submit an updated Course Programme Form).

Orientation (choose 1)

The choice of orientation – either the Design or the Research Orientation – brings further requirements of 10 EC worth of courses.

Design Orientation

Course Code

Course Name

Q.

201400172

Industrial Software Engineering project (ISEP)*

12..

* ISEP is a 10 EC course that runs during a semester, i.e., 2 consecutive quarters. It should not be taken in the first semester of your study programme. ISEP cannot be combined (within the regular 120 EC) with 192199968 Internship, since there is too much overlap between the respective learning goals. 

Research Orientation

Course Code

Course Name

Q.

201400171

Capita Selecta Software Technology

1234

Plus at least one Software Science course from the following list*:

202100113

Probabilistic Model Checking

..3. (even academic years)

202100115

Program Verification

..3. (odd academic years)

202100114

Graph Transformations

...4 (even academic years)

202100116

Model Checking and Parity Games

...4 (odd academic years)

* The Software Science courses are usually given every two years as indicated, but the schedule may vary. In academic year 2021-2022 (an odd academic year), Program Verification (Q3) and Model Checking and Parity Games (Q4) will be given.

Until we fix the course programme form, please select 201700084 Software Science for your first Software Science course if you choose the Research Orientation. If you choose the Design Orientation or you want to complete more of these courses as electives, please list them in the "Profiling space: Other courses" field.

Electives (free choice)
Any of the courses above can also be chosen as electives. In particular, you can choose additional mantle courses as well as courses from the other orientation. The same goes for all other courses offered within the Master Computer Science (provided you satisfy the respective prior knowledge requirements). In addition, we want to explicitly suggest the following courses as ST electives:

Course Code

Course Name

Q.

201600070

Machine Learning I

1...

201600040

Requirements Engineering Processes and Methods

.2..

201600051

Software Security

.2..

201200006

Quantitative Evaluation of Embedded Systems

.2..

192620300

Performance Evaluation

.2..

201700081

Probabilistic Programming

..3.

201400174

Data Science

.23.

202100113-6

Software Science*

..34

* The individual Software Science courses are listed for the Research Orientation above.

Attainment levels

Apart from the general attainment levels for the CS Master, ST graduates will be able to demonstrate their specialist knowledge as follows.

  • ST graduates have a thorough knowledge and understanding of the different phases of the software lifecycle (ranging from requirements engineering over architectural and detailed design to construction and quality assurance) as a scientific and design discipline.
  • ST graduates have a thorough knowledge and understanding of, as well as practical experience with, the application of software engineering methods and tools in the development and validation of large-scale systems.
  • ST graduates know the trade-offs between alternative software engineering techniques and can make educated decisions throughout the software lifecycle.
  • ST graduates have knowledge and understanding of various aspects of Software Engineering including its mathematical background, software management, quality assurance, requirements engineering, architectural design, detailed design, software construction, verification, and programming languages.
  • ST graduates have specialist knowledge and understanding of one or more sub-fields or aspects of the software engineering discipline, e.g. Programming Languages, Software Composition, Service-Oriented Architectures, Model-Driven Engineering, Formal Methods.
  • ST graduates have practical experience conducting scientific research in the realm of software engineering methods and technologies, formal methods and/or programming or design paradigms, enabling them to contribute to such research, follow the trends and apply the results.