Evolution du logiciel — EVO (Campus UBS, Vannes)

Software evolution

Description

Une caractéristique intrinsèque d'un logiciel, représentant une activité du monde réel, est la nécessité qu'il a d'évoluer pour satisfaire de nouvelles exigences. La réactivité, toujours plus grande, exigée des applications informatiques, supports de processus métiers évoluant eux-mêmes de plus en plus vite, a même accru au fil des ans la portée de cette affirmation. La maintenance est, plus que jamais, une activité incontournable. Elle doit, à l'instar de l'activité de développement se doter de méthodes, de techniques et d'outils efficaces. Cette UE présente les concepts clés et les axes de recherche dans le domaine de la maintenance et l'évolution des systèmes logiciels (principalement ceux conçus à base de composants). Elle se termine par la description d'une réponse au problème de l'évolution dans le paradigme composant. L'architecture logicielle joue un rôle central dans l'approche de maintenance présentée.

Mots-clés

Evolution du logiciel, Refactoring, Tests de non-régression, Vulnérabilités, Métriques de cybersécurité, "Bad smells"

Pré-requis

Des connaissances en génie logiciel sont nécessaires.

Références biblio pour obtenir les pré-requis

Leach R. J. , Introduction to Software Engineering (2nd edition), CRC, 2016.

Modules allant naturellement avec ce cours

SES

Contenu

Partie 1 : Concepts de bases
- Introduction à l'évolution logicielle
- Types d'activités de maintenance
- Coûts de la maintenance logicielle
Partie 2 : Maîtrise de l'évolution du logiciel
- Processus de maintenance
- Métriques pour l'évolution logicielle
- Métriques orientées cybersécurité
- Analyse de vulnérabilité
- "Bad smells"
- Ré-ingénierie et refactorisation
- Revue des outils existant

Compétences acquises

Savoir :
- Connaissance des approches de maintenance et évolution de logiciels.
- Connaissances des vulnérabilités logicielles.
- Connaissance des métriques d’estimation d’impact et d’efforts.
- Connaissance des techniques de refactoring.
- Connaissance des tests de non-régression.
- Connaissance des techniques de compréhension de programme.
- Connaissance du paradigme composant et particularités de la maintenance des applications conçues à l’aide de composants.
Savoir-faire :
- Aptitude à comprendre et estimer l’apport des différentes techniques pour faciliter la maintenance des applications, en particulier pour les applications à l’aide de composants.
- Aptitude à analyser du code logiciel en vue de détecter des vulnérabilités.
- Aptitude à dresser le panorama des travaux de recherche actuels dans le domaine de l’évolution du logiciel.

Références

Grubb P.A., Takang A.A., Software Maintenance: Concepts and Practice. 2nd edition, World Scientific Pub Co, 2003.
Lehman M.M., Laws of Software Evolution Revisited, LNCS 1149, Springer, pp. 108-124, 1997.
Jansen A., Bosch J., "Software Architecture as a Set of Architectural Design Decisions", Proceedings of the 5th Working IEEE/IFIP Conference on Software Architecture (WICSA'05), IEEE CS, Nov. 2005.
Tyree J., Akerman A., "Architecture Decisions: Demystifying Architecture", IEEE Software, Vol. 22(2), pp. 19-27, March 2005.
Tang A., Avgeriou P., Jansen A., Capilla R., Ali Babar M., "A Comparative Study of Architecture Knowledge Management Tools", Journal of Systems and Software, Vol. 83(3), Elsevier, March 2010.
Jansen A., Avgeriou P.,  Ven J. S. V. D., "Enriching Software Architecture Documentation", Journal of Systems and Software, Vol. 8(8), pp. 1232-1248, August, 2009.
Ali Babar M., Lago P., "Design Decisions and Design Rationale in Software Architecture", Journal of Systems and Software, Vol. 8(8), pp. 1232-1248, August, 2009.
Tibermacine C., Fleurquin R., Sadou S., "A Family of Languages for Architecture Constraint Specification", Journal of Systems and Software, Vol. 83(5), pp. 815-831, 2010.

Notions ou résultats marquants du cours

Définir ses propres "bad smells" pour la cybersécurité logiciel

Modalité d'évaluation

Contrôle continu (activités pratiques et exercices de recherche, présentations d'articles et devoirs).

Enseignants

Salah Sadou (responsable), Régis Fleurquin