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 
Génie logiciel: méthodes de développement et architecture (TSM_SoftwEng)

Le module fournit une étude approfondie des sujets sélectionnés dans le domaine du génie logiciel. Ces sujets sont issus des domaines suivants: méthodes de spécification, méthodes de développement agiles, architecture logicielle, évolution du logiciel.

Compétences préalables

  • Conception et programmation orientées selon l’objet dans plus d’un langage de programmation
  • Unified Modeling (UML)
  • Design Patterns: Elements of Reusable Object-Oriented Software (Gamma, Helm, Johnson, Vlissides; ISBN 0-201-63361-2)
  • Notions de gestion des versions et des configurations
  • Notions de tests unitaires (par exemple junit ou nunit)
  • Connaissance de base de Scrum

Objectifs d'apprentissage

  • L’étudiant comprend et peut expliquer les avantages d'une méthodologie de développement itérative et incrémentale.
  • En fonction des caractéristiques d'un projet donné, l’étudiant est en mesure de sélectionner, d'adapter et d'appliquer la méthodologie de développement appropriée.
  • L'étudiant connaît des principes de conception et d'architecture avancés et peut les utiliser pour diriger la phase de conception d'un système.
  • L'étudiant est conscient qu'un logiciel est un système complexe en évolution constante.
  • L’étudiant sait comment améliorer, étendre et intégrer des logiciels existants, tout en maintenant leur qualité.

Catégorie de module

Génie Logiciel

  • Principes et valeurs des méthodes de développement agiles
    • Création de valeur
    • Gestion du risque
    • Culture d’équipe
    • Relations clients
  • Bonnes pratiques et techniques de gestion
    • Gestion de la communication entre parties prenantes
    • Revues de projets
    • Assurance qualité
    • Gestion des changements
    • Planification itérative et incrémentale
  • Méthodologies de développement modernes
    • Vue d’ensemble et comparaison de différentes approches
    • Unified Process (UP), eXtreme Programming (XP), Scrum
    • Implications sur la gestion de projet

Architecture logicielle

  • Le role de l'architecture est des architectes logiciels
    • notion d'architecture
    • modèles de référence, architectures de référence
    • structures et vues architecturales
    • architecture et documentation
    • les roles de l'architecte logiciel
  • Principes de conception avancés
    • interface-oriented design
    • couplage et cohésion
    • gestion des dépendances
    • les principes SOLID
    • conception par contrat
  • Modèles de conception et d'architecture
    • styles d'architectures
    • modèles pour architectures distribuées
  • Sélection, création et évaluation d'architectures logicielles
    • qualités systémiques
    • méthodes d'analyse

Evolution du logiciel

  • Principes d'évolution
    • Développement, maintenance, évolution
    • “Software aging”
    • Compréhension du code
  • Analyse et qualité du logiciel
    • métriques
    • techniques d'analyse et de visualisation
    • contrôle de qualité continu
  • Evolution de code hérité
    • Re-Technologies: Reverse Engineering, Re-Engineering, Re-Factoring
    • Re-engineering orienté objet
    • Travailler efficacement avec du code hérité
    • Tester des systèmes hérités

Méthodes d'enseignement et d'apprentissage

travail personnel, lectures et exercices

Bibliographie

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

Télécharger le descriptif complet

Retour