Please enable JavaScript.
Coggle requires JavaScript to display documents.
Cycle de vie d'un logiciel (Procédé Logiciel (Modèles de procédés (Un…
Cycle de vie d'un logiciel
Procédé Logiciel
Un procédé logiciel(Software process) est un ensembielle d'activités conduisant à la production d'un logiciel
Les cycles de vie de logiciels sont complexes et dépendent fortement des acteurs qui dirigent les activités
Les activités des procédés ne peuvent etre automatisées mais il y a des outils de support, appelés outils CASE(Computer-Aided Software Engineering)
Il existe 2 types de modèles de procédés.
Méthodes Classiques
Modèles stricts
Documentation très fournie
Etapes très clairement définies
Fonctionne bien avec les gros projets et les projets gouvernementaux
Méthodologie agiles
Modèles incrémentaux et itératifs
Petites et fréquentes livraisons
Convient aux projets de petite et moyenne taille
Choix d'un modèle
le choix se fait selon certains critères tels que la nature du projet, sa taille,la nature du client et les compétences de l'équipe
Aucun modèle n'est meilleur que l'autre
Modèles de procédés
Un modèle de procédè est une abstraction d'un procédé
Un modèle décrit le procédé selon une certaine perspective
Un procédé logiciel est une application d'un modèle pour un projet spécifique, qui peut inclure une certaine adaptation.
Cycles de vie Classique
Modèle en cascade
Avantages
Facile à utiliser et à comprendre
Idéal pour la gestion et le suivi de projets
Fonctionne très bien quand la qualité est plus importante que les couts et les délais
Inconvénients
Les besoins des clients sont très rarement stables et clairement définis
Le produit n'est visible qu'à la fin
Les risques se décalent vers la fin
Très faible implication du client
Quand l'utiliser?
Quand les besoins sont connus et satbles
Quand la technologie à utiliser est maitrisée
Lors du portage d'un produit sur une autre plateforme
Le cycle de vie en cascade a été décrit par Royce
dès 1970.
Aussi appelé modèle linéaire.
Le modèle académique par excellence.
Le résultat de chaque phase est un ensemble de livrables.
Modèle en V
Inconvenients
Ne gère pas explicitement les changements des spécifications
Ne contient pas d'activités d'analyse de risque
Ne gère pas les activités parallèles
Avantages
Facile à planifier dans une gestion de projets
Facile à utilser
Chaque livrable doit etre testable
Quand l'utiliser:
Quand les besoins sont connus à l'avence
Les Technologies à utiilser sont connues à l'avence
Quand le produit à développer à de très hautes exigences de qualité
Le test du produit se fait en parallèle par rapport aux autres activités.
Variants du modèle en cascade qui fait l'accent sur la vérification et la validation
Prototypage
Le projet se fait sur plusieurs itérations.
Le prototype est évalué par le client .
Le Client donne son feedback.
Les Développeurs adaptent le prototype
selon les besoins du client.
Avantages
Progrès constant et visible
Une grande interaction avec le produit
Implication active du client
Inconvenients
Le processus peut ne jamais s'arreter
Le prototypage implique un code faiblement structuré
Très difficile d'établir un planning
Quand l'utilser?
Quand les livraisons rapides sont exigées
Peut etre utilisé avec le modèle en cascade pour la clarification des besoins
Modèle incrémental
-Quand des Livraisons rapides sont exigées.
-Peut etre utilisé avec le modèle en cascade pour la clarification des besoins.
Avantages
Le client intervient à la fin de chaque incrément
chaque incrément donne un produit fonctionnel.
Développement de fonctionnalités à risque en premier
Inconvénients
le cout total du système peut etre cher
exige une bonne planification et une bonne conception
Quand l'utiliser?
pour des projets impliquant de nouvelles technologies
quand on veut rapidement un produit fonctionnel
pour des projets de longues durées
Spirale
-Modèle itératif.
-Des incréments sous forme de cycle.
-Inclut l'analyse de risque et le prototypage.
Avantages
Impacts minimaux des risques sur le projet
Fonctions critiques développées en premier
Identification rapide des risques
feedback rapide du client
Inconvénients
La spirale peut s'éterniser
Les objectifs ne sont pas souvent faciles à formuler
Le modèle est très complexe
Quand est-ce-que l'utiliser?
quand le risque du projet est considérable
quand le prototypage est exigé
Méthodologies Agiles
Apparition
-Au milieu des années 90, un groupe d'expert en cycles de vie de logiciels voulaient proposer de nouveaux modèles.
-Les nouveaux modèles sont plus"légers":moins de documentation et moins de controle sur le procédé
-Ces modèles s'adresse à des projets de petite ou moyenne taille avec une équipe réduite.
Ces modèles permettent de s'ajuster rapidement aux changements des spécifications tout en garantissant des livraisons fréquentes.
Principes
Les méthodes agiles
• Méthodes de développement rapide d’applications -
RAD
• Méthode eXtreme Programming - XP
• Le modèle UP, RUP
Les étapes principales de création d'un Logiciel
Analyse des besoins
Appelée aussi spécification des besoins
Lors de cette phase:
on consulte les utilisateurs
on définit avec eux les fonctionnalités et les
contraintes du système
on s’attache à rédiger les documents
compréhensibles par tous et qui doivent servir aux
étapes ultérieures et éventuellement qui peuvent
être revues et modifiées.
Conception
Cette conception comprend:
1- une étude préliminaire des fonctions du système
2- une analyse fonctionnelle du logiciel avec ses
spécifications : statique ou dynamique selon les
besoins
3- une analyse détaillée du logiciel en unités de
programme
Codage
Le codage transforme les solutions proposées lors de la conception en un code opérationnel
On peut arriver à cette phase sans connaitre d'avance quels outils/ langages de programmation on va utiliser.
Test
Phase de test et de validation
Types de test
Les tests unitaires:orientés code
Les tests d'acceptation vérifient les attentes d'un produit logiciel
Déploiement
Appelée aussi 'phase de livraison' ou 'phase de mise en exploitation'.
La phase de déploiement regroupe toutes les activités qui mènent à l'installation et mise en marche de l'application développée(Installation des serveurs,setup et configuration,Tests de dépliement)
Maintenance
La maintenance consiste à modifier le produit après sa livraison au client.
La maintenance peut avoir un but:-Correctif:corriger les erreurs du système.
-évolutif: modifier le système pour ajouter des fonctionnalités ou prendre en compte les demandes d'évolution des utilsateurs.