Vous êtes sur la page 1sur 39

CHAPITRE 1: INTRODUCTION AU GÉNIE

LOGICIEL

1
POURQUOI ÉTUDIER LE GÉNIE LOGICIEL?

But d’un développeur : Construire un logiciel.

 Est-ce que la construction d’un logiciel est une


aventure tranquille?

2
POURQUOI ÉTUDIER LE GÉNIE LOGICIEL?

Catastrophe informatique: Ariane5

Coût : 7milliards de dollards


Erreur: Le système de bord a été incapable de convertir une donnée provenant d’un
processeur de 64 bits dans un système de 32 bits.

3
POURQUOI ÉTUDIER LE GÉNIE LOGICIEL?

Catastrophe informatique: Airbus 380

Coûts :N’ont jamais été dévoilés.

Erreur: Tout le monde utilisait le même logiciel, mais les Allemands

se servaient d’une vieille version du programmes


4
POURQUOI ÉTUDIER LE GÉNIE LOGICIEL?

Réponse:
Le développement d’un logiciel est une
aventure risquée car:
Cela coûte cher (et plus que prévu)
Cela dure longtemps (et plus que prévu)
 Cela n’est même pas sûr d’aboutir! (pas sûr
d'obtenir ce qui a été demandé)

Donc il faut apprendre à construire un logiciel

5
GÉNIE LOGICIEL : DÉFINITION

Ensemble des méthodes, Programmes informatiques


.
techniques et outils pour créer permettant de faire fonctionner un
des produits ordinateur et de l’utiliser pour
résoudre des problèmes.

Ensemble de méthodes, techniques et outils nécessaires à la production


de logiciels de qualité.

6
GÉNIE LOGICIEL : CONSENSUS

7
POURQUOI ÉTUDIER LE GÉNIE
LOGICIEL?

Réponse:
Le développement d’un logiciel est une
aventure risquée)

Donc il faut apprendre à construire un logiciel

8
GÉNIE LOGICIEL : DÉFINITION

Discipline basée sur le savoir, le savoir faire et le faire


savoir pour produire de façon industrielle des logiciels de
qualité au meilleurs prix

Discipline  méthodes, techniques et outils


Basée sur le savoir théorique
Le savoir-faire  compétence, ressource humaine
Le faire savoir communication
Pour produire développement, réalisation
Façon industrielle travail d’équipe, méthodologie
Des logiciels Les produits
De qualité au meilleur prix Qualité/Prix 9
POURQUOI LE GÉNIE LOGICIEL?

Question: Avant le Génie Logiciel, on avait pas


des logiciels?
Réponse: On avait mais
Cela coûte cher (et plus que prévu)
Cela dure longtemps (et plus que prévu)
Cela n’est même pas sûr d’aboutir!
Crise
(pas sûr d'obtenir ce qui a été demandé) du
logiciel

10
GÉNIE LOGICIEL: BUTS

Bien développer le bon logiciel

11
BIEN DÉVELOPPER LE BON
LOGICIEL

Question: C’est quoi un bon logiciel?

Réponse: Qualité logicielle

Facteurs qualité Normes


• Robuste • ITL
• Fiable • CMMI
• Performant • etc
• Compatible
• Extensible
• etc

12
FACTEURS QUALITÉ(1/8)

Réutilisabilité:
« La réutilisabilité est la capacité des éléments
logiciels à servir à la construction de plusieurs
applications différentes. »
Compatibilité
« La compatibilité est la facilité avec laquelle
des éléments logiciels peuvent être combinés à
d’autres. »

Esprit 2012/2013
13
FACTEURS QUALITÉ (2/8)
Efficacité
« L’efficacité est la capacité d’un système
logiciel à utiliser le minimum de ressources
matérielles, que ce soit le temps machine,
l’espace occupé en mémoire externe et interne,
ou la bande passante des moyens de
communication. »
Portabilité
« La portabilité est la facilité avec laquelle des
produits logiciels peuvent être transférés d’un
environnement logiciel ou matériel à l’autre. »
Esprit 2012/2013
14
FACTEURS QUALITÉ(3/8)

La correction : « est la qualité qu'un logiciel a


de respecter les spécifications qui ont été
posées. »
La robustesse : « est la qualité qu'un logiciel a
de fonctionner en se protégeant des conditions
de dysfonctionnement. »
L'extensibilité : « est la qualité qu'un logiciel a
d’accepter des modifications dans les
spécifications et des adjonctions nouvelles. »

Esprit 2012/2013
15
FACTEURS QUALITÉ(4/8)
Facilité d’utilisation
« La facilité d’utilisation est la facilité avec
laquelle des personnes présentant des
formations et des compétences différentes
peuvent apprendre à utiliser les produits
logiciels et s’en servir pour résoudre des
problèmes. Elle recouvre également la facilité
d’installation, d’opération et de contrôle. »
Ponctualité
« La ponctualité est la capacité d’un système
logiciel à être livré au moment désiré par ses
Esprit 2012/2013 16
FACTEURS QUALITÉ(5/8)
La vérificabilité : est la qualité qu'un logiciel a
de se plier à la détection des fautes, au
traçage pendant les phases de validation et de
test.
L'intégrité : est la qualité qu'un logiciel a de
protéger son code et ses données contre des
accès non prévus.
La lisibilité : est la qualité qu'un logiciel a d'être
lu par un être humain.

Esprit 2012/2013
17
FACTEURS QUALITÉ(6/8)

La modularité : « est la qualité qu'un logiciel a


d'être décomposable en éléments indépendants
les uns des autres et répondants à un certain
nombre de critères et de principes. »
Maniabilité :« Opérabilité, format »
La couplabilité(ou interopérabilité): « La
standardisation des données est la
compatibilité des données avec des standards
de représentation. La standardisation des
interfaces. »
Esprit 2012/2013
18
FACTEURS QUALITÉ(7/8)

L’efficience : «La vitesse d’accès aux


périphériques. Les temps de réponse, etc. »
La confidentialité : « La protection du code et
des données est la limitation, en exploitation
ou non, des accès à des personnes autorisées.
La mémorisation des accès est l’historisation
des accès au données et aux fonctions. »

Esprit 2012/2013
19
FACTEURS QUALITÉ(8/8)

Sécurité : « Degré à partir duquel un produit


protège les informations et données de
manière à ce que les personnes ou autres
produits aient un accès à ces derniers qui
corresponde à leur niveau d’autorisation. »

Esprit 2012/2013
20
BIEN DÉVELOPPER LE BON
LOGICIEL

Question: Que va-t-on faire pour construire


un logiciel de qualité?
Réponse: Adopter des bonnes pratiques
Cycles de vie
Processus de
logiciel
développement

Ateliers de
Outils de génie logiciel
développement

Méthodologies de
Méthodes de
développement
développement
CYCLE DE VIE LOGICIEL

Définition du cycle de vie


Ensemble des étapes qui composent le processus de
développement et d’utilisation du logiciel

22
MODÈLE DE CYCLE DE VIE
LOGICIEL
Modèle du cycle de vie
Modélisation conventionnelle de la succession
d’étapes qui préside à la mise en œuvre d’un
produit logiciel. Plusieurs modèles existent : en
cascade, le cycle en V, en spirale ...
Les objectifs de ces modèles :
Permet de représenter le processus de
développement de manière graphique et physique.
Donner une structure autour de laquelle les
activités d’assurance qualité peuvent être
construites
Esprit 2012/2013
23
CYCLE DE VIE: LES MODÈLES
LINÉAIRES

Modèle en cascade
Modèle en V 24
CYCLE DE VIE: LES MODÈLES
LINÉAIRES

Problèmes des cycles linéaires:


 Risques élevés et non contrôlés
 Identification tardive des problèmes
 Preuve tardive de bon fonctionnement
 Effet tunnel
Solution:
Modèle itératif et incrémental

Esprit 2012/2013
25
MODÈLE DE CYCLE DE VIE :
ITÉRATIF ET INCRÉMENTAL

Modèle
Modèle
en Spirale
en W

Esprit 2012/2013
26
MODÈLE DE CYCLE DE VIE :
ITÉRATIF ET INCRÉMENTAL

Avantages:
1. Prototype : création d'un prototype(modèle
réduit d'un système, partiellement réalisé et
fonctionnel)
2. Validation des spécifications: par
expérimentation : "Je saurai ce que je veux
lorsque je le verrai !"

Esprit 2012/2013
27
ITÉRATIF ET INCRÉMENTAL VS
LINÉAIRE

Esprit 2012/2013
28
PPROCESSUS UNIFIÉ : UP

 UP définit les activités essentielles et propose, pour chacune


d'entre elles, une liste d'intervenants (architecte, analyste...) et
une liste de travaux associés.
 Expression des besoins
 Analyse
 Conception
 Implémentation et Test

Esprit 2012/2013
29
RATIONAL UNIFIES PROCESS: RUP

Esprit 2012/2013
30
RATIONAL UNIFIES PROCESS: RUP

Rational Unied Process est:


 Piloté par les cas d'utilisation ;
 Centré sur l'architecture ;
 Itératif et incrémental.
Avantages de RUP :
Gagner et conserver un contrôle intellectuel sur le projet, contrôler sa
complexité, et maintenir l’intégrité du système.
 Fournir une méthode pour une réutilisation à grande échelle
 Fournir des bases pour la gestion de projet
 Faciliter le développement par composant
o Un composant remplit une fonction définie dans le contexte d’une architecture bien définie
o Un composant fournit la réalisation physique d’une série d’interfaces
o Les composants existent dans une architecture donnée

Esprit 2012/2013
31
PROCESSUS 2 TUP

32
MÉTHODES AGILES

 Quelles activités pouvons nous abandonner tout en produisant des


logiciels de qualité ?
 Comment mieux travailler avec le client pour nous focaliser sur ses
besoins les plus prioritaires et être aussi réactifs que possible ?
 XP (eXtreme Programming)
Priorités des méthodes agiles
 Priorité aux personnes et aux interactions sur les procédures et les
outils ;
 Priorité aux applications fonctionnelles sur une documentation
pléthorique ;
 Priorité à la collaboration avec le client sur la négociation de contrat ;
 Priorité à l'acceptation du changement sur la planification.

33
MÉTHODE AGILE : XP

 Communication :
 XP favorise la communication directe, plutôt que le cloisonnement des activités et
les échanges de documents formels.
 Les développeurs travaillent directement avec la maîtrise d'ouvrage.
 Feedback :
 Les pratiques XP sont conçues pour donner un maximum de feedback sur le
déroulement du projet afin de corriger la trajectoire au plus tôt.
 Simplicité :
 Du processus ;
 Du code.
 Courage :
 D'honorer les autres valeurs ;
 De maintenir une communication franche et ouverte ;
 D'accepter et de traiter de front les mauvaises nouvelles.

34
MÉTHODE AGILE : XP

 XP est fondé sur des valeurs, mais surtout sur 13 pratiques réparties en
3 catégories :
 Gestion de projets ;
 Programmation ;
 Collaboration.

35
MÉTHODE AGILE : XP

 Livraisons fréquentes :
 L'équipe vise la mise en production rapide d'une version minimale du logiciel,
puis elle fournit ensuite régulièrement de nouvelles livraisons en tenant compte
des retours du client.
 Planification itérative :
 Un plan de développement est préparé au début du projet, puis il est revu et
remanié tout au long du développement pour tenir compte de l'expérience acquise
par le client et l'équipe de développement.
 Client sur site :
 Le client est intégré à l'équipe de développement pour répondre aux questions des
développeurs et définir les tests fonctionnels.
 Rythme durable :
 L'équipe adopte un rythme de travail qui lui permet de fournir un travail de
qualité tout au long du projet.
 Jamais plus de 40h de travail par semaine (un développeur fatigué développe
mal).

36
MÉTHODE AGILE : XP

 Conception simple :
 On ne développe rien qui ne soit utile tout de suite.
 Remaniement :
 Le code est en permanence réorganisé pour rester aussi clair et simple que
possible.
 Tests unitaires :
 Les développeurs mettent en place une batterie de tests de non-régression qui leur
permettent de faire des modifications sans crainte.
 Tests de recette :
 Les testeurs mettent en place des tests automatiques qui vérifient que le logiciel
répond aux exigences du client.
 Ces tests permettent des recettes automatiques du logiciel.

37
MÉTHODE AGILE : SCRUM

 Voir les vidéos suivantes:


http://www.youtube.com/watch?v=D8vT7G0WA
TM
http://www.youtube.com/watch?v=b_WeHcZcx1
w
http://www.youtube.com/watch?v=wPvG9NZN
Ua4
Esprit 2012/2013
38
SYNTHÈSE DES MÉTHODOLOGIES UTILISÉES DANS LE
CADRE DE DÉVELOPPEMENT OBJET ET NOUVELLES
TECHNOLOGIES.

Description Points forts Points faibles

Cascade ₋Propose de dérouler les phases projet Distingue clairement les phases Projet - Non itératif
de manière séquentielle - Ne propose pas de modèles de
₋Cité pour des raisons historiques documents

RUP - Promu par Rational. - Itératif - Coûteux à personnaliser


Rational - Le RUP est à la fois une méthodologie - Spécifie le dialogue entre les différents - Très axé processus, au détriment du
Unified et un outil prêt à l'emploi (documents intervenants du projet : les livrables, les développement : peu de place pour le
Process types partagés dans un référentiel Web) plannings, les prototypes… code et la Technologie
- Cible des projets de plus de 10 - Propose des modèles de documents, et
personnes des canevas pour des projets types

XP -Ensemble de « Bests Practices » de -Itératif - Ne couvre pas les phases en amont et


eXtreme développement (travail en équipes, - Simple à mettre en œuvre en aval au développement : capture des
Programming transfert de compétences…) - Fait une large place aux aspects besoins, support, maintenance, tests
- Cible des projets de moins de 10 techniques : prototypes, règles de d'intégration…
développement, tests… - Elude la phase d'analyse, si bien qu'on
peut dépenser son énergie à faire et
défaire
- Assez flou dans sa mise en œuvre:
quels intervenants, quels livrables ?

2TUP -S'articule autour de l'architecture - Itératif - Plutôt superficiel sur les phases situées
Two Track -Propose un cycle de développement - Fait une large place à la technologie et en amont et en aval du développement :
Unified en Y à la gestion du risque capture des besoins, support,
Process - Détaillé dans "UML en action" (voir - Définit les profils des intervenants, les maintenance, gestion du changement…
références) livrables, les plannings, les Prototypes - Ne propose pas de documents types
- Cible des projets de toutes tailles

Esprit 2012/2013
39

Vous aimerez peut-être aussi