InfoS7AA - Software Engineering

Software Engineering - Software Development

Responsable : Cedric Zanni, Maître de Conférences , cedric.zanni@univ-lorraine.fr

Durée du module : 21 heures

Crédits ECTS : 2

Objectif général :

Acquérir les bases techniques et théoriques nécessaires à une compréhension approfondie des méthodes de production de logiciels.

Programme et contenu

Ce cours introduit aux différents concepts clé du développement logiciel ainsi qu'aux principaux outils associés.

On abordera notamment la notion de design pattern en étudiant leurs utilisations dans la librairie standard Java et JavaFX. Nous étudierons également les grandes familles de méthode de développement logiciel (cycle de développement en V et méthode agiles) ainsi que les différents concepts et outils à disposition pour améliorer la qualité du code/logiciel produit (intégration continue, programmation défensive et par contrat, diagrammme de classe, de cas d'utilisation, de séquence, d'état transition).

Les différents concepts vus seront mis en pratique avec le langage Java ainsi que l'outil Git et la bibliothèque Junit.

La notion d'intégration continue sera abordée en lien avec le projet du cours d'Operating Systems et sera mis en oeuvre avec GitLab CI/CD.

Séances :

  1. Introduction et programmation objet
  2. Design pattern et librairie standard
  3. Test unitaire
  4. Méthode de développement
  5. Framework MVC, JavaFX / Projets en groupe
  6. Intégration Continue / Projets en groupe
  7. Projets en groupe

Pré-requis : Programmation

Niveau à atteindre

  • maitriser les outils de base du développement logiciel (systèmes de gestion de version, tests unitaires)
  • comprendre les concepts utilisés par la librairie standard Java et savoir développer des structures de données similaires

Modalité d'évaluation

  • 1 Projet individuel et 1 Projet en groupe.


Notes de cours :

Il vous sera demandé de prendre des notes sur un outil de prise de notes collaboratif (ou pad). Tous les étudiants pourront participer mais certains seront officiellement en charge des notes.

Méta-outils : Etherpad (prise de notes collaboratives) de l'Université de Lorraine, Google docs, éventuellement Crocodoc (annotation collaborative).

Compléments de cours :

  • The Art of Lean Software Development, Curt Hibbs, Steve Jewett & Mike Sullivan, O’Reilly, 2009