Vous êtes sur la page 1sur 46

Ch.

3 1

PROCESSUS DE
DÉVELOPPEMENT D’UN
LOGICIEL

Pr Idrissa SARR
Idrissa.sarr@ucad.edu.sn
http://edmi.ucad.sn/~idrissasarr
Ch. 3 2

Questions

•  C’est quoi le cycle de vie d’un produit logiciel?


•  Pourquoi a-t-on besoin de méthodes de
développement?
•  Quels sont les objectifs des méthodes de
développement et quelle est leur différence?
Le logiciel est complexe

•  Complexe ≠ compliqué

•  Complexe = composé de plusieurs parties reliées

•  Compliqué = pas très bien compris, ou expliqué


Ch. 3 4

Modèle de cycle de vie (1)


•  Format standardisé pour
•  Planifier
•  Organiser et
•  Exécuter

Un nouveau projet de développement.


Ch. 3 5

Modèle de cycle de vie (2)


•  Cycle de vie d’un produit logiciel
•  Du début de l’idée d’un produit jusqu’à sa réalisation en incluant
•  Collecte et analyse des besoins
•  Spécifications et conception de l’architecture
•  Codage et tests
•  Livraison et déploiement
•  Maintenance et évolution
•  retrait
Ch. 3 6

LES EXIGENCES
Ch. 3 7

Contraintes d’un projet


•  Budget fixe
•  Pas toujours évident de modifier sauf en cas de besoin pour
maintenance

•  Contrainte de temps
•  Time-to-market est un défi majeur surtout face à la concurrence

•  Staff
•  Implication d’autres ressources humaines qui ne sont pas
nécessairement des experts du domaine
Ch. 3 8

Exigences d’ingénierie
•  Impliquent
•  Elucider
•  comprendre
•  analyser
•  Spécifier
•  Mettre l’accent sur
•  Quelles qualités sont requises, et NON comment les obtenir
9

Rôle d’un ingénieur en génie logiciel (1)


Un pont entre besoins utilisateurs et implémentaion

Utilisateurs
Développeur

Règle 1: Apprentissage du domaine


les problèmes d’un domaine ne peuvent être résolus
sans la compréhension du contexte.
10

Rôle d’un ingénieur en génie logiciel (2)


Un pont entre client et développeur

Clients Développeur

Règle 2: Apprentissage de l’environnement


les problèmes du client ne peuvent être pris en compte efficacement
qu’après maitrise de son environnement et de ses besoins
Ch.1 11

Quelles sont les aptitudes d’un bon


développeur
•  Artiste,
•  Manageur,
•  Orateur,
•  Observateur,

•  Attentif,
•  Cultivé,
•  Ouvert
•  …..
Ch.1 12

Quelles sont les aptitudes d’un bon


développeur
•  Artiste,
•  Manager,
•  Orateur,
•  Observateur,

•  Attentif,
•  Cultivé,
•  Ouvert
•  Méthodique
•  …
Ch.1 13

Relations entre GL et les autres


disciplines
•  Langages de programmation
•  Systèmes d’exploitations
•  Bases de données
•  Intelligence artificielle
•  Analyse et statistiques sur les données
•  Logique
•  Stratégies d’entreprises et marketing
Ch. 3 14

SURVOL DES
MÉTHODES DE
DÉVELOPPEMENT
Ch. 3 15

Planifier votre projet


•  Un art d’orchestrer un ensemble d’activités nécessaires
dans le temps et l’espace avec une bonne maîtrise des
ressources requises (matérielles et immatérielles) pour
optimiser:
•  Les risques (faible)
•  Temps (faible)
•  Coût (faible)
•  Satisfaction des clients (élevée)
•  Satisfaction des travailleurs (élevée)
•  Une durée de vie élevée
Ch. 3 16

# méthodes
•  Code&Fix
•  Waterfall
•  Spirale
•  Prototypage
•  Unified process
•  Méthodes d’Agile : Extreme programming
Ch. 3 17

Code&Fix

La première approche
•  Ecrire le code
•  Le peaufiner pour éliminer les erreurs détectées,
améliorer les fonctionnalités et ajouter de nouvelles
caractéristiques.

•  Part d’une idée informelle de projet et développer du


code jusqu’à atteindre un produit (ou l’épuisement
d’un délai ou budget)

•  Peut s’adapter au hacking (sans plan)


Ch. 3 18

Code&Fix
•  Avantages
•  Sans surcharge administrative
•  Faible expertise, tout le monde peut l’utiliser
•  Pratique pour les petits projets et sans trop de risques

•  Inconvénients
•  Sans contrôle et visibilité
•  Sans planification des ressources
•  Sans deadlines
•  Erreurs difficiles à détecter/corriger
Ch. 3 19

Waterfall (1)
•  Inventée à la fin des années 50 et popularisée en 1970

•  Elle organise les activités de manière séquentielle

•  Existe en plusieurs variantes, toutes suivant un modèle


séquentiel
Ch. 3 20

Feasibility study
Modèle waterfall
Requirements

Design

Coding and module testing

Integration and system testing

Delivery, deployment, and


maintenance
Ch. 3 21

Waterfall models (2)


•  Avantages
•  Facile à comprendre et à implémenter.
•  Largement utilisée et connue (en théorie!)
•  Confère de bonnes habitudes: define-before- design, design-
before-code
•  Identifie les délivrables et les jalons
•  Marche bien sur les projets matures
Ch. 3 22

Waterfall models (3)


•  Inconvénients
•  Irréaliste de prétendre obtenir des besoins cohérents au début
•  Clients ne savent pas ce qu’ils veulent
•  Besoins ne peuvent pas être gelés
•  Logiciel délivré tardivement, entraine un retard de la découverte
des erreurs sérieuses.
•  Difficile d’intégrer les risques de management
•  Linéaire, rigide, monolithique
•  Pas de feedback
•  Pas de parallélisme
Ch. 3 23

Waterfall with feedback


Feasibility study

Requirements

Design

Coding and
module testing

Integration and
system testing

Delivery, deployment, and


maintenance
Ch. 3 24

Modèle spirale
•  Comme les besoins des utilisateurs finaux sont difficiles à
cerner, alors il est plus efficace de gérer le
développement par étapes.
1.  Réaliser un logiciel
2.  Vérifier s’il satisfait les exigences des clients
3.  Si oui arrêter, Sinon retourner au point 1
Les 4 phases de la méthode spirale
Phase d’identification
•  Identification des besoins.

•  Détermination des objectifs.

•  Détermination des alternatives pour atteindre les


objectifs.

•  Détermination des contraintes.


Phase d’évaluation

•  Analyse des risques.

•  Évaluation des alternatives.

•  Identification et résolution des risques.


Phase de réalisation

•  Développement et vérification de la solution retenue


à l'issue de la phase précédente, la phase
d’évaluation.
Phase de vérification

•  Vérification et validation du produit élaboré dans la


phase de réalisation.

•  Planification de la prochaine phase.


Spécification des requis. Évaluation des risques
Planification du budget. selon l’analyse initiale.

Tests et évaluation de la Développement de la


version initiale. version initiale.
Planification basée sur Évaluation des
les tests de l’itération risques basée sur
précédente. la réaction des
testeurs.

Tests et évaluation Développement


de la nouvelle d’une version
version. subséquente.
Ch. 3 32

Avantages du modèle spirale


•  Modèle itératif
•  chaque cycle produit une version opérationnelle du logiciel.

•  Introduit la notion d’analyse de risques

•  Plus réaliste pour le développement de systèmes de


grandes envergures.

•  Flexible: incorpore les avantages de Waterfall et du


prototypage rapide

•  Bonne visibilité sur le projet minimisant les risques


Ch. 3 33

Cas particulier: Unified Process (1)

Inception Elaboration

Transition Construction

UP Lifecycle – single phase workflow


(drawn as a UML Statechart!)
Ch. 3 34

Cas particulier: Unified Process (2)


•  Inception:
•  Identification des use cases pour définir le compromis entre
architecture et conception
•  Estimer et planifier le projet

•  Elaboration
•  Capturer les détails des besoins/exigences des utilisateurs
•  Décider d’acheter ou de coder

•  Construction
•  Les composants achetés/codés sont intégrés

•  Transition
•  Livrer un logiciel satisfaisant des critères fixés.
Ch. 3 35

Inconvénients
•  Modèle compliqué: requiert
•  Nécessite une expertise en analyse de risque
•  Compétence en management

•  Modèle pas bien compris par les non-technical


management, donc pas très bien utilisé
Ch. 3 36

Rapide prototypage
•  Idée de base:
•  Les utilisateurs sont non techniques et souvent ne savent pas ce
qu’ils veulent/peuvent avoir.

•  Le prototypage met l’accent sur l’analyse et la validation


des besoins.

•  Il est orienté utilisateur et est souvent appelé prototypage


évolutif.
Ch. 3 37

Requirements Capture

Iterate
Quick Design

Build Prototype

Customer Evaluation of
Prototype

The Rapid Engineer Final


Product
Prototype Workflow
Ch. 3 38

RP: Avantages
•  Réduit les risques d’erreurs des besoins utilisateurs

•  Bonne quand les besoins changent et/ou ne pas validés

•  Aide au management et aux stratégies marketing


Ch. 3 39

RP: Inconvenients
•  Requiert une collaboration extensive avec le client
•  Coûte de l’argent au client
•  Difficile à finir si le client se retire
•  Difficile d’évaluer la durée du projet
Ch. 3 40

Agile/XP (Manifeste)
•  XP : Extreme Programming
•  Individus et interactions
•  Plus que les processus et les outils

•  Logiciels opérationnels
•  Plus qu’une documentation exhaustive

•  Collaboration avec les clients


•  Plus que les négociations contractuelles

•  L’adaptation aux changements


•  Plus que suivre un plan
Ch. 3 41

Livraison &
Exploration Client feed-back

Attribution de
Tâches Développement

Création de Tests
Fonctionnels
Ch. 3 42

Agile: Principes (aperçu)


•  Livraison fréquente d’une application fonctionnelle, toutes
les deux semaines à deux mois

•  Perpétuelle collaboration avec les clients

•  Mises-à-jour continues en fonction des changements

•  Valuer les participants et leur interaction

•  Simplicité dans le code, satisfaire les spécifications


•  L’art de maximiser la quantité de travail à ne pas faire
Ch. 3 43

Agile: Quelques pratiques


•  Participation de l’utilisateur final aux groupes de travail.

•  Groupes de travail disposant du pouvoir de décision.

•  Programmation par paire


•  Deux développeurs échangent et corrigent mutuellement leur code
•  Variante: l’un implémente les fonctionnalités pendant que l’autre code les tests
nécessaires

•  Pilotage par les enjeux et les risques.

•  Architecture à base de composants.

•  Gestion des changements automatisée.

•  Savoir communiquer avec des métaphores


Ch. 3 44

Agile: Avantages
•  Méthode souple et pratique pour les projets à petite et
moyenne échelle

•  Produit une bonne cohésion de groupe

•  Approche basée sur des tests d’exigences et de qualité


Ch. 3 45

Agile: Inconvénient
•  Ne convient pas pour les projets à grande échelle ou la
documentation est indispensable

•  Nécessite beaucoup d’expertise pour éviter de faire du


Code&Fix

•  Le travail d’équipe est coûteux


•  Réunion journalières pour se conformer
Ch. 3 46

Résumons
•  Quelle est la meilleure méthode de développement parmi
celles présentées?

Vous aimerez peut-être aussi