0% ont trouvé ce document utile (0 vote)
12 vues10 pages

DevWeb Ch5 SDLC

Le document présente le processus de développement d'un logiciel, incluant les étapes clés telles que l'étude de faisabilité, la définition des besoins, le design, la programmation, et le déploiement. Il aborde également différents modèles de développement, notamment le modèle en cascade et l'approche Agile, en soulignant leurs avantages et inconvénients. Enfin, il mentionne les méthodologies Agiles, comme Scrum, et l'utilisation de processus hybrides combinant plusieurs modèles.

Transféré par

Uncle Yves
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
12 vues10 pages

DevWeb Ch5 SDLC

Le document présente le processus de développement d'un logiciel, incluant les étapes clés telles que l'étude de faisabilité, la définition des besoins, le design, la programmation, et le déploiement. Il aborde également différents modèles de développement, notamment le modèle en cascade et l'approche Agile, en soulignant leurs avantages et inconvénients. Enfin, il mentionne les méthodologies Agiles, comme Scrum, et l'utilisation de processus hybrides combinant plusieurs modèles.

Transféré par

Uncle Yves
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Cours de Développement Web

Processus de développement d'un logiciel

Frédéric Flouvat

Université de la Nouvelle-Calédonie
[Link]@[Link]
Quelques références bibliographiques
"CS 5150 Software Engineering", W.Y. Arms, Cornell University,
[Link]
"Software development life cycle", Tutorials point,
[Link]
"Software development life cycle", Movistar – GSL MIT, [Link]
summer-2014/materials/t04-_software_development_life_cycle.pdf
"The SDLC: 7 phases, popular models, benefits & more", D. Swersky,
[Link]
"Manifeste pour le développement Agile de logiciel", [Link]
"Agile Web Development – a Comprehensive Overview", Cody Arsenault,
[Link]
"Thoughts on Design and Agile", M. E. Miller, Stanford Web Services Blog,
[Link]
"La méthodologie Scrum expliquée simplement – Le Guide Ultime de la Méthode Agile Scrum", S.
Boyer, [Link]
"Agile in a nutshell", [Link]
"Agile Modeling Home Page", [Link]

2
Les différentes étapes de la vie d'un logiciel
Etude de faisabilité et planification
• Objectifs du projet ? réalisabilité technique ? coûts ? calendrier ? ressources ?
risques ?  décision

Définition des besoins clients


• Identification des profils des utilisateurs (personas),
recensement des besoins (fonctionnalités,
performances, matériels, organisation, etc.),
définition de scénarios/cas d'utilisation

Design de l'interface utilisateur


• Diagrammes d'expérience utilisateur (UX flow charts), squelettes graphiques
(wireframes), maquettes graphiques, prototypes, tests et validations clients

3
Les différentes étapes de la vie d'un logiciel
Design de l'architecture du logiciel
• Organisation des données (diagramme E/A), architecture du code (diagramme de
classes), architecture physique et réseau (diagrammes de composants), sécurité,
technologies et outils utilisés pour le développement

Programmation du logiciel
• Coder, tester (à automatiser si possible),
partager et faire valider le code à l'équipe

Test utilisateur du logiciel et déploiement


• Test complet par les clients et comparaison aux besoins, livraison et mise en
production

Utilisation et maintenance
4
Les modèles de développement logiciel
Différentes façons de s'organiser autour de ces étapes
 Différents modèles de développement en fonction des projets et des équipes
• Chacun à des avantages et des inconvénients
• Mais toujours les mêmes objectifs
– avoir un bon logiciel (fonctionnalités, utilisabilité, maintenabilité, efficacité, etc.)
– limiter les risques (ne répond pas aux besoins, coût trop élevé, durée de
développement trop longue, etc.)
– faciliter le suivi du projet par le responsable
– favoriser le travail en équipe

Exemples de processus de développement logiciel


• Modèle en cascade
• Modèle itératif
• Modèle en spiral
• Modèle en V
• Modèle Agile
• …

5
Le modèle en cascade (waterfall)
Un développement séquentiel / linéaire
• Finir chaque étape avant de
commencer la suivante
• Possibilité de revenir en arrière
en fonction des retours clients à
la fin de chaque étape

Une approche adaptée si


• Des besoins fixes, clairs et bien • Une technologie maîtrisée
documentés

Avantages & Inconvénients


+ Simple à comprendre / utiliser - Pas de logiciel opérationnel avant les
+ Facile à manager dernières étapes du processus
+ Des étapes clairement définies - Beaucoup de risques et d'incertitudes
+ Un processus et des résultats - Difficile d'évaluer l'avancement
bien documentés - Difficile d'intégrer de nouveaux besoins

6
L'approche Agile
Un développement adaptatif, itératif et incrémental
• Projet découpé en petites tâches (sprints)
• Un sprint = toutes les étapes du
développement logiciel
• A chaque fin de sprint, une version
utilisable du logiciel présentée aux clients

Une approche adaptée si


• Des besoins pouvant changer • Des clients / utilisateurs avec
• Une équipe localisée à un seul endroit une bonne disponibilité

Avantages & Inconvénients


+ Flexible - Dépend beaucoup des interactions
+ Met en avant la satisfaction client et avec les clients
le travail d'équipe - Importance de l'expérience de l'équipe
+ Des livraisons régulières de - Risque de retravailler continuellement
logiciels opérationnels le code et les besoins
+ Des ressources et des coûts limités - Peu de documentation
7
Le manifeste pour un développement Agile
Agile = avant tout des principes, un condensé de bonnes pratiques
[Link]
• Priorité à la satisfaction client en livrant rapidement et régulièrement des
fonctionnalités à grande valeur ajoutée
• Accepter les changements même tard dans le projet
• Livrer fréquemment un logiciel opérationnel avec des cycles de quelques
semaines
• Travailler avec les utilisateurs quotidiennement tout au long du projet
• Motiver l'équipe de développement, lui fournir du soutien, et lui faire confiance
• Favoriser le dialogue en face à face
• Un logiciel opérationnel comme principale mesure d'avancement
• Encourager un rythme de travail soutenable
• Focus sur l'excellence technique et une bonne conception
• Importance de la simplicité (minimiser le travail inutile)
• Mettre en place des équipes s'auto-organisant
• Essayer continuellement de trouver des moyens de devenir plus efficace et
modifier son comportement

8
Méthodologies Agiles
Plus d'une vingtaine de méthodes dites "Agiles": RAD, XP, RUP, Kanban,
LeSS, Scrum, …

La plus connue: Scrum


Product Backlog: liste des
fonctionnalités (avec des priorités)

Sprint Backlog: liste des tâches à


accomplir pendant un sprint
(construit à partir du Product
Backlog)

Scrum Meetings: réunion


journalière, courte, pour analyser ce
qui a été fait et planifier la suite

Scrum Master: personne chargée


d'organiser les réunions et la Idéalement, chaque sprint aboutit à une
communications entre les membres application totalement opérationnelle
de l'équipe

9
Les processus hybrides
En réalité, souvent plusieurs modèles combinés

Par exemple, Cascade + Agile

• Etude de faisabilité
(description haut-

• Définition des besoins clients


Cascade

niveau)

• Design de l'interface utilisateur


• Design de l'architecture du logiciel
• Planification des sprints

• Planification détaillée du sprint courant



(détails)

Design détaillé de l'interface utilisateur


Agile

• Design détaillé de l'architecture du logiciel sprint suivant


• Programmation
• Test utilisateur du logiciel (UAT) et déploiement

10

Vous aimerez peut-être aussi