Analyse et conception de logiciels

Le génie logiciel s’intéresse aux méthodologies permettant le développement de logiciels de grande taille qui correspondent aux besoins des leurs utilisateurs, sont fiables et évolutifs.

Après un rappel des concepts fondamentaux du paradigme orienté objet et une présentation d’un ensemble de bonnes pratiques pour la programmation objet (classes et interfaces, création d’objets, méthodes usuelles, etc.), le cours introduit les notions de base liées au processus de développement logiciel – modèles du processus de développement logiciel, les activités du processus de développement logiciel – et les méthodes agiles. On abordera ensuite l’utilisation des diagrammes (UML) dans le processus de développement ainsi que les différentes techniques et outils de gestion de versions et d’automatisation de construction de logiciels. La validation et vérification des logiciels seront abordées au travers de méthodologies et techniques de test avec, en particulier, les tests unitaires et les bouchons.

Un projet mettant en œuvre les techniques et outils présentés dans ce cours sera réalisé en utilisant un processus de développement agile.

Prérequis

Connaissances dans un langage de programmation langage orienté objet, de préférence Java.

Acquis d’apprentissage

  • Principaux modèles de développement logiciel et leurs activités.
  • Techniques et langages (UML) de modélisation orientés objet.
  • Bonnes pratiques de programmation orientée objet.
  • Principes et outils de gestion de versions et d’automatisation de construction.
  • Techniques de test unitaire.

Compétences visées

  • Choisir les processus et techniques de développement les mieux adaptés pour réaliser les fonctionnalités d’une application donnée.
  • Analyser, concevoir, implémenter et valider une application.
  • Concevoir des systèmes logiciels complexes et interactifs.
  • Développer la logique métier et les interfaces utilisateurs des applications informatiques.