1. Logiciel/Software
Les forces d'un logiciels sont les programmes, l'utilisation et la documentation.
2. Crise du logiciel
Date : fin année 1960
Peu de logiciel, par le suite croissance exponentielle des logiciels.
3. Génie logiciel
But : appliquer les méthodes classiques d'ingénierie dans le domaine du logiciel.
Le génie logiciel est dédié à la :
- conception
- développement
- maintenance
des logiciels.
Principes du génie logiciel :
- Généralisation (permet de passer d'un contexte à l'autre)
- Structuration (ne pas s'attaquer au problème dans sa globalité)
- Abstraction (on dégage les éléments importants)
- Modularité (modules répondent à des tâches)
- Construction incrémentale et anticipation des évolutions (mis à jour)
- Documentation (elle accompagne la production du logiciel à tous les niveaux)
- Vérification (assurer que le logiciel répond bien à la spécification de départ)
4. Critères de qualités d'un logiciel
- Validité (réponses aux attentes du client)
- Utilisation (prise en main, facilité d'utilisation)
- Performance (temps de réponse, fluidité)
- Fiabilité (robustesse, sûreté, tolérance des pannes)
- Sécurité (intégré des données et protection des accès)
- Maintenabilité (facilité à corrigé ou transformer le logiciel)
- Portabilité (changement d'environnement matériel ou logiciel)
- Interopérabilité (interagir en synergie avec d'autres logiciel)
5. Cycle de vie d'un logiciel
- Spécification (définition des objectifs, comprendre les besoins du client, organisation du projet//cahier des charges//métier d'analyste)
- Conception (comment le logiciel assurera les fonctionnalités recherchés//cahier de conception//métier de concepteur)
- Programmation (écriture du code, choix des logiciels//documentation du code + manuel d'utilisation//métier de programmeur)
- Vérification et validation (mesurer la distance conception et programmation//rapport de tests, certificats//métier de testeur)
- Déploiement (installation, formation, assistance//manuel d'utilisation + support//métier de formateur)
- Maintenance (pérennité du logiciel avec les mises à jour//manuel d'utilisation à jour//toutes les branches des métiers cités auparavant)
5. Raison d'une faible qualité logiciel
- Taille des logiciels et des équipes de conception/développement
- Manque de rigueur dans la phase d'analyse (spécification) et absence du client dans le processus de développement.
- Manquement dans les activités du processus de développement logiciel (il faut que les programmeurs soient cadrés)
- L'Analyste doit chercher plus loin que les explications du client (il faut avoir une documentation).
6. Différents modèles possible pour le développement de logiciel
- Modèle en cascade (toutes les tâches sont faites les unes après les autres, on ne peut pas revenir en arrière s'il y a un problème)
- Modèle en V (tests effectués tout au long de la réalisation du projet, pendant qu'une équipe bosse, les autres ne font rien)
- Modèle par prototypage (implication du client dans le développement, prototype jetable, prototype évolutif)
- Modèle évolutif - Incrémental (le client se prononce à chaque étape, concevoir et livrer une version minimal du système)
- Modèle évolutif - Itératif (pas de fonctionnalités, seulement le squelette du projet.
- Modèle en spirale
- Méthode Agile - Approche Agile (client présent à chaque décision, livraisons fréquentes des versions, basés sur des modèles évolutif
A retenir :
Principes du génie logiciel :
généralisation, structuration, abstraction, modularité, construction, documentation et vérification.
Cycle de vie d'un logiciel :
spécification, conception, programmation, vérification et validation, déploiement et maintenance.
Critères de qualités d'un logiciel :
validité, utilisation, performance, fiabilité, sécurité, maintenabilité, portabilité et interopérabilité.
Modèles possible pour le développement de logiciel : modèle en cascade, modèle en V, modèle par prototypage, modèle évolutif - incrémental/itératif, modèle en spiral et méthode Agile - Approche Agile.