Accueil - Connexion

Genie logiciel

3EAG7 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
Présenter la différence dans la façon d’aborder le développement entre le domaine de l’informatique embarquée et 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). 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. Par analogie avec le génie civil, on peut ainsi développer une immeuble en commençant par construire un bungalow que l'on va transformer petit à petit en immeuble.
Pour tenir compte de ces difficultés et de ces atouts, 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. Il existe plusieurs méthodes, mais elles ont toutes un socle com
Programme détaillé


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

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 montrer l'aspect itératif et incrémental du dévelopement à partir d'une première analyse des besoins.
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 collaboration avec l'outil Git sur 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.

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