SAE

Ingénierie des applications logicielles

Description : L’architecture applicative d’un système définit ses composants logiciels et les flux qu’ils échangent, ainsi que leur implantation sur l’architecture matérielle. Elle se trouve naturellement à la croisée des métiers de développement et d’exploitation. Ce cours dresse une typologie des principales architectures applicatives et présente les concepts du “devops”, ensemble de pratiques facilitant l’automatisation de la livraison de logiciels. Quelques concepts seront mis en œuvre sur une architecture illustrative qui servira de fil rouge au cours.

Contenu : Introduction au devops (cycle de vie du logiciel, agilité, CI CD pipeline, build, versioning, tests, conteneurs, infrastructure as code) : principes et aperçu de quelques outils. Typologie des architectures applicatives et technologies associées, middleware (accent sur un MOM)

Prérequis : Avant ce cours les élèves doivent réviser leur cours de SIP de 1A. Ils doivent en outre être à l’aise en Java (des ressources préparatoires sont fournies), avec Git et Linux.

Acquis d’apprentissage : A l’issue de ce cours, les élèves seront capables de choisir l’architecture applicative la plus adaptée à leur projet et sauront mettre en œuvre une solution logicielle à base de file d’attente de messages. Ils pourront s’intégrer rapidement dans une chaîne de développement et de déploiement d’application et seront familiarisés avec l’utilisation de quelques outils.

Méthodes pédagogiques : Les concepts généraux seront présentés en cours. Des tutoriels pratiques et guidés permettront ensuite aux étudiants de se familiariser avec les approches et outils associés. Enfin ils mettront en application leurs nouvelles connaissances et compétences sur un projet fil rouge s’enrichissant au fil des séances et qui constituera un exemple pour le projet d’évaluation réalisé en autonomie.

Moyens : Les parties pratiques du cours utilisent des logiciels libres qui pourront être installés directement sur les ordinateurs personnels des étudiants. Un conteneur « clef-en-main » est également fourni. Les étudiants bénéficient des clusters du campus pour certains déploiements.

Modalités d’évaluation : L’acquisition des connaissances et compétences visées par ce cours sera évaluée sur la base de quelques tests écrits individuels au cours des séances de TP et d’un projet

Compétences évaluées :

  • Être opérationnel, responsable et innovant dans le monde numérique

Responsable de cours : Virginie Galtier

Identifiant Geode : 3MD1510


CM :

  1. introduction, software application architecture (1.5 h)
  2. application integration (1.5 h)
  3. devops (1.5 h)
  4. software quality (1.5 h)

TD :

  1. Kafka, a distributed streaming platform (1.5 h)
  2. Kafka, a distributed streaming platform (1.5 h)
  3. Docker, a containerization solution (1.5 h)
  4. Kubernetes, an orchestration system (1.5 h)
  5. GitLab CI/CD, unit tests and SonarKube (1.5 h)

TP :

  1. Wikipedia project with only Kafka (3.0 h)
  2. Deploy on the cluster (3.0 h)
  3. CI/CD of the Wikipedia project on GitLab (3.0 h)