The Master program in Software Engineering provides advanced knowledge and methodological competences over a broad range of fields and techniques between Software Engineering and Computer Science. The Master program focuses on competences for effectively managing people, projects and processes, and for architecting, designing and built large-scale software systems with strict quality attributes.
MSE follows international curriculum recommendations of the Association for Computer Machinery (ACM) and the Institute for Electrical and Electronic Engineers (IEEE), adapting these to national needs, the mobility in the European space, and the recommendations gathered from a wide panel of recruiters (in particular EDP, PT, Deloitte, PT-SAPO, ISA, Tapestry, Critical Software, WiT Software).
It is expected that, upon completion of the Master in Software Engineering (MSE) students will have the following knowledge:
- Requirements engineering, touching different techniques for gathering, analyzing and specifying functional requirements and quality attributes.
- Software architectures for large-scale systems, with particular emphasis on satisfying demanding quality attributes and on the analysis and evaluation on alternative solutions.
- Systems integration, protocols, services composition and software development based on the integration of COTS components.
- Dependable software and quality assurance, with a strong focus on software verification and validation activities and processes.
- Development of Internet application, including topics like interface optimization,
middleware technologies, communications protocols and cyber security.
It is expected that, upon completion of the Master in Software Engineering (MSE) students will have the following skills and competences:
- Analyzing and modelling software requirements.
- Define and understand software architectures from the quality attributes perspective.
- Design and implement dependable and secure software.
- Applying quality assurance best practices.
- Design and implement software development processes.
- Define strategies for software integration.