Software Maintenance and Evolution

LINGI2252  2020-2021  Louvain-la-Neuve

Software Maintenance and Evolution
La version que vous consultez n'est pas définitive. Cette fiche d’activité peut encore faire l'objet de modifications. La version finale sera disponible le 1er juin.
5.0 crédits
30.0 h + 15.0 h
1q

Enseignants
Mens Kim;
Langue
d'enseignement
Anglais
Thèmes abordés
  • Les "bonnes pratiques" de la programmation orienté-objet;
  • Les techniques de réutilisation, application frameworks;
  • Les métriques et mesures de logiciels;
  • La compréhension et rétro-ingénierie de logiciels;
  • La ré-ingénierie et la restructuration et réusinage de logiciels;
  • L'utilisation de certains outils qui supportent les taches mentionnées ci-dessus.
Acquis
d'apprentissage

Eu égard au référentiel AA du programme « Master ingénieur civil en informatique », ce cours contribue au développement, à l'acquisition et à l'évaluation des acquis d'apprentissage suivants :

  • INFO1.1 , INFO1.3
  • INFO2.5
  • INFO5.5

Eu égard au référentiel AA du programme « Master [120] en sciences informatiques », ce cours contribue au développement, à l'acquisition et à l'évaluation des acquis d'apprentissage suivants :

  • SINF1.M3
  • SINF2.5
  • SINF5.5

Les étudiants ayant suivi avec fruit ce cours seront capables de

  • Comprendre les difficultés de développement de code dans un contexte de changement, par opposition au développement à partir de rien
  • Évaluer l'impact d'une demande de modification d'un produit existant de taille moyenne.
  • Décrire les techniques, les idiomatiques de codage et d'autres mécanismes de mise en 'uvre des conceptions qui sont plus maintenables.
  • Comprendre comment les modèles de conception peuvent améliorer la conception d'un système de logiciel.
  • Refactoriser une implémentation logicielle existante pour améliorer certains aspects de sa conception.
  • Identifier les principaux problèmes liés à l'évolution d'un logiciel et expliquer leur impact sur le cycle de vie du logiciel.
  • Discuter des avantages et inconvénients des différents types de réutilisation de logiciels.

La contribution de cette UE au développement et à la maîtrise des compétences et acquis du (des) programme(s) est accessible à la fin de cette fiche, dans la partie « Programmes/formations proposant cette unité d’enseignement (UE) ».

Contenu
Le cours sera organisé en 3 modules différents qui répondent à une variété de techniques, outils et méthodologies pour aider la construction de systèmes logiciels qui sont plus faciles à comprendre, à maintenir, réutiliser et d'évoluer:
1. La compréhension d'un logiciel: comment comprendre les systèmes existants
2. La maintenance d"un logiciel: comment construire un logiciel qui est plus maintenable, ou comment améliorer le logiciel existant pour le rendre plus maintenable
3. La réutilisation d'un logiciel et son évolution: comment construire des logiciels réutilisables et comment réutiliser les logiciels existants
Autres infos

Même si un logiciel de bonne qualité peut être plus facile à maintenir et à faire évoluer, les techniques d'assurance de la qualité des logiciels ne seront pas abordées explicitement dans ce cours car ils font l'objet d'un cours distinct sur l'assurance qualité du logiciel [LINGI2251]

Préalables:

  • Avoir une bonne connaissance et expérience avec les concepts de la programmation orientée objet, les algorithmes et les structures de données.
  • Avoir une expérience préalable ou simultanée avec le développement d'un logiciel de taill moyenne à grande.
Bibliographie
Les références
Compte tenu de la variété des sujets abordés, ce cours ne suivra pas un seul manuel, mais sera basé sur du matériel provenant de nombreuses sources différentes. Les slides de cours seront le matériel de référence principale pour ce cours et des pointeurs vers des lectures supplémentaires seront fournis par la plate-forme de cours en ligne.
 
Supports
Les slides de cours ainsi que d'autres informations pertinentes et pratiques relatives au cours seront accessibles sur Moodle. La même plate-forme sera également le moyen de communication entre l'enseignant (s) et les étudiants.
Faculté ou entité
en charge


Programmes / formations proposant cette unité d'enseignement (UE)

Intitulé du programme
Sigle
Crédits
Prérequis
Acquis
d'apprentissage
Master [120] : ingénieur civil en informatique
5
-

Master [120] en sciences informatiques
5
-