Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
Objectifs du cours
Validité
Efficacité
Ergonomie
Facilité d’apprentissage
Fiabilité dans le temps
Sécurité
Intégrité
Modularité
Réutilisabilité
Lisibilité
Clarté Facilité d’extension et de maintenance
Portabilité
Compatibilité
Testabilité
Crise du logiciel
Exemples d’abandons
Exemple de bug
Il s’agit de :
Décorréler les problèmes pour n’en traiter qu’un seul à la fois;
Simplifier les problèmes (temporairement) pour aborder leur
complexité progressivement.
Exemple:
Comment créer dynamiquement une page internet pour visualiser et
modifier le contenu d’une base donnée sans la corrompre ?
Décomposition en trois composants :
Modèle pour gérer le stockage des données.
Vue pour formater les données.
Contrôleur pour n’autoriser que les modifications correctes.
Principe 2 — la modularité
Analyse des
besoins
Besoins du Cahier des charges
client ( + manuel d'utilisation
préliminaire)
Analyse des besoins
Faisabilité
Spécification d’interface
décrit les interfaces du logiciel avec le monde
extérieur : homme (IHM), autres logiciel
(Middleware), machines
Spécification des besoins: Spécification
29
technique
Spécification technique :(Étude de l’existant)
Moyens d’accès (local, distant, Internet, …)
Temps de réponse acceptable (gestion des GAB, gestion
des emplois de temps, …)
Plateforme (Windows, Unix, …)
Quantité d’informations à stocker (choix du SGBDR, …)
Organisation du projet
30
Plusieurs étapes :
Analyse des coûts: estimation du prix du projet
Planification: calendrier pour le développement (jours
ouvrables, jours fériés, nombre d’heures de travail par
jours, …)
Répartition des tâches: distribuer les tâches et les sous
tâches (affectation des ressources aux tâches)
Spécification
Spécificatio
n
Cahier des Cahier des
charges charges
fonctionnel
Conception
Conceptio
n
Cahier des Dossier de
charges conception
fonctionnel
Programmation
Programmatio
n
Dossier de Code documenté
conception + manuel d'utilisation
Validation et vérification
Objectifs :
Validation : assurer que les besoins du client sont satisfaits (au niveau
de la spécification, du produit fini...)
Concevoir le bon logiciel.
Vérification : assurer que le logiciel satisfait sa spécification.
Concevoir le logiciel correctement.
Validation
Cahier des
Besoins charges Logicie
du fonctionne l
client l
Vérificatio
n
Validation et vérification
36
Types de maintenance :
Avantages:
simple et logique
facilité de planification des étapes et des délais
adapté à des petits systèmes
Cycle de vie en cascade
Conception Dossier de
conception détaill
ée
Implémentation Code documenté +
Rapport de tests unitaire
s
Vérification
Validation Rapport de validatio
n
Livraison
et maintenan
ce
Cycle de vie en cascade
La conception
Redévelopper un partie du logiciel
Retester le produit
Critiques:Résumé
Aucune validation intermédiaire
Impossibilité de suivre le déroulement du projet, donc de
planifier un travail en équipe;
Augmentation des risques car la validation est tardive :
erreur d’analyse ou de conception très coûteuse.
Solution limitée aux petits problèmes
Risques bien délimités dès le début du projet;
Projet court avec peu de participants.
Ce modèle est inadapté au développement de systèmes
dont la spécification est difficile à formuler a priori.
Cycle de vie en V
Avantages:
facile à comprendre
segmente clairement le projet
Principe :
Développement rapide d'un prototype avec le client pour valider
ses besoins;
Écriture de la spécification à partir du prototype, puis processus
de développement linéaire.
Cahier
Besoins des charges
Prototype Logiciel
du client fonctionnel
Avantages :
Capture des besoins continue et évolutive;
Détection des erreurs;
Etat d’avancement connecté à la réalité;
Implication des clients/utilisateurs;
Inconvénients :
Explosion des besoins;
Difficile définition de la dimension d’un incrément ;
Modèle en spirale
Le modèle en spirale (spiral model) est un modèle de Cycle de développement
logiciel qui reprend les différentes étapes du cycle en V. Par l'implémentation de
versions successives, le cycle recommence en proposant un produit de plus en
plus complet et dur.
Modèles de processus- Conclusion
UML est né en octobre 1994 chez Rational Software Corporation à l’initiative de G. Booch et
de J. Rumbaugh. UML 1.1 a été standardisé par l’OMG (Object Management Group) le 17
Remarques
La même personne physique peut jouer le rôle de plusieurs
acteurs (Chef d’agence est un client de la banque).
D’autres part, plusieurs personnes peuvent jouer le même rôle,
et donc agir comme un même acteur (plusieurs personnes
peuvent jouer le rôle d’administrateur).
Acteurs
Nom Acteur
Classe stéréotypée
<<Acteur>>
Nom Acteur
Acteurs
<<acteur>>
Secrétaire Site Web de l'établissement
Etudiant
Système de Gestion
Scolaire
<<acteur>>
Imprimante
Acteurs
du point de vue système on distingue deux types :
Acteurs principaux : utilisent les fonctions principales du
système. Par exemple, le client pour un distributeur de billets.
Acteurs secondaires : effectuent des tâches administratives ou
de maintenance. Par exemple, la personne qui recharge la
caisse contenue dans le distributeur.
Acteurs
Acteur spécialisé
Cas d'utilisation
<<include>>
A
Relation d'inclusion
Les cas d'utilisation "Déposer de
l'argent", "Retirer de l'argent",
"Effectuer des virements" et "Consulter
Retirer de l'argent
solde" incorporent de façon explicite le
cas d'utilisation "S'authentifier", à un
endroit spécifié dans leurs
<<include>> enchaînements.
Déposer de l'argent
<<include>>
S'authentifier
<<include>>
<<include>>
Consulter solde
Relation d'inclusion
Résumé
Une instance du cas source inclut obligatoirement le
comportement décrit par le cas d’utilisation destination
Permet de décomposer des comportements et de définir les
comportements partagées entre plusieurs cas d’utilisation
▬► Factoriser
Relation d'extension
Exemple :
Au moment de l'authentification, il se peut que le guichet
retient la carte.
S'authentifier
Retenir la carte
<<extend>>
Relations d’inclusion VS d'extension
Reserver voyage
Résumé
Les cas peuvent être structurées par des relations :
A inclut B : le cas A inclut obligatoirement le
comportement définit par le cas B; permet de factoriser
des fonctionnalités partagées
A étend B : le cas A est une extension optionnelle du cas B
à un certain point de son exécution.
A généralise B : le cas B est un cas particulier du cas A.
Relations entre cas d’utilisation : Exemple
Cl i ent
<<i nclude>>
<<i nclude>>
T echni cien
Réparer
É tapes de construction du diagramme des cas
d'utilisation
Pour modéliser le diagramme des cas d'utilisation, il faut :
Identifier les acteurs qui entourent le système. Certains acteurs utilisent le
système pour accomplir des tâches, d'autres effectuent des tâches de
maintenance ou d'administration.
Organiser les acteurs selon une hiérarchisation de généralisation/spécialisation
Structurer les cas d'utilisation pour faire apparaître les comportement partagés
(relation d'inclusion), les cas particuliers (généralisation/spécialisation) ou
options (relation d'extension)
Etude de cas(1)
On souhaite développer une application informatique qui permet la gestion des emprunts
des Cd-rom contenant des jeux vidéo pour les enfants.
Un employé s’occupe d’enregistrer les emprunts des adhérents qui veulent emprunter les
cd-rom. L’employé doit d’abord s’authentifier pour effectuer cette opération. Chaque cd
emprunté doit être rendu à l’employé de la biblio après une durée de 3 jours. L’adhérent
donc peut réserver des cd-rom contenant des jeux, chaque réservation doit mentionner
l’emprunteur, le jeu et la date de réservation. L’adhérent est averti quand le jeu (cd) revient
en rayon.
L’employé peut aussi organiser des événements, pour se faire il doit donner les
informations suivantes : le nombre minimal et maximal des participants, les jeux à tester, la
date de l’événement et l’heure de début de l’événement.
L’adhérent qui souhaite participer à un événement peut s’inscrire à condition qu’il y ait
encore de la place disponible. Pour se faire il doit saisir un mot de passe et login.
Si l’adhérent trouve une place disponible alors il peut payer sa cotisation en ligne par un
système de paiement externe.
Etude de cas (2)
Description des cas d’utilisation
Scénario alternatif SA1: Le code est erroné pour la première ou la deuxième fois.
SA1 commence au point 5 du scénario nominale.
Le DAB indique que le code est erroné.
Le DAB enregistre l’échec.
Le scénario reprend au point 3 du scénario nominal.
Scénario alternatif SA2: Le montant demandé est trop élevé.
SA2 commence au point 10 du scénario nominale.
Le DAB affiche le montant max et demande au Porteur de carte de ressaisir un montant.
Le scénario reprend au point 9 du scénario nominal.
Scénario alternatif SA3: Le ticket est refusé.
SA1 commence au point 13 du scénario nominale.
14) L’utilisateur refuse le ticket.
15) Le DAB délivre les billets.
16) L’utilisateur prend les billets.
Description textuelle des cas d'utilisation(exemple)
-Scénarios d’exception:
Scénario d’exception SE1: Carte non valide.
SE1 commence au point 2 du scénario nominal.
Le DAB Indique que la carte n’est pas valide restitue la carte et met fin au cas.
Scénario d’exception SE2: Le code est erroné pour la troisième fois.
SE2 commence au point 5 du scénario nominal.
Le DAB Indique que le code est erroné pour la troisième fois, confisque la carte et met fin
au cas.
Scénario d’exception SE3: Retrait non autorisé.
SE3 commence au point 6 du scénario nominal.
Le DAB Indique que tout retrait est impossible, restitue la carte et met fin au cas.
Scénario d’exception SE4: Carte non reprise.
SE4 commence au point 11 du scénario nominal.
Au bout de 30s, le DAB confisque la carte et met fin au cas.
Scénario d’exception SE5: Billets non pris.
SE5 commence au point 15 du scénario nominal.
Au bout de 30s, le DAB reprend les billets et met fin au cas.
Scénario d’exception SE6: Annulation de la transaction.
SE6 peut démarrer entre les points 4 et 9 du scénario nominal.
Le DAB éjecte la carte et met fin au cas.
Description textuelle des cas d'utilisation(exemple)
- Post-conditions: Les détails de la transaction doivent être enregistrés (montant, numéro
carte, date…) aussi bien en cas de succès que d’échec.
- Partie 3 : Exigences non fonctionnelles: La saisie du code confidentiel ne doit pas faire
apparaître le code à l’écran. Le compte du client ne doit pas être débité tant que le billets
n’ont pas été distribués.
Description textuelle des cas d'utilisation(exercice)
fonctionnement d’un distributeur automatique de cassettes vidéo
Une personne souhaitant utiliser le distributeur doit avoir une carte magnétique spéciale.
Les cartes sont disponibles au magasin qui gère le distributeur. Elles sont créditées d’un
certain montant en euros et rechargeables au magasin. Le prix de la location est fixé par
tranches de 6 heures (1 euro par tranche).
le client introduit sa carte ; si le crédit est supérieur ou égal à 1 euro, le client est autorisé à
louer une cassette (il est invité à aller recharger sa carte au magasin sinon) ; le client choisit
une cassette et part avec ; quand il la ramène, il l’introduit dans le distributeur puis insère sa
carte ; celle-ci est alors débitée ; si le montant du débit excède le crédit de la carte, le client
est invité à régulariser sa situation au magasin et le système mémorise le fait qu’il est
débiteur ; la gestion des comptes débiteurs est prise en charge par le personnel du magasin.
On ne s’intéresse ici qu’à la location des cassettes, et non à la gestion du distributeur par le
personnel du magasin (ce qui exclut la gestion du stock des cassettes).
Rubriques optionnelles
Un objet est une entité aux frontières bien définies, possédant une
identité et encapsulant un état et un comportement. Un objet est une
instance (ou occurrence) d’une classe.
Une classe peut avoir des attributs calculés, c'est-à-dire que leurs
valeurs sont proposées au travers d’une fonction utilisant les autres
attributs précédemment exprimés. Un tel attribut possède un nom
précédé du signe « / » et suivi d’une contrainte permettant de le
calculer.
Syntaxe des attributs
L’attribut doit être inscrit en minuscule mais s’il s’agit d’un nom composé la première lettre de
chaque mot peut être mise en majuscule, à l’exception de la première lettre du premier mot :
nomDeLAttribut. La Syntaxe pour un attribut est :
Exemples :
- i : int pour un attribut privé
+ pp : PointPlan pour un attribut public
tabI : int[*] pour un tableau d’entiers de taille quelconque et à la visibilité non définie
tabPP : PointPlans[4] pour un tableau de 4 points exactement et à la visibilité non définie
x : float = 0.0 pour un nombre à virgule initialisé à 0 et à la visibilité non définie
Syntaxe des méthodes
Les règles d’écriture du nom, la spécification de la visibilité et du type de retour s’effectue de la
même manière que pour un attribut.
Syntaxe Pour une méthode, la syntaxe est :
Paramètres : type primitifs ou complexe de chaque paramètre, séparés par une virgule,
éventuellement avec leur nom
Type : void / boolean / short / int / char / float / double (types primitifs) / autre classe ( type
complexe).
Exemple : une personne peut posséder plusieurs voitures (entre zéro et un nombre
quelconque) ; une voiture est possédée par une seule personne.
Multiplicité (cardinalité)
La multiplicité précise le nombre possible d’instances reliées à l’autre instance dans
la relation.
Illustration
• Lecture de la multiplicité coté Client : « Un Compte est la propriété d’un seul Client
(rôle ‘propriétaire’ dans la relation) ». On part toujours de la classe opposée,
considérée au singulier (« Un Compte »), pour trouver le nb possible d’objets reliés à
cette unique instance.
• Lecture de la multiplicité coté Compte : « Un Client est propriétaire d’un ou plusieurs
Compte(s) ».
Multiplicités
Une voiture est achetée par une Une personne peut acheter
et une seule personne 0 ou n voitures
Navigabilité
Par défaut une association est navigable dans les deux sens
Restriction de la navigabilité
Le service de contravention Navigable
est associé à une ou plusieurs
voiture(s)
La voiture ne connaît pas service
de contravention
Relation de dépendance
Une dépendance peut s’interpréter comme une relation de type «utilise un ». Elle est
habituellement utilisée lorsqu'une classe utilise un objet d'une autre classe comme argument
dans la signature d’une méthode ou alors lorsque l'objet de l'autre classe est créé à l'intérieur
de la méthode. Dans les deux cas la durée de vie de l'objet est très courte, elle correspond à la
durée d'exécution de la méthode.
Notation : Elle est représentée par un trait discontinu orienté, reliant les deux classes. La
dépendance est souvent stéréotypée (« use ») pour mieux expliciter le lien sémantique entre
les éléments du modèle.
Relation d’associations
• L’association signifie qu’une classe contiendra une référence (ou un pointeur) de l'objet de
la classe associée sous la forme d’un attribut.
• L’association est représentée par un simple trait continu, reliant les deux classes. Le fait
que deux instances soient ainsi liées permet la navigation d’une instance vers l’autre, et
vice versa (chaque classe possède un attribut qui fait référence à l’autre classe).
Relation d’associations: détailler l’association
Nous pouvons détailler l’association en indiquant :
• Le nom de l’association : L’association peut être orné d’un texte, avec un éventuel sens de
lecture, qui permet de nous informer de l’intérêt de cette relation. Nous rajoutons une
phrase courte permettant de préciser le contexte de cette association. Le nom d’une
association doit respecter les conventions de nommage des classeurs : commencer par une
lettre majuscule.
Relation d’associations: détailler l’association
Le rôle : Chaque extrémité d’une association peut être nommée. Ce nom est appelé rôle et
indique la manière dont l’objet est vu de l’autre coté de l’association. Lorsqu’un objet A est lié
à un autre objet B par une association, cela se traduit souvent par un attribut supplémentaire
dans A qui portera le nom du rôle B. (et inversement).
Relation d’associations: Association réflexives
Une association qui lie une classe avec elle-même est une association réflexive
Relation d’associations: Contraintes et associations
Relation n-aire
Une association qui lie plus de 2 classes entre elles, est une association n-aire.
L’association n-aire se représente par un losange d’où part un trait allant à chaque
classe. L’association n-aire est imprécise, difficile à interpréter et souvent source
d’erreur, elle est donc très peu utilisée.
Agrégat
Propriétés de l’agrégation
La suppression de A n’implique pas la suppression de B
L'élément agrégé peut être partagé
Exemples :
L’enseignant est un composant
d’une (ou plusieurs) équipe de
recherche d’un seul département
Exemple:
« Une présentation PowerPoint est composé de transparents »
Principe
classe dérivée contient les attributs et les méthodes de sa superclasse
Spécialisation Généralisation
étendre les propriétés factoriser les propriétés
d'une classe, sous groupe de classes sous
forme de sous-classes forme de super-classe
Agrégation
final class Car {
Avec l'agrégation, la voiture remplit également
private Engine engine; ses fonctions à travers un moteur, mais le moteur
n'est pas toujours une partie interne de la
void setEngine(Engine engine) {
this.engine = engine; voiture. Les moteurs peuvent être échangés, ou
} même complètement enlevé. Pas seulement ça,
void move() {
mais le monde extérieur peut encore avoir une
if (engine != null) référence au moteur, et bricoler avec lui, qu'il soit
engine.work(); dans la voiture ou pas.
}
}
Exercices
Exercice 1:
Exercice 2:
Exercice 3:
Dans une société de transport, on voudrait gérer les bus de ramassage scolaire et les
conducteurs. Un lycéen est un enfant, il est caractérisé par son nom, son âge et son
sexe. Les informations qui caractérisent le conducteur sont les mêmes que pour le
lycéen, avec en plus le numéro de son permis. Quant au bus, on a besoin de
connaître son numéro d’immatriculation, sa date de mise en service, nombre
d’années de service, et le poids total.
Un bus est composé d’une carrosserie (poids, couleur), de 6 roues (pression,
diamètre), de plusieurs sièges (couleur) pour passagers, plusieurs vitres (épaisseur,
poids).
Exercice 4:
Un hôtel est composé d'au moins deux chambres. Chaque chambre dispose d'une
salle d'eau : douche ou bien baignoire. Un hôtel héberge des personnes. Il peut
employer du personnel et il est impérativement dirigé par un directeur. On ne
connaît que le nom et le prénom des employés, des directeurs et des occupants.
Certaines personnes sont des enfants et d'autres des adultes (faire travailler des
enfants est interdit). Un hôtel a les caractéristiques suivantes : une adresse, un
nombre de pièces et une catégorie. Une chambre est caractérisée par le nombre et
de lits qu'elle contient, son prix et son numéro. On veut pouvoir savoir qui occupe
quelle chambre à quelle date. Pour chaque jour de l'année, on veut pouvoir calculer
le loyer de chaque chambre en fonction de son prix et de son occupation (le loyer est
nul si la chambre est inoccupée). La somme de ces loyers permet de calculer le
chiffre d'affaires de l'hôtel entre deux dates.
La notation des diagrammes d’objets est dérivée de celle des diagrammes
de classes.
Résumé diagramme d’objet
Remarques:
Le lien entre les objets est dynamique: il existe si un lien entre les
classes existe déjà
Pas de multiplicité
Comment modéliser des instances de classe en UML ?
Exemple :
Soit le diagramme de classe suivant :
Comment modéliser des instances de classe en UML ?
Exemple 2 :
Considérant le diagramme de classes suivant:
Comment modéliser des instances de classe en UML ?
Exemple 3:
Considérant le diagramme de classes suivant:
Comment modéliser des instances de classe en UML ?
Exemple 3:
Voici un exemple de diagramme d’objets pour le diagramme de
classes précédent :
Cas d’utilisation :
Représentation
Réprésenter par une bande verticale le long de la ligne de vie de l’objet.
Événementsetmessages
Les signaux sont des objets dont la classe est stéréotypée signal et dont les
attributs (porteurs d’information) correspondent aux paramètres du
message.
Messages de retour
Notations
loop(valeur) est équivalent à loop(valeur, valeur). loop
est équivalent à loop(0,*), où * signifie illimité.
Opérateur loop : exemple
Il est utilisé pour représenter des interactions ayant lieu en parallèle. Les
interactions des différents opérandes (les deux branches de notre opérateur ci-
dessous) peuvent donc se mélanger, s’intercaler, dans la mesure où l’ordre
imposé dans chaque opérande est respecté.
Section critique : Critical
Ce fragment doit être terminé pour qu’une autre unité d’exécution puisse
s’exécuter.
On dit que l’opérateur impose un traitement atomique des interactions qu’il
contient.
Par exemple, si une opération d() est incluse dans la région crique et appelée,
aucune autre opération ne peut être appelée jusqu’à ce que d() soit terminée.
Section critique : Critical
Diagrammes de séquence : polymorphisme
Il représente les différents états (situations) dans lesquels peut se trouver la machine (ou
l’objet) ainsi que la façon dont cette machine (ou l'objet) passe d’un état à l’autre en
réponse à des événements.
Ex : Le télérupteur
Le télérupteur est un appareil qui permet de commander des points d'éclairage à partir
d’autant d’endroits que nous désirons via des boutons poussoirs (Un appui sur l’un des
boutons poussoirs provoque le changement d’état du contact qui aliment les lampes).
Le télérupteur possède deux états possibles (contact fermé ou contact ouvert). L’appui sur l’un
des boutons poussoirs ne permet pas de déterminer l’état du contact suite à cet événement.
Si le contact était fermé, il s’ouvrira et s’il était ouvert, il se fermera. Un même événement
(l’appui sur un BP) provoque des réactions différentes en fonction de l’état du télérupteur au
moment de l’événement (état antérieur).
Diagramme d’états-transitions
Un objet peut passer par une série d'états pendant sa durée de vie. Un état de l'objet
correspond à un moment de son cycle de vie.
Pendant que l’objet se trouve dans un état, il peut se contenter d'attendre un signal
provenant d'autres objets. Il est alors inactif. Il peut également être actif et réaliser une
activité. Une activité est l'exécution d'une série de méthodes et d'interactions avec
d'autres objets.
L'ensemble des états du cycle de vie d'un objet contient un état initial. Celui-ci correspond
à l'état de l'objet juste après sa création (défini par l'un des constructeurs de l'objet). Il
peut également contenir un ou plusieurs états finaux. Ceux-ci correspondent à une phase
de destruction de l'objet. Il arrive également qu'il n'y ait pas d'état final car un objet peut
ne jamais être détruit.
Représentation du diagramme états-transitions
Etat :
Un état est une situation stable qui possède une certaine durée pendant laquelle un objet exécute
une activité ou attend un événement.
- Un état est représenté par un rectangle arrondi contenant son nom.
- L’état initial est représenté par un point noir (état dans lequel il se trouve lors de sa création).
- Un état final correspond à une étape où l'objet n'est plus nécessaire dans le système et où il est
détruit. Tous les objets n'ont pas d'état final. C'est notamment le cas des objets permanents dans
le système. L’état final se représente par un point entouré d’un cercle.
Représentation du diagramme états-transitions
Evénement:
Un événement est un fait qui déclenche le changement d'état, qui fait donc
passer un objet d’un état à un autre état (désactivation d’un état et
activation de l'état suivant). Il est lié à la réception d'un signal (d'un
message) par l'objet, demandé généralement par un autre objet. Un
événement se produit à un instant précis et est dépourvu de durée. Quand
un événement est reçu, une transition peut être déclenchée et faire basculer
l'objet dans un nouvel état.
Représentation du diagramme états-transitions
Type d’événements:
nom_événemen
t
ou Différents
nom_événement(paramètre1 ;paramêt niveaux
re2…)
ou de
précision
nom_événement(paramètre1 :type-
paramêtre1 ;paramêtre2 :type_paramêtre2…)
Les signaux sont déclarés dans le diagramme de classes de la même manière qu’une classe mais
en ajoutant le stéréotype <> au dessus du nom. Un signal peut aussi être déclaré de façon
textuelle.
Représentation du diagramme états-transitions
exemple : when(date=17/12/2010)
exemple : after(10secondes)
Représentation du diagramme états-transitions
Transitions
transition externe : Une transition définit la réponse d'un objet à l'arrivée
d'un événement. Elle indique qu'un objet qui se trouve dans un état peut
« transiter » vers un autre état en exécutant éventuellement certaines
activités, si un événement déclencheur se produit et qu'une condition de
garde est vérifiée.
Syntaxe d'une transition externe : Une transition externe est une
transition qui modifie l'état actif. Il s'agit du type de transition le plus
répandu. Une transition entre deux états est représentée par un trait
droit fléché allant de l'état source vers l'état cible. L'événement qui
détermine le franchissement de la transition est indiqué sous forme de
texte. Si la transition est automatique, aucun événement n'est spécifié.
Représentation du diagramme états-transitions
Transitions(externe suite)
Une transition n’a pas de durée, elle est franchie instantanément (on
dit qu’elle est déclenchée).
La structure de l'événement correspondant aux détails de la transition
sont précisés au moyen de la syntaxe suivante :
déclencheur [garde] / effet (chacun de ces éléments est facultatif)
déclencheur : nom de l’événement qui provoque le franchissement de la transition.
garde : condition de garde [entre crochets]. Il est possible d'associer une condition à
une transition, qui est alors appelée condition de garde. Pour que la transition soit
franchie, il faut que la condition soit remplie en plus de la réception de l'événement
associé, si celui-ci existe.
effet : spécifie une activité à effectuer lors du déclenchement (nom de l’activité
précédés de /). Une activité est une série d'actions. Une action consiste à affecter une
valeur à un attribut, créer ou détruire un objet, effectuer une opération (lancer une
méthode), envoyer un signal à un autre objet ou à soi-même (Si c’est le cas, le nom
du signal est précédé de ^), etc.
Représentation du diagramme états-transitions
Transitions
Transition interne : Les états que nous avons vus jusqu’à maintenant étaient
relativement simples, ils n’effectuaient qu’une seule activité. Nous pouvons
avoir des états qui effectuent plusieurs activités successivement ou en
parallèle. L’enchaînement de ces activités à l’intérieur d’un même état peut
être spécifié grâce à des transitions internes. La syntaxe d’une transition
interne est la même que celle d’une transition externe :
déclencheur [garde] / effet
Les transitions internes s’écrivent à l’intérieur de l’état, séparé du nom de l’état par un
trait.
Représentation du diagramme états-transitions
Point de choix
Il est possible de représenter des alternatives pour le franchissement d'une
transition en utilisant des pseudo-états particuliers : les points de jonction et
les points de décision.
a) Point de jonction : Les points de jonction sont représentés par un cercle
plein : Ils permettent à plusieurs transitions d’avoir une partie commune en
partageant des segments de transition. L’utilisation de points de jonction a
pour but de rendre la notation des transitions alternatives plus lisible.
Représentation du diagramme états-transitions
Point de choix
a) Point de jonction(suite)
Représentation du diagramme états-transitions
Point de décision :
b) Les points de décision sont représentés par des losanges :
Généralisation d’états:
e1 AB
A B e1
A B
e2 e2
C e2
C
Représentation du diagramme états-transitions
ETATS COMPOSITES:
Vivant
mariable
Naissance Mariage [âge légal
Célibataire atteint]
Marié
Décès conjoint
Veuf
Divorce
Divorcé
Décès
Les processus
agiles -
SCRUM
Contraintes d'un projet
Les projets informatiques présentent, comme tous les
projets, trois contraintes caractéristiques :
périmètre
- Le périmètre fonctionnel (Scope)
- Les délais (Schedule)
- Les coûts (Budget)
coûts délais
Introduction
Qu'est ce que l'agilité
La capacité au changement,
Itératif
Incrémental
Adaptatif
Introduction
Démarche incrémentale
Ceci permet d'avancer en ayant à chaque étape une bonne vision du résultat final.
Aux différentes étapes, on dispose d'une partie utilisable.
Introduction
La méthode Agile est adaptative
Développement,
Evaluation Livraison
Livraison,
du système de la version
tests
Le "package" Scrum
Scrum est considéré comme un cadre ou « framework » de gestion de projet. Ce cadre est
constitué d'une définition des rôles, de réunions et d'artefacts.
Scrum définit 3 rôles :
•Revue de Sprint : au cours de cette réunion qui a lieu à la fin du sprint, l'équipe de
développement présente les fonctionnalités terminées au cours du sprint et collecte les
feedbacks du Product Owner et des utilisateurs finaux.
Références
1 Pascal Roques, UML 2 par la pratique: études de cas et exercices
corrigés, Groupe Eyrolles.
2 Xavier Blanc Isabelle Mounier, UML 2 pour les développeurs: Cours
avec exercices corrigés, Groupe Eyrolles, Code éditeur : G12029 •
ISBN : 2-212-12029-X.
3 Pierre Gérard, Introduction à UML 2: Modélisation Orientée Objet de
Systèmes Logiciels, Cours DUT Informatique S2D, Université de Paris 13
IUT Villetaneuse.
4 G. BOOCH, J. RUMBAUGH et Y. JACOBSON, Le guide de
l’utilisateur UML , (Eyrolles, 2000).
5 P. A. MULLER et N. GAERTNER, Modélisation objet avec UML ,
(Eyrolles, 2000).
6 Pierre-Alain Muller and Nathalie Gaertner. Modélisation objet avec
UML. Eyrolles, 2è edition, 2003.
7 James Rumbaugh et al. Modélisation et conception orientée objet.
Masson, 1994.
/ 43
Prof. Said El Kafhali