La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Processus unifié de développement orienté objet de logiciels : Utilisation du langage de modélisation unifié (UML : Unified Modeling Language ) Jean-Marc.

Présentations similaires


Présentation au sujet: "Processus unifié de développement orienté objet de logiciels : Utilisation du langage de modélisation unifié (UML : Unified Modeling Language ) Jean-Marc."— Transcription de la présentation:

1 Processus unifié de développement orienté objet de logiciels : Utilisation du langage de modélisation unifié (UML : Unified Modeling Language ) Jean-Marc CIEUTAT Enseignant-Chercheur ESTIA/LIPSI

2 Plan À quoi sert une méthode de développement de logiciels ? Les objets et les classes La genèse d'un standard : UML La phase d'analyse : -Les cas d'utilisation -Les diagrammes de séquence -Les diagrammes de collaboration -Les diagrammes de classes -Les diagrammes d'états-transitions

3 Pourquoi une méthode de développement de logiciels ? Optimisant Encadré Défini Reproductible Initial « Une méthode est une démarche reproductible permettant dobtenir des résultats fiables » Le Capability Maturity Model (CMM) défini par le Software Engineering Institute (SEI)

4 Pourquoi lapproche objet ? Représentatif de la réalité Construction itérative (évolutif) Réutilisation (effort de codage et de tests en moins) Simplicité (nombre dinstructions par méthode)

5 Le cycle de vie itératif Codage Tests Conception n fois Analyse Grâce à la programmation orientée objet, on ajoute des propriétés aux classes déjà introduites, ou on ajoute de nouvelles classes, sans avoir à modifier l'existant

6 Lapproche orientée objet Illustration de Jean-Marc Estay (IMA)

7 Les objets et les classes Le terme Orienté Objet signifie l'organisation du logiciel en un ensemble d'objets incorporant à la fois les structures de données et le comportement. Alors que la programmation conventionnelle n'établit qu'une faible connexion entre structure de données et comportement. C'est la classe qui sert à regrouper sous un même terme générique les objets partageant la même structure de données et le même comportement. On dit qu'un objet est une instance d'une classe. La classe est séparée en deux parties : -la spécification de la classe qui décrit le domaine de définition et les propriétés des instances de la classe -la réalisation de la classe qui décrit comment la spécification est réalisée

8 Que sont les objets ? Les objets du monde réel nous entourent ; ils naissent, vivent et meurent. En orienté objet, ils sont alloués, changent d'états et se comportent en conséquence, et sont désalloués. Ce sont les instances des classes. Les objets informatiques définissent une représentation simplifiée des entités du monde réel. Ils peuvent représenter des entités concrètes (avec une masse), et même des êtres vivants, ou des entités abstraites (concept).

9 Les objets sont des abstractions Une abstraction est un résumé, un condensé qui met en avant les caractéristiques essentielles et qui dissimulent les détails. Les caractéristiques essentielles d'un objet sont celles qui sont précisées lors de la spécification de la classe dont il est une instance. Les détails, qui sont les détails d'implémentation, sont précisés au moment de la définition des opérations de la classe. Une abstraction se définit par rapport à un point de vue. Quel sont les utilisateurs en présence et quel est leur point de vue ?

10 Exemples de caractéristiques Pour une voiture : la marque, la puissance, la couleur, le nombre de places assises, … Le point de vue est exprimé par qui ? Le propriétaire, le mécanicien, le vendeur, …

11 Des caractéristiques aux attributs et aux méthodes Approche fonctionnelle : -Créer une structure qui représente un nombre complexe -Créer une fonction qui retourne un complexe à partir de sa partie imaginaire et de sa partie réelle passées en arguments -Créer une fonction qui additionne deux nombres complexes -... Approche objet : -Créer une classe NombreComplexe qui contient :. Ses attributs : partie réelle et partie imaginaire. Ses méthodes : création à partir de sa partie réelle et de sa partie imaginaire, sadditionne à un autre nombre complexe,...

12 Du type abstrait à la classe La classe Point La classe Vecteur La classe Polygone La classe Pile La classe File...

13 Les caractéristiques fondamentales des objets L'identité L'état Le comportement

14 L'identité Chaque objet a sa propre identité ; deux objets sont distincts même si toutes les valeurs de leurs attributs sont identiques. Cela se comprend aisément puisque la place mémoire occupée par chaque objet est distincte. Pour reconnaître un objet et lever toute ambiguïté, on utilise, en général, un identifiant particulier : notre numéro de sécurité sociale par exemple, le numéro de la plaque d'immatriculation, une clé utilisée dans une base de données, …

15 L'état et le comportement Atterrir Décoller Tour de contrôle Avion en vol Avion au sol Les attributs d'un objet peuvent contenir différentes valeurs. Ce sont les différents états que peut prendre l'objet. Le comportement regroupe toutes les compétences d'un objet, sous la forme d'opérations. C'est l'ensemble des actions et des réactions d'un objet. L'état et le comportement sont liés : - le comportement dépend de l'état - l'état est modifié par le comportement

16 Communication entre objets Une application, en orienté objet, est une société d'objets collaborant. Comment, dans ces conditions, sont réalisées les fonctions de l'application ? Ce sont les objets, qui travaillent en synergie, pour parvenir à les réaliser. Donc, l'achèvement d'une tâche par une application repose sur la communication entre les objets qui la composent. L'unité de communication entre les objets est le message. Plus spécialisé et plus coopératif que l'objet, l'agent (implémentation partielle des agents possible en Java). L'agent est plus adapté que l'objet pour représenter des êtres intelligents.

17 Les objets ne vivent pas en ermites Objet 1 Objet 3 Objet 4 Objet 2 Message B Message A Message C Message D Message E

18 Le concept de message Il existe cinq catégories principales de messages : –les constructeurs qui créent des objets –les destructeurs qui détruisent des objets (pas en Java) –les sélecteurs qui renvoient tout ou partie de l'état d'un objet –les modificateurs qui changent tout ou partie de l'état d'un objet –les itérateurs qui visitent l'état d'un objet ou le contenu d'une structure de données qui contient plusieurs objets

19 La programmation orientée objet On dit d'un langage de programmation qu'il est un langage orienté objet quand il supporte les mécanismes : -d'héritage -de polymorphisme -d'encapsulation Smalltalk, Eiffel, C++, Java,...

20 Lhéritage Les hiérarchies de classes (classification) permettent de gérer la complexité en ordonnant les objets au sein darborescence de classes dabstraction croissante. Les classes descendantes héritent des propriétés des classes ancêtres (exemple : vertébrés, mammifères, hominidés, hommes). généraliser spécialiser Une classe descendante (une sous-classe) peut être également vue comme un sous-type du type défini par la classe ancêtre (la sur-classe) (exemple : ensembles et sous-ensembles mathématiques).

21 Exemples dhéritage Véhicule Bateau Navire Navire de guerre Navire de pêche Véhicule aérien Véhicule roulant AvionHélicoptèreVoitureCamion

22 Autre exemple dhéritage Bicyclette VTTVTCVéloDeCourseVéloDeVille

23 Héritage et redéfinition Une sous-classe peut spécialiser les fonctionnalités de sa super- classe en définissant de nouveaux attributs et/ou de nouvelles méthodes dont elle hérite de deux manières : -en remplaçant complètement la méthode héritée par une nouvelle implémentation -en spécialisant la méthode héritée en proposant une nouvelle implémentation qui réutilise celle héritée Exemple : calculer la surface dun polygone, dun quadrilatère, dun triangle, dun carré, dun rectangle, dun triangle isocèle, dun triangle rectangle,...

24 Redéfinition : réutilisation Etudiant Nom Prenom Age Affiche() EtudiantSportif SportPratique Affiche()

25 Redéfinition : substitution Polygone CalculSurface() Quadrilatere CalculSurface() Rectangle CalculSurface() Carre CalculSurface() Triangle CalculSurface() TriangleRectgle CalculSurface() TriangleIsocele CalculSurface()

26 Le polymorphisme Le polymorphisme signifie qu'une même opération peut se traduire différemment selon l'objet sur laquelle elle s'applique : Capacité dun objet à prendre plusieurs formes. On parle également de liaison dynamique. Le polymorphisme associé à la liaison dynamique offre une plus grande simplicité du code (plus besoin de distinguer les cas en fonction des classes) et une plus grande facilité dévolution du code (les programmes sont plus facilement extensibles comme on peut redéfinir une opération appartenant à une classe dont on hérite, appartenant à une sur-classe).

27 Liaison dynamique : revenons à lexemple précédent Polygone CalculSurface() Quadrilatere CalculSurface() Rectangle CalculSurface() Carre CalculSurface() Triangle CalculSurface() TriangleRectgle CalculSurface() TriangleIsocele CalculSurface()

28 Polymorphisme : classes abstraites Pour exploiter pleinement le polymorphisme, il est courant de définir des classes dont le seul rôle est de spécifier une interface (un ensemble de méthodes) commune pour toutes les classes qui en seront dérivées. Dans de telles classes, les méthodes qui servent à définir cette interface commune sont le plus souvent muettes (elles ne contiennent pas de code effectif).

29 Lencapsulation Il existe trois niveaux de visibilité : -privé -protégé -public Cela permet de limiter les effets de bord.

30 Les autres différences La surcharge (prototype de fonctions : plusieurs méthodes portant le même nom à lintérieur dune classe) Les pré-conditions, les post-conditions, les invariants La généricité (« template » en C++) Le traitement des situations exceptionnelles (« throw », « try » et « catch » : lever et attraper une exception)

31 La genèse d'un standard : UML Standardisation par l'OMGUML 2.0 depuis 2003 Soumission à l'OMGUML 1.0 en Janvier 97 Version bêtaUML 0.9Consortium en Juin 96 Draft en 95Méthode unifiée 0.8OOSE OMT BOOCH NB : La notation UML est un langage de modélisation objet et non pas une méthode objet. UML peut se substituer aux méthodes Booch, OMT (Object Modelling Technique) et OOSE (Object Oriented Software Engineering) sans perte dinformations.

32 La phase d'analyse Décrire les cas d'utilisation. Pour chaque cas d'utilisation, réaliser de un à n diagrammes dinteractions (les diagrammes de séquence en premier pour statuer sur les fonctionnalités avec le client ; puis, passer aux diagrammes de collaboration pour continuer lanalyse avec léquipe projet). À chaque diagramme de collaboration correspond une ébauche de diagramme de classes. Préciser lors de la création dune classe à quel package elle appartient. Faire la synthèse des diagrammes de classes pour un package donné. Pour chaque classe du diagramme de classes, faire un diagramme d'états-transitions (optionnel).

33 Les apports de la modélisation visuelle Meilleure appréhension des besoins Facilite la compréhension du problème Facilite la communication entre les personnes (client, experts du domaine, analystes, concepteurs,...) Support pour le raisonnement Améliore la lisibilité des schémas de conception Prépare la documentation et les programmes Facilite la maintenance

34 Guide pour appliquer la méthode Recueillir les besoins de l'utilisateur final Adopter le point de vue de l'utilisateur final Penser à la réutilisation Ne préciser que les caractéristiques utiles des classes Généralement dans le cahier des charges, les noms sont des classes ou des attributs de classes et les verbes sont des méthodes Raffiner la modélisation en éliminant les redondances dues aux synonymes, les informations dérivées qui peuvent être déduites, et en s'efforçant de ne pas introduire de détails d'implémentation

35 Les cas dutilisation Système Cas d'utilisation X Cas d'utilisation Y Conduire Réparer Vendre Client Mécanicien Vendeur Les cas d'utilisation décrivent, sous la forme d'actions et de réactions, le comportement d'un système du point de vue de l'utilisateur, encore appelé acteur. On recense, de la sorte, l'ensemble des fonctionnalités d'un système en examinant les besoins fonctionnels de chaque acteur.

36 Les acteurs dans les cas d'utilisation Il existe 4 grandes catégories d'acteurs : - les acteurs principaux. Cette catégorie regroupe les personnes qui utilisent les fonctions principales du système. Dans le cas d'un distributeur de billets, il s'agit des clients. - les acteurs secondaires. Cette catégorie regroupe les personnes qui effectuent des tâches administratives ou de maintenance. Dans le cas d'un distributeur de billets, il s'agit de la personne qui recharge la caisse du distributeur. - le matériel externe. Cette catégorie regroupe les dispositifs matériels autres que les ordinateurs comme les périphériques. Dans le cas d'un distributeur de billets, il s'agit de l'imprimante, du lecteur de carte, de la trieuse de billets. - les autres systèmes. Cette catégorie regroupe les systèmes avec lesquels le système interagit. Dans le cas d'un distributeur de billets, il s'agit du groupement bancaire qui gère l'ordinateur central qui relie tous les distributeurs.

37 Les relations entre les cas d'utilisation Retrait au guichet Client distant Client local Identification Retrait au distributeur > Cas d'utilisation Déclenche Cas d'utilisation B > Cas d'utilisation A Cas d'utilisation B > relation de communication avec le système relation d'utilisation entre cas relation d'extension entre cas

38 Description des cas d'utilisation On précise le contenu d'un cas d'utilisation en déroulant tous les scénarios possibles. Un scénario est un chemin particulier au travers de la description abstraite et générale fournie par le cas d'utilisation. En pratique, on ne décrit que les scénarios les plus représentatifs. On peut décrire un scénario à l'aide d'un diagramme de dinteraction (diagramme de séquence, diagramme de collaboration) où un acteur est un objet particulier.

39 Les diagrammes de séquence Tour de contrôle Roissy Avion A Piste A1Avion A Demande décollage Attente décollage Réservation piste Confirmation Libération piste Fin décollage Autorisation décollage Les diagrammes de séquence montrent la succession des interactions entre les objets dans le temps. On distinguer les messages synchrones ( ) des messages asynchrones ( ) pour lesquels l'émetteur n'est pas bloqué et peut continuer son exécution.

40 Les spécificités des diagrammes de séquence Un objet Message réflexif Un objet Un autre objet Créer Détruire Un objet peut s'envoyer un message Un message peut entraîner la création ou la destruction d'objets

41 L'ajout de pseudo code dans les diagrammes Objet A [X] Message Objet BObjet C [non X] Message Objet A Message Objet BObjet C Message if X else end if

42 Les diagrammes de collaboration :Personne :Ascenseur :Cabine 1: Venir me chercher au RDC 2: Ajouter destination RDC 1: Entrer dans la cabine 3: Ouvrir :Personne :Cabine :Lumière :Porte 2:Allumer Dès lors que les besoins utilisateurs ont été recensés et validés, il s'agit maintenant de mettre en œuvre le système qui va satisfaire ces besoins utilisateurs. La transition est assurée par les diagrammes de collaboration qui montrent les interactions entre les objets du système. Une interaction est réalisée par un groupe d'objets qui collaborent en échangeant des messages. Le temps est matérialisé en numérotant les messages.

43 Les spécificités des diagrammes de collaboration AB {nouveau} C {transitoire} D {détruit} Instituteur :Elève *[tous] : Debout Durée de vie des objets Cardinalité A B A.1,B.3 / Message Plusieurs flots dexécution A :X *[i := 1..n] : Message Clause ditération

44 Exemples de messages 4 : Afficher (x,y) // message simple 4.2 : âge := Soustraire (Jour, DateNaissance) // message imbriqué 6.2 : [Age >= 18] Voter () // message conditionnel

45 Guide méthodologique Les diagrammes de collaboration sont une extension des diagrammes objets, d'où une cohésion forte de la méthode. Dès qu'un diagramme de collaboration est établi, on réalise une ébauche du diagramme de classes correspondant. Pour que cela soit constructif, il faut préciser les attributs, les opérations et la cardinalité des associations entre les classes au fur et à mesure qu'on les met en évidence. Sur le plan de l'architecture logicielle, il faut ensuite déterminer à quel package appartient une classe (IHM, objets du domaine, utilitaires, …), de manière à pouvoir faire une synthèse des ébauches de classe par package. Les packages offrent un mécanisme général pour la partition des modèles et le regroupement des éléments de modélisation.

46 Les diagrammes de classes ClasseObjet Association Lien Relie Diagramme de classes Diagramme d'objets Une classe décrit un ensemble d'objets ayant des propriétés similaires (attributs), des comportements communs (opérations) et partageant les mêmes liens avec les autres objets.

47 Exemple de diagramme de classes départ arrivée composé de Vol Numéro Escale Nom Heure de départ Aéroport Nom Paris_Nouméa : Vol AF-5177 Paris_Singapour : Escale 23h15 Singapour Sydney : Escale 10h50 Sydney_Nouméa : Escale 15h30 Roissy : Aéroport Shangi : Aéroport Sydney_Airport : Aéroport Nouméa_Airport : Aéroport

48 Les attributs et les méthodes Syntaxe des attributs et des méthodes : Nom_Attribut : Type_Attribut = Valeur_Initiale Nom_Méthode (Nom_Argument : Type_Argument = Valeur_Par_Défaut, …) : Type_Retourné Aéroport Ville Nom OuvrirEmbarquement() FermerEmbarquement() nom attributs méthodes

49 Les attributs et les méthodes Attributs -Un attribut est une donnée propre aux objets d'une classe particulière -Chaque nom d'attribut est unique à l'intérieur d'une classe -Chaque attribut a une valeur pour toute instance. Méthodes -Une méthode est une fonction ou transformation qui peut s'effectuer sur les objets d'une classe ou être effectuée par ces objets -Tous les objets partagent les mêmes méthodes Les règles dencapsulation (de visibilité) : -public qui rend l'élément visible à tous les éléments de la classe (+) -protégé qui rend l'éléments visibles aux classes dérivées de la classe (#) -privé qui rend l'élément visible à la classe seule (-)

50 Les stéréotypes de classes Table générique Elément > Math Les classes paramétrables (généricité) Les classes utilitaires (modules non instanciables)

51 Les associations est employé par est employeur de Compagnie Aérienne Personne emploie Compagnie Aérienne Personne AvionPersonne est piloté par transporte Une association décrit un groupe de liens ayant une structure et une sémantique commune. Elles expriment les relations structurelles entre les classes.

52 Cardinalité des associations 1Un et un seul 0..1Zéro ou un M..NDe M à N (entiers naturels) * De zéro à plusieurs 0..*De zéro à plusieurs 1..*D'un à plusieurs La cardinalité spécifie combien d'instances d'une classe peuvent être en relation avec une instance de la classe associée. Elle est à préciser pour chaque rôle.

53 Multiplicité des associations * 1 Diplôme Mention EtudiantTravail Chambre Numéro {Ou-exclusif} UniversitéPersonne enseignants Etudiants Spécification de contraintes

54 Les types d'associations : L'agrégation Classe AClasse B Une agrégation représente une association non symétrique dans laquelle une des extrémités joue un rôle prédominant par rapport à l'autre extrémité. On applique les critères suivants : - une classe fait partie d'une autre classe, - les valeurs d'attributs d'une classe se propageant dans les valeurs d'attributs d'une autre classe, - une action sur une classe implique une action sur une autre classe, - les objets d'une classe sont subordonnés aux objets d'une autre classe.

55 La relation de composition VoitureMoteur CylindreCarburateur

56 Les types d'associations : la généralisation Personne Personne naviguante Personne au sol Les descendants héritent des propriétés de leurs ancêtres. On va du général au particulier.

57 Le polymorphisme Personne CalculPrime() Personne naviguant CalculPrime() Personne au sol CalculPrime() Classe Abstraite Les classes abstraites : ce sont des classes qui n'ont pas d'instances mais dont les descendants ont des instances

58 L'héritage multiple Avion Hydravion Moyen Courrier Navire Cargo

59 Les diagrammes d'états-transitions Cas d'utilisation Diagrammes d'interactions (diagrammes de séquence ou diagrammes de collaborations) Diagrammes de classes Diagrammes d'états- transitions Validation de la phase d'analyse Le formalisme retenu est celui des statecharts : Harel, D Statecharts : A Visual Formalism for Complex Systems. Science of Computer programming vol. 8.

60 Description des diagrammes d'états-transitions Classe AAutomate Le comportement des objets d'une classe est décrit de manière formelle en termes d'états et d'événements, au moyen d'un automate relié à la classe considérée. Un état Un autre état Etat final Les états Le passage d'un état à un autre s'effectue lorsqu'une transition est déclenchée par un événement qui survient dans le domaine du problème.

61 Exemple de diagramme d'états-transitions Atterrit Fin de service S'écrase Décolle Mis en service Au sol En vol Etat initial Etat final

62 Les événements Embauche Perte d'emploi Plus de 60 ans En activité A la retraite Au chômage Un événement est par nature une information instantanée qui doit être traitée sans attendre. Il sert de déclencheur pour passer d'un état vers un autre. Sa syntaxe est : Nom_Evénement (Nom_Paramètre : Type, …)

63 Transition d'état Un objetUn autre objet La réponse La question Autorisation décollage [check- list avion OK] / décoller Au sol En vol La communication entre automates peut également être de type synchrone Les gardes, les actions et les activités

64 Points d'exécution des opérations En activité entry : Op2 do : Op3 exit : Op4 on UnEvt : Op5 / Op1 / Op6 l'action associée à la transition d'entrée (Op1) l'action d'entrée de l'état (Op2) l'activité dans l'état (Op3) l'action de sortie de l'état (Op4) l'action associée aux événements internes (Op5) l'action associée à la transition de sortie de l'état (Op6)

65 La généralisation d'états Arrêt Fin embarquement EntretienOpérationnel Fin de service Atterrit Décolle Mis en service En vol Immobilisé Roulement Embarquement Au sol Crash

66 L'agrégation d'états Avion MoteurTrain d'atterrissage Décollage SortiEntré MaxCroisière En vol

67 Guide méthodologique Les diagrammes d'états-transitions permettent d'effectuer une vérification du système sous forme textuelle. On déclenche un événement, et on observe les changements d'états des objets du système. En cas d'incohérence, il faut recommencer l'analyse. Dans un contexte temps-réel, il est possible d'utiliser des "run-time" pour générer un prototype du système.


Télécharger ppt "Processus unifié de développement orienté objet de logiciels : Utilisation du langage de modélisation unifié (UML : Unified Modeling Language ) Jean-Marc."

Présentations similaires


Annonces Google