Note du 29 juin 2020
Sans connaitre encore le temps que dureront les mesures de distances sociales liées à la pandémie de Covid-19, et quels que soient les changements qui ont dû être opérés dans l’évaluation de la session de juin 2020 par rapport à ce que prévoit la présente fiche descriptive, de nouvelles modalités d’évaluation des unités d’enseignement peuvent encore être adoptées par l’enseignant ; des précisions sur ces modalités ont été -ou seront-communiquées par les enseignant·es aux étudiant·es dans les plus brefs délais.
Sans connaitre encore le temps que dureront les mesures de distances sociales liées à la pandémie de Covid-19, et quels que soient les changements qui ont dû être opérés dans l’évaluation de la session de juin 2020 par rapport à ce que prévoit la présente fiche descriptive, de nouvelles modalités d’évaluation des unités d’enseignement peuvent encore être adoptées par l’enseignant ; des précisions sur ces modalités ont été -ou seront-communiquées par les enseignant·es aux étudiant·es dans les plus brefs délais.
5 crédits
30.0 h + 15.0 h
Q1
Enseignants
Mens Kim;
Langue
d'enseignement
d'enseignement
Anglais
Préalables
LINGI2255 (ou un cours équivalent ) https://uclouvain.be/cours-2019-LINGI2255
Thèmes abordés
-
Tandis que de nombreux cours de génie logiciel se focalisent sur la création de nouveaux systèmes logiciels à partir de zéro, dans la pratique industrielle les développeurs sont souvent confrontés à des systèmes existants qui doivent être maintenus, réutilisés ou développés. Cela nécessite des compétences spécifiques pour comprendre la meilleure manière pour construire des systèmes logiciels plus faciles à mettre en oeuvre, à comprendre et à maintenir, et pour concevoir des systèmes avec pour objectif la réutilisation et l’évolution.Ce cours étudiera donc une variété de techniques, d’outils et de méthodologies pour vous aider à concevoir des logiciels plus faciles à comprendre, à maintenir, à réutiliser et à faire évoluer:
- Développement de logiciels dans le contexte d'une base de code existante, par opposition au développement dans un "champ vert”
- La compréhension de logiciels
- La localisation de features
- L'analyse d'impact de changements
- La rétro-ingénierie de logiciels;
- La maintenance logicielle
- Les "bonnes pratiques" de la programmation
- Les conventions et normes de codage
- Les principes et heuristiques de conception
- Les modèles de conception ("design patterns”)
- La réingénierie et réusinage de logiciels (“refactoring”);
- Réutilisation et évolution du logiciel
- Les lois de l'évolution logicielle
- Techniques de réutilisation et conception pour la réutilisation
- Bibliothèques vs cadres ou frameworks d’application
- Lignes de produits logiciels, modélisation de domaine, et modélisation de features
- Développement de logiciels dans le contexte d'une base de code existante, par opposition au développement dans un "champ vert”
Acquis
d'apprentissage
d'apprentissage
A la fin de cette unité d’enseignement, l’étudiant est capable de : | |
1 |
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 :
|
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:
- La compréhension d'un logiciel: comment comprendre les systèmes existants
- 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
- La réutilisation d'un logiciel et son évolution: comment construire des logiciels réutilisables et comment réutiliser les logiciels existants
Méthodes d'enseignement
ORGANISATION DU COURS :
Cours magistraux couvrant les différents sujets du cours
Travaux pratiques pour appliquer les concepts de manière pratique
Cours magistraux couvrant les différents sujets du cours
Travaux pratiques pour appliquer les concepts de manière pratique
- développer et faire évoluer un système logiciel maintenable et réutilisable
Modes d'évaluation
des acquis des étudiants
des acquis des étudiants
ÉVALUATION DU COURS
- [10%] Participation obligatoire lors des travaux pratiques
- portant sur la révision des travaux d'autres groupes
- [40%] Missions intermédiaires entre sessions pratiques
- présentation et démonstration des produits livrables.
- 2 missions (10% + 20%) par semestre
- démo de la 3ème mission (10%) en fin de semestre
- [50%] pendant la session d'examen
- [25%] examen écrit
- [25%] présentation et discussion
- portant sur la troisiième mission + les leçons apprises pendant le cours
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:
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.
Ressources
en ligne
en ligne
Site du cours Moodle
Les transparents 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.
Les transparents 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.
Bibliographie
French
Compte tenu de la variété des sujets abordés, ce cours ne suivra pas un seul livre de référence, 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.
Given the variety of topics covered, this course will not follow a single textbook but is based on material from many different sources. As such, the course slides will be the main reference material for this course and pointers to additional reading material will be provided through the online course platform.
Faculté ou entité
en charge
en charge
INFO