MSE Master of Science in Engineering

The Swiss engineering master's degree


Chaque module vaut 3 ECTS. Vous sélectionnez 10 modules/30 ECTS parmi les catégories suivantes:

  • 12-15 crédits ECTS en Modules technico-scientifiques (TSM)
    Les modules TSM vous transmettent une compétence technique spécifique à votre orientation et complètent les modules de spécialisation décentralisés.
  • 9-12 crédits ECTS en Bases théoriques élargies (FTP)
    Les modules FTP traitent de bases théoriques telles que les mathématiques élevées, la physique, la théorie de l’information, la chimie, etc., vous permettant d’étendre votre profondeur scientifique abstraite et de contribuer à créer le lien important entre l’abstraction et l’application dans le domaine de l’innovation.
  • 6-9 crédits ECTS en Modules contextuels (CM)
    Les modules CM vous transmettent des compétences supplémentaires dans des domaines tels que la gestion des technologies, la gestion d’entreprise, la communication, la gestion de projets, le droit des brevets et des contrats, etc.

Le descriptif de module (download pdf) contient le détail des langues pour chaque module selon les catégories suivantes:

  • leçons
  • documentation
  • examen 
Software Engineering and Architectures (TSM_SoftwEng)

The module provides an in-depth view of selected topics of modern software engineering. These stem from the fields: modern software development processes, software architecture, and the principles of evolution of software systems.

Compétences préalables

  • Object-oriented programming and design in more than one programming language
  • Unified Modeling Language (UML)
  • Design Patterns: Elements of Reusable Object-Oriented Software (Gamma, Helm, Johnson, Vlissides; ISBN 0-201-63361-2)
  • Version and configuration management concepts
  • Unit testing concepts and practice

Objectifs d'apprentissage

  • The student applies and understands benefits and liabilities of agile and lean development
  • The student knows about advanced architectural and design patterns and uses them to drive and reflect on design decisions
  • The student has the awareness of software as a continuously evolving and complex system
  • The student knows and can select maintenance and evolution techniques for continuous development of evolving and extension of legacy software systems while maintaining its quality

Contenu des modules

Software Architectures (20%)

  • Role of Software Architecture and Software Architects
    • reference models, reference architectures
    • architectural structures and views
    • software architecture documentation
  • Advanced Design Concepts
    • Design by contract
    • The SOLID principles
  • Architecture Styles
  • Architecture Patterns (vs design patterns)
  • Research in Software Architecture

Modern Software Engineering (50%)

  • Agile Principles and Practices
    • effective communication among stakeholders
    • project retrospectives, feedback techniques
    • ongoing requirements, solicitation and management
  • Agile Methodologies 
  • Automation in Agile Software Release Management 
    • Testing approaches and types
    • Agile testing quadrants
    • CI/CD Continuous Integration and Continuous Deployment (with Docker)
    • Automated testing and CI/CD Practices for Embedded Systems and Web Applications

Software Evolution (30%)

  • Principles of Software Evolution
    • development, maintenance, evolution
    • software aging
    • Program comprehension
  • Software Quality & Analysis
    • software quality metrics
    • software visualization
    • continuous quality control
  • Evolution of Legacy Code
    • “Re”-Techniques: Reverse Engineering, Re-Engineering, Re-Factoring
    • object-oriented re-engineering
    • Testing legacy systems
  • Research in Software Evolution

Méthodes d'enseignement et d'apprentissage

Self-study, homework assignments. 

Part of the module is in flipped classroom format. Part of the labs and assignments use a provided kit based on Raspberry Pi Pico-W (RP2040) with VS Code and provided software (C).

Bibliographie

  1. Mary & Tom Poppendiek: Lean Software Development
  2. Kent Beck: eXtreme Programming Explained 2nd Ed.
  3. Ken Schwaber et al, Agile Software Development with Scrum, Prentice Hall, 2002
  4. Alistair Cockburn: Agile Software Development
  5. Robert C. Martin: Agile Software Development
  6. Tom Mens: Software Evolution
  7. Doug Schmidt et.al.: Pattern-oriented Software Architecture, Vol. 2
    Frank Buschmann et al: Pattern-oriented Software Architecture, Vol. 4
  8. Len Bass, Paul Clements, Rick Kazman: Software Architecture in Practice 2nd Ed.
  9. Gernot Starke: Effektive Software Architekturen 2. Auflage
  10. Lehmann "Laws of Software Evolution Revisited"
  11. Martin Fowler et al, Refactoring
    Joshua Kerievsky, Refactoring to Patterns
  12. Michael Feathers, Working Effectively with Legacy Code
  13. Andreas Zeller: Why Programs Fail ISBN 1558608664

Télécharger le descriptif complet

Retour