Introduction au Génie Logiciel pour applications Orientées Objet

Catalogue des cours de Télécom SudParis

Code

IGFF CSC 4102

Niveau

M1

Graduate

Graduate

Semestre

Spring

Domaine

Informatique

Programme

Programme Ingénieur

Langue

Français/French

Crédits ECTS

3

Heures programmées

30

Charge de travail

60

Coordonnateur(s)

Département

  • Informatique

Equipe pédagogique

Organisation

Cours/TD/TP/projet/examen : 8/22

Acquis d'apprentissage

À l'issue de ce module les étudiantes et les étudiants seront capables de :
- maîtriser le développement d’applications orientées objet (spécification, préparation des tests de validation, conception préliminaire, conception détaillée, préparation des tests unitaires, programmation de l’application et des tests, et exécution des tests),
- savoir appréhender la qualité logicielle par les tests et la qualité du code,
- savoir organiser le développement logiciel de manière agile,
- maîtriser les outils représentatifs des principales activités du processus de développement.

Compétences CDIO

  • 1.2 - Connaissance des principes fondamentaux d'ingénierie
  • 1.3 - Connaissances avancées en ingénierie : méthodes et outils
  • 2.1.2 - Modélisation
  • 4.4.1 - Processus de conception
  • 4.5.3 - Processus de réalisation logicielle
  • 4.5.5 - Test, vérification, validation et certification

Prérequis

Connaissances de base de la modélisation orientée objet illustrée avec le diagramme de classes UML, - Connaissances de base de la programmation orientée objet illustrée avec Java, et plus particulièrement, concepts de classe, d'objet et d'héritage, - Connaissances de base des activités de développement d’une application logicielle, - Maîtrise d'un langage de programmation procédural.

Mots-clés

Développement d’applications orientées objet, patron de conception, patron de programmation (idiome), qualité logicielle, tests et analyse de code, méthode agile, outils pour le développement logiciel

Contenu

Approfondissement des concepts de la modélisation et de la programmation orientées objet illustrées avec UML (modélisations statique et dynamique) et JAVA (polymorphisme, liaison tardive, classe abstraite, interface, type paramétré, collections, expressions lambda, « Streams », « Optional ») :
- introduction au génie logiciel : approche systématique de développement logiciel (de la modélisation à la programmation et aux tests), patrons de conception et de programmation (idiomes), et qualité logicielle outillée (analyse statique de code, exécution automatisée des tests),
- méthode agile : mise à disposition dans une forge logicielle les artefacts tout au long d'un projet,
- utilisation tout au long du module, dans un projet en binôme, des outils et canevas logiciels suivants : gestion de versions (Git et GitLab), modélisation UML (p.ex. PlantUML), construction de projets Java (Maven), intégration continue (GitLab CI), tests automatisés (Junit), analyse statique de code (SpotBugs, CheckStyle).

Evaluation

La note de première session est calculée comme suit :
- évaluation de la modélisation du logiciel livré (M = 3 points),
- évaluation de la programmation du logiciel livré (P = 3 points),
- évaluation de la complétude (intégralité) du logiciel livré (I = 1 point),
- évaluation de la cohérence entre la spécification, la conception, et le code (C = 1 point),
- évaluation de l'investissement (agilité) dans le projet par la présence (A = 1 point),
- évaluation globale des connaissances par l'oral individuel de validation (O = 10 points).
Note 1è session = si (O ≥ 5) alors (M + P + C + I + A + O) sinon min(M + P + C + I + A + O , 9).
La note de 2è session fait suite à un examen sur table de 1h30 et est écrêtée à 13.
Note finale = max (Note de 1è session, min(Note de 2è session, 13))

Bibliographie

Polycopiés de cours

Approches pédagogiques

Pédagogie par projet