IFT 3901 Analyse et Conception des Logicielspift3901/Slides/A05-S07... · 2005. 11. 30. ·...
Transcript of IFT 3901 Analyse et Conception des Logicielspift3901/Slides/A05-S07... · 2005. 11. 30. ·...
1
© Petko Valtchev Université de Montréal Novembre 2005 1
IFT 3901Analyse et Conception
des Logiciels
Automne 2005Petko Valtchev
© Petko Valtchev Université de Montréal Novembre 2005 2
Analyse et Conception
7. Entre l’analyseet la conception:DSS & contrats
2
© Petko Valtchev Université de Montréal Novembre 2005 3
DSS & contrats Sommaire
Les diagrammes de séquence système
Opérations et événements système
Contrat des opérations système
Pré- et post-conditions
© Petko Valtchev Université de Montréal Novembre 2005 4
DSS & contrats Origines: les CdU
Les CdU décrivent les interactions acteurs - système:
l’acteur génère un événement externe interprété comme une requête,
le système exécute une opération en réponse…
Ce patron comportemental est transcrit sous forme d’un diagramme deséquence particulier, le DS système:
correspond à un scénario,
démontre
les événements externes générés,
leur enchaînement,
les opérations qui sont exécutées en réponse (vue externe).
3
© Petko Valtchev Université de Montréal Novembre 2005 5
DSS & contrats DSS (exemple)
SI-Fournisseur.com
choisir_option_commande ()
login (ID,passwd)
afficher_menu ()
afficher_produits_disponibles()
[i:=1..n] choisir_produit (code_produit)
afficher_état_commande ()
demander_calcul_prix_total ()
afficher_total()
:Client
effectuer_adresse ()
confirmer_commande_complète ()
Scénario “ Commande produits”
1. Le client s’identifie.2. Le système affiche les options.
3. Le client choisi “commande”.4. Le système affiche les produitsdsiponibles.
5. Le client choisi un ensemblede produits.
6. Après chaque choix, lesystème affiche l’état de lacommande.
7. Le client demande le prix total.8. …
© Petko Valtchev Université de Montréal Novembre 2005 6
DSS & contrats DSS: Motivation
En quoi les DSS facilitent la conception du système:
le comportement d’un système se résume en le traitement de tous les
événements externes,
plus spécifiquement, le but est de concevoir le traitement des:
événements externes
événements de l’horloge
erreurs et exceptions
Avant la conception proprement dite, il est important de caractériser lecomportement du système comme une « boîte noire »:
Décrire ce qu’il fait et non
Comment il le fait
4
© Petko Valtchev Université de Montréal Novembre 2005 7
DSS & contrats DSS dans le contexte
© Petko Valtchev Université de Montréal Novembre 2005 8
DSS & contrats Opérations système (OS)
De fois, une description plus détaillée de l’effet d’une OS peut s’avérerutile afin de faciliter la conception:
on décrit son effet sur l’état du système,
en tant qu’approximation du design réel du système, on utilise le
modèle du domaine (couche domaine)
celui-ci couvre la « couche domaine » de l’architecture du système
La description est structurée sous forme d’un contrat, une liste de
facettes dont les principales sont:
Pré-condition: contraintes qui doivent être satisfaites pour que l’OS
puisse s’exécuter normalement
Post-condition: modifications sur l’état de la couche domaine
5
© Petko Valtchev Université de Montréal Novembre 2005 9
DSS & contrats Contrats OS
Post-conditions: modifications de type
Création / destruction d’instances de classes,
Changement des valeurs d’attributs
Établissement / destruction de liens d’associations
Principe fondateur: les post-conditions résument ce qui aura changéentre le moment avant le déclenchement de l’OS et sa terminaison
trouver les « 9 différences »…
© Petko Valtchev Université de Montréal Novembre 2005 10
DSS & contrats Forme structurée (gabarit)
Post-conditions:
Opération « Initiation commande »: un nouvel objet de type Coomande est
crée et l’objet représentant le client lui est associé.
Post-conditions: un nouvel objet de type LigneCommande est créé
il est associé à l’objet Commande par la création d’un lien
la valeur de l’attribut quantité est positionnée
6
© Petko Valtchev Université de Montréal Novembre 2005 11
DSS & contrats DSS + contrats (exemple)
eBay.com
choisir_option_achat ()
login ()
afficher_menu ()
afficher_produits_disponibles()
[i:=1..n] choisir_produit (code_produit)
afficher_état_commande ()rectifier_disponibilité_produit()
demander_calcul_prix_total ()
afficher_total()
:Client
ajouter_adresse ()
Opération « Initiation commande »: unnouvel objet de type Coomande est crée etl’objet représentant le client lui est associé.
Opération « Calcul prix » : L’ensembledes produits de la commande est parcouruet les prix respectifs sont cumulés. Lestaxes sont calculées en fonction de lataxation locale, puis les frais de livraisonsont ajoutés.
confirmer_commande_complete ()
Opération « Ajout d’un produit » :
???
initier_commande()
© Petko Valtchev Université de Montréal Novembre 2005 12
DSS & contrats Gabarits (suite)
un nouvel objet de type LigneCommande est créé
il est associé à l’objet Commande (création d’un lien)
la valeur de l’attribut quantité est positionnée
Post-condition:
Une commande est en cours et l’objet Commande est déjà
créé et connuPré-condition:
CdU“Commande produits”Références croisées:
“Ajout d’un produit”Opération:
7
© Petko Valtchev Université de Montréal Novembre 2005 13
DSS & contrats Contrats, le contexte