syllabus

Software Process and Project Management (EMSE – SPPM)

Building the capacity and ability to define, manage and improve software process and project are the main focus of this topic. The course includes techniques and methods for managing the process of development and coordinating project artefacts in all its stages. The students will also be introduced to techniques of decision-making for software processes.

Requirements and Design of Software Systems (EMSE – RESD)

Students will acquire skills and competencies resulting from the conception, negotiation, documentation and maintenance of software requirements in a specific domain and environment. Requirements analysis aims at reviewing, assessing, prioritizing, and balancing the software requirements by developing technical specifications for building a system that will meet the needs of the stakeholders. Design of software systems aims at identifying or building software components that define the characteristics and quality of a system. The students are exposed to problem-solving techniques that allow the synthesis of software solutions satisfying the requirements of the system.

Verification and Validation (EMSE -VV)

The topic defines the principles and practices of verification and validation of software systems. Verification methods aims at checking that the elements of the system meet prescribed software specification. In other words, the system must be built right. The verification process also aims to define and apply any procedures and actions to restore compliance with the requirements. The validation aims at assessing whether the implemented system meets the requirements / needs of stakeholders. In other words, the system must be the right one.

Empirical Software Engineering Research (EMSE – ESER)

This topic defines the paradigms, methods, and programming techniques of scientific investigation in software engineering. Students learn how to conduct experiments, surveys and studies in real environments as well as how to mine, measure, and analyse data and software artefacts with the use and development of programming techniques.