Accueil - Connexion

Genie logiciel

54-1 Genie logiciel Électronique et Physique appliquée S9
Cours : 5 h TD : 0 h TP : 10 h Projet : 0 h Total : 15 h
Responsable : Regis Clouard
Pré-requis
Programmation impérative en C.
Gestion de projet.
Objectifs de l'enseignement
L'objectif de cet enseignement est de présenter la différence dans la façon d’aborder le développement entre le domaine de l'embarqué et du hardware et le domaine de l’informatique du logiciel.
Les contraintes et la nature même du produit font que les méthodes traditionnelles de gestion de projet issues du génie civil se sont révélées inefficaces voire contre-productives pour le logiciel. La particularité essentielle du logiciel c’est qu’il est mou (soft) ce qui lui confère à la fois des inconvénients et des atouts pour sa conception. En particulier, il est difficile de définir les besoins avant d’avoir développé le logiciel lui-même (problème de l’œuf et la poule). Par contre, le logiciel peut être développé en commençant par n’importe quelle partie et adopter une conception incrémentale.
Le génie logiciel s’est aujourd’hui émancipé du génie civil pour créer ses propres méthodes de développement, dites Agiles.
Programme détaillé


    1. Introduction au génie logiciel
    2. Méthodes agiles : une première approche
    3. Notion de code propre
    4. La gestion de version : exemple de git
    5. Les tests logiciels

Applications (TD ou TP)
Un exercice de conception logicielle en équipe de 4 en utilisant l'approche Agile.

Le but de l'exercice est de découvrir la gestion de projet Agile pour le développement d’un logiciel. La finalité de ces séances de TP n’est pas la livraison d’un logiciel complet, mais bien d’expérimenter la mise en place de l’agilité et l’usage d’outils dédiés pour la réalisation d’un projet de développement logiciel.
Compétences acquises
COMPETENCES SPECIFIQUES
Savoir gérer un projet selon l'approche Agile.
Savoir écrire du code propre.
Savoir écrire des tests logiciels.
Savoir développer en équipe avec un flot de travail basé sur l'outil Git (et Gitlab).

COMPETENCES GENERIQUES
Bloc de compétences : Considération de la dimension organisationnelle, personnelle et culturelle
-> Niveau 2 : Se connaître, savoir se situer, s'autoévaluer, gérer ses compétences et opérer ses choix professionnels

Bloc de compétences : Adaptation aux exigences propres de l'entreprise et de la société
-> Niveau 2 : Aptitude à prendre en compte les enjeux et les besoins de la société

Bloc de compétences : Acquisition de connaissances et méthodes scientifiques et techniques et maîtrise de leur mise en oeuvre
-> Niveau 3 : Capacité à mobiliser des connaissances scientifiques et des techniques expérimentales ou de simulation
-> Niveau 2 : Capacité à concevoir des systèmes innovants, à les concrétiser et à les tester
-> Niveau 3 : Capacité à trouver, évaluer une information pertinente puis à l'exploiter, capacité s'auto-évaluer, enrichir ses connaissances et compétences

Bloc de compétences : Acquisition, développement et mise en œuvre de connaissances et méthodes théoriques et expérimentales spécifiques à un domaine professionnel
-> Niveau 3 : Capacité à concevoir des systèmes électroniques communicants et autonomes implémentant une algorithmique et une architecture avancée
Bibliographie
Robert C. Martin. « Agile Software Development: Principles, Patterns, and Practices », Prentice Hall International, 2002.
Une introduction douce au développement agile.

Robert C. Martin, « Clean Code A Handbook of Agile Software Craftsmanship », Prentice Hall, 2009.
Le livre référence sur le code propre.

Glenford J. Myers, « The Art of Software Testing », John Wiley & Sons, Inc., 2004.
Les tests au cœur du développement.

© 2022 - ENSICAEN ( Mentions Légales - Crédits )