!"## "
1
Automne 2002 Petko Valtchev
! "
!"##
3
# " " $ " % &
Nous avons passé une session à décortiquer les notations UML
Ceci aurait pu déranger les collègues qui n’aiment pas les diagrammes
Points à retenir
Bien que le cours a beaucoup insisté sur UML et ses diverses notations, il n’est qu’un langage de description.
Sa maîtrise doit être complété par une méthodologie d’application, typiquement fournie par un processus de développement.
Ses auteurs, réunis au sein de la société Rational Co., recommandent leur propre (famille de) processus de développement qui permet de tirer le meilleur d’UML.
Ces processus sont réunis sous le nom générique de Unified Process (UP).
Unified Software Development Process (USDP) est le dernier né de la famille (dans le passé son prédécesseur s’appelait RUP pour Rational UP)
# " " $ " $ & #
Tous les processus de la famille UP sont des processus itératifs. Ils séparent le cycle de vie du logiciel en des périodes courtes ou itérations.
Les itérations sont relativement homogènes du point de vue des activités qui sont effectuées par les participants mais aussi en vu des documents produits.
Les activités, appelées des disciplines, correspondent à des phases ou étapes de la terminologie du génie logiciel telle qu’elle a été introduite au début du cours.
Les processus UP reconnaissent cependant des phases séquentielles dans le développement, qui caractérisent l’avancement du projet logiciel.
!"##
5
# " " $ " % & ' #
Classification des phases:
Étude d’opportunité
(
Inception) : interactions préliminaires avec les intéressés (stakeholders en angl.)principalement les clients et les usagers,
mais aussi les bailleurs de fonds, assureurs, etc.
Élaboration : finalisation de ce qui est demandé et nécessaire;
développement d’une vue approximative de l’architecture du système,
Construction : se termine par un produit initial fonctionnel,
Transition : livraison du produit complet
N.B. En général, toutes les activités se retrouvent au niveau de chacune des phases UP.
# " " $ "
Elaboration
Inception Construction Transition
Requirements Analysis
Iter.
#1
Iter.
#n Iter.
#n+1
Iter.
#m Iter.
#m+1
Iter.
….. … #k
Prelim. ..
iterations
& ' # "
Design Implemen-
USDP: les Activités sont appelées disciplines (« core workflows »
dans le passé)
Classification des Itérations
Itérations Individuelles
!"##
7
# " " $ "
Besoins Analyse Conception Implémentation
Tests
Ingénierie des besoins
Implémentation Intégration Conception
Tests
" $ ! "
USDP Classique
# " " $ "
Elaboration
" % & #
Inception Construction Transition
Requirements
Analysis
Jacobson et al: USDP
Prelim.
iterations Iter.
#1
Iter.
#n Iter.
#n+1
Iter.
#m Iter.
#m+1
Iter.
….. ….. #k
Design Implemen-
tation
..
L’effort dépensé sur les besoins durant la première itération de la phase de la Construction
!"##
9
# " " $ " ( "
Modélisatº
métier Besoin Analyse Conceptº Implantatº Itération
1
Itération 2
Itération 3
Inceptº Élaboratº Constructº Transitº
# " " $ " % ) & *
Modélisatº
métier Besoin Analyse Conceptº Implantatº
1. Définir les CdU essentiels
2. Raffiner les diagrammes des CdU
3. Raffiner le modèle conceptuel
4. Raffiner le glossaire 5. Définir les diagrammes de séquence système
6. Définir les contrats des opérations
7. Définir les diagrammes
!"##
11
# " " $ " ) & *
Modélisatº
métier Besoin Analyse Conceptº Implantatº
1. Définir les CdU réels
2. Définir les rapports et les interfaces usager
3. Raffiner l’architecture
4. Définir les diagrammes d’interaction
5. Définir le diagramme de classes conception
6. Définir le schéma de la BD
# " " $ " % &
Les CdU selon Constantine [Constantine97] :
Analyse: “Essential use cases are expanded use cases that are expressed in an ideal form that remains relatively free of technology and implementation details;…”
Conception: “In contrast, a real use case concretely describes the process in terms of its real current design, committed to specific input and output technologies; …”
!"##
13
# " " $ " +
D’après Larman [Larman2002] :
“A conceptual model illustrates meaningful concepts in a problem domain; it is the most import artifact to create during object-oriented analysis.”
“A critical quality to appreciate about conceptual model is that it is a representation of real-world things, not of software components”
# " " $ " , - $
Sales Line Item quantity
Sale date time
Payment amount
Item quantity
Store address name
POST Concept
Association
Attributs
Contained in
Records sale of
Paid by
Captured on 1..*
1
1..*
* 0..1
!"##
15
# " " $ " " ' ( . ' + $
D’après Larman [Larman2002] :
“A system sequence diagram shows, for a particular course of events within a use case, the external actors that interact directly with the system,…”
Un diagramme de séquence par CdU.
L’ordre suit l’enchaînement des événements spécifié par le CdU.
Les système est considéré comme une « boîte noire ».
# " " $ " ' ' , - $
Cashier
:System
enterItem( UPC, quantity )
endSale()
makePayment( amount ) response
!"##
17
# " " $ " " ( "
“A system operation contract describes changes in the state of the overall system when a system operation is invoked.”
Éléments d’un contrat :
nom,
responsibilités,
post-conditions,
etc.
# " " $ " %
Qu’est-ce que les opérations Contrats
Quels sont les événements système et les opérations?
Diagrammes de Séquence Système
Quels sont les concepts?
Modèle Conceptuel
Quels sont les processus du domaine?
Cas d’Utilisation
Questions Visées Artefacts de l’Analyse
!"##
19
# " " $ " "
“A design class diagram illustrates the specifications for software classes and interfaces…”
Classes, associations et attributs,
Interfaces (opérations & constants),
Méthodes,
Information sur les types des attributs,
Navigabilité,
Dépendances.
# " " $ "
Sale date
isComplete : Bool time
Définition de classe à trois sections.
Navigabilité
Méthodes
Captures POST
enterItem() makeLineItem()
Type