Objectifs
* Sensibiliser l'étudiant aux problèmes rencontrés tout au long du cycle de vie de logiciels complexes et de taille importante (logiciels développés en multiples versions, par de multiples personnes et selon des délais impartis).
* Présenter un certain nombre de modèles, méthodes et outils en vue d'améliorer la fiabilité, l'évolutivité, la réutilisabilité, et la portabilité de tels logiciels.
Cahier des charges
* Cycle de vie d'un projet logiciel: aspects statiques (les produits) et dynamique (les procédés).
* Ingénierie des cahiers de charges: modélisation, spécification et analyse des exigences auxquelles doit répondre le logiciel.
* Conception d'architectures logicielles: hiérarchisation, modularisation; style architecturaux (p. ex. structuration par objets).
* Spécification d'un module vu comme unité de travail.
* Validation d'un logiciel: conception de jeux de test, intégration.
* Documentation des décisions prises au cours des différentes étapes du cycle de vie.
Résumé
* Introduction (génie logiciel: quoi ? pourquoi ? comment ?).
* Le cycle de vie d'un logiciel: étapes et produits; modèles de procédé (modèles en cascade, en V, exploratoire, incrémental, en spirale); facteurs de risque; qualités attendues; estimation des coûts et délais.
* La spécification dans le cycle de vie: motivation, types de spécification, fautes de spécification, problèmes liés à l'usage du langage naturel.
* Modélisation et spécification des besoins: techniques semi-formelles (diagrammes ERA, diagrammes de flux, diagrammes de transition d'état, techniques multi-vues telles qu'OMT); techniques formelles (Z, spécifications algébriques). Heuristiques de construction. Analyse d'éléments formalisés (contrôle de sémantique statique; inférences formelles).
* Conception architecturale: types de modules et de connecteurs; conception d'architectures logiques (hiérarchisation, modularisation -- encapsulation, couplage, cohésion; tactiques de décomposition); conception d'architectures physiques et styles architecturaux (canal&filtre, client-serveur, orienté-objet, orienté-évènement, etc.).
* Validation de logiciels: principes de validation, conception de jeux de tests unitaires ("boîte-noire", "boîte-blanche"), vérification de couverture, génération de jeux par évaluation symbolique, stratégies d'intégration.
Nombreux exemples pris dans des domaines variés (systèmes d'information, systèmes temps-réel, systèmes réactifs, interfaces-usager, outils logiciels, etc.).
Ancrage sur INGI 2601: Projet de génie logiciel.
Autres informations du cahier des charges
- Pré-requis:
* FSA2341: Mathématiques discrètes: bases logiques de l'informatique
* INGI2592: Structures de données
- Références
Ouvrage(s) recommandé(s)
* Syllabus du cours. C. Ghezzi, M. Jazayeri, D. Mandrioli, "Fundamentals of Software Engineering" , Prentice-Hall, 1991
* M.C. Gaudel et al., "Précis de génie logiciel" , Masson, 1996.
* V. Berzins, Luqi, "Software Engineering with Abstractions" , Addison-Wesley, 1991.
- Modalités d'organisation
* Cours donné durant les 7 premières semaines du quadrimestre, à raison de 4 heures par semaine.
* Tavaux pratiques fusionnés avec INGI 2601: Projet de génie logiciel.
* Examen écrit; il est fortement conseillé de passer l'examen en juin (réalisation complète du projet et/ou recul suffisant par rapport à la matière).
Le cours INGI2594 est mentionné dans les programmes suivants :
ECGE3DS/IG
|
Diplôme d'études spécialisées en économie et gestion (informatique de gestion - Master in Information Systems)
|
| |
Valeurs ECTS de l'activité
ECGE3DS/IG
|
Diplôme d'études spécialisées en économie et gestion (informatique de gestion - Master in Information Systems)
|
(4 ECTS)
| |
FSA3DS/IN
|
Diplôme d'études spécialisées en sciences appliquées (informatique)
|
(4 ECTS)
| |
INFO22
|
Deuxième année du programme conduisant au grade d'ingénieur civil informaticien
|
(4 ECTS)
| |
INFO23
|
Troisième année du programme conduisant au grade d'ingénieur civil informaticien
|
(4 ECTS)
| |
MAP23
|
Troisième année du programme conduisant au grade d'ingénieur civil en mathématiques appliquées
|
(4 ECTS)
| |
Valeur ECTS par défaut
|
(4 ECTS)
| |
|