Documente Academic
Documente Profesional
Documente Cultură
I.1. Définition
Ces qualités sont parfois contradictoires (chic et pas cher). Il faut les
pondérer selon les circonstances (logiciel critique / logiciel grand public). Il faut
aussi distinguer les systèmes sur mesure et les produits logiciels de grande
diffusion.
100%
50%
50 60 70 80 90 200
5.1 Rigueur
5.3. Modularité
5.4. Abstraction
Ceci requiert des efforts particuliers pour prévoir, faciliter et gérer ces
évolutions inévitables. Il faut par exemple :
Faire en sortie que les changements soient les plus localisés possibles
(bonne modularité),
Etre capable de gérer les multiples versions des modules et configurations
des versions des modules, constituant des versions du produit complet.
5.6. Généricité
6.1. Définitions
Implantation
Très vite,
Figure 3.1 Lependant les années
modèle primitif 70,
à phases
on s‟est aperçu qu‟un plus grand nombre d‟étapes étaient nécessaires
pour organiser le développement des applications complexes. Il faut en
particulier distinguer l‟analyse du „quoi faire ?‟ qui doit être validée par rapport
aux objectifs poursuivis et la conception du „comment faire ?, qui doit être
vérifiée pour sa cohérence et sa complétude. Le modèle en cascade (Fig. 3.2)
décrit cette succession (plus ou moins détaillée) d‟étapes ; sont représentées ici
huit étapes fondamentales.
Requirements analysis
Analyse des And specification
besoins
Conception
Design
du système
Programmation
Coding and et tests unitaires
unit testing
Intégration et
Integration and tests
system testing d‟intégration
Delivery Installation
Maintenance Exploitation
et
maintenance
Analyse des
besoins
Analyse du
système
Conception
du système
Programmation
et tests unitaires
Analyse des besoins ou analyse préalable : (cahier des charges + plan qualité).
Qualités fonctionnelles attendues en termes des services offerts,
Qualités non fonctionnelles attendues : efficacité, sûreté, sécurité, facilité
d‟utilisation, portabilité, etc.
Qualités attendues du procédé de développement (ex : procédures de
contrôle qualité).
Le cahier des charges peut inclure une partie destinée aux clients
(définition de ce que peuvent attendre les clients) et une partie destinée aux
concepteurs (spécification des besoins).
Modélisation du domaine,
Modélisation de l‟existant (éventuellement),
Définition d‟un modèle conceptuel (ou spécification conceptuelle),
Plan de validation.
Maintenance :
Maintenance corrective (ou curative),
Maintenance adaptative,
Maintenance perfective.
6.3. Le modèle en V
Chronologie
Orientation Maintenance
faisabilité
+ Préparation de la ……………
Validation
Cahier des Analyse des Tests
charges besoins – analyse d‟acceptation
du système
Système
Vérification
Conception Tests
Spécification architecturale d‟intégralité
architecturale Vérification Logiciel
Conception Tests unitaires
détaillée
Spécification
détaillée Module
Abstraction
Codage
Détermination Identification et
des objectifs, des résolution des
alternatives, des risques
contraintes Analyse
des risques
Série de prototypes
Plan du cycle Concept Besoins
de vie Conception
Plan du Validation détaillée
conception
développement
Validation et Tests
Plan des tests et vérification unitaires
de l‟intégration Intégration
Planification des Acceptation Développement, et
phases suivantes vérification/validation
Spirales
supplémentaires
éventuellement
(incréments)
1. Introduction
Elles sont très souples, conviennent pour tous les aspects, sont très
facilement communicables à des non spécialistes. Mais elles manquent de
structuration, de précision et sont difficiles à analyser. Des efforts peuvent être
faits pour les structures (spécifications standardisées) : chapitres, sections, items,
justifications („rationnel‟), etc.
Des langages semi formels spécialisés pour spécifier des systèmes ont
été proposés. Ils comportent des sections et champs prédéfinis, ce qui force à
une certaine structuration.
Certains utilisent aussi des langages de haut niveau comme des
„pseudo codes‟ pour décrire les fonctionnalités attendues.
Responsable Critère de
du projet sélection
Description
projet
Appel d‟offre
Proposition Lettre
d‟acceptation
Société de Lettre de refus
service
Proposition
Lettre d‟acceptation
Critères de
Sélection
PROPOSITIONS
PROJETS
Figure 2. Raffinement du DFD précédent (les flèches entrantes et sortantes doivent être les mêmes
Les DFD sont une notation semi formelle, car la sémantique des
fonctions n‟est pas spécifiée précisément (que signifie exactement
„Evaluation‟ ?), ni les aspects liés au contrôle (ou séquencement des opérations).
Pour ces raisons les DFD sont soit complétées par d‟autres
spécifications, soit étendus : flots de contrôle, tampons, etc. ils connaissent un
très grand succès pour spécifier les fonctions d‟un système à cause de leur
simplicité et de leur facilité de compréhension par des non informaticiens.
En attente Raccrocher
En tonalité
Délai
terminé
En numérotation Diffusion
Numéro incorrect message
Numéro correct
En connexion
En sonnerie
Appel décroche
Fin message
En communication
Appel raccroche
Déconnectée
Réel
Rel. Attribut
Attribut
X 0,1 Y 0,n
Au plus un Y X Y Ou ou plusieurs
Y
0,n Nom-ens
Resp-filière
enseignant 0,n
0,n
1,1 0,n
1,n
Sous-resp
Filière Resp-uv Intervenant
0,n
1,n 0,n Cycle 0,n
Num-fil
Num-cycle
Num-fil Inscr 0,n Num-cycle
1,1 0,n
1,n
Unité 0,n Equiv
Etudiant
0,n 1,n
Num-et 0,n
Resu def Num-cont
Nom-et Num-uv
Date-cont
0,n Nom-uv
Adr-et Moy 1,1
coeff
note Contrôle
0,n
Fig.10. un exemple de diagramme entités relations (identifiants en gras)
4. Conclusion
assemblages efficaces de telles techniques avec des guides pour les construire et
les valider.
Parler des techniques de spécifications est comme parler des langages
de programmation. Il n‟y a ni langage ni technique idéale, ni langage ni
technique permettant de tout faire. L‟informaticien doit avoir une culture assez
étendue des diverses techniques comme des diverses techniques comme des
divers langages.
Une méthode :
Propose une démarche, distinguant les étapes du développement dans le
cycle du vue du logiciel et exploitant au mieux les principes
fondamentaux : modularité, réduction de la complexité, réutilisation,
abstraction, etc.,
Propose des formalismes (langages) et des types de documents (modèles),
qui facilitent la communication, l‟organisation et la vérification,
Parmi les principaux objectifs des méthodes objets, on peut noter la volonté de :
Regrouper l‟analyse des données et des traitements,
Etablir un couplage explicite entre les concepts du monde réel et les
composants exécutables (« réduire la distance sémantique entre le langage
des concepteurs et celui des utilisateurs »),
Faciliter la réutilisation,
Simplifier les transformations entre le niveau conceptuel et l‟implantation.
2. UML
Les composants
La structuration logiciels
des objets Vue logique Vue implantation
Statique Statique
Diagrammes : Diagrammes :
classe, objet, composants
collaboration, séquence
Vue externe
Les fonctions du
Diagrammes :
système
Diagrammes : cas d‟utilisation Diagrammes :
état, activité déploiement
En résumé :
UML est une notation, pas une méthode.
UML est un langage de modélisation objet.
UML convient pour toutes les méthodes objets.
UML est dans le domaine public.
besoins). Ils constituent un fil conducteur pour le projet et la base pour les tests
fonctionnels (cf.Figure 2).
Cas d‟utilisation
réalise Vérifie
Programmeur Tester
Figure 2 : les cas d‟utilisation, fil conducteur du projet
Notations :
SYSTEME
communication
Acteur humain
Cas d‟utilisation
Acteur <<acteur>>
X
Acteur
Acteur système
Cas d‟utilisation
Y
Virement
Client distant par internet Client local
<<Etend>>
<<Inclut>> Virement
Identification
Une voiture
Essence = 30 litres Son état
Une voiture
Après un parcours de 100 km Couleur = Rouge
Poids = 979 kg
Puissance = 16 CV
Essence = 25 litres
Une voiture
Essence = 20 litres
Un objet
Un objet peut faire appel aux compétences d‟un autre objet par
invocation d‟une opération (ou „envoi de message). Les messages servent à
implanter les flots de données, les flots de contrôle, les événements, etc.
L‟état et le comportement sont liés :
-le comportement dépend de l‟état (cf. la pré condition de l‟opération) ; le
message peut être accepté ou refusé ;
-l‟état est modifié par le comportement (cf. la post condition de l‟opération).
Tout objet possède une identité interne (non modifiable) qui lui est
propre et qui le caractérise. L‟identité permet de distinguer tout objet de façon
non ambiguë, indépendamment de son état (de ses attributs). Les langages objets
utilisent des identifiants internes. Les identifiants et clés primaires des bases de
données sont inutiles en objet.
5. Les collaborations
Une application est une société d‟objets qui collaborent afin de réaliser
les fonctions de l‟application. Le comportement global d‟une application repose
donc sur la communication entre les objets qui la composent (échanges de
messages).
B
3:Z
2:Y
réalisation des cas d‟utilisation que pour spécifier de manière très détaillée la
dynamique d‟un ensemble d‟objets (appels de méthodes).
A B C
M1
M2
M3
M4
M5
M6
M7
M9
M8
temps M10
„ligne de vie‟
Le monde qui nous entoure est constitué de très nombreux objets. Pour
comprendre le monde, l‟être humain a tendance à regrouper les éléments qui se
ressemblent. Regrouper des objets suivant des critères de ressemblance s‟appelle
classer. Les humains ont classé les animaux, les plantes, les champignons, les
atomes, …
La classe est la description abstraite d‟un ensemble d‟objets. Elle peut
être vue comme la factorisation des éléments communs à un ensemble d‟objets.
Nom de classe
Attribut
Règles de visibilité
Opérateurs
+attribut public
Motocyclette #attribut protégé
-attribut privé
Couleur
Cylindrée Téléviseur
+opérateur publique ( )
Vitesse #opérateur protégée
maximale Modèle
-opérateur privée ( )
Démarrer ( ) Allumer
Accélérer ( ) Eteindre
Freiner ( ) Changer le programme( )
Régler le volume
Opération
(méthode)
publique
Classe
Etat Interface
Opération
(méthode)
privée
Exemple :
Animal
Carnivore Herbivore
Employé
Méthode abstraite
CalculerPaie( )
Mensualité A_la_tâche
Méthodes concrètes
CalculerPaie( ) CalculerPaie( )
Figure 13 : polymorphisme
L‟agrégation est une association qui décrit une relation d‟inclusion entre
une partie et un tout (l‟agrégat). Elle est réflexive, transitive, non symétrique. Si
la relation d‟agrégation est une composition (composant/composé avec des
durées de vie liées pour les objets), elle est symbolisée par un losange plein ;
sinon (pour des durées de vie indépendantes), elle est représenté par un losange
vide du coté de l‟agrégat.
* 1 1 1
Roue Moteur Carrosserie Arrêt
TarteAuxPommes Pomme
Une tarte aux pommes est de même nature qu‟une tarte. Une pomme
n‟est pas de même nature qu‟une tarte.
Autres concepts :
- Attributs d‟associations :
Boire
Buveur Vin
A_bu Est_bu
Date
Quantité
Note
Salle
1
Etudiant 2..* 1 Enseignant
Cours
Début
Fin
-Paquetage (sous modèle) : c‟est une notion qui peut apparaître dans beaucoup
de diagrammes pour spécifier le regroupement d‟éléments au sein d‟un sous
système (cas, classes, objets, composants, autres paquetages, …).
Paquetage
Figure 18 : un paquetage
Window_
window
Window ToFront ( )
{abstract} toBack
ToFront ( )
toBack
Mac_
window
ToFront ( )
toBack
-Interfaces : ce sont des classes ne contenant que des opérations abstraites ; elles
précisent les fonctionnalités que les classes qui les implantent doivent fournir.
8. Les diagrammes d’état
Etat initial B
A
B1
B2
Les composants sont des codes (sources, exécutables), des scripts, des
fichiers, des tables, etc.
EXERCICES
Exercice 1. Diagramme de contexte et diagramme de flots de données (DfD)
On considère la gestion d‟un bureau de localisation pour plusieurs
stations touristiques. Différents prestataires offrent des locations. Ils peuvent les
retirer tant qu‟aucune réservation définitive n‟est réalisée. Ils touchent 90 % du
prix de la location. Les clients adressent des demandes des renseignements. Le
bureau y répond par des propositions de location et d‟assurance annulation ou
une mise en attente. Le client peut alors refuser ou demander une réservation en
envoyant des arrhes et en souscrivant éventuellement l‟assurance annulation. Si
la location choisie est encore libre, elle est réservée, sinon la demande est mise
en attente. Après un délai de 8 jours, la réservation est confirmée de manière
définitive. En cas d‟annulation après ces 8 jours, un pourcentage est dû par le
client sauf s‟il a souscrit l‟assurance annulation. L‟annulation en cas de mise en
liste d‟attente est toujours possible sans frais
La facture est envoyée avant le début du séjour. Un rappel suit en cas de non
paiement. En cas de nouveau défaut de paiement le dossier est transmis au
contentieux.
Dessiner le diagramme de contexte et décomposez-le en un premier niveau de
DFD. Raffiner la gestion des réservations avec des DFD plus détaillés
capacité (en volume). Selon la taille du camion, une équipe plus ou moins
nombreuse de chauffeurs lui est assigné (de un à trois chauffeurs).
Exercice 6 : L’institut de formation – diagramme de classes
Un ordinateur est caractérisé par son numéro d‟inventaire, son adresse réseau
(adresse IP), son modèle, la date de son acquisition, la date de la prochaine
maintenance planifiée et le système d‟exploitation installé.
Sur chaque ordinateur est installé un ensemble de logiciels caractérisés par un
numéro de licence, un nom et une version.
Grâce à un système de mots de passe, chaque ordinateur peut être utilisé par
plusieurs employés mais, pour des raisons de sécurité des données, un employé
n‟a le droit d‟utiliser qu‟un seul ordinateur. Un employé est caractérisé par son
nom, son prénom et sa fonction dans l‟entreprise.
Les ordinateurs sont reliés à un certain nombre de périphériques en réseau
(imprimantes, scanners, etc.). Chaque périphérique est caractérisé par un numéro
d‟inventaire, son adresse IP, son type, son modèle, sa date d‟acquisition et la
date de la prochaine maintenance planifiée. Les périphériques pouvant servir à
plusieurs ordinateurs simultanément, un indice de priorité est affecté à chaque
ordinateur pour chaque périphérique auquel il est connecté.
Chaque ordinateur et chaque périphérique sont localisés dans un bureau donné.
Les bureaux sont caractérisés par un numéro de bureau et le numéro du bâtiment
dans lequel ils se trouvent. Un numéro de bureau est unique dans un bâtiment
donné.
Exercice 9
Cette étude de cas concerne un système simplifié de réservation de vols pour
une agence de voyages. Les interviews des experts métier auxquelles on a
procédé ont permis de résumer leur connaissance du domaine sous la forme des
phrases suivantes :
1. Des compagnies aériennes proposent différents vols.
2. Un vol est ouvert à la réservation et refermé sur ordre de la compagnie.
3. Un client peut réserver un ou plusieurs vols, pour des passagers différents.
4. Une réservation concerne un seul vol et un seul passager.
5. Une réservation peut être annulée ou confirmée.
6. Un vol a un aéroport de départ et un aéroport d‟arrivée.
7. Un vol a un jour et une heure de départ, et un jour et une heure d‟arrivée.
8. Un vol peut comporter des escales dans des aéroports.
9. Une escale a une heure d‟arrivée et une heure de départ.
10. Chaque aéroport dessert une ou plusieurs villes.
Déterminer le diagramme des classes modélisant le problème
Exercice 10
Cet exercice concerne un système simplifié de caisse enregistreuse de
supermarché. Le déroulement normal d‟utilisation de la caisse est le suivant :
Un aéroport toulousain désire gérer les compagnies, leurs avions et les vols
affrétés. Une compagnie est caractérisée par un code et un nom (comp,
nomComp). Chaque avion est désigné par une immatriculation
(immatriculation), un type (typeAvion), une capacité (capacite). Un avion est la
propriété d‟une compagnie. Un avion peut être affrété par une compagnie à
différentes dates (dateVol), même plusieurs fois par jour par différentes
compagnies. Pour chaque affrètement il faudra stocker le nombre de passagers
transportés (nbPax) et le coût du vol pour la compagnie (cout). On ne pose pas
de contrainte, donc, chaque compagnie peut affréter n‟importe quel avion à
n‟importe quel moment. On suppose toutefois qu‟une compagnie ne peut pas
affréter le même avion plusieurs fois dans la même journée.
L‟aéroport décide de stocker les caractéristiques de chaque type d‟avion : le
code de la désignation commerciale, le nombre maximum de passagers (npMax)
et la désignation commerciale (nomAvion).
Exemple : l‟A320 peut transporter au maximum 180 passagers et se dénomme «
Airbus A320 ».