Académique Documents
Professionnel Documents
Culture Documents
ère
Génie Logiciel
• Générique (generic)
– Vendu sur le marché : un tableur (Excel), un outil de base de
données (Access), un outil de traitement de texte (Word)
• Embarqués (embedded)
– exécutent dans du matériel électronique isolé: machine à laver,
téléviseur, lecteur DVD, téléphone mobile, magnétoscope, four à
micro-ondes, réfrigérateur, joueur MP3, …
– Difficile à modifier
Les différentes catégories de logiciel
• Analyse
- Comprendre les exigences en profondeur en construisant des modèles. Le but de
l’analyse est de spécifier le quoi - ce qui doit être réalisé - et non le comment - la
façon de le réaliser
Vous devez comprendre le problème avant d’essayer de lui trouver une solution
• Conception du système
- Mettre au point une stratégie de haut niveau - l’architecture - pour résoudre le
problème de l’application. Instaurer des politiques pour guider la conception des
classes
Stades du développement
• Conception des classes
- Augmenter et ajuster les modèles du monde réel obtenus par l’analyse pour
qu’ils soient compatibles avec une implémentation informatique. Déterminer
les algorithmes pour réaliser les opérations
• Implémentation
- Traduire la conception en code et en structures de bases de données
• Tests
- Vérifier que l’application est réellement utilisable et qu’elle correspond
vraiment aux exigences
Stades du développement
• Formation
- Permettre aux utilisateurs de maîtriser la nouvelle application
• Déploiement
- Mettre l’application en production et remplacer élégamment les applications
existantes
• Maintenance
- Préserver la pérennité de l’application
Cycle de vie du développement
• Développement en cascade
- exige que les différents stades du développement logiciel suivent une
séquence linéaire et rigide qui n’admet pas de retours en arrière
• Développement itératif
- offre plus de souplesse. On commence par développer le noyau du système
en suivant les stades habituels - analyse, conception, implémentation, tests - et
vous livrez du code opérationnel. Puis on élargit le périmètre du système en
ajoutant des propriétés et des comportements aux objets existants ainsi que de
nouveaux types d ’objets. Plusieurs itérations ont lieu à mesure que le système
évolue pour déboucher sur le livrable final
Plan
Analyse
Conception
Implémentation
Test
• L’approche en cascade est rigide et ne convient pas à la plupart des
développements d’applications
• Ce développement convient aux applications intelligibles dont les
résultats sont prévisibles de l’analyse à la conception
Développement itératif vs développement
en cascade
• La plupart des applications comportent une part substantielle
d’incertitude quant à leurs exigences
– Modèles
• Le modèle véhicule le périmètre et la finalité du logiciel
• Il sert de base pour comprendre le logiciel d’origine et pour
construire son successeur
Sorties de la rétro-ingénierie
– Correspondances
• Vous pouvez lier des attributs du modèle à des
variables. Plus généralement, vous devez lier du
code de programmation à des modèles d’états et
d’interactions
– Journaux
• Les rétro-ingénieurs devraient enregistrer leurs
observations et les questions en suspens. Un journal
documente les décisions et la logique