Une grande école d'ingénieurs au cœur des sciences
de l'information, de l'énergie et des systèmes
18h C / 6h TD / 18h EL / EO / 4 crédits ECTS
Nacera Bennacer (Gif), Yolaine Bourda (Gif), Pierre Chlique (Rennes), Bich Liên Doan (Gif), Michel Ianotto (Metz)
Le génie logiciel a pour objectif de produire des logiciels de qualité tout en maîtrisant leurs coûts, leurs délais de développement et leur complexité. Il s'appuie sur des outils et des méthodes qui rejoignent souvent l'ingénierie des systèmes en prenant en compte les contraintes des systèmes informatiques actuels : respect des exigences et des standards, ouverture, facilité de test et de maintenance, évolutivité. L'accent est mis sur la modélisation et le langage UML en relation avec les phases du processus de développement de logiciels menant de l'expression du besoin au produit final testé et documenté.
Problématique et qualité des produits logiciels
Développement de logiciels complexes : exemples et enseignements.
Produits logiciels et critères de qualité : facteurs de qualité internes et externes. Documentation.
Modèles de processus de développement
Activités de développement. Principaux modèles : le cycle en V, les modèles incrémentaux, les modèles évolutionnaires, l'approche RUP. Approche formelle : spécification et dérivation. Eléments de gestion de projet logiciel. Ateliers de développement logiciel.
Modélisation UML
Classification des approches fonctionnelles et objets. Rappel des principes de l'approche objet.
Les différents diagrammes d'UML : de cas d'utilisation, de séquences, de collaboration, d'états-transitions, d'activités, de classes, de composants, de déploiement. Le langage de spécification de contraintes OCL.
Cohérence des différents diagrammes et mise en relation avec les activités de développement. Génération de codes à partir des modèles. Introduction à la métamodélisation.
Réutilisation des modèles de conception
Niveaux de réutilisation : du composant logiciel à la spécification.
Notion de patrons de conception, classification et formalisation. Exemples de patrons : Observateur, Composite, Itérateur, ...
Test du logiciel
Tests fonctionnels et tests structurels. Choix de séquences de test. Couverture des graphes. Tests de non-régression.
Bibliographie :
Ian Sommerville, «Software Engineering 6th edition», Ed. Addison Wesley, 2000
G.Booch, J.Rumbaugh, I.Jacobson, «The Unified Modeling Language User Guide», Ed. Addison Wesley 1999
B.Meyer, «Conception et Programmation Orientée Objet», Ed. Eyrolles 2000