Génie
logiciel
Introduction
NKOUANDOU Aboubakar
ICT217
Génie
logiciel
Qu’est-ce que c’est?
Qu’entend-on
par
genie ou
ingénieur?
L'habit ne fait pas le moine
Il faut observer la rigueur dans tout ce
qu’on fait
Ce n’est
pas une
question
de
confiance,
mais de
compéten
ces
Mauvaise
ingénierie à de
graves
conséquences
Géni
e
Rigueur et Garantie
• Méthodologie
• Outils
• Observation
• Analyse
• Conception
• Éthique
• …
• Esprit d’équipe & Communication
• Imagination & Créativité
Quelle est la
nature du
logiciel?
Complex
ité
• Les programmes sont parmi les
systèmes les plus complexes
jamais créés
• Notre mémoire à court terme
peut accommoder ±7 choses
(Miller, 1956)
Programmes en nombre de ligne
de codes
[Link]
13
Invisib
le
• Pouvez-vous toucher une classe
ou une fonction?
• Diffère des lois de la physique et
des mathématiques (continues)
• Pas moyen de représenter un
produit au complet
• Nos sens ne peuvent pas être
facilement utilisés pour
comprendre le logiciel
Discontinu
ité
• L’humain comprend facilement
les systèmes linéaires ou semi-
linéaires
• Les logiciels sont discontinus:
petits changements en entrée
résultent en un énorme
changement en sortie
• Le feedback est insuffisant pour
permettre à l’utilisateur
d’anticiper certains
comportements
Versatili
té
• Logiciels évoluent et changent constamment
• Changement dans les besoins
• Ce qu’on savait hier peut être obsolète aujourd’hui
• Nouvelle/meilleure techno émerge continuellement (loi de Moore)
• Le logiciel est facile à modifier
• Mais le défi est de le modifier correctement
Complexité accidentelle
• Due aux technologies utilisées
• Imprévus de l’environnement
• Problèmes transitoires
Logici Complexité essentielle
el •
•
Complexité
Versatilité
• Invisibilité
• Discontinuité
Origine
s du
Génie
logiciel
Rapport conférence
1968
Origines du génie
logiciel
Décrire: besoins, spécification de conception,
documentation
Implémenter: conception, programmation
Activités
de Évaluer: test, vérification, validation, révision
l’ingénie Gérer: planification, échelonnage,
ur communication
logiciel Faire fonctionner: déploiement, installation,
maintenance