Vous êtes sur la page 1sur 18

Processus de développement du logiciel

A pour objectif la formalisation des activités liées à l’élaboration


des systèmes ;

Mécanismes que l’on applique systématiquement pour obtenir de


manière répétitive et fiable des systèmes logiciels de qualité
constante ;

C’est un cadre configurable que l’on adapte et raffine de manière


consensuelle ;

Une méthode de développement comprend :


Des éléments de modélisation ;
Une notation ;
Un processus décrivant les étapes à suivre ;
Segmentation de la modélisation gestion de la complexité en
réduisant la portée de l’étude à une partie !

La compréhension globale peut se dégager par la perception


parallèle de plusieurs vues disjointes ;

UML est un langage pour la représentation de modèles objets. Un


processus de développement basé sur UML s’appuie sur les
caractéristiques suivantes :

Piloté par les Ucs : de la spécification à la maintenance ;


Centré sur l’architecture : afin de satisfaire les besoins exprimés
dans les Ucs. Un souci constant : la réutilisation ;
Itératif et incrémental : livraisons incrémentales du système.
UCs Architecture Itératif et
incrémental

« Centré sur »
« Piloté par » « Déroulement »
Processus
générique

Processus Processus
Entreprise A Entreprise B
Le modèle 4 + 1 vues

Il existe plusieurs manières de représenter et de percevoir un système ;

Les Ucs sont le fil rouge, balisant les différentes activités du développement ;

Il existe de multiples points de vue pour considérer un système

Vue logique Vue des processus

vue des cas


d’utilisation

Vue de réalisation Vue de déploiement


La vue logique

• Décrit les aspects statiques et dynamiques d’un système en


termes de classes et d’objets

• Principaux éléments :
o Les objets
o Les classes
o Les collaborations
o Les interactions
o Les paquetages
La vue de réalisation
• Organisation des modules dans l’environnement de
développement, allocation des classes dans les modules, et des
modules dans les sous-systèmes ;

• Principaux éléments
o Les modules
o Les sous- programmes
o Les tâches (unités de programme, comme en ADA)
o Les paquetages (en tant que sous-système)
La vue des processus
• Décomposition en flots d’exécution et leur synchronisation +
allocation des objets et des classes au sein des différents flots ;

Très important dans les environnements multi-tâches ;

• Principaux éléments
o Les tâches
o Les threads
o Les processus
o Les interactions
La vue de déploiement

• Les ressources matérielles et l’implantation du logiciel dans ces


ressources : besoins en puissance de calcul, contraintes
géographiques, tolérance aux fautes et aux pannes, temps de
réponse, etc.

• Les éléments
o Les nœuds
o Les modules
o Les programmes principaux
La vue des cas d’utilisation
• Le ciment entre les quatre autres vues

• Principaux éléments
o Les acteurs
o Les cas d’utilisation
o Les classes
o Les objets
o Les collaborations
Ce qu’un processus de développement doit assurer

• L’équipe de développement doit avoir une bonne


compréhension du problème à résoudre ;

• L’équipe de développement consiste en un ensemble de rôles ;

• Une bonne communication entre les différents membres (rôles)


de l’équipe ;

• Retracer à travers les différentes étapes du processus de


développement ;

• Produire des livrables à même de communiquer au client les


progrès réalisés ;
Étapes clés

Analyse

• Découvrir le processus d’affaires : un ensemble de diagrammes


d’activités ;

• Faire une analyse du domaine : devenir l’émissaire auprès de


l’équipe de développement. Ucs de haut niveau + diagramme
de classes préliminaire + notes écrites de meetings ;

• Identifier les systèmes coopérants : un diagramme de


déploiement ;
Diagramme de déploiement = montre la disposition physique des
différents éléments matériels (les nœuds) qui entrent dans la
composition d’un système et la répartition des programmes
exécutables sur ces matériels ;

<<dispositif>> <<processeur>> <<mémoire>>


Modem PC Disque

Un diagramme de déploiement peut montrer des classes de


nœuds ou des instances de nœuds.
Diagramme de déploiement

Terminaux X
Serveur SGBD
<<TCP/IP>>

<<RNIS>> printer
*
1
<<processeur>>
PC

Porte
1.. 10 *
• Comprendre l’usage que l’on fera du système : un ensemble de
Ucs, identifiant les acteurs et les dépendances entre Ucs ;

• Détailler les Ucs : description textuelle complète des Ucs ;

• Raffiner le digramme de classes : associations, multiplicités,


généralisations, agrégations, etc.

• Analyser les changements d’états des objets : Là ou nécessaire,


produire un diagramme d’états ;

• Définir les interactions entre objets : un ensemble de


digrammes de séquences et de collaborations ;
• Analyser l’intégration avec les systèmes coopérants :
diagramme de déploiement détaillé ;

• Produire des maquettes d’interfaces utilisateur ;

Conception

• Raffiner et développer les diagrammes d’objets : chaque


opération associée à un objet aura son diagramme d’activités ;

• Développer les diagrammes de composants : une description


des éléments physiques et de leurs relations dans
l’environnement de réalisation.
Diagramme de composants

wordProcessor.exe
Calculator.java

3 classes :
wordprocessor
spellchecker
wordcounter
Crapshoot
Die.class Craps.class

Die. java Craps.java


• Plan pour le déploiement : un matching entre composants et
diagramme de déploiement ;

• Conception d’interface utilisateur (*) ;

• Conception des tests à partir des Ucs : produire des scripts de


tests ;

• Commencer la structure de la documentation pour l’utilisateur


final ;

Développement

Déploiement

Vous aimerez peut-être aussi