CONCEPTION des SYSTÈMES d INFORMATION UML

Dimension: px
Commencer à balayer dès la page:

Download "CONCEPTION des SYSTÈMES d INFORMATION UML"

Transcription

1 CONCEPTION des SYSTÈMES d INFORMATION UML 3 : Analyse des Données : le Epitech 3 Automne 2007 Bertrand LIAUDET SOMMAIRE ANALYSE DES DONNEES : DIAGRAMME DE CLASSES 2 1. L approche objet 3 2. Le diagramme de classes Exercices corrigés Génération de C Paquetages et vue logique TP : Visio 43 EPITECH - CSI - UML Analyse des données page 1/43- Bertrand LIAUDET

2 ANALYSE DES DONNEES : DIAGRAMME DE CLASSES Il est facile de décrire la méthode encore que son application exige à coup sûr savoir et pratique. Diagramme UML ANALYSE DES DONNEES Diagramme de classes La programmation fonctionnelle suit l analyse fonctionnelle qui est calquée sur l analyse externe du problème. C est une analyse descendante. La programmation objet est moins intuitive que la programmation fonctionnelle. La programmation objet s intéresse au système en tant qu ensemble d objets en interaction. C est une analyse systémique. Le diagramme de classe est le diagramme le plus important de la modélisation orientée objet. Il contient les classes avec leurs méthodes. Mais il n indique pas comment utiliser ces méthodes. C est une description statique du système. L aspect dynamique sera apporté par les diagrammes d interaction (diagrammes de collaboration et de séquence). La construction du diagramme de classes doit se faire après l analyse fonctionnelle. Celle-ci, bien réalisée, mettra utilement sur la voie d un bon diagramme de classes. La construction d un diagramme de classes a intérêt à partir du concret : donc de diagrammes d interaction entre les objets (instances de classe) qui sont construits à partir de l analyse fonctionnelle (les diagrammes de séquences des scénarios). A partir de ces premiers objets, on pourra commencer à construire le diagramme de classe. EPITECH - CSI - UML Analyse des données page 2/43- Bertrand LIAUDET

3 1. L approche objet Avantages de l approche objet Stabilité de la modélisation par rapport aux entités du monde réel. Construction itérative facilité par le couplage faible entre les composants. Possibilité de réutiliser les éléments d un développement à un autre. Simplicité du modèle. 5 concepts fondateurs : 1. Objets 2. Messages 3. Classes 4. L héritage 5. Polymorphisme Programmation objet vs. programmation prodécurale La construction d un logiciel est une suite d itération du genre : division-réunion. Il faut décomposer (diviser) pour comprendre. Il faut composer - réunir - pour construire. Le processus de décomposition a été traditionnellement dirigé par un critère fonctionnel. Les fonctions du système sont identifiées puis décomposées en sous-fonctions, et ainsi de suite jusqu à l obtention d éléments simples programmables sous la forme de fonction et de procédure. C est la méthode cartésienne : analytique. L architecture du système est le reflet des fonctions du système. Il y a un fort couplage entre architecture et fonctions. L approche objet ajoute à l approche cartésienne une démarche systémique qui considère le système comme un tout organisé. Elle propose une méthode de décomposition non pas basée uniquement sur ce que le système fait, mais sur ce que le système est et fait. Autrement dit, on s intéresse aux données (ce que le système est) et aux fonction appliquées à ces données (ce que le système fait). En programmation fonctionnelle structurée, on a, schématiquement, une vision systémique des fonctionnalités d un côté et des données structurées radicalement séparées des fonctionnalités de l autre. En programmation objet, on ajoute à la vision systémique des fonctionnalités (analyse fonctionnelle), une vision systémique des données (diagramme de classe) auxquelles on associe directement les fonctionnalités. EPITECH - CSI - UML Analyse des données page 3/43- Bertrand LIAUDET

4 Les objets Objet = une identité + un état + un comportement On dit aussi : Objet = données (état) + méthodes (comportement) D un point de vue abstrait, un objet informatique est une représentation d un objet du monde extérieur. Un objet informatique est une sorte de miroir qui renvoie une image (une connaissance) d un objet qui existe dans le monde perçu par l utilisateur. D un point de vue informatique, un objet informatique est une variable avec un ou plusieurs champs qui seront manipulées (en lecture ou en écriture) par les méthodes de l objets. Etat Valeurs instantanées des attributs (données) d un objet. Certaines partie de l état peuvent évoluer au cours du temps. D autres parties de l état peuvent être constantes. Comportement Le comportement regroupe les méthodes d un objet. Les méthodes sont des fonctions qui permettent d accéder aux valeurs des attributs d un objet. Ces méthodes sont déclenchées par des stimulations externes : des messages envoyés par d autres objets (c est-à-dire des appels de méthodes). On parle aussi de compétences pour les méthodes d un objet. Identité Chaque objet a une existence propre (une place en mémoire). Les objets sont différenciés par leurs noms (comme un nom de variable). Olivier M. Liaudet Toutefois, il est parfois difficile de nommer tous les objets : on peut donc les nommer du nom de leur classe, avec «:» devant. EPITECH - CSI - UML Analyse des données page 4/43- Bertrand LIAUDET

5 : Eleve : Professeur Chaque objet possède une identité attribuée de manière implicite à la création de l objet et jamais modifiée. On peut donner un attribut clé à l objet, qu on appelle «clé naturelle» (par exemple, un numéro de sécurité sociale). Il s agit toutefois d un artifice de réalisation. Cette clé appartient à l état de l objet. Le concept d identité est indépendant du concept d état. Encapsulation Pour accéder, en consultation ou en modification, à l état d un objet (à ses données), il faut passer par ses fonctions (ses méthodes). Il faut que ces fonctions soient appelées par d autres fonctions qui peuvent être des méthodes du même objet ou d un autre. Quand une méthode d un objet 1 est appelée par une méthode d un objet 2, on dit que l objet 2 a envoyé un message à l objet 1. Donc, de façon générale, pour accéder à l état d un objet, il faut lui envoyer un message. Les méthodes sont l interface obligatoire d accès aux données d un objet. Persistance des objets Un objet persistant sauvegarde son état dans un système de stockage permanent, de sorte qu il est possible d arrêter le processus qui l a créé sans perdre l information représentée par l objet. C est la passivation de l objet. L activation de l objet consiste à reconstruire l objet dans l état dans lequel on l avait sauvegarder. Par défaut, les objets ne sont pas persistants. Transmission des objets La transmission des objets consiste à faire passer un objet, par un moyen de communication quelconque, d un système à un autre. Scénario de communication L objet révèle son vrai rôle et sa vraie responsabilité lorsque, par l intermédiaire de l envoi de messages, il s insère dans un scénario de communication (c est-à-dire un cas d utilisation concret du système). Atterir : Tour de contrôle : Avion [en vol] EPITECH - CSI - UML Analyse des données page 5/43- Bertrand LIAUDET

6 L objet «Tour de contrôle» a dans ses données un objet avion ou un pointeur sur un objet avion. Une méthode de l objet «Tour de contrôle» peut donc envoyer un message à l objet «Avion». Communication entre objets Un système informatique peut être vu comme une société d objets qui communiquent entre eux pour réaliser les fonctionnalités de l application. Le comportement global d une application repose sur la communication entre les objets qui la composent. De ce fait, l étude des relations entre les objets du domaine est de première importance dans la modélisation objet. De plus, la première communication étant la communication entre les acteurs (externes) et le système, on peut aussi partir de l analyse fonctionnelle pour trouver les classes. Collaboration et communication On peut parler indifféremment de communication ou de collaboration entre objet. Cependant, on parle plutôt de collaboration quand on décrit les communications nécessaires pour réaliser une fonctionnalité. La collaboration est plutôt finalisée. On parle par contre indifféremment de communication pour une communication atomique ou une collaboration. 3 catégories d objet fonction de leur mode communication Un objet peut être émetteur de message sans jamais en recevoir, destinataire de message sans jamais en émettre, émetteur et destinataire de message. Les acteurs Ce sont des objets à l origine d une interaction. Ce sont des objets actifs. Il possède un «fil d exécution» : un thread. Ils passent la main aux autres objets. Les serveurs Ce sont des objets qui ne sont jamais à l origine d une interaction. Ils sont toujours destinataire des messages. Ce sont des objets passifs. Les agents Ce sont des objets qui cumulent les caractéristiques des acteurs et des serveurs. Ils peuvent interagir avec les autres objets à tout moment, de leur propre initiative ou suite à une sollicitation externe. Les agents permettent le mécanisme de délégation : un objet se comporte comme un paravent devant un autre objet. Les agents découplent les acteurs des serveurs en introduisant une indirection dans le mécanisme de propagation des messages. EPITECH - CSI - UML Analyse des données page 6/43- Bertrand LIAUDET

7 Le concept de message L unité de communication entre les objets est le message. Le message est ce qui permet de reconstituer une fonction de l application par la mise en collaboration d un groupe d objets. Messages concrets : L appel de procédure L événement discret (changement d état) L interruption Etc. Le message acquiert toute sa force d intégration lorsqu il est associé au polymorphisme et à la liaison dynamique. Synchronisation des messages La synchronisation précise la nature de la communication et les règles qui régissent le passage des messages. Message synchrone Une fois le message envoyé, l expéditeur est bloqué jusqu à ce que le destinataire accepte le message. Un appel de procédure est un message synchrone. Diagramme de collaboration correspondant : Envoi simple Un expéditeur Un destinataire Diagramme de séquence correspondant : Un expéditeur Un destinataire Envoi simple retour implicite EPITECH - CSI - UML Analyse des données page 7/43- Bertrand LIAUDET

8 Message asynchrone Il n interrompt pas l exécution de l expéditeur. L expéditeur envoie le message sans savoir quand ni même si le message sera traité par le destinataire. Diagramme de collaboration correspondant : Envoi simple Un expéditeur Un destinataire Diagramme de séquence correspondant : Un expéditeur Un destinataire Envoi simple retour implicite Demi flèche ou flèche simple peuvent représenter les envois asynchrones. Message dérobant Un message dérobant déclenche une opération seulement si le destinataire s est préalablement mis en attente du message. Dans le cas d un message synchrone, l expéditeur accepte d attendre ; dans le cas d un message dérobant, le destinataire accepte d attendre. Envoi dérobant Message minuté Un message minuté bloque l expéditeur pendant un temps donné, en attendant la prise en compte de l envoi par le destinataire, ou la durée spécifiée dans le message. Envoi minuté EPITECH - CSI - UML Analyse des données page 8/43- Bertrand LIAUDET

9 Classe Une classe est la description d un ensemble d objets ayant les mêmes méthodes et les mêmes types de données. La classe peut être vue comme une extension de la notion de type. Les objets apparaissent alors comme des variables de type classe. La démarche d abstraction objet : un nouveau paradigme Elle consiste à regrouper les éléments qui se ressemblent et à distinguer des structures de plus haut niveau d abstraction, débarrassées de détails inutiles. La classe décrit le domaine de définition d un ensemble d objets. Les généralités sont contenues dans la classe. Les particularités sont contenues dans les objets. Un objet est une instance de classe. Avec les langages objet, le programmeur peut construire une représentation informatique des abstractions qu il a l habitude de manipuler mentalement, sans traduction vers des concepts de plus bas niveau, comme les variables, les types abstraits de données et les fonctions des langages non objet. Les langages objet réduisent la distance entre notre façon de raisonner et le langage compris par les ordinateurs, de sorte qu il est plus facile de réaliser une application avec un langage objet qu avec un langage procédural, même si l approche objet demande un remise en cause des habitudes acquises. Les attributs d une classe Ils sont définis par un nom, un type et éventuellement une valeur initiale. Chat Nom :string Age : int Classe Chat : Chat Nom= Minou Age= 1 Un objet Chat EPITECH - CSI - UML Analyse des données page 9/43- Bertrand LIAUDET

10 Les principales catégories d opérations L héritage Les constructeurs : pour créer les objets (création). Les destructeurs : pour détruire les objet (destruction). Les sélecteurs : pour renvoyer tout ou partie de l état d un objet (consultation). Les modificateurs : pour modifier tout ou partie de l état d un objet (modification). Les itérateurs : pour consulter le contenu d une structure de données qui contient plusieurs objets. L héritage est une technique qui permet de construire une classe (espèce) en lui faisant hériter des attributs et des méthodes d autres classes (genre, super-classe). L héritage est utilisé pour construire de nouvelles classes, pour classer les objets et pour la conception abstraite (avec le polymorphisme). Animaux Chats Chiens Principe de substitution On peut substituer n importe quel objet d une super-classe par n importe quel objet d une sous-classe. La spécialisation ajoute des attributs et des opérations mais ni n en détruit, ni n en modifie. Classe abstraite Une super classe (classe genre) peut être instanciée ou pas. Une classe qui ne peut pas être instanciée est une classe abstraite. Elle est super classe d autre classe qui seront instanciées. Les classes servent donc surtout pour la classification et le polymorphisme. Attention à l héritage des associations! EPITECH - CSI - UML Analyse des données page 10/43- Bertrand LIAUDET

11 Les associations sont héritées mais pas complètement!!! Le plus souvent, les contraintes des associations ne sont pas transmises automatiquement de la superclasse vers la sous-classe. Les contraintes sont le plus souvent traduites par un bout de code implanté dans la réalisation d une opération. Comme les langages permettent la redéfinition des opérations dans les sous-classes, les programmeurs peuvent involontairement introduire des incohérences entre la spécification d une super-classe et sa réalisation dans une des sous-classes. Polymorphisme Le polymorphisme décrit la caractéristique d un élément qui peut prendre plusieurs formes (l eau peut être à l état solide, liquide ou gazeux). Le polymorphisme désigne le principe qui fait qu un nom d objet peut désigner des objets différents (des instances de classes différentes) issus d une même arborescence. Le polymorphisme désigne surtout le polymorphisme d opération : la possibilité de déclencher des opérations différentes en réponse à un même message. Le polymorphisme permet de manipuler des objets sans en connaître précisément le type. Le polymorphisme est lié à la notion d héritage. On peut manipuler des objets dont le type est abstrait au niveau de la classe générale (abstraite). Le type deviendra concret quand l objet deviendra concret et portera le type de sa classe spécialisée. Le polymorphisme n influence pas l analyse organique, mais il en dépend. Il ne faut pas penser l analyse en terme de polymorphisme, mais en terme d abstraction. L analyse en terme d abstraction rend possible le polymorphisme. Les bénéfices du polymorphisme sont un plus grand découplage entre les objets : ils sont avant tout récoltés durant la maintenance. Vocabulaire Instance Un objet est une instance d une classe. L instance est une notion générale : un lien est une instance d une association ; une variable peut être dite une instance d un type. Méthode et opération La spécification d une méthode correspond à son entête : on l appelle aussi : l opération. L implémentation de la méthode (l algorithme), c est ce qu on appelle la méthode. Méthode abstraite Une méthode est dite abstraite quand on connaît son entête mais pas la manière dont elle peut être réalisée. EPITECH - CSI - UML Analyse des données page 11/43- Bertrand LIAUDET

12 Classe abstraite Une classe est dite abstraite quand elle ne s instancie pas directement et qu elle sert donc uniquement de spécification. C est une classe qui ne contient pas d objets. Elle contient des sous-classes qui elles contiendront des objets. En phase de modélisation, une classe est aussi dite abstraite quand elle, ou une de ses classes parents, définit au moins une méthode abstraite (et donc qu elle ne peut pas, au moins provisoirement, être instanciée). EPITECH - CSI - UML Analyse des données page 12/43- Bertrand LIAUDET

13 2. Le diagramme de classes Notions générales sur les classes et formalisme UML Classe Personne prénom : String datenaissance : Date sexe : { M, F } calculage() : Integer renvoyernom() : String Nom de la classe Liste d attributs Liste des méthodes Le nom de la classe doit être significatif. Il commence par une majuscule. Le nom de la classe peut être préfixé par son ou ses paquetages d appartenance. Si personne est dans le paquetage A, lui même dans le paquetage B, on écrira B ::A ::Personne Classe abstraite FigureGéométrique {abstract} typetrait : Trait dessiner() {abstract} Rectangle Dessiner() FigurePleine {abstract} La classe figure géométrique est abstraite parce quelle contient une méthode abstraite, c est-àdire une méthode dont on connaît l entête mais pas le corps. Encapsulation L occultation des détails de réalisation est appelée : encapsulation. L encapsulation présente un double avantage : Les données encapsulées dans les objets sont protégées. Les utilisateurs d une abstraction ne dépendent pas de sa réalisation, mais seulement de sa spécification, ce qui réduit le couplage dans les modèles. Le degré d encapsulation peut être paramétré : c est la notion de visibilité. EPITECH - CSI - UML Analyse des données page 13/43- Bertrand LIAUDET

14 Visibilité des attributs et des méthodes Par défaut, les attributs d une classe sont «private» : les attributs d un objet sont encapsulées dans l objet. Les attributs ne sont manipulable que par les méthodes de l objet. Par défaut, les méthodes d une classe sont «public» : les méthodes d un objet sont accessibles par tous les «clients» de l objet. UML définit quatre niveaux de visibilité La visibilité des attributs et des méthodes est précisée par des mot-clés ou des symboles Symbole Mot-clé Signification + Public Visible partout Visible dans tout le paquetage où la classe est définie # Protected Visible dans la classe, dans ses sous-classes et par les amis. - Private Visible uniquement dans la classe et par les amis. Attribut de Classe Certains attributs ont une valeur identique pour tous les objets de la classe. Ce sont des sortes de constantes définies au niveau de la classe. Ce sont les attributs de classe. En UML, ces attributs sont listés avec les autres, mais ils sont soulignés. Symbole Mot-clé Signification Souligné Valeur identique pour tous les objets de la classe Attribut dérivé Certains attributs peuvent être calculés à partir d autres attributs de la classe. En UML, ces attributs sont listés avec les autres, mais ils sont précédés d un «/». Symbole Mot-clé Signification / Attribut dont la valeur est calculée à partir de celle d autres attributs Méthode de Classe EPITECH - CSI - UML Analyse des données page 14/43- Bertrand LIAUDET

15 Quand une méthode ne porte pas sur les attributs d objet de la classe mais uniquement sur des attributs de classe ou sur des valeurs constantes, cette méthode est dite méthode de classe. En UML, ces méthodes sont listées avec les autres, mais elles sont soulignées. Compartiment des responsabilités Le compartiment des «responsabilités» liste l ensemble des tâches que la classe doit réaliser. C est une façon de lister les méthodes dont on n a pas encore défini l entête. Quand la conception sera achevée, ce compartiment devra disparaître. Compartiment des exceptions Le compartiment des «exceptions» liste les situations exceptionnelles devant être gérées par la classe. Là encore, quand la conception sera achevée, ce compartiment devra disparaître. Les classes actives Les classes actives sont des classes dont les objets, eux-mêmes actifs, possède un flot de contrôle propre se déroulant en parallèle avec ceux des autres objets actifs. Classe et objet actif sont représentés par un cadre plus épais ou avec un trait double. Relation de dépendance Les relations de dépendances sont utilisées quand il existe une relation sémantique entre plusieurs éléments qui n est pas de nature structurelle. Notons particulièrement : <<ami>> est une relation de permission qui précise que l élément source à accès à un l élément destination quelle que soit la visibilité de ce dernier. <<utilise>> est une relation d utilisation qui précise que l élément source requiert la présence de l élément destination pour son bon fonctionnement. A <<ami>> B Associations entre classes Comme dans le modèle entité-association (modèle conceptuel des données MERISE), on peut, avec UML, établir des relations (des associations) entre les classes. Il y a trois types d associations entre classes : Les associations simples Les associations d agrégation de composition Les associations d héritage Les deux premières expriment des relations entre les objets de deux classes (ou plus). EPITECH - CSI - UML Analyse des données page 15/43- Bertrand LIAUDET

16 L association d héritage permettent de définir des sous-ensembles dans un ensemble ou inversement de définir un ensemble à partir de sous-ensembles. Elle exprime une relation entre les classes et pas entre les objets. Les associations simples Association Une association représente une relation structurelle entre des classes d objets. Une ligne entre deux classes représente une association. Association binaire (arité = 2) La plupart des associations sont binaires : elles ne réunissent que deux classes. Association ternaire et plus (arité >2) L association et ses différents ornements multiplicité nom multiplicité rôle Nom et sens de lecture des associations L association peut avoir un nom. Le nom explicite le lien entre les deux classes. C est souvent un verbe. Le sens de lecture permet de préciser dans quel sens il faut lire le nom. rôle Personne travaille pour entreprise Rôles des extrémités des associations Personne Employé entreprise Employeur Le rôle est un pseudo-attribut. On peut préciser sa visibilité (+, -, #) La plupart du temps, le nommage des rôles est limité en fonction de la navigabilité. EPITECH - CSI - UML Analyse des données page 16/43- Bertrand LIAUDET

17 Navigabilité des associations A B L association n est navigable que dans le sens de A vers B. Une association navigable uniquement dans un sens peut être vue comme une demi-association. Multiplicité (cardinalité) des associations Chaque extrémité de l association peut porter une indication de multiplicité qui montre combien d objets de la classe considérée peuvent être liés à un objet de l autre classe. 1 Un et un seul 0..1 Zéro ou un N M..N N (entier naturel qui peut être précisé) De M à N (entiers naturels qui peuvent être précisés) * De zéro à plusieurs 0..* De zéro à plusieurs 1..* De un à plusieurs Personne Employé 1 Département 0..* Employeur Chaque personne est employée dans un département et un seul. Les départements sont employeur de 0 ou plusieurs personnes. Attention : Les cardinalités sont mises à l inverse du modèle entité-association (MCD) : Personne 1.1 Emploi 0..N Département EPITECH - CSI - UML Analyse des données page 17/43- Bertrand LIAUDET

18 Classe-Association Une association peut avoir ses propriétés qui ne sont disponibles dans aucune des classes qu elle relie. Pour cela, on relie une classe à une association : Personne Employé 1 Département 0..* Employeur Poste Fonction Salaire Date La classe-association correspond à l association non-hiérarchique du MCD. Contraintes sur les associations Toutes sortes de contraintes peuvent être définies sur les associations. Certaines s appliquent à une seule association : {ordonné} : précise qu une collection (0..*) doit être ordonnée. Personne 1 0..* {ordonné} Compte Certaines s appliquent à plusieurs associations : {sous ensemble} : précise qu une collection est incluse dans une autre collection {ou exclusif} : pour un objet donné, une seule association, parmi les associations contraintes par le ou exclusif, est possible. Qualification des associations (restriction) Parents d élèves Classe * d école {sous-ensemble} Personne 2 * Délégués La qualification des associations consiste à réduire le nombre d occurrences d une association. Elle ne s applique qu à des association dont la multiplicité est supérieure à 1 (sinon, le nombre d occurrences ne peut pas être réduit). donateurs 1 * dons EPITECH - CSI - UML Analyse des données page 18/43- Bertrand LIAUDET

19 Dans ce cas, la qualification ne peut s appliquer qu aux donateurs (un donateur peut faire plusieurs dons). donateurs attribut qualifiant 1 dons L attribut qualifiant peut être extrait de la classe des dons. ou encore : donateurs numéro du don dons donateurs année du don 1 0.n dons La qualification restreint la relation aux seuls couples concernés par un qualifieur. La qualification des associations est une forme d association contrainte. Agrégation et composition Agrégation L agrégation est une association non symétrique dans laquelle une des extrémités, l agrégat, joue un rôle prédominant par rapport à l autre extrémité, l élément agrégé. Agrégat Elément agrégé Quelle que soit l arité de l association, il ne peut y avoir qu un seul agrégat. L agrégation représente en général une relation d inclusion structurelle ou comportementale. Ecole Salle Chaise Fenêtre Une école est composé de plusieurs salles, qui elles-mêmes sont composées de plusieurs fenêtres et plusieurs chaises. En général, les agrégations sont navigables uniquement dans le sens Agrégat vers Elément agrégé. En général, les agrégations sont des associations 1..* Composition La composition est un cas particulier d agrégation. EPITECH - CSI - UML Analyse des données page 19/43- Bertrand LIAUDET

20 Composite 0..1 * Composant La composition implique une coïncidence des durées de vie des composants et du composite : la destruction du composite implique la destruction de tous ses composants. La composition implique aussi une contrainte sur les valeurs de multiplicité du côté de l agrégat : elle ne peut être que 0 ou 1 : un composant ne peut pas être partageable. Ecole Salle Chaise Fenêtre Si on supprime la salle, les fenêtres sont aussi supprimées. Ce qui n est pas le cas des chaises. Généralisation Le terme généralisation désigne une relation de classification entre un élément plus général (le genre) et un élément plus spécifique (l espèce). La classe Chat est une espèce de la classe Animal. On parle de classe spécifique, ou sous-classe, ou classe enfant. Et de classe générale, ou sur-classe, ou super classe, ou classe parent, ou classe mère. Chat Animal Girafe Ou encore : Chien Animal Chat Chien Girafe Distinction entre généralisation et composition Un chat est un animal : c est une généralisation. La classe chat est une partie de la classe animal. Chaque objet «chat-x» appartient à la classe «chat» et à la classe «animal». Un chat a deux oreilles : c est une composition. L objet «oreille» est une partie de l objet «chat». Pour tout objet «chat», il existe deux objets «oreille». EPITECH - CSI - UML Analyse des données page 20/43- Bertrand LIAUDET

21 Héritage La classe spécifique contient des attributs et des méthodes qui lui sont propres. La classe spécifique hérite de tous les attributs, méthodes et associations de la classe générale, sauf pour ceux qui sont privées. Une classe spécifique peut redéfinir une ou plusieurs méthodes. C est le principe de la surcharge des opérations. Un objet utilise les opérations les plus spécialisées dans la hiérarchie des classes. Un objet spécifique peut être utilisé partout où un objet général est attendu : partout où on attend un animal, on peut utiliser un chat. Généralisation multiple Une sous-classe peut avoir plusieurs sur-classes Les classes Interface Présentation Une classe «interface» prend en charge la communication entre le système et son environnement, que ce soit un utilisateur ou un autre système. Ce comportement est caractérisé par un ensemble d opérations ayant une visibilité «public». Ces opérations sont réalisées dans des classes «entité». L interface peut regrouper des opérations communes à plusieurs classes. Caractéristiques Une interface est une classe avec le stéréotype «interface». C est une classe particulière : elle est abstraite : ell n a pas d instance qui la réalisent (pas d objets). elle ne contient pas d attributs. Une interface est réalisée par la classe à laquelle elle est reliée. Les opérations de l interface sont toutes abstraites (et définies dans la ou les classes qui la réalisent). Représentation des interfaces une classe une interface une classe <<interface>> Vue A La flèche signifie que la source réalise la destination <<interface>> est le nom d un stéréotype EPITECH - CSI - UML Analyse des données page 21/43- Bertrand LIAUDET

22 On peut préciser le stéréotype du lien : «réalise» (ce n est pas obligé). une classe <<réalise>> <<interface>> Vue A Si plusieurs classes partagent les mêmes méthodes d interface (et non plus seulement opérations abstraites), une seule classe réalisera l interface, les autres l utilisent : stéréotype «use». ou encore : Classe 1 Classe 2 <<use>> Classe 1 Classe 2 Méthode Pour trouver les interfaces, il faut examiner toutes les paires : ( acteurs physiques - scénario ). On a intérêt à créer une classe interface par cas et sous-cas d utilisation (include et extend). Les interfaces se trouvent à un haut niveau d abstraction. On commence par renseigner les besoins en interfaces utilisateur sans les implémenter. Ces classes seront affinées au fur et à mesure. On a intérêt à regrouper les interfaces dans un paquetage à part. Les classes de variables et d opérations globales : stéréotype <<utility>> <<utility>> Math PI :Real=3,14 Sinus (angle): Real Cosinus(angle): Real Tangente(Angle):Real EPITECH - CSI - UML Analyse des données page 22/43- Bertrand LIAUDET

23 Les classes paramétrables : template Une classe paramétrable est un modèle de classe. Une classe paramétrable a des paramètres formels. Une classe paramétrable est liée à des paramètres effectifs pour devenir une classe paramétrée qui pourra être instanciée. Paramètres formels Classe paramétrable Ce genre de classe n apparaît généralement pas en analyse. Les classes actives Par défaut, les classes sont passives. Une classe active possède son propre flot d exécution. Les classes actives peuvent être des <<processus>> ou des <<thread >>. Un processus est un flot de contrôle lourd qui s exécute dans un espace d adressage indépendant. Un thread est un flot de contrôle léger qui s exécute à l intérieur d un processus. Une classe active cho un ou plusieurs flots de contrôle. Représentation UML Le rectangle de la classe est en gras ou en trait double. Construction d un diagramme de classes : 3 grands types de classe 3 points de vue guident la modélisation du diagramme des classes : Le point de vue statique Le point de vue fonctionnel Le point de vue dynamique EPITECH - CSI - UML Analyse des données page 23/43- Bertrand LIAUDET

24 Le point de vue statique : les classe «entité» ou «métier» Il met l accent sur les concepts du domaine et les associations qui les relient. Les classes correspondantes sont parfois stéréotypées par le nom «entité» ou «entity»: c est le point de vue qui se rapproche le plus du MCD. Méthode de construction du diagramme des classes «entité» : Analyse du type de celle faite pour un MCD. Il s agit de trouver les classes (entités), les attributs et les associations à partir de la description «métier» du domaine. En même temps ou à la suite, ajouter les méthodes (les responsabilités au sens large) En même temps ou à la suite, organiser et simplifier le diagramme en utilisant l héritage. En même temps ou à la suite, ajouter les classes «interface» et «control» Itérer et affiner le modèle Le point de vue fonctionnel : les classes «interface» Il met l accent sur les interfaces : interfaces utilisateur ou interfaces avec d autres systèmes. Les classes correspondantes sont stéréotypées par le nom «interface» ou «boundary». Les classes «interface» constituent la partie du système qui dépend de l environnement. Méthode pour trouver les classes «interface» : Examiner les paires acteur - scénario (occurrence de cas d utilisation). Les classes correspondent en gros à une étape de l interaction avec l utilisateur. Si on a décrit des cas d utilisation inclus ou étendus, chaque cas d utilisation correspondra à une classe interface. Dans le cas d une extension, le cas d utilisation qui regroupe les extensions correspondra aussi à une classe interface. Ne pas hésiter à travailler à un haut niveau d abstraction : ces classes seront affinées pendant la conception. Le point de vue dynamique : les classes «control» Il met l accent sur l implémentation. Les classes correspondantes sont stéréotypées par le nom «control». Les classes «control» modélisent le séquençage comportemental (une séquence est une suite ordonnée d opérations ; le séquençage est la détermination de la séquence). Méthode pour trouver les classes «control» : Ajouter une classe «control» pour chaque paire acteur / cas d utilisation. Les classes «control» définies par le couple acteur/cas d utilisation ne sont qu un point de départ : au cours de l avancement de l analyse, elle pourront être éliminées, éclatées ou fusionnées. EPITECH - CSI - UML Analyse des données page 24/43- Bertrand LIAUDET

25 Attention!!! Les classes «interface» et «control» ne doivent pas conduire à dissocier le comportement et les données : Elles ne doivent pas conduire à revenir à la programmation procédurale! Elles ne doivent pas appauvrir le diagramme des classes «entité». Le point de vue essentiel reste le point de vue des classes «entité». Les deux autres points de vue servent : A rendre plus concrète la modélisation A partir d un niveau d abstraction élevé A affiner le diagramme des classes «entité». EPITECH - CSI - UML Analyse des données page 25/43- Bertrand LIAUDET

26 3. Exercices corrigés L employé Trouver le diagramme de classe de la situation suivante : Un employé est caractérisé par son nom, son prénom, son sexe et son âge. Les responsabilités de la classe sont, entre autres, le calcul de l âge, le calcul du revenu de l employé et le calcul des charges patronales (ce que l employeur paie en plus du salaire de l employé). Les attributs de la classe sont privés. Le nom, le prénom et l âge de l employé font partie de l interface de la classe employé. Deux types de revenus sont envisagés : le salaire et toutes les autres sources de revenu. On calcule les charges en appliquant un coefficient de 15 % sur le salaire et de 20% sur les autres revenus. Un objet de la classe «employé» peut être créé à partir du nom et de la date de naissance. (d après UML-2, édition Pearson Education). Solution avec classe interface «lolipop» : Employe Interface Employés -Charges Salaire : float = 0,5 -ChargesAutreRevenus : float = 0,2 -Nom : string -Prénom : string -Sexe : char -DateNais : Date +getnom() : string +getprenom() : string +calculage() : int +Employe(entrée nom : string, entrée datenais : Date) : Employe +CalculRevenuNet() : float +CalculCharges() : float EPITECH - CSI - UML Analyse des données page 26/43- Bertrand LIAUDET

27 Représentation avec classe interface héritée : «interface»interface Employés +getnom() : string +getprenom() : string +calculage() : int Employe -Charges Salaire : float = 0,5 -ChargesAutreRevenus : float = 0,2 -Nom : string -Prénom : string -Sexe : char -DateNais : Date +getnom() : string +getprenom() : string +calculage() : int +Employe(entrée nom : string, entrée datenais : Date) : Employe +CalculRevenuNet() : float +CalculCharges() : float Explications complémentaires : Les 3 opérations de la classes interfaces sont abstraites, comme la classe interface. C est dans la classe employé que les opérations seront réalisées. 2 attributs de classe (soulignés) 4 attributs d instance Les 3 premières opérations sont des opérations d interface (calculage, getnom, getprenom). Rien ne les distingue visuellement des opérations de la classe. Mais dans la structure Visio, elles sont rangées dans la classe interface Employés. On peut aussi représenter la classe interface comme une classe «normale» en montrant les opérations de la classe. Rappelons que les classes interface sont des classes abstraites Les 3 opérations suivantes sont celles de la classe Employés. Les opérations en italiques sont celles qui sont encore abstraites. On ne connaît pas l algorithme (on ne sait pas comment on calcule le salaire et les charges patronales). On parle de «responsabilités» pour les méthodes abstraites et de «méthode» pour les méthodes concrètes. Remarque : il existe des opérations par défaut qu il n est pas nécessaire de préciser : un constructeur un destructeurs un getattribut par attribut un setattribut par attribut Constructeurs C ++ correspondant : Employes ( ) ; //## constructeur de base, par défaut Employes (const Employes &right) ; //## constructeur de recopie, par défaut Ou : Employes (const Employes &) ; Employes (string, date); //## constructeur spécifique EPITECH - CSI - UML Analyse des données page 27/43- Bertrand LIAUDET

28 Destructeur C ++ correspondant : ~Employes ( ) ; Get et Set C ++ correspondant : const String getnom () const; void setnom (String value); const String get_prenom () const; void setprenom (String value); etc. //## destructeur par défaut Ou : void setnom (String); Ou : void setprenom (String); L hôtel Trouver le diagramme de classes de la situation suivante : Un hôtel est composé d au moins deux chambres. Chaque chambre dispose d une salle d eau qui peut être une douche ou une salle de bain. L hôtel héberge des personnes. Il peut employer du personnel et est dirigé par un des employés. L hôtel a les caractéristiques suivantes : une adresse, le nombre de pièces, la catégorie. Une chambre est caractérisée par le nombre et le type de lits, le prix et le numéro. On peut calculer le chiffre d affaires et le prix de la chambre en fonction du nombre d occupants. On gère aussi la réservation des chambres. On peut connaître à tout moment la disponibilité des chambres. (d après UML-2, édition Pearson Education). EPITECH - CSI - UML Analyse des données page 28/43- Bertrand LIAUDET

29 Solution : Hotel -Nom : string -Adresse : string -Catégorie : int +calculca() : float +disponibilitéchambre() : Liste de Chambre +réserverchambre() +factureroccupation() 1 facturation 2..* Chambre -Numéro : int -nblitsimple : int -nblitdouble : int -nblitenfant : int -salledeau : string * Occupation -datearrivée : Date -datedépart : Date -nbadulte : int -nbenfant : int -coût : float * emploie +calculcoût() est dirigé par Personne -Nom : string -Prénom : string -Adresse : string * 1..* -employés -directeur 1 Employé Client Explications complémentaires : L hôtel est composé de chambres. Si on détruit l hôtel, les chambres sont détruites. En réalité, ce n est pas un très bon exemple, à moins de considérer que l hôtel est aussi composé d occupations et d employés. La composition crée une liste de référence par valeurs (et non pas par adresse comme dans le cas de l agrégation simple). Tous les liens qui partent de l hôtel ne sont navigables que dans le sens de l hôtel vers les classes liées. En effet, c est à partir de l hôtel quelles sont les chambres de l hôtel, quelles sont les chambres disponibles, quelles sont les employés de l hôtel. On pourra aussi calculer le chiffre d affaire à partir de l occupation des chambres. Les réservations sont gérées comme des occupations. DisponibilitéChambre renvoie la liste des chambres. On l utilisera pour faire la réservation. RéserverChambre ne ressort rien : on met à jour les données et c est tout. Facturer l occupation ne renvoie rien : le résultat est directement affecté à l attribut coût de l occupation. CalculCA renvoie le résultat. On en fera ensuite ce qu on veut. Personnes est une classe abstraite (en italique). Elle n est jamais instanciée. EPITECH - CSI - UML Analyse des données page 29/43- Bertrand LIAUDET

30 4. Génération de C++ Classe Classe A sans navigabilité vers B A a1 : Double a2 : Date 1 B b1 : Boolean b2 : Integer class A { public: //## Constructors (generated) A(); A(const A &right); //## Destructor (generated) ~A(); //## Assignment Operation (generated) A & operator=(const A &right); //## Equality Operations (generated) int operator==(const A &right) const; int operator!=(const A &right) const; //## Le générateur de code génère un constructeur de base, un constructeur de recopie, un destructeur, un opérateur d affectation, un opérateur d égalité et un opérateur de différence. private: //## Get and Set Operations for Class Attributes (generated) //## Attribute: a1 const Double get_a1 () const; void set_a1 (Double value); EPITECH - CSI - UML Analyse des données page 30/43- Bertrand LIAUDET

31 //## Attribute: a2 const Date get_a2 () const; void set_a2 (Date value); //## Le générateur de code génère un un get et un set pour tous les attributs. A noter que ces méthodes sont «private». private: // Data Members // for Class Attributes Double a1; Date a2; }; //## Get and Set Operations for Class Attributes (inline) inline const Double A::get_a1 () const { return a1; } inline void A::set_a1 (Double value) { a1 = value; } inline const Date A::get_a2 () const { return a2; } inline void A::set_a2 (Date value) { a2 = value; } Classe et navigabilité Classe A avec navigabilité vers 1 B A a1 : Double a2 : Date 1 B b1 : Boolean b2 : Integer EPITECH - CSI - UML Analyse des données page 31/43- Bertrand LIAUDET

32 class A { public: //## Get and Set Operations for Associations (generated) const B * get_the_b () const; void set_the_b (B * value); private: // Data Members // for Class Attributes Double a1; Date a2; }; // for Associations B *the_b; //## Le générateur de code ajoute un attribut dans la classe A : «the_b» qui est un pointeur sur un objet B. Il ajoute aussi un un get et un set pour «the_b». A noter que ces méthodes sont «public». //## Get and Set Operations for Associations (inline) inline const B * A::get_the_B () const { return the_b; } inline void A::set_the_B (B * value) { the_b = value; } Classe A avec navigabilité vers B A a1 : Double a2 : Date B b1 : Boolean b2 : Integer class A { EPITECH - CSI - UML Analyse des données page 32/43- Bertrand LIAUDET

33 public: //## Get and Set Operations for Associations (generated) const BoundedSetByReference<B,15> get_the_b () const; void set_the_b (BoundedSetByReference<B,15> value); private: // Data Members // for Associations BoundedSetByReference<B,15> the_b; }; //## Get and Set Operations for Associations (inline) inline const BoundedSetByReference<B,15> A::get_the_B () const { return the_b; } inline void A::set_the_B (BoundedSetByReference<B,15> value) { the_b = value; } Classe, navigabilité et agrégation Classe A avec navigabilité et agrégation vers 1 B B * the_b; //## On travaille par référence. En détruisant A, on ne détruit pas les 15 B. A noter que c est la même chose que la navigabilité toute seule. La notion d agrégation n est qu une façon d appuyer sur le rôle plus fort de A par rapport à B. Classe A avec navigabilité et agrégation vers 15 B B * the_b[15]; Classe A avec navigabilité et agrégation vers 0..1 B B * the_b; Classe A avec navigabilité et agrégation vers B BundedSetByReference <B, 10> the_b; Classe A avec navigabilité et agrégation vers 1..n B UnBundedSetByReference <B> the_b; Classe A avec navigabilité et agrégation vers n B EPITECH - CSI - UML Analyse des données page 33/43- Bertrand LIAUDET

34 UnBundedSetByReference <B> the_b Classe, navigabilité et composition Classe A avec navigabilité et composition vers 1 B B the_b; //## On travaille par valeur. En détruisant A, on détruit B (ou les B dans les cas suivants). Classe A avec navigabilité et composition vers 15 B B the_b[15]; Classe A avec navigabilité et composition vers 0..1 B OptionalByValue <B> the_b; Classe A avec navigabilité et composition vers 1..n B UnbundedSetByValue <B> the_b; Classe A avec navigabilité et composition vers n B UnbundedSetByValue <B> the_b Classe association A B C class C { public: //## Get and Set Operations for Associations (generated) const BoundedSetByReference<B,5> get_the_b () const; void set_the_b (BoundedSetByReference<B,5> value); const A * get_the_a () const; void set_the_a (A * value); EPITECH - CSI - UML Analyse des données page 34/43- Bertrand LIAUDET

35 private: // Data Members // for Associations A *the_a; BoundedSetByReference<B,5> the_b; }; Héritage A B #include A.h class B : public A {... }; EPITECH - CSI - UML Analyse des données page 35/43- Bertrand LIAUDET

36 5. Paquetages et vue logique Présentation La vue logique est constituée par les classes et les paquetages. L organisation en paquetage est un élément clé de l architecture. Les principaux paquetages apparaissent très tôt dans la phase d analyse. Les paquetages Un paquetage permet de regrouper les classes pour faciliter leur emploi, leur maintenance et leur réutilisation. Dans la version 2 d UML, un paquetage peut regrouper n importe quels éléments de modélisations (les cas d utilisation, etc.). Client Inclusion de paquetage Un paquetage peut inclure un autre paquetage. Un paquetage peut être inclus dans deux paquetages différents. Les paquetages de cas d utilisation définissent des sous-domaines fonctionnels du système étudiés. Ces sous-domaines peuvent partager des cas d utilisation. Banque Compte Transaction EPITECH - CSI - UML Analyse des données page 36/43- Bertrand LIAUDET

37 Nommage des paquetages Banque ::Compte désigne le paquetage Compte défini dans le paquetage Banque Si le cas d utilisation «Retirer argent» se trouve dans le paquetage transaction, on écrira : Banque ::Compte ::Retirer argent pour le désigner. Dépendances entre paquetages <<importe>> : ajoute les éléments du paquetage destination au paquetage source. Si on ne précise pas le stéréotype, c est «importe» par défaut. <<importe>> Les éléments du paquetage destination sont visibles dans le paquetage source. Toutefois, il n y a pas de relation de possession. Paquetage métiers, paquetages interfaces et paquetages techniques La vue logique est élaborée au début de la phase d analyse architectonique avec les classes «métier». Dès cette étape, on distinguera entre les classes métiers et les classes interfaces. On regroupera aussi les classes interfaces dans un paquetage interface. Paquetage Interface : il permet de regrouper les classes interfaces et ainsi de définir les classes métier indépendamment de leur utilisation. Ensuite, en fonction des choix de programmation effectués (langage, gestion d une base de données, gestion des erreurs, etc.), on pourra avoir d autres paquetages dans l architecture de la vue logique : Paquetage BaseDeDonnées : il permet de gérer le problème de la permanence des données. Paquetage IHM : il contient des classes fournies par le langage de programmation. Paquetage ClassesDeBase (global) : c est un paquetage qui est utilisé par tous les autres paquetages du système. PaquetageGestionDesErreurs (global) : c est un paquetage spécialisé dans la gestion des erreurs et qui est utilisé par tous les autres paquetages du système. Enfin, l analyse des classes métiers permettra de les regrouper dans différents paquetages métiers. Paquetages Métiers : ils permettent de définir des ensembles de classes portables d un projet à un autre. EPITECH - CSI - UML Analyse des données page 37/43- Bertrand LIAUDET

38 Amélioration de l analyse des classes : notion de métaclasse Une métaclasse est une classe (2) d une classe (1). La métaclasse est telle qu un objet de cette classe contient des données et des opérations qui caractérisent plusieurs objets de la classe dont elle est issue : classe (1). Exemple : Soit la classe des vols d une compagnie aérienne. Cette classe contient les attributs suivants : Vol numéro datedépart heuredépart datearrivée heurearrivée jour Le numéro du vol caractérise tous les vols qui ont lieu le même jour de la semaine à la même heure. En réalité, cette classe modélise deux classes : la métaclasse des «genres de vols» - VolGénérique - et la classe des vols concrets. La classe des vols concrets ne contient que les attributs : datedépart et datearrivée. VolGénérique Vol Numéro 1 décrit * datedépart heuredépart datearrivée heurearrivée jour Détermination des paquetages métier et réduction du couplage À partir de la première analyse des classes métiers, on va réfléchir à leur regroupement dans différents paquetages métiers. Cette analyse est en partie logique : on regroupe ensemble ce qui va ensemble, et en partie intuitive : parfois les limites ne sont pas évidentes à trouver. Le choix des frontières entre les paquetages se fera aussi en fonction du couplage entre les paquetages c est-à-dire de la navigabilité entre les classes. Paquetage 1 Paquetage 2 Classe 1 Classe 2 EPITECH - CSI - UML Analyse des données page 38/43- Bertrand LIAUDET

UML (Diagramme de classes) Unified Modeling Language

UML (Diagramme de classes) Unified Modeling Language UML (Diagramme de classes) Unified Modeling Language Sommaire Introduction Objectifs Diagramme de classes Classe (Nom, attribut, opération) Visibilité et portée des constituants d une classe Association

Plus en détail

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB www.enseirb.fr/~legal Olivier Augereau Formation UML

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB www.enseirb.fr/~legal Olivier Augereau Formation UML basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB www.enseirb.fr/~legal Olivier Augereau Formation UML http://olivier-augereau.com Sommaire Introduction I) Les bases II) Les diagrammes

Plus en détail

GOL502 Industries de services

GOL502 Industries de services GOL502 Industries de services Conception d un service Partie IIb Version 2013 Introduction Conception d un service partie IIb Nous verrons dans ce chapitre Modélisation d un service; Langage de modélisation

Plus en détail

Université de Bangui. Modélisons en UML

Université de Bangui. Modélisons en UML Université de Bangui CRM Modélisons en UML Ce cours a été possible grâce à l initiative d Apollinaire MOLAYE qui m a contacté pour vous faire bénéficier de mes connaissances en nouvelles technologies et

Plus en détail

Langage et Concepts de Programmation Objet. 1 Attributs et Méthodes d instance ou de classe. Travaux Dirigés no2

Langage et Concepts de Programmation Objet. 1 Attributs et Méthodes d instance ou de classe. Travaux Dirigés no2 Langage et Concepts de Programmation Objet Travaux Dirigés no2 Pôle Informatique École Nationale Supérieure des Mines de St-Etienne Vous trouverez plus de détails sur les concepts abordés lors de ce TD

Plus en détail

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère L'héritage et le polymorphisme en Java Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère En java, toutes les classes sont dérivée de la

Plus en détail

Diagramme de classes

Diagramme de classes Diagramme de classes Un diagramme de classes décrit les classes et leurs relations (associations, généralisation/spécialisation, ). classe association méthodes attributs héritage Diagramme de classes :

Plus en détail

Conception des bases de données : Modèle Entité-Association

Conception des bases de données : Modèle Entité-Association Conception des bases de données : Modèle Entité-Association La modélisation d un problème, c est-à-dire le passage du monde réel à sa représentation informatique, se définit en plusieurs étapes pour parvenir

Plus en détail

Les diagrammes de modélisation

Les diagrammes de modélisation L approche Orientée Objet et UML 1 Plan du cours Introduction au Génie Logiciel L approche Orientée Objet et Notation UML Les diagrammes de modélisation Relations entre les différents diagrammes De l analyse

Plus en détail

UML et les Bases de Données

UML et les Bases de Données CNAM UML et les Bases de Données UML et les Bases de Données. Diagramme de classes / diagramme d objets (UML)...2.. Premier niveau de modélisation des données d une application...2.2. Les éléments de modélisation...2.2..

Plus en détail

IFT2255 : Génie logiciel

IFT2255 : Génie logiciel IFT2255 : Génie logiciel Chapitre 6 - Analyse orientée objets Section 1. Introduction à UML Julie Vachon et Houari Sahraoui 6.1. Introduction à UML 1. Vers une approche orientée objet 2. Introduction ti

Plus en détail

Chapitre VI- La validation de la composition.

Chapitre VI- La validation de la composition. Chapitre VI- La validation de la composition. Objectifs du chapitre : Expliquer les conséquences de l utilisation de règles de typage souples dans SEP. Présenter le mécanisme de validation des connexions

Plus en détail

Héritage presque multiple en Java (1/2)

Héritage presque multiple en Java (1/2) Héritage presque multiple en Java (1/2) Utiliser deux classes ou plus dans la définition d'une nouvelle classe peut se faire par composition. class Etudiant{ int numero; Diplome d; float passeexamen(examen

Plus en détail

UML. Diagrammes de classes (suite) Delphine Longuet. delphine.longuet@lri.fr

UML. Diagrammes de classes (suite) Delphine Longuet. delphine.longuet@lri.fr Polytech Paris-Sud Formation initiale 3 e année Spécialité Informatique Année 2014-2015 UML Diagrammes de classes (suite) Delphine Longuet delphine.longuet@lri.fr Opérations Opérations Service qui peut

Plus en détail

Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets.

Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets. Encapsulation L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets. La visibilité dépend des membres : certains membres peuvent être visibles et d'autres

Plus en détail

Cours de Génie Logiciel

Cours de Génie Logiciel Cours de Génie Logiciel Sciences-U Lyon Diagrammes UML (2) http://www.rzo.free.fr Pierre PARREND 1 Avril 2005 Sommaire Les Diagrammes UML Diagrammes de Collaboration Diagrammes d'etats-transitions Diagrammes

Plus en détail

Rappel sur les bases de données

Rappel sur les bases de données Rappel sur les bases de données 1) Généralités 1.1 Base de données et système de gestion de base de donnés: définitions Une base de données est un ensemble de données stockées de manière structurée permettant

Plus en détail

MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE»

MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE» MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE» Du cours Modélisation Semi -Formelle de Système d Information Du Professeur Jean-Pierre GIRAUDIN Décembre. 2002 1 Table de matière Partie 1...2 1.1

Plus en détail

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object) Quelques patterns pour la persistance des objets avec DAO Ce cours présente des modèles de conception utilisés pour effectuer la persistance des objets Université de Nice Sophia-Antipolis Version 1.4 30/8/07

Plus en détail

Bases de données. Chapitre 1. Introduction

Bases de données. Chapitre 1. Introduction Références : Bases de données Pierre Wolper Email : pw@montefiore.ulg.ac.be URL : http : //www.montefiore.ulg.ac.be/~pw/ http : //www.montefiore.ulg.ac.be/ ~pw/cours/bd.html Henry F. Korth, Abraham Silberschatz,

Plus en détail

Modélisation des données

Modélisation des données Modélisation des données Le modèle Entité/Association Le MCD ou modèle Entité/Association est un modèle chargé de représenter sous forme graphique les informations manipulées par le système (l entreprise)

Plus en détail

Programmer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr)

Programmer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Programmer en JAVA par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Plan 1. Présentation de Java 2. Les bases du langage 3. Concepts avancés 4. Documentation 5. Index des mots-clés 6. Les erreurs fréquentes

Plus en détail

C++ COURS N 2 : CLASSES, DONNÉES ET FONCTIONS MEMBRES Classes et objets en C++ Membres d'une classe Spécification d'une classe Codage du comportement

C++ COURS N 2 : CLASSES, DONNÉES ET FONCTIONS MEMBRES Classes et objets en C++ Membres d'une classe Spécification d'une classe Codage du comportement C++ COURS N 2 : CLASSES, DONNÉES ET FONCTIONS MEMBRES Classes et objets en C++ Membres d'une classe Spécification d'une classe Codage du comportement des objets d'une classe Utilisation d'une classe Droit

Plus en détail

Polymorphisme, la classe Object, les package et la visibilité en Java... 1

Polymorphisme, la classe Object, les package et la visibilité en Java... 1 Polymorphisme, la classe Object, les package et la visibilité en Java. Polymorphisme, la classe Object, les package et la visibilité en Java.... 1 Polymorphisme.... 1 Le DownCast... 4 La Classe Object....

Plus en détail

Table des matières Sources

Table des matières Sources Table des matières Modélisation objet avec UML... 2 Introduction... 2 Modèle de système informatique :... 2 Pourquoi UML pour la modélisation Objet?... 3 Représentation dynamique du système... 5 Le diagramme

Plus en détail

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface

Plus en détail

Génie Logiciel avec Ada. 4 février 2013

Génie Logiciel avec Ada. 4 février 2013 Génie Logiciel 4 février 2013 Plan I. Généralités II. Structures linéaires III. Exceptions IV. Structures arborescentes V. Dictionnaires I. Principes II. Notions propres à la POO I. Principes Chapitre

Plus en détail

TP1 : Initiation à Java et Eclipse

TP1 : Initiation à Java et Eclipse TP1 : Initiation à Java et Eclipse 1 TP1 : Initiation à Java et Eclipse Systèmes d Exploitation Avancés I. Objectifs du TP Ce TP est une introduction au langage Java. Il vous permettra de comprendre les

Plus en détail

Cours STIM P8 TD 1 Génie Logiciel

Cours STIM P8 TD 1 Génie Logiciel Cours STIM P8 TD 1 Génie Logiciel Compléments sur UML Intervenant : Anil CASSAM CHENAI Date : 02/02/2012 Objectifs du complément Ce complément sera approfondi en parallèle de plusieurs TD/Cours. Rappels

Plus en détail

3. UML - Unified Modeling Language Diagrammes statiques

3. UML - Unified Modeling Language Diagrammes statiques 3. UML - Unified Modeling Language Diagrammes statiques Laëtitia Matignon laetitia.matignon@univ-lyon1.fr Département Informatique - Polytech Lyon Université Claude Bernard Lyon 1 2012-2013 Laëtitia Matignon

Plus en détail

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40 Déroulement du cours Introduction Concepts Java Remarques Langage et Concepts de Programmation Orientée-Objet Gauthier Picard École Nationale Supérieure des Mines de Saint-Étienne gauthier.picard@emse.fr

Plus en détail

Java Licence Professionnelle CISII, 2009-2010. Cours 2 : Classes et Objets

Java Licence Professionnelle CISII, 2009-2010. Cours 2 : Classes et Objets Licence Professionnelle CISII, 2009-2010 Cours 2 : Classes et Objets 1 Classes et Objets Objectifs des LOO : - Manipuler des objets - Découper les programmes suivant les types des objets manipulés - Regrouper

Plus en détail

TD/TP PAC - Programmation n 3

TD/TP PAC - Programmation n 3 Université Paris Sud Licence d informatique/iup-miage2 Année 2004-2005 Auteur : Frédéric Vernier Semaine : 11-16 octobre 2004 Conditions : sur machine avec les outils standards java web: http://vernier.frederic.free.fr/indexpac.html

Plus en détail

Premiers Pas en Programmation Objet : les Classes et les Objets

Premiers Pas en Programmation Objet : les Classes et les Objets Chapitre 2 Premiers Pas en Programmation Objet : les Classes et les Objets Dans la première partie de ce cours, nous avons appris à manipuler des objets de type simple : entiers, doubles, caractères, booléens.

Plus en détail

Chapitre 5 LE MODELE ENTITE - ASSOCIATION

Chapitre 5 LE MODELE ENTITE - ASSOCIATION Chapitre 5 LE MODELE ENTITE - ASSOCIATION 1 Introduction Conception d une base de données Domaine d application complexe : description abstraite des concepts indépendamment de leur implémentation sous

Plus en détail

Sommaire. G. Pujolle, F. Ravat, C. Soulé-Dupuy, G. Zurfluh

Sommaire. G. Pujolle, F. Ravat, C. Soulé-Dupuy, G. Zurfluh NOTATION UML AVEC RATIONAL ROSE G. Pujolle, F. Ravat, C. Soulé-Dupuy, G. Zurfluh Sommaire 1 GÉNÉRALITES...2 1.1 ENVIRONNEMENT LOGICIEL...2 1.2 LES VUES DU LOGICIEL ROSE...3 1.3 ORGANISATION RECOMMANDÉE...3

Plus en détail

Chapitre VIII. Les bases de données. Orientées Objet. Motivation

Chapitre VIII. Les bases de données. Orientées Objet. Motivation Chapitre VIII Motivation Le modèle relationnel connaît un très grand succès et s avère très adéquat pour les applications traditionnelles des bases de données (gestion) Les bases de données Orientées Objet

Plus en détail

Présentation générale de la méthode orientée objet : O.M.T. (Rumbaugh & al.)

Présentation générale de la méthode orientée objet : O.M.T. (Rumbaugh & al.) Présentation générale de la méthode orientée objet : O.M.T. (Rumbaugh & al.) Bernard ESPINASSE Professeur à l'université d'aix-marseille Plan Introduction Les modèles d'omt Le Modèle Objet (MO) Le Modèle

Plus en détail

Apprendre la Programmation Orientée Objet avec le langage Java (avec exercices pratiques et corrigés)

Apprendre la Programmation Orientée Objet avec le langage Java (avec exercices pratiques et corrigés) Introduction à la POO 1. Histoire de la POO 9 2. Historique du 12 La conception orientée objet 1. Approche procédurale et décomposition fonctionnelle 13 2. La transition vers l'approche objet 14 3. Les

Plus en détail

Information utiles. cinzia.digiusto@gmail.com. webpage : Google+ : http://www.ibisc.univ-evry.fr/ digiusto/

Information utiles. cinzia.digiusto@gmail.com. webpage : Google+ : http://www.ibisc.univ-evry.fr/ digiusto/ Systèmes de gestion de bases de données Introduction Université d Evry Val d Essonne, IBISC utiles email : cinzia.digiusto@gmail.com webpage : http://www.ibisc.univ-evry.fr/ digiusto/ Google+ : https://plus.google.com/u/0/b/103572780965897723237/

Plus en détail

Objets et Programmation. origine des langages orientés-objet

Objets et Programmation. origine des langages orientés-objet Objets et Programmation origine des langages orientés-objet modularité, encapsulation objets, classes, messages exemples en Java héritage, liaison dynamique G. Falquet, Th. Estier CUI Université de Genève

Plus en détail

Types d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles

Types d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles Types d applications pour la persistance Université de Nice Sophia-Antipolis Version 0.9 28/8/07 Richard Grin Toutes les applications n ont pas une complexité qui nécessite une architecture n- tiers Ce

Plus en détail

Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e

Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e P r o b l é m a t i q u e OCL : O b j e c t C o n s t r a i n t L a n g u a g e Le langage de contraintes d UML Les différents diagrammes d UML permettent d exprimer certaines contraintes graphiquement

Plus en détail

Débuter avec EXPRESS. Alain Plantec. 1 Schema 2

Débuter avec EXPRESS. Alain Plantec. 1 Schema 2 Débuter avec EXPRESS Alain Plantec Table des matières 1 Schema 2 2 Entité 2 2.1 Attributs simples................................................ 2 2.2 Attributs collection...............................................

Plus en détail

Ingénérie logicielle dirigée par les modèles

Ingénérie logicielle dirigée par les modèles Ingénérie logicielle dirigée par les modèles Destercq Lionel & Dubuc Xavier 17 décembre 2009 Table des matières 1 Introduction 1 2 Diagrammes de classes 1 2.1 Principal..............................................

Plus en détail

Patrons de Conception (Design Patterns)

Patrons de Conception (Design Patterns) Patrons de Conception (Design Patterns) Introduction 1 Motivation Il est difficile de développer des logiciels efficaces, robustes, extensibles et réutilisables Il est essentiel de comprendre les techniques

Plus en détail

Conception, architecture et urbanisation des systèmes d information

Conception, architecture et urbanisation des systèmes d information Conception, architecture et urbanisation des systèmes d information S. Servigne Maître de Conférences, LIRIS, INSA-Lyon, F-69621 Villeurbanne Cedex e-mail: sylvie.servigne@insa-lyon.fr 1. Introduction

Plus en détail

LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr www.cril.univ-artois.fr/~jabbour

LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr www.cril.univ-artois.fr/~jabbour LMI 2 Programmation Orientée Objet POO - Cours 9 Said Jabbour jabbour@cril.univ-artois.fr www.cril.univ-artois.fr/~jabbour CRIL UMR CNRS 8188 Faculté des Sciences - Univ. Artois Février 2011 Les collections

Plus en détail

Génie logiciel avec UML. Notions sur le langage UML adapté pour les cours du programme Techniques de l informatique

Génie logiciel avec UML. Notions sur le langage UML adapté pour les cours du programme Techniques de l informatique Génie logiciel avec UML Notions sur le langage UML adapté pour les cours du programme Techniques de l informatique Claude Boutet Session hiver 2008 Modélisation de systèmes Table des matières TABLE DES

Plus en détail

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Structure d un programme et Compilation Notions de classe et d objet Syntaxe Cours1 Structure d un programme et Compilation Notions de classe et d objet Syntaxe POO 1 Programmation Orientée Objet Un ensemble d objet qui communiquent Pourquoi POO Conception abstraction sur les types

Plus en détail

Cycle de vie du logiciel. Unified Modeling Language UML. UML: définition. Développement Logiciel. Salima Hassas. Unified Modeling Language

Cycle de vie du logiciel. Unified Modeling Language UML. UML: définition. Développement Logiciel. Salima Hassas. Unified Modeling Language Unified Modeling Language UML Salima Hassas Version Cycle de vie du logiciel Client Besoins Déploiement Analyse Test Conception Cours sur la base des transparents de : Gioavanna Di Marzo Serugendo et Frédéric

Plus en détail

Master MIDO 2ème année. Spécification et Conception en UML Maude Manouvrier

Master MIDO 2ème année. Spécification et Conception en UML Maude Manouvrier Master MIDO 2ème année Spécification et Conception en UML Maude Manouvrier Spécifications initiales Analyse Conception du système Conception des classes Bibliographie Modélisation et conception orientées

Plus en détail

OCL - Object Constraint Language

OCL - Object Constraint Language OCL - Object Constraint Language Laëtitia Matignon laetitia.matignon@univ-lyon1.fr Département Informatique - Polytech Lyon Université Claude Bernard Lyon 1 2012-2013 Laëtitia Matignon SIMA - OCL - Object

Plus en détail

Traduction des Langages : Le Compilateur Micro Java

Traduction des Langages : Le Compilateur Micro Java BARABZAN Jean-René OUAHAB Karim TUCITO David 2A IMA Traduction des Langages : Le Compilateur Micro Java µ Page 1 Introduction Le but de ce projet est d écrire en JAVA un compilateur Micro-Java générant

Plus en détail

Devenez un véritable développeur web en 3 mois!

Devenez un véritable développeur web en 3 mois! Devenez un véritable développeur web en 3 mois! L objectif de la 3W Academy est de former des petits groupes d élèves au développement de sites web dynamiques ainsi qu à la création d applications web

Plus en détail

Cours 1: Java et les objets

Cours 1: Java et les objets Ressources Les interface homme-machine et le langage Java DUT première année Henri Garreta, Faculté des Sciences (Luminy) Cyril Pain-Barre & Sébastien Nedjar, IUT d Aix-Marseille (Aix) Cours 1: infodoc.iut.univ-aix.fr/~ihm/

Plus en détail

Créer et partager des fichiers

Créer et partager des fichiers Créer et partager des fichiers Le rôle Services de fichiers... 246 Les autorisations de fichiers NTFS... 255 Recherche de comptes d utilisateurs et d ordinateurs dans Active Directory... 262 Délégation

Plus en détail

Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml

Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml OCL Object Constraint Language Le langage de contraintes d'uml Plan 1. Introduction 2. Les principaux concepts d'ocl Object Constraint Language 1 Object Constraint Language 2 Exemple: une application bancaire

Plus en détail

TD/TP PAC - Programmation n 3

TD/TP PAC - Programmation n 3 Université Paris Sud Licence d informatique/iup-miage2 - Année 2004-2005 auteur : Frédéric Vernier semaine : 11-16 octobre 2004 conditions : sur machine avec les outils standards java web: http://vernier.frederic.free.fr/indexpac.html

Plus en détail

Une introduction à Java

Une introduction à Java Une introduction à Java IFT 287 (Semaine 1) UNIVERSITÉ DE SHERBROOKE 1 Java - Historique Développé par Sun Microsystems en 1994 Inventeur James Gosling (canadien!) Objectif langage sûr (fortement typé)

Plus en détail

Pascal Brunot Hadrien Cambazard UML FOR BUSINESS INTELLIGENCE PROJECT

Pascal Brunot Hadrien Cambazard UML FOR BUSINESS INTELLIGENCE PROJECT UML FOR BUSINESS INTELLIGENCE PROJECT Abstract : this document deals with the role of UML into business intelligence projects (like data warehousing). After a quick overview of what UML offers, it focuses

Plus en détail

Projet Active Object

Projet Active Object Projet Active Object TAO Livrable de conception et validation Romain GAIDIER Enseignant : M. Noël PLOUZEAU, ISTIC / IRISA Pierre-François LEFRANC Master 2 Informatique parcours MIAGE Méthodes Informatiques

Plus en détail

Nom de l application

Nom de l application Ministère de l Enseignement Supérieur et de la Recherche Scientifique Direction Générale des Etudes Technologiques Institut Supérieur des Etudes Technologiques de Gafsa Département Technologies de l Informatique

Plus en détail

Chapitre 1 : Introduction aux bases de données

Chapitre 1 : Introduction aux bases de données Chapitre 1 : Introduction aux bases de données Les Bases de Données occupent aujourd'hui une place de plus en plus importante dans les systèmes informatiques. Les Systèmes de Gestion de Bases de Données

Plus en détail

UML (Paquetage) Unified Modeling Language

UML (Paquetage) Unified Modeling Language UML (Paquetage) Unified Modeling Language Sommaire Introduction Objectifs Paquetage Espace de nommage d un paquetage Dépendances entre paquetages 2 Notion introduite véritablement par UML car superficiellement

Plus en détail

C++ Programmer. en langage. 8 e édition. Avec une intro aux design patterns et une annexe sur la norme C++11. Claude Delannoy

C++ Programmer. en langage. 8 e édition. Avec une intro aux design patterns et une annexe sur la norme C++11. Claude Delannoy Claude Delannoy Programmer en langage C++ 8 e édition Avec une intro aux design patterns et une annexe sur la norme C++11 Groupe Eyrolles, 1993-2011. Groupe Eyrolles, 2014, pour la nouvelle présentation,

Plus en détail

Cours 1 : La compilation

Cours 1 : La compilation /38 Interprétation des programmes Cours 1 : La compilation Yann Régis-Gianas yrg@pps.univ-paris-diderot.fr PPS - Université Denis Diderot Paris 7 2/38 Qu est-ce que la compilation? Vous avez tous déjà

Plus en détail

Systèmes d information et bases de données (niveau 1)

Systèmes d information et bases de données (niveau 1) Systèmes d information et bases de données (niveau 1) Cours N 1 Violaine Prince Plan du cours 1. Bibliographie 2. Introduction aux bases de données 3. Les modèles 1. Hiérarchique 2. Réseau 3. Relationnel

Plus en détail

Java Licence Professionnelle 2009-2010. Cours 7 : Classes et méthodes abstraites

Java Licence Professionnelle 2009-2010. Cours 7 : Classes et méthodes abstraites Java Licence Professionnelle 2009-2010 Cours 7 : Classes et méthodes abstraites 1 Java Classes et méthodes abstraites - Le mécanisme des classes abstraites permet de définir des comportements (méthodes)

Plus en détail

OMGL6 Dossier de Spécifications

OMGL6 Dossier de Spécifications OMGL6 Dossier de Spécifications HELPDESK Radoslav Cvetkoski, Xavier Fantin, Yohann Haution, Yanis Salti, Sébastien Tassier Cvetkoski, Fantin, Haution, Salti, Tassier Page 1 Sommaire 1. Historique du document...

Plus en détail

Chapitre I : le langage UML et le processus unifié

Chapitre I : le langage UML et le processus unifié I. Introduction Les méthodes d analyse orientées objet sont initialement issues des milieux industriels. La préoccupation dominante de leurs auteurs est le génie logiciel, c est-àdire les principes et

Plus en détail

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004 Questionnaire d'examen final INF1101 Sigle du cours Nom : Signature : Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004 Professeur(s)

Plus en détail

Modèle Entité/Association

Modèle Entité/Association Base de données Modèle Entité/Association L3 Informatique Antoine Spicher antoine.spicher@u-pec.fr Contexte du cours Organisation du cours 1 ère partie (C. D.) Modèle et algèbre relationnel Langage SQL

Plus en détail

Introduction aux concepts d ez Publish

Introduction aux concepts d ez Publish Introduction aux concepts d ez Publish Tutoriel rédigé par Bergfrid Skaara. Traduit de l Anglais par Benjamin Lemoine Mercredi 30 Janvier 2008 Sommaire Concepts d ez Publish... 3 Système de Gestion de

Plus en détail

Cahier Technique. «Développer une application intranet pour la gestion des stages des étudiants» Antonin AILLET. Remi DEVES

Cahier Technique. «Développer une application intranet pour la gestion des stages des étudiants» Antonin AILLET. Remi DEVES Antonin AILLET Remi DEVES Thibaut AZZOPARDI 2 ème année de DUT Informatique Cahier Technique «Développer une application intranet pour la gestion des stages des étudiants» Encadré par Didier BOULLE Année

Plus en détail

Architecture d'entreprise : Guide Pratique de l'architecture Logique

Architecture d'entreprise : Guide Pratique de l'architecture Logique Guides Pratiques Objecteering Architecture d'entreprise : Guide Pratique de l'architecture Logique Auteur : Version : 1.0 Copyright : Softeam Equipe Conseil Softeam Supervisée par Philippe Desfray Softeam

Plus en détail

LES TYPES DE DONNÉES DU LANGAGE PASCAL

LES TYPES DE DONNÉES DU LANGAGE PASCAL LES TYPES DE DONNÉES DU LANGAGE PASCAL 75 LES TYPES DE DONNÉES DU LANGAGE PASCAL CHAPITRE 4 OBJECTIFS PRÉSENTER LES NOTIONS D ÉTIQUETTE, DE CONS- TANTE ET DE IABLE DANS LE CONTEXTE DU LAN- GAGE PASCAL.

Plus en détail

Merise. Introduction

Merise. Introduction Merise Introduction MERISE:= Méthode d Etude et de Réalisation Informatique pour les Systèmes d Entreprise Méthode d Analyse et de Conception : Analyse: Etude du problème Etudier le système existant Comprendre

Plus en détail

Démarches d urbanisation : réorganiser le Système d Information en structurant ses fonctions dans des blocs fonctionnels communicants.

Démarches d urbanisation : réorganiser le Système d Information en structurant ses fonctions dans des blocs fonctionnels communicants. Plan du chapitre Master Informatique et Systèmes Urbanisation des Systèmes d Information Architecture d Entreprise 04 Architecture du SI : identifier et décrire les services, structurer le SI 1 2 3 4 5

Plus en détail

Initiation à JAVA et à la programmation objet. raphael.bolze@ens-lyon.fr

Initiation à JAVA et à la programmation objet. raphael.bolze@ens-lyon.fr Initiation à JAVA et à la programmation objet raphael.bolze@ens-lyon.fr O b j e c t i f s Découvrir un langage de programmation objet. Découvrir l'environnement java Découvrir les concepts de la programmation

Plus en détail

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2 Anne Tasso Java Le livre de premier langage 10 e édition Avec 109 exercices corrigés Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2 Table des matières Avant-propos Organisation de l ouvrage..............................

Plus en détail

Programmation Orientée Objet

Programmation Orientée Objet Université de Pau et des Pays de l Adour Institut Universitaire de Technologie des Pays de l Adour Département Réseaux et Télécommunications 371, rue du Ruisseau BP 201 40004 Mont-de-Marsan Cedex tél :

Plus en détail

BASES DE DONNÉES. CNAM Centre associé de Clermont-Ferrand Cycle A Année 1997-98. J. Darmont I. INTRODUCTION II. LES SYSTÈMES HIÉRARCHIQUES

BASES DE DONNÉES. CNAM Centre associé de Clermont-Ferrand Cycle A Année 1997-98. J. Darmont I. INTRODUCTION II. LES SYSTÈMES HIÉRARCHIQUES BASES DE DONNÉES CNAM Centre associé de Clermont-Ferrand Cycle A Année 1997-98 J. Darmont I. INTRODUCTION II. LES SYSTÈMES HIÉRARCHIQUES III. LES SYSTÈMES RÉSEAU IV. LES SYSTÈMES RELATIONNELS V. LE LANGAGE

Plus en détail

RAPPORT DE CONCEPTION UML :

RAPPORT DE CONCEPTION UML : Carlo Abi Chahine Sylvain Archenault Yves Houpert Martine Wang RAPPORT DE CONCEPTION UML : Bamboo Ch@t Projet GM4 Juin 2006 Table des matières 1 Introduction 2 2 Présentation du logiciel 3 2.1 Précisions

Plus en détail

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre 2009. Enrica.Duchi@liafa.jussieu.fr

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre 2009. Enrica.Duchi@liafa.jussieu.fr . Cours intensif Java 1er cours: de C à Java Septembre 2009 Enrica DUCHI LIAFA, Paris 7 Enrica.Duchi@liafa.jussieu.fr LANGAGES DE PROGRAMMATION Pour exécuter un algorithme sur un ordinateur il faut le

Plus en détail

Sommaire. Conduite de projet Méthode d analyse et de conception. Processus unifié. Objectifs d un processus de développement

Sommaire. Conduite de projet Méthode d analyse et de conception. Processus unifié. Objectifs d un processus de développement Conduite de projet Méthode d analyse et de conception Processus unifié G. Picard SMA/G2I/ENS Mines Saint-Etienne gauthier.picard@emse.fr Octobre 2009 Sommaire!!Objectifs d un processus d ingénierie logicielle!

Plus en détail

Rational Unified Process

Rational Unified Process Rational Unified Process For Christiane DAVOINE-GUHUR Société GICAB - Vannes Christiane.Davoine@CA-GICAB.fr Table des Matières 1 INTRODUCTION... 1 2 LES COMPOSANTS ET LES GRANDS PRINCIPES DU PROCESSUS...

Plus en détail

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines) Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines) Module 1 : Programmer une application informatique Durée

Plus en détail

Manuel d utilisation 26 juin 2011. 1 Tâche à effectuer : écrire un algorithme 2

Manuel d utilisation 26 juin 2011. 1 Tâche à effectuer : écrire un algorithme 2 éducalgo Manuel d utilisation 26 juin 2011 Table des matières 1 Tâche à effectuer : écrire un algorithme 2 2 Comment écrire un algorithme? 3 2.1 Avec quoi écrit-on? Avec les boutons d écriture........

Plus en détail

Évaluation et implémentation des langages

Évaluation et implémentation des langages Évaluation et implémentation des langages Les langages de programmation et le processus de programmation Critères de conception et d évaluation des langages de programmation Les fondations de l implémentation

Plus en détail

Les frameworks au coeur des applications web

Les frameworks au coeur des applications web Les frameworks au coeur des applications web Mémoire de bachelor réalisé par : Arielle Moro Directeur de mémoire : Peter Daehne, Professeur HES Genève, le vendredi 27 août 2010, Haute Ecole de Gestion

Plus en détail

Cours Bases de données

Cours Bases de données Informations sur le cours Cours Bases de données 9 (10) séances de 3h Polycopié (Cours + TD/TP) 3 année (MISI) Antoine Cornuéjols www.lri.fr/~antoine antoine.cornuejols@agroparistech.fr Transparents Disponibles

Plus en détail

Modélisation de bases de données : Le modèle relationnel

Modélisation de bases de données : Le modèle relationnel Modélisation de bases de données : Le modèle relationnel Rappel chapitre 1 C est quoi un modèle? Type de modèle : Modèle hiérarchique Modèle réseau Modèle objet Modèle relationnel Cours BD Dr REZEG K 1

Plus en détail

Diagrammes de Package, de déploiement et de composants UML

Diagrammes de Package, de déploiement et de composants UML labsticc.univ-brest.fr/pages_perso/babau/ Diagrammes de Package, de déploiement et de composants UML Jean-Philippe Babau Département Informatique, UFR Sciences, Laboratoire Lab-STICC 2 1 Plan Description

Plus en détail

Chapitre 2. Classes et objets

Chapitre 2. Classes et objets Chapitre 2: Classes et Objets 1/10 Chapitre 2 Classes et objets Chapitre 2: Classes et Objets 2/10 Approche Orientée Objet Idée de base de A.O.O. repose sur l'observation de la façon dont nous procédons

Plus en détail

Généralités sur le Langage Java et éléments syntaxiques.

Généralités sur le Langage Java et éléments syntaxiques. Généralités sur le Langage Java et éléments syntaxiques. Généralités sur le Langage Java et éléments syntaxiques....1 Introduction...1 Genéralité sur le langage Java....1 Syntaxe de base du Langage...

Plus en détail

INITIATION AU LANGAGE JAVA

INITIATION AU LANGAGE JAVA INITIATION AU LANGAGE JAVA I. Présentation 1.1 Historique : Au début des années 90, Sun travaillait sur un projet visant à concevoir des logiciels simples et performants exécutés dans des PDA (Personnal

Plus en détail

A. Définition et formalisme

A. Définition et formalisme Les cardinalités et les différents types d'associations I. Les cardinalités A. Définition et formalisme Les cardinalités sont des couples de valeur que l'on trouve entre chaque entité et ses associations

Plus en détail

Chap. 3: Le modèle de données entité-association (E.A.)

Chap. 3: Le modèle de données entité-association (E.A.) Chap. 3: Le modèle de données entité-association (E.A.) En anglais: Entity-Relationship (ER) Origines: C.Bachman (1969), P.Chen (1976). Modèle de données > décrire la réalité perçue à travers les données

Plus en détail

Architecture Orientée Service, JSON et API REST

Architecture Orientée Service, JSON et API REST UPMC 3 février 2015 Précedemment, en LI328 Architecture générale du projet Programmation serveur Servlet/TOMCAT Aujourd hui Quelques mots sur les SOA API - REST Le format JSON API - REST et Servlet API

Plus en détail