IST Syllabus L2 Programme UE Génie logiciel

Semestre 4

UE Génie logiciel

21h CM – 27h TD

Prérequis de L1
Modules Mathématiques : Algèbre linéaire 1, Analyse 1, Algèbre linéaire 2, Analyse 2
Modules Informatique : Informatique 1, Informatique 2

Prérequis pédagogiques de L1
Connaître au moins un langage de programmation procédural (python, C, ...) ou objet (Java, C#, ..)
Posséder des notions de base d’algorithmique.

 

Prérequis pédagogiques de L2
Programmation orientée objet (Java) avec les notions d’encapsulation, héritage, polymorphisme. Modélisation simple avec diagramme de classe UML, utilisation d’un IDE comme Eclipse.

Compétences visées

Disciplinaires
Analyse du sujet et élaboration du cahier des charges d’un logiciel.
Conception globale et détaillée du logiciel en architecture 2-tiers : noyau (moteur) et IHM.
Implémentation progressive et incrémentale de la conception en programmation orientée objet avec la qualité du programme (convention de codage, structuration du programme et design patterns).
Garantir la testabilité du logiciel avec des tests unitaires automatisés et tests d’intégration.
Instrumentation logicielle et système de journal.

Transversales (« Soft-skills »)
Travailler sur un projet complexe en équipe (trinôme), communication et synchronisation de travail.
Structurer et rédiger collectivement le rapport du projet en utilisant l'outil de rédaction de documents scientifiques et techniques.
Présenter synthétiquement la conception et le résultat du projet avec des diapositives et faire une démonstration du fonctionnement du logiciel



Contenu du cours

· Conception logicielle : de l’algorithme (mathématique), via la conception à la programmation.
· Techniques de Java Graphics, Java Threading. Réalisation des animations avec simulation logicielle.
· Conception des classes de données, structuration des classes avec design patterns Singleton, Simple Factory, Builder et Template Method.
· Conception des classes de traitement, séparation entre l’IHM graphique et le noyau (moteur). Architecture logicielle en 2-tiers (couches)
· Conception de l’IHM graphique avec la gestion d’échelle. Design patterns Visitor et Strategy.
· Testabilité du logiciel et tests automatisés avec le framework JUnit.
· Instrumentation du logiciel et conception de l’IHM graphique avancée, avec framework JFreechart.
· Système de journal hiérarchisé avec le framework Log4j.
· Réalisation du logiciel en multi-threading avec la concurrence d’accès. Conception et réalisation de l’IHM graphique avancée.
· Structuration et rédaction des documents logiciels avec LaTex.
· Présentation technique et générale du logiciel.