26
Ingénierie Système Introduction à l’analyse et et à la conception orientée objet 1 05/12/2013 Catherine Letondal [email protected]

Ingénierie Système Introduction à lanalyse et et à la conception orientée objet 1 05/12/2013 Catherine Letondal [email protected]

Embed Size (px)

Citation preview

Page 1: Ingénierie Système Introduction à lanalyse et et à la conception orientée objet 1 05/12/2013 Catherine Letondal catherine.letondal@enac.fr

Ingénierie Système

Introduction à l’analyse et et à la conception orientée objet

1 05/12/2013Catherine Letondal [email protected]

Page 2: Ingénierie Système Introduction à lanalyse et et à la conception orientée objet 1 05/12/2013 Catherine Letondal catherine.letondal@enac.fr

Objectifs pédagogiques

Une 1ère compréhension de l’analyse orientée objet ses raisons, ses objectifs

Modélisation du domaine d’une application trouver les classes et leurs relations

application en TP (2h) : jeu de monopoly dossier IS : système de gestion de la scolarité pour

l’ENAC

UML : aperçu de la notation

2

Page 3: Ingénierie Système Introduction à lanalyse et et à la conception orientée objet 1 05/12/2013 Catherine Letondal catherine.letondal@enac.fr

Objectifs pédagogiques

3

Page 4: Ingénierie Système Introduction à lanalyse et et à la conception orientée objet 1 05/12/2013 Catherine Letondal catherine.letondal@enac.fr

Crédits, bibliographie

Luis Basora et Rémi Lafage (ONERA) Craig Larman Coad & Yourdon Martin Fowler

4

Page 5: Ingénierie Système Introduction à lanalyse et et à la conception orientée objet 1 05/12/2013 Catherine Letondal catherine.letondal@enac.fr

Qu’est-ce que l’analyse et la conception ?

L’analyse met l’accent sur l’investigation du problème et des besoins : Analyse objet : compréhension des concepts du

domaine métier Analyse des besoins : fonctions, cas d’utilisation

La conception élabore une solution répondant aux besoins à partir de l’analyse

L’analyse pour construire le bon système et la conception pour construire bien le système (make the right thing vs make the thing right)

5

Page 6: Ingénierie Système Introduction à lanalyse et et à la conception orientée objet 1 05/12/2013 Catherine Letondal catherine.letondal@enac.fr

Qu’est-ce que l’analyse et la conception orienté objet (A/COO) ?

Analyse OO : recherche et description des classes conceptuelles (concepts) du domaine et de leurs relations Ex. bibliothèque :

ouvrage, prêt, catalogue… un prêt concerne un ouvrage un catalogue liste des ouvrages

Conception OO : spécification des classes logicielles à partir de ces concepts, et de la façon dont leurs instances collaborent pour satisfaire les besoins utilisateurs Ex. l’objet logiciel « Livre » a un attribut « titre : String »

et une méthode « getChapitre() : Chapitre »6

Page 7: Ingénierie Système Introduction à lanalyse et et à la conception orientée objet 1 05/12/2013 Catherine Letondal catherine.letondal@enac.fr

Produits de l’A/COO

La conception doit produire la spécification d’une solution implémentable

Spécification faite de plus en plus en utilisant des modèles graphiques (diagrammes UML)

Un modèle de l’A/COO = ensemble diagrammes UML + éléments du diagramme (classes, cas d’utilisation, objets, etc.) + documents textuels 7

Page 8: Ingénierie Système Introduction à lanalyse et et à la conception orientée objet 1 05/12/2013 Catherine Letondal catherine.letondal@enac.fr

Notation UML

Standard OMG très répandu dans l’industrie Né de la fusion de notations de plusieurs

méthodes Langage visuel qui permet l’élaboration de

modèles Notation très vaste

UML 2 : 13 diagrammes différents UML n’est pas une méthode

Méthode = notation (ex. UML) + processus de développement + outils

L’utilisation concrète d’UML dépend du processus de développement choisi par le chef du projet

8

Page 9: Ingénierie Système Introduction à lanalyse et et à la conception orientée objet 1 05/12/2013 Catherine Letondal catherine.letondal@enac.fr

Perspectives d’utilisation UML

UML peut être utilisé pour modéliser depuis plusieurs perspectives

Point de vue conceptuel Les diagrammes sont interprétés comme décrivant

des entités du monde réel ou du domaine d’intérêt Point de vue des spécifications (logicielles)

Les diagrammes décrivent des composants logiciels sans préciser une implémentation

Point de vue de l’implémentation Les diagrammes décrivent les implémentations

logicielles dans une technologie particulière (Java, C++, …)

9

Page 10: Ingénierie Système Introduction à lanalyse et et à la conception orientée objet 1 05/12/2013 Catherine Letondal catherine.letondal@enac.fr

titreauteur

Livre

titreChapitre

*1

Point de vue conceptuel(modèle du domaine)

Livre

getTitre() : StringgetAuteur : StringgetChapitres : List<Chapitres>

titre : Stringauteur : string

getTitre() : Stringtitre : String

Chapitre

Point de vue des spécifications

ou de l'implémentation(diagramme de classes

de conception)

Diagramme de classes servant à visualiser les concepts du monde réel

*

Diagramme de classesservant à visualiser les

éléments logiciels

public class Livre { private String titre; private String auteur; private List<Chapitre> chapitres;

getTitre() { return titre; } ....}

public class Chapitre {private String titre;

....}

Code Java élaboréà partir de la spécification

logicielle(classes conception)

Monde réel

Une « classe » dans les différentes perspectives

Analyse

Conception

Codage

10

Page 11: Ingénierie Système Introduction à lanalyse et et à la conception orientée objet 1 05/12/2013 Catherine Letondal catherine.letondal@enac.fr

Façons d’appliquer UML (I)

UML en mode esquisse (sketching) Diagrammes informels et incomplets (souvent

tracés à la main) créés pour expliciter un problème ou pour explorer une solution

UML en mode plan (blueprint) Diagrammes de conception détaillés pour la pro-

ingénierie (génération de code à partir des diagrammes) ou rétro-ingénierie (génération des diagrammes à partir du code)

La génération de code n’est que partielle Le développeur doit compléter (et parfois corriger)

le code généré

11

Page 12: Ingénierie Système Introduction à lanalyse et et à la conception orientée objet 1 05/12/2013 Catherine Letondal catherine.letondal@enac.fr

Façons d’appliquer UML (II) UML comme langage de programmation

Spécification complète et exécutable d’un système logiciel en UML

Code exécutable généré automatiquement à partir des modèles UML qui n’a pas besoin d’être revu ni modifié par les développeurs

Requiert des outils UML puissants et des diagrammes très détaillés

Toujours en cours de développement en termes de théorie, de robustesse d’outils et de facilité d’utilisation

12

Page 13: Ingénierie Système Introduction à lanalyse et et à la conception orientée objet 1 05/12/2013 Catherine Letondal catherine.letondal@enac.fr

UML en mode esquisse ne pas hésiter à dessiner, discuter autour d’un

tableau blanc (+ photos)

les diagrammes servent à réfléchir et visualiser : ils peuvent être partiels

13

Page 14: Ingénierie Système Introduction à lanalyse et et à la conception orientée objet 1 05/12/2013 Catherine Letondal catherine.letondal@enac.fr

UML mode blueprint ou programmation

bouml.free.fr

14

Page 15: Ingénierie Système Introduction à lanalyse et et à la conception orientée objet 1 05/12/2013 Catherine Letondal catherine.letondal@enac.fr

Processus de développement

Vu le nombre d’activités possible entre l’analyse des besoins et l’implémentation, comment une équipe de développeurs doivent-ils procéder?

Les activités A/COO doivent s’inscrire dans le contexte d’un processus de développement

Beaucoup de processus existants : Processus classiques : cascade, cycle en V Processus Unifié (UP) : RUP, 2TUP, … Processus agiles : eXtreme programming, Scrum,

15

Page 16: Ingénierie Système Introduction à lanalyse et et à la conception orientée objet 1 05/12/2013 Catherine Letondal catherine.letondal@enac.fr

Etude de cas A/COO avec UMLGestion du panier d’une librairie web

http://www.dotnetguru.org/articles/UML/agile2/modelisation-agile.htmlhttp://www.dotnetguru.org/articles/UML/AgileDotNet2.htm16

Page 17: Ingénierie Système Introduction à lanalyse et et à la conception orientée objet 1 05/12/2013 Catherine Letondal catherine.letondal@enac.fr

Besoins

Le site doit permettre aux internautes de : rechercher des ouvrages par thème, auteur, mot-

clef, etc., se constituer un panier virtuel, puis de pouvoir les

commander et les payer directement sur le Web. Nous nous restreindrons à la fonctionnalité de

gestion du panier virtuel.

17

Page 18: Ingénierie Système Introduction à lanalyse et et à la conception orientée objet 1 05/12/2013 Catherine Letondal catherine.letondal@enac.fr

A/COO avec UML (UP agile)

Analyse objet

Conception objet

Analyse de besoins

18

Page 19: Ingénierie Système Introduction à lanalyse et et à la conception orientée objet 1 05/12/2013 Catherine Letondal catherine.letondal@enac.fr

Modèle de cas d’utilisation Description du UC « Gérer son panier »

Préconditions : néant. Scénario nominal :

1. L’Internaute enregistre les ouvrages qui l’intéressent dans un panier virtuel (voir le cas d’utilisation Rechercher des ouvrages).

2. L’Internaute demande l’accès à son panier.3. Le Système lui affiche l’état de son panier. Chaque ouvrage qui a été préalablement

sélectionné est présenté sur une ligne, avec son titre, son auteur et son numéro ISBN. Son prix unitaire est affiché, la quantité est positionnée à « 1 » par défaut, et le prix total de la ligne est calculé. Le total de la commande est calculé par le Système et affiché en bas du panier avec l’indication des frais de port.

4. L’Internaute valide son panier en demandant à effectuer une commande. Extensions

3-4a.    Le panier est vide1. Le système affiche un message d’erreur à l’Internaute (« Votre panier est vide ! ») et lui propose de

revenir à une recherche d’ouvrage. 4a.       L’Internaute modifie les quantités des lignes du panier, ou en supprime.

1. L’Internaute revalide le panier en demandant le recalcul du total

2. Le Système met à jour le total calculé du panier et le cas d’utilisation reprend à l’étape 4 du scénario nominal.

4b.       L’Internaute effectue une nouvelle recherche d’ouvrage (voir le cas d’utilisation correspondant). Le cas d’utilisation reprend à l’étape 1 du scénario nominal.

1. Exigences non-fonctionnelles1. Le panier de l’internaute est sauvegardé pendant toute la durée de sa visite sur le site

Web.

19

Page 20: Ingénierie Système Introduction à lanalyse et et à la conception orientée objet 1 05/12/2013 Catherine Letondal catherine.letondal@enac.fr

Modèle de cas d’utilisation Diagramme de séquence système (DSS)

Modélise la séquence d’interactions acteur-système correspondant à un scénario d’un UC (« Gérer son panier »)

Identifie les événements auxquels le système doit réagir

Le système « jeBouquine.com » est représenté comme une boîte noire : Les classes implémentant la

fonctionnalité sont identifiées plus tard (modèle conception)

UML - Diagramme de séquence20

Page 21: Ingénierie Système Introduction à lanalyse et et à la conception orientée objet 1 05/12/2013 Catherine Letondal catherine.letondal@enac.fr

Modèle du domaineDiagramme de classes conceptuel

En analysant la description du UC « Gérer son panier », on identifie les concepts métier, comme « Panier » , « Livre », ...

On modélise ces concepts sous forme de diagrammes de classes contenant uniquement des attributs et des associations

On n’identifie pas d’opérations (à attendre à la conception)

UML - Diagramme de classes

21

Page 22: Ingénierie Système Introduction à lanalyse et et à la conception orientée objet 1 05/12/2013 Catherine Letondal catherine.letondal@enac.fr

Architecture en couches

Modèle de conception Conception préliminaire - Architecture

Architecture modulaire Présentation, interactions :

classes IHM Logique applicative,

dialogue : isole l’IHM de la complexité de la couche métier

Logique Métier : classes métier

Stockage : responsable de la persistance des objets en BD ou fichiers UML – Diagramme

de packages

Cours A/COO

22

Page 23: Ingénierie Système Introduction à lanalyse et et à la conception orientée objet 1 05/12/2013 Catherine Letondal catherine.letondal@enac.fr

Modèle de conception Diagrammes séquence conception (DSC)

DSS DSC23

• Le système est composé de plusieurs classes• Les opérations des classes sont identifiées• Les objets collaborent avec l’envoi de messages afin d’implémenter les opérations système (ex. supprimerLigne() )

Page 24: Ingénierie Système Introduction à lanalyse et et à la conception orientée objet 1 05/12/2013 Catherine Letondal catherine.letondal@enac.fr

Modèle de conception Diagrammes séquence conception (DSC)

DSS DSC24

• A faire en parallèle avec les diagrammes de classe conception (DCC)• DSC surtout utile pour les opérations complexes

Page 25: Ingénierie Système Introduction à lanalyse et et à la conception orientée objet 1 05/12/2013 Catherine Letondal catherine.letondal@enac.fr

Modèle de conception Diagrammes classe conception (DCC)

A réaliser en parallèle avec les DSC Créer les classes de conception métier et

applicatives (présentation, dialogue) dans les packages UML de l’architecture• Classes métier créées à partir des classes du

modèle du domaine Ajouter les opérations aux classes

correspondantes aux messages des DSC Affiner les associations (indication de

navigabilité, ajout de dépendances, …) Ajouter des types aux attributs En fonction du nombre de classes, un ou

plusieurs DCC pour chaque package de l’architecture

3 DCC25

Page 26: Ingénierie Système Introduction à lanalyse et et à la conception orientée objet 1 05/12/2013 Catherine Letondal catherine.letondal@enac.fr

Soyez agile et itératifs !

Les description des cas d’utilisation et des diagrammes UML ne sont jamais parfaits

Ne pas adopter l’attitude du processus en cascade en déployant toujours plus d’effort pour obtenir des spécifications exactes et exhaustives

Entre la démarche en cascade et la « programmation sauvage » existe le développement itératif et incrémental

Dans cet approche, les différents modèles sont progressivement affinés, vérifiés et clarifiés grâce à la programmation et aux tests

26