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

Génie Logiciel Orienté Objet

Présentations similaires


Présentation au sujet: "Génie Logiciel Orienté Objet"— Transcription de la présentation:

1 Génie Logiciel Orienté Objet

2 Plan Introduction et concepts de base Modélisation par objets
Modèle objet Modèle dynamique Modèle fonctionnel Processus de modélisation Implantation des modèles objets Discussion

3 Introduction et concepts de base
L’approche objet présente: Une vue conceptuelle du « monde » composé d’objets Objets = interconnexion entre données et traitements sur ces données Une approche unificatrice du cycle de vie Ne résout pas tout les problèmes du génie logiciel mais: Offre de bonnes et élégantes solutions dans certains domaines d’application, par exemple, ingénierie des interfaces usagers et systèmes hautement extensibles Est une approche clé pour supporter la réutilisation du logiciel.

4 Introduction (suite) Origines de l’approche OO: smalltalk (70), prédécesseur: Simula67 L’approche objet est principalement bâtie sur les deux principes du génie logiciel: Abstraction des données Dissimulation de l’information Concepts de base Objets Classes Héritage Messages Polymorphisme et liaison dynamique

5 Objets Définition conceptuelle: Un objet incorpore une abstraction et fournit des services aux usagers (clients) Exemple 1: Pile Abstraction incorporée: la pile Services fournis: empiler, dépiler, tester si pile est vide. Exemple 2: compte bancaire Abstraction incorporée: le compte (client, succursale,…) Services fournis: ouvrir, fermer, débiter, créditer, connaître le solde.

6 Objets Concepts sous-jacents: État de l’objet
Comportement de l’objet (services rendus) Aspects caché: encapsulation des données, réalisation du comportement.

7 Objets (suite) Définition informatique: un objet incorpore une structure de données représentant un concept du monde réel et les opérations possibles (appelées aussi méthodes) sur cette structure de données. Un objet se compose de deux parties: Partie visible: interface avec le reste du monde (autres objets, programmes, …) Partie cachée: réalisation technique de la structure de données et des opérations. Conséquences: Chaque objet est un module, Les langages de programmation classiques (Fortran, Pascal, C,…) ne permettent pas l’implantation du concept d’objet.

8 Classes Point du vue conceptuel (vision du monde réel):
Une classe représente un ensemble d’objets ayant les mêmes caractéristiques (structure et comportement) Exemple: compte bancaire, tous les comptes bancaires ont les mêmes attributs (mêmes structures de données) et les mêmes méthodes (services rendus)

9 Classes Point de vue informatique:
Une classe définit un ensemble d’objets possibles Une classe est définie par une déclaration Analogie: déclaration de types, définition de variables Au plan concret (exécution du programme), une classe n’existe pas. Un objet est une réalisation concrète d’une classe. Un objet est créé (à l’exécution) conformément au patron de la classe; il existe.

10 Classes et Objets Exemple: compte bancaire
<déclarer la classe compte bancaire> //description de la classe (interface, cachée) <créer un compte bancaire> <autres instructions> <créer un autre compte bancaire> Etc.

11 Classes et Objets Implantation des classes et des objets
La création d’un objet d’une classe crée physiquement un exemplaire de la structure de données définie dans la déclaration de la classe. Toute opération sur l’objet affecte cet exemplaire. Par contre, les méthodes (opérations) définies dans la déclaration de la classe ne sont pas recopiées. Il en existe un seul exemplaire qui est invoqué chaque fois qu’une opération est exécutée sur un objet de la classe.

12 Héritage Définition générale: Propriétés de l’héritage: Transitivité
Relation entre deux classes Y hérite de X: Y possède (reçoit) toutes les caractéristiques de X. On dit Y est descendant de X. Propriétés de l’héritage: Transitivité Si Y descendant de X et Z descendant de Y alors Z descendant de X. Z reçoit toutes les caractéristiques de X (et de Y).

13 Héritage Deux formes d’héritage: enrichissement, substitution.
Enrichissement: Y descendant de X. Y reçoit toutes les caractéristiques de X; en plus on peut définir des caractéristiques additionnelles (données et opérations) spécifiques à la classe Y. Substitution: Y descendant de X. Certaines caractéristiques reçues de X sont redéfinies pour la classe particulière Y. La plus part des héritages sont une combinaison d’enrichissement et de substitution.

14 Héritage multiple Une classe peut être héritière de plusieurs autres classes. Propriétés de l’héritage multiple: Si Z hérite de X et Y, les caractéristiques de Z sont l’union des caractéristiques de X et Y. Problèmes de l’héritage multiple: conflits possibles entre caractéristiques de même nom venant d’ancêtres différents.

15 Messages Les objets communiquent entre eux par messages; c’est l’unique moyen de communication entre objets. Définition: un message est une communication entre deux objets: requêtes envoyée par un objet « client » à un objet « serveur ». Forme de l’envoi d’un message. À spécifier: L’objet serveur La méthode Les arguments correspondants à la méthode Si la méthode produit un résultat, place (variable) pour ce résultat.

16 Polymorphisme et liaison dynamique
Une entité de programme doit pouvoir faire référence à des objets de plusieurs classes, et une opération doit pouvoir avoir des versions différentes dans des classes différentes. Relation étroite avec les langages de programmation.

17 Modélisation par objets
Objectifs: Analyser et spécifier le problème Concevoir une solution au problème Préparer l’implantation de la solution avec un langage de programmation et/ou à l’aide d’une base de données « méthodologies d’analyse et de conception OO » Méthodologies connues: Booch, Jacobson, Rumbaugh.. Convergence vers une méthodologie intégrant les approches de Booch, Rumbaugh et Jacobson (1995)

18 Object Modeling Technique (OMT)
Méthodologie développée par James Rumbaugh et d’autres en 1991. Permet l’utilisation des mêmes concepts et des mêmes notations tout au long du processus de modélisation Modélisation par trois modèles complémentaires, chacun offrant un point de vue particulier: Le modèle objet représente les aspects statiques et structurels et l ’aspect des données d’un système. Le modèle dynamique représente les aspects temporels et comportementaux et l’aspect de contrôle d’un système Le modèle fonctionnel représente les aspects de fonction et de transformation.

19 Modèle objet Il saisit la structure statique d’un système, en montrant ses objets, les relations entre eux, ainsi que les attributs et les opérations qui caractérisent chaque classe d’objets. Il constitue le cadre dans lequel les modèles dynamiques et fonctionnels s’insèrent. Description par deux types de diagramme: Diagramme de classes: schéma permettant de décrire un grand nombre d’instances possibles de données. Il décrit les classes d’objets. Diagramme d’instances: décrit comment un ensemble particulier d’objets est lié à d’autres objets.

20 Diagrammes de classes et d’instances
Projet Langage Personne Diagramme de classes (projet) Syst. De comp. (Langage) Cobol (Personne) Mary (Langage) C (projet) Logiciel CAO Diagramme d’instances

21 Liens et associations Les liens et les associations permettent d’établir des relations entre objets et classes. Un lien est une connexion physique ou conceptuelle entre des instances d’objets Une association décrit un groupe de liens ayant une structure et une sémantique commune. Multiplicité des associations: spécifie le nombre d’instances d’une classe qui peuvent être liées à une instance d’une classe associée.

22 Liens et associations Classe Classe Classe Classe Classe Exactement un
Plusieurs (0 ou plus) Classe Optionnel(0 ou1) 1+ Classe Un ou plus 1-2,4 Classe Spécifié numériquement

23 Liens et associations Fichier Utilisateur Station de travail
Un attribut de lien est une propriété des liens d’une association Il est parfois utile de modéliser une association en classe: Accessible par Fichier Utilisateur Permission d’accès Station de travail Utilisateur Autorisation Propriété Début de session Répertoire

24 Relation d’agrégation
L’agrégation est la relation « composé-composant » ou « partie de », dans laquelle les objets représentant les composants d’une chose sont associés à un objet représentant l’assemblage entier Document Paragraphe Phrase

25 Généralisation et héritage
Abstractions puissantes qui permettent de partager les points communs entre les classes tout en préservant leurs différences: Équipement Nom Fabriquant Type d ’équipement Pompe Échangeur de chaleur Réservoir Pression d’aspiration Pression de débit Taux d’écoulement Superficie Diamètre Pression volume

26 Modèle dynamique Le modèle dynamique décrit les aspects du système par rapport au temps et à l’ordonnancement des opérations. Il ne capture ni le contenu des opérations, ni les objets des opérations, ni leur implantation. Le modèle dynamique est représenté graphiquement par un ensemble de diagrammes d’états dont chaque diagramme représente une classe qui expose un comportement important. Un diagramme d’états met en évidence les séquences d’états et d’évènements permis dans un système pour une classe d’objets..

27 Les diagrammes d’états
Un événement est quelque chose qui se produit à un moment donné dans le temps, par exemple l’usager appuie sur le bouton gauche ou bien le vol 217 part de Mirabel. Un état est une abstraction des valeurs des attributs et des liens d’un objet. Un état spécifie la réponse d’un objet à un événement d’entrée. Un diagramme d’états lie les évènements aux états. Il est un graphe dont: Les nœuds sont des états Les arcs orientés sont des transitions désignées par des noms d’évènements.

28 Diagrammes d’états Des conditions peuvent être utilisées comme garde (guard) sur les transitions: Une transition gardée est franchie quand survient un événement, mais seulement si la condition de garde est satisfaite. Exemple: Quand tu sors le matin (événement), si la température est glaciale (condition), alors mets tes gants (état suivant, action). La description comportementale d’un objet doit spécifier ce que fait l’objet en réponse aux évènements.

29 Exemple de diagramme d’états
En attente raccroché raccroché décrocher Fin de délai Tonalité Délai Composer chiffre (n) Composant Fin de délai Message en. Bon numéro Faux numéro Connectant acheminé Sonnant Tél. appelé répond connecté Tél. appelé décroché Déconnecté Message fini

30 Modèle fonctionnel Il décrit les aspects relatifs aux transformations des valeurs: les fonctions, les correspondances, les contraintes et les dépendances fonctionnelles. Il modélise ce que fait un système, sans s’occuper de la façon ou du moment où il les fait. Il est représenté graphiquement par des diagrammes de flots de données.

31 Diagrammes de flots de données
Il contient des traitements qui transforment les données, des flots de données qui transportent les données, des acteurs qui produisent et consomment les données, et des dépôts de données qui stockent passivement les données.

32 Les flots de contrôle Un diagramme de flots de données ne montre pas quels chemins sont exécutés ni dans quel ordre. Décisions et séquences sont des problèmes de contrôle et, en tant que tels, font partie du modèle dynamique. Cependant, il est parfois utile de les englober dans le modèle fonctionnel (but: ne pas les oublier) Ceci se fait en englobant les flots de contrôle dans les diagrammes de flots de données. Un flot de contrôle est une valeur booléenne qui permet de savoir si un traitement est évalué. Il est représenté par une ligne pointillée.

33 Processus de modélisation
La méthodologie OMT prévoit trois étapes: Analyse Conception du système Conception des objets

34 Analyse Le but est de développer un modèle de ce que le système doit faire. Ce modèle est exprimé en termes d’objets et de relations, de flux dynamiques et de transformations fonctionnelles. Écrire ou obtenir une description initiale du problème. Construire un modèle objet. Identifier les classes d’objets Commencer à remplir un dictionnaire de données contenant les descriptions des classes, des attributs et des associations. Ajouter les associations entre les classes. Ajouter les attributs des objets et des liens Organiser et simplifier les classes en utilisant l’héritage Tester les chemins d’accès en utilisant des scénarios et itérer les étapes précédentes. Regrouper les classe en modules, selon le critère du couplage fort et des fonctions apparentées.  Modèle objet = diagramme du modèle objet + dictionnaire de données.

35 Analyse (suite) 3. Développer un modèle dynamique.
Préparer des scénarios des séquences d’interactions typiques. Identifier les évènements entre les objets et préparer un diagramme de suivi des évènements pour chaque scénario. Préparer un diagramme de flots d’évènements pour le système. Développer un diagramme d’états pour chaque classe ayant un comportement dynamique important. Vérifier la cohérence et la complétude des évènements partagés par touts les diagrammes d’états.  Modèle dynamique = diagramme d’états + diagramme global des flots d’évènements.

36 Analyse (suite) 4. Construire un modèle fonctionnel.
Identifier les valeurs d’entrée et de sortie Utiliser des diagrammes de flots de données là où c’est nécessaire pour mettre en évidence les dépendances fonctionnelles. Décrire ce que fait chaque fonction. Identifier les contraintes Spécifier les critères d’optimisation. Modèle fonctionnel = diagramme de flots de données + contraintes.

37 Analyse (suite) 5. Vérifier, itérer et raffiner les trois modèles.
Ajouter au modèle objet les opérations clés découvertes lors de la préparation du modèle fonctionnel. Vérifier que les classes, associations, attributs et opérations soient cohérents et complets à chaque niveau d’abstraction. Comparer les trois modèle à la définition du problème et aux connaissances pertinentes du domaine et tester les modèles à l’aide des scénarios. Développer des scénarios plus élaborés (comprenant des conditions d’erreurs) comme variations des scénarios de base. Utiliser des scénarios de type «  que se passera-t-il, si … ». Recommencer les étapes ci-dessus autant de fois que nécessaire pour compléter l’analyse. Documentation d’analyse = définition du problème + modèle d’objets + modèle dynamique + modèle fonctionnel.

38 Conception du système Durant la conception du système, le choix de la structure de haut niveau du système (architecture du système) est arrêtée. Organiser le système en sous systèmes Allouer les sous-systèmes à des processus et à des tâches Choisir la stratégie de base pour implanter les stockages des données en termes de structures de données, de fichiers et de base de données. Identifier les ressources globales et déterminer les mécanismes de contrôle d’accès. Choisir une approche pour l’implantation du contrôle du logiciel. Examiner les conditions de limites Établir des compromis de priorités.  Documentation de conception du système = structure de l’architecture de base du système et décisions stratégiques de haut niveau.

39 Conception des objets Élaborer le modèle d’analyse et fournir un support détaillé pour l’implantation. On arrête les décisions nécessaires à la réalisation du système sans entrer dans les détails propres à un langage de programmation ou un système de base de données. Dans le modèle d’analyse c’est le monde réel. Dans le modèle de conception c’est les points de vue informatique pour l’implantation concrète.

40 Conception des objets Obtenir les opérations pour le modèle objet à partir des autres modèles: Trouver une opération pour chaque traitement du modèle fonctionnel. Définir un opération pour chaque événement du modèle dynamique, en fonction de l’implantation du contrôle. Concevoir les algorithmes pour implanter les opérations. Choisir les algorithmes qui minimisent les coûts d’implantation des opérations. Sélectionner les structures de données appropriées à ces algorithmes. Définir de nouvelles classes internes et de nouvelles opérations si nécessaire. Affecter des responsabilités aux opérations qui ne sont pas clairement associées à une classe.

41 Conception des objets 3. Optimiser les chemins d’accès aux données:
Ajouter des associations redondantes pour minimiser les coûts d’accès et augmenter la commodité. Enregistrer les valeurs calculées pour éviter de recalculer des expressions complexes. 4. Implanter le contrôle du logiciel en complétant l’approche choisie en phase de conception du système.

42 Conception des objets 5. Ajuster la structure de classes pour augmenter l’héritage Réorganiser et ajuster les classes et les opérations pour accroître l’héritage. Abstraire le comportement commun à un groupe de classes. Utiliser la délégation pour partager les comportements là où l’héritage est invalide sur la plan sémantique. 6. Concevoir l’implantation des associations Analyser le parcours des associations. Implanter chaque association comme un objet distinct, en ajoutant des attributs à une des classes associées ou aux deux classes.

43 Conception des objets 7. Déterminer la représentation exacte des attributs de l’objet. 8. Empaqueter les classes et les associations au sein de modules physiques.  Documentation de conception = modèle objet détaillé + modèle dynamique détaillé + modèle fonctionnel détaillé.


Télécharger ppt "Génie Logiciel Orienté Objet"

Présentations similaires


Annonces Google