Module B9-1 1 : sensibilisation à l UML

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

Download "Module B9-1 1 : sensibilisation à l UML"

Transcription

1 Module B9-1 1 : sensibilisation à l UML Session 3 : Vue statique Olivier Habart : habart.olivier@free.fr ENSTA B9-1 UML (Olivier Habart) Septembre 10 Diapositive N 1 Session 2 : Vue statique Sommaire Diagramme de paquetages Diagramme de classes Diagrammes d objets Définition de contraintes TD ENSTA B9-1 UML Septembre 10 Diapositive N 2

2 Session 2 : Diagramme de paquetage Par qui? Analyste : Organiser le modèle de domaine Concepteur : Organiser le modèle des classes participantes ENSTA B9-1 UML Septembre 10 Diapositive N 3 Session 2 : Diagramme de paquetage Concepts Paquetage Pourquoi? : Organiser les éléments de modélisation en groupe qui présentent une caractéristique commune Découper les problèmes de grande taille Nommer les éléments Quoi? : Peut regrouper tout type d élément de modèle : classes, cas d utilisation, interfaces, etc. Stéréotypes : «modèle» : paquetage racine unique qui contient la totalité du modèle du système «framework» : contient des éléments qui spécifient une architecture réutilisable. Incluent des classes, patterns et «templates» «modellibrary» : contient des éléments réutilisables dans d autres paquetages. Analogue à une librairie de classes en langage de programmation Symbole : ENSTA B9-1 UML Septembre 10 Diapositive N 4

3 Session 2 : Diagramme de paquetage Concepts Import d éd élément Pourquoi? : Référencer des éléments d un autre paquetage Quoi? : Parent : Relation dirigée Import : Si la visibilité du paquetage importé est publique Accès : Si la visibilité du paquetage importé est privée Facturation «import» Données métier Clientèle Clients fréquents Les classe du paquetage «Facturation» accèdent à la classe «Clients fréquents» par l espace de nom «Clients fréquents» Facturation «access» Données métier Clientèle Clients fréquents Les classe du paquetage «Facturation» accèdent à la classe «Clients fréquents» par l espace de nom «Données métier::clientèle::clients fréquents» ENSTA B9-1 UML Septembre 10 Diapositive N 5 Session 2 : Diagramme de paquetage Concepts Fusion de paquetage Pourquoi? : Fusionner les éléments de deux paquetages Quoi? : Parent : Relation dirigée Symbole : Paquetage 1 «fusion» Paquetage 2 ENSTA B9-1 UML Septembre 10 Diapositive N 6

4 Session 2 : Diagramme de paquetage Exemple organisation des classes d un système de réservation de taxi ENSTA B9-1 UML Septembre 10 Diapositive N 7 Session 2 : Diagramme de paquetage Facteurs de regroupement Critères fonctionnels : cohérence fonctionnelle Critères d interface (réduire les interactions, éviter les couplages, simplifier ou diminuer le nombre de liens, etc.) Critères de ressources (mettre ensemble les éléments qui utilisent les mêmes ressources, etc.) Critères de contraintes : Réutilisation Standards et règlementations (ex : les systèmes à sûreté critique définissent des zones devant être isolées du système (DO-178B), etc.) Responsabilité des acteurs Jalons (dans le cas d un développement incrémental, les éléments qui seront traités à des jalons différents doivent être dissociés) ENSTA B9-1 UML Septembre 10 Diapositive N 8

5 Session 2 : Diagramme de paquetage Synthèse des concepts manipulés ENSTA B9-1 UML Septembre 10 Diapositive N 9 Session 2 : Vue statique Sommaire Diagramme de paquetages Diagramme de classes Diagrammes d objets Définition de contraintes TD ENSTA B9-1 UML Septembre 10 Diapositive N 10

6 Par qui? Analyste : Modélisation du domaine Concepteur (d architecture) : Trouver les opérations à partir des interactions Trouver les classes d analyse à partir du comportement des cas d utilisation Décrire les attributs et relations des classes d analyse Définir les classes qui implémentent les cas d utilisation Concepteur (d architecture détaillée) : Définir les éléments contenus par un sous-système Identifier les classes de persistance (carte flash, mémoire vive, fichier binaire, base de données) Utiliser les modèles spécifiques de plate-forme Utiliser les patterns de conception ENSTA B9-1 UML Septembre 10 Diapositive N 11 Par qui? Modélisation du domaine Besoins Cas d utilisation «entity» Entité 01 «entity» Entité 03 «entity» Entité 04 Modèle du domaine «entity» Entité 02 «entity» Entité 05 Pourquoi? : Opérer une transition entre la modélisation fonctionnelle des besoins par cas d utilisation et la modélisation objet Modéliser les concepts présents dans le domaine (métier) Quoi? : Première version du diagramme de classe Les classes ont pour stéréotype «entity» ENSTA B9-1 UML Septembre 10 Diapositive N 12

7 1 : insérer la carte 2 : demander code 3 : entrer le code 4 : demander le montant Commander Un taxi Payer Guichet 01 : Guichet automatique de banque Commande [validée] «datastore» Facture Facture Facture [émise] 3.1 : demander autorisation 3.2 : autorisation (limitation) Rechercher un taxi Affecter un taxi Payer [taxi OK] Course «Actor» SA 01 : Système d autorisation «datastore» Collection de taxis Course Réaliser une course Par qui? Modèle des classes participantes Modèle du domaine «entity» Entité 01 «entity» Entité 02 «entity» Entité 03 «entity» Entité 04 «entity» Entité 05 Cas d utilisation Pourquoi? : «contrôle» Contrôle 01 «entity» Entité 01 «dialog» Dialogue 01 «contrôle» Contrôle 02 «entity» Entité 02 Modèle des classes participantes Maquette d IHM Assurer l indépendance entre l interface graphique, les utilisateurs et le modèle de domaine Quoi? : Types de classes : Frontière : permettent les interactions entre utilisateurs et l IHM Contrôleur : implémentent la logique applicative (les fonctionnalités de l application) Entités : proviennent du modèle métier. Ces classes sont généralement persistantes (survivent à l exécution des cas d utilisation et sont stockées) ENSTA B9-1 UML Septembre 10 Diapositive N 13 Par qui? Modèle de conception Diagrammes d interaction «entity» Entité 01 «entity» Entité 02 «entity» Entité 01 «entity» Entité 02 «contrôle» Contrôle 01 «dialog» Dialogue 01 «contrôle» Contrôle 02 Modèle des classes participantes «contrôle» Contrôle 01 «dialog» Dialogue 01 «contrôle» Contrôle 02 Diagramme de classes de conception Diagramme d activités de navigation Définition du diagramme de classe de conception : prise en compte des choix techniques : Langage de programmation Librairies utilisées (interface graphique) Base de données Programmation Etc. ENSTA B9-1 UML Septembre 10 Diapositive N 14

8 Par qui? Concepteur (de base de données) : Décrire le modèle logique de la base de données : Décrire le modèle physique de la base de données : Définir les tables de référence Définir les clés et contraintes d unicité Définir les données et contraintes d intégrité Optimiser les performances (accès aux données) Définir les procédures stockées et distribuer le comportement des classes Concepteur (d interface graphique) : Identifier les éléments d interface Décrire la carte de navigation ENSTA B9-1 UML Septembre 10 Diapositive N 15 Pourquoi? Pourquoi? : Représenter l architecture conceptuelle du système Représenter les classes et relations indépendamment d un langage de programmation objet Quoi? : Décrit les classes que le système utilise, leur emboîtage conceptuel (héritage) ou relations organiques (agrégation) ENSTA B9-1 UML Septembre 10 Diapositive N 16

9 Concepts Classe Description formelle d un ensemble d objets ayant une sémantique et des caractéristiques communes Un objet est une instance d une classe Caractéristiques d une classe : Attributs Terminaisons d associations Méthodes Types de classes : Classe active : Par défaut Sauvegarde les données et offre des services aux autres Une classe active initie et contrôle le flux d activités Classe abstraite : Définit au moins une méthode abstraite ou une classe parent contient une méthode abstraite non encore réalisée Elle est vouée à se spécialiser Parent : Classeur Symbole : Classe OU Classe active OU Classe abstraite ENSTA B9-1 UML Septembre 10 Diapositive N 17 Concepts Classe (Implémentation) mentation) A A Java : public class A { Java : public abstract class A { ENSTA B9-1 UML Septembre 10 Diapositive N 18

10 Concepts Classe Stéréotypes : «auxiliary» : classe qui supporte une classe plus fondamentale («focus») «focus» : défini la logique d une classe «auxiliary» «implementation class» : classe d implémentation dans le langage de programmation cible «metaclass» : classe dont les instances sont aussi des classes «type» : spécifie le domaine d une classe ENSTA B9-1 UML Septembre 10 Diapositive N 19 Concepts Classe paramétr trée Pourquoi? : Simplifier la gestion des collections Quoi? : Symbole : Implémentation : Collection inserer (T) supprimer(t) T Seul C++ supporte ce mécanisme (l intégration est prévue pour Java et C#) Class Collection <T> { Exemple : void inserer(t nouvelelement) ; void supprimer(t unelement); Exemple : Tableau éléments : T[n1,n2] n1, n2 «bind» <n1->15, n2->15> Échiquier ENSTA B9-1 UML Septembre 10 Diapositive N 20

11 Concepts Type de données Permet de représenter un type de valeurs Exemple : définition de types de valeurs des langages de programmation (Date, String, HashTable, List, Array, etc.) Parent : Classeur Symbole : Enumération : Permet de définir une liste de valeurs prédéfinies Parent : Type de données Symbole : «datatype» Type de données «enumeration» Enumération + prepaye = 1 + payementclient = 2 + payementpassager = 3 ENSTA B9-1 UML Septembre 10 Diapositive N 21 Concepts Encapsulation Définit des niveaux de visibilité : public ou + : visible de tout élément qui accède à la classe protected ou # : seul un élément de la classe ou d une de ses descendante peut accéder à l élément private ou - : seul un élément de la classe peut accéder à l élément package ou rien : seul un élément du même package peut accéder à l élément Le niveau se situe sur chacune des caractéristiques de la classe : Attributs Terminaisons d association Opération ENSTA B9-1 UML Septembre 10 Diapositive N 22

12 Concepts Attribut Informations qu une classe ou un objet doivent connaître Syntaxe : visibilité nom : type [multiplicité] = valeur_initiale {contraintes Signification : visibilité : public, protected, private, package type : peut être un nom de classeur (classe, interface) ou un type de données prédéfini (Integer, String, Boolean, etc.) multiplicité : nombre de valeurs qu il peut contenir par défaut (exemples : [n], [n..*], etc.) contraintes : {ordered : les valeurs sont ordonnées {list : les valeurs ne sont pas ordonnées {readonly : l attribut ne peut pas être modifié Attribut de classe : Valeur commune à chaque instance de la classe (static en Java ou en C++) Souligné dans la classe Attribut dérivé : Propriétés calculées à partir d autres valeurs Syntaxe : «/nom» Exemple : calcul de l attribut «durée» à partir des attributs «début» et «fin» ENSTA B9-1 UML Septembre 10 Diapositive N 23 Concepts Attribut (exemples) Attribut de classe Course - datedebut : Date = now() - datefin : Date /durée : int {R1 : durée = datefin datedebut - optionbagage : boolean - passager : String [1..3] - kilometrage : int - modepaiement : TypePayement {ReadOnly - rationtempskilométrage : double Valeur initiale Contrainte définie {R1 Cardinalité Uniquement accessible en lecture ENSTA B9-1 UML Septembre 10 Diapositive N 24

13 Concepts Opération / MéthodeM Opération : Spécification (déclaration) d une méthode Fonction qui peut prendre des valeurs en entrée, peut modifier des attributs et produire un résultat Opération abstraite (en italique) : opération qui n a pas dont la manière dont elle est réalisée n est pas définie (méthode) Opération statique (soulignée) : Peut associer des pré et post-conditions Méthode : Implémentation (définition) d une opération Définit comment l opération se comporte, pas seulement ce qu elle fait Stéréotypes : «create», «destroy» Syntaxe de l opération : visibilité nom (paramètres) : type-retour {propriétés Syntaxe des paramètres : direction nom : type [cardinalité] = valeur-défaut cardinalité : none, *, 0..1, 1, 1..* direction : in : le paramètre est envoyé par l appelant in out : le paramètre est envoyé puis retourné à l appelant out : le paramètre est passé à l appelant return : la paramètre est renvoyé à l appelant ENSTA B9-1 UML Septembre 10 Diapositive N 25 Concepts Opérations (exemples) Opération de classe Course + assignerchauffeur(ch : Chauffeur) : boolean + debuter() + terminer() {throws CourseException + calculermontant(tranchehoraire : int) : int + obtenirtranchehoraire() : int Paramètre Contrainte Type de retour ENSTA B9-1 UML Septembre 10 Diapositive N 26

14 Concepts Attribut, Opérations (implémentation) mentation) A + a1 : String a2 : String # a3 : String - a4 : String + op1() + op2() Java : public class A { public String a1; package String a2; protected String a3; private String a4; public void op1(){ public void op2(){ ENSTA B9-1 UML Septembre 10 Diapositive N 27 Exercice Propriétés s d une d classe Exercice 1 : Décrire les attributs et opérations d une Personne ENSTA B9-1 UML Septembre 10 Diapositive N 28

15 Concepts Association Pourquoi? : Représenter les mécanismes de communication entre objets Quoi? : Association réflexive : association qui lie une classe à elle même Parent : Relation Symbole : Signification : x..y Classe 1 Classe 2 rôle 1 {contraintes nom de l association Terminaison d association : référence selon laquelle un objet voit l autre à travers la relation Multiplicité : 1, 0..1, 0..*, n..m Navigabilité : Sens selon lequel il est possible de traverser l association À défaut d indications, une association est navigable Contraintes : {xor, {subsets, {refine, {union, {ordered, {nonunique, {sequence, {readonly (remplaçant de {frozen depuis UML 2.0) rôle 2 x..y {contraintes ENSTA B9-1 UML Septembre 10 Diapositive N 29 Concepts Association (contraintes) Le titulaire d un compte est soit une personne, soit une entreprise La terminaison d association capitale est une sous collection de la terminaison villes Pays 1..* 1..* villes Ville nom langue monnaie 1 {refine 1 nom population surface La terminaison d association capitale raffine la terminaison d association villes capitale Capitale ENSTA B9-1 UML Septembre 10 Diapositive N 30

16 Concepts Association (navigabilité) Personne employés employeur Entreprise Une entreprise connait ses employés Un employé connait son entreprise Commande ligne produit Produit Navigabilité : un produit ne stocke pas les commandes Personne Personne employeur : Entreprise employés employeur Entreprise Entreprise employés : Personne La seconde représentation est une manière de représenter l implémentation de l association en langage objet ENSTA B9-1 UML Septembre 10 Diapositive N 31 Concepts Association (navigabilité) une navigabilité unidirectionnelle engendre une dépendance entre les paquetages une navigabilité bidirectionnelle engendre deux dépendances entre les paquetages ENSTA B9-1 UML Septembre 10 Diapositive N 32

17 Concepts Classe-association association Pourquoi? : Ajouter des attributs à une relation Quoi? : Ajoute une contrainte : il ne peut y avoir qu une seule instance pour un lien entre deux objets Parents : Classe et Association Société * gérant détenteur * Personne Symbole : Action quantités prix d achat prix courant ENSTA B9-1 UML Septembre 10 Diapositive N 33 Concepts Classe association (exemples) Élève * * Enseignant Cours durée Un enseignant ne peut dispenser qu au plus un cours à un même élève Élève 1 * * Cours 1 Enseignant durée Un enseignant peut dispenser plus d un cours à un même élève ENSTA B9-1 UML Septembre 10 Diapositive N 34

18 Concepts Association n-airen Pourquoi? : Quoi? : Symbole : Action * Société 1 1 Personne 1 * * Correspondance : Société Action 1 Personne ENSTA B9-1 UML Septembre 10 Diapositive N 35 Concepts Association qualifiée Pourquoi? : Restreindre la portée de l association à quelques éléments ciblés (qualificatif) de la classe Quoi? : Symbole : Banque Attribut qualificateur compte * 0..2 Personne Nombre d objets trouvés par l attribut qualificateur Si une personne souhaite accéder à sa banque, il faut qu il connaisse le compte correspondant ENSTA B9-1 UML Septembre 10 Diapositive N 36

19 Concepts Association qualifiée e (implémentation) mentation) Banque compte * 0..2 Personne Java (association qualifiée) : public class Banque { public Personne getpersonne(compte uncompte) ; OU public void ajouterpersonne(compte uncompte, Personne une personne) ; Utilisation d une table de hachage (HashMap) ENSTA B9-1 UML Septembre 10 Diapositive N 37 Concepts Agrégation gation & Composition Agrégation : Parent : Association Une classe peut être agrégée dans plusieurs classes La destruction de l objet d agrégation n implique pas la suppression des éléments regroupés Symbole : Composition : Parent : Association Une classe ne peut composer qu une seule classe La destruction de l objet composite implique la destruction de ces composants Symbole : Classe Classe 0..* 0..* * Classe agrégée Classe composée ENSTA B9-1 UML Septembre 10 Diapositive N 38

20 Concepts Association (implémentation) mentation) A 1 1 rb B Java (association uni-directionnelle, 1 vers 1) : public class A { private B rb; public void add( B b ) { if(b!= null) { this.rb = rb ; public class B { //La classe B ne connaît pas l existence de la classe A ENSTA B9-1 UML Septembre 10 Diapositive N 39 Concepts Association (implémentation) mentation) A 1 ra 1 rb B Java (association bi-directionnelle, 1 vers 1): public class A { private B rb; public void add( B b ) { if(b!= null) { if( b.geta()!= null ) { // b déjà connecté b.geta().setb(null) ; //déconnecte this.setb( b ) ; b.seta( this ) ; public B getb() { return(rb) ;) public void setb( B b) { this.rb = rb ; ENSTA B9-1 UML Septembre 10 Diapositive N 40

21 Concepts Association (implémentation) mentation) A 1 ra * rb B Java (association bi-directionnelle, 1 vers *): public class A { private ArrayList <B> rb; public A() { rb = new ArrayList <B>() ; public ArrayList <B> getarray() { return(rb) ; public void remove(b b) { rb.remove(b) ; public void addb( B b ) { if(!rb.contains(b) ) { // b déjà présent if( b.geta()!= null) b.geta().remove(b) ; b.seta(this) ; rb.add(b) ; ENSTA B9-1 UML Septembre 10 Diapositive N 41 Concepts Héritage Pourquoi? : Transmettre les propriétés et le comportement d une classe à une autre Éviter la duplication Encourager la réutilisation Quoi? : Parent : Relation dirigée Décrit une relation entre une classe générale (classe de base ou parent) et une classe spécialisée (sous-classe) Une classe spécialisée : Possède toutes les caractéristiques de la classe parent (attributs, opérations, association) ainsi que des caractéristiques supplémentaires Ne peut pas accéder aux caractéristiques privées de la classe parent Traduit le concept d héritage Symbole : Classe parent Classe spécialisée ENSTA B9-1 UML Septembre 10 Diapositive N 42

22 Concepts Héritage (polymorphisme) Classe parent Opération() Classe spécialisée 1 Opération() Classe spécialisée 1 Opération() Les classes «Classe spécialisée 1» et «Classe spécialisée 2» redéfinissent l opération «Opération()» ENSTA B9-1 UML Septembre 10 Diapositive N 43 Concepts Héritage (implémentation) mentation) A B Java : public class B { public class B extends A { ENSTA B9-1 UML Septembre 10 Diapositive N 44

23 Concepts Dépendance Pourquoi? : Représenter les relations d analyse d impact Quoi? : Parent : Relation dirigée Relation unidirectionnelle exprimant la dépendance sémantique entre éléments du modèle Indique que la modification de la cible peut impliquer une modification de la source Hérite d une relation dirigée Symbole : Client Fournisseur ENSTA B9-1 UML Septembre 10 Diapositive N 45 Concepts Dépendance (stéréotypes) Stéréotypes : Utilisation («use») : la source a besoin de la cible pour être implémentée «call» : la source appelle une opération de la cible «create» : la source crée des instances de la cible «instanciate» : la source est une instance de la cible «send» : relation entre une opération et un signal Abstraction («abstraction») : relation entre différents niveaux de sémantique «refine» : passage du conceptuel à l implémentation «derive» : la source est dérivée de la cible «trace» : traçabilité Substitution («substitute») : la source est substituable à la cible Réalisation («realize») : la source est l implémentation de la cible Réalisation d interface ENSTA B9-1 UML Septembre 10 Diapositive N 46

24 Concepts Interface Pourquoi? : Spécifier les interfaces des sous-systèmes pour permettre leur implémentation ou leur réutilisation dans un framework Quoi? : Ensemble d opérations qui caractérisent le comportement d un classeur Leur comportement peut être spécifié au moyen de machine d états transition de protocole Parent : Classeur Symbole : Alarme Alarme «use» ICapteur «interface» ICapteur Capteur de proximité «realize» Capteur de proximité ENSTA B9-1 UML Septembre 10 Diapositive N 47 Concepts Interface (implémentation) mentation) «interface» Ia «interface» Ia A «use» Java : public interface Ia { Java : public class A implements Ia { ENSTA B9-1 UML Septembre 10 Diapositive N 48

25 Exercice Exercice 2 : Relation entre classes Exercice 3 : Correspondance entre le code Java et le diagramme de classes Exercice 4 : Élaboration d un diagramme de classes complet ENSTA B9-1 UML Septembre 10 Diapositive N 49 Synthèse des concepts manipulés Opération paramètres precondition / corps / postcondition Contrainte Classe Parametre Interface Type source / destination Attribut Généralisation, Dépendance Dépendance : «use», «abstraction», «substitute», «realize» Propriété Terminaison d association Qualifieur Objet principal Lien source / destination Association ENSTA B9-1 UML Septembre 10 Diapositive N 50

26 Synthèse des concepts externes ENSTA B9-1 UML Septembre 10 Diapositive N 51 Session 2 : Vue statique Sommaire Diagramme de paquetages Diagramme de classes Diagrammes d objets Définition de contraintes TD ENSTA B9-1 UML Septembre 10 Diapositive N 52

27 Session 2 : Diagramme d objetsd Pourquoi? Pourquoi? : Éclairer le diagramme de classe en l illustrant par des exemples Vérifier l adéquation d un diagramme de classe à différents cas possibles Prendre une image d un système à un instant donné Quoi? : Présente des objets (instances de classes) et leurs liens (instances de relations) ENSTA B9-1 UML Septembre 10 Diapositive N 53 Session 2 : Diagramme d objets d Concepts Objet : Instance de classe Symbole : Objet : Classe Lien : Instance d une association Symbole : rôle 1 nom du lien rôle 2 Objet 1 : Classe 1 Objet 2 : Classe 2 ENSTA B9-1 UML Septembre 10 Diapositive N 54

28 Session 2 : Diagramme d objets d Exemples ENSTA B9-1 UML Septembre 10 Diapositive N 55 Session 2 : Diagramme d objets d Exercices Exercice 5 : Instanciation d un diagramme de classe Exercice 6 : Traduction d une classe-association en association binaire Exercice 7 : Conceptualisation d expressions arithmétiques ENSTA B9-1 UML Septembre 10 Diapositive N 56

29 Session 2 : Diagramme d objetsd Synthèse des concepts manipulés ENSTA B9-1 UML Septembre 10 Diapositive N 57 Session 2 : Vue statique Sommaire Diagramme de paquetages Diagramme de classes Diagrammes d objets Définition de contraintes TD ENSTA B9-1 UML Septembre 10 Diapositive N 58

30 Session 2 : Définition D de contraintes Pourquoi? : Spécifier : Des invariants sur les classes Des pré conditions et post conditions à l exécution d opérations Des gardes sur les transitions de diagrammes d états-transitions, des messages de diagrammes d interactions, ou des flots de contrôle de diagramme d activité Quoi? : Langage formel d expression de propriétés Exemples : Fonction de débit de compte : Comment spécifier que la somme d un compte doit être supérieur à 0 avant le débit? ENSTA B9-1 UML Septembre 10 Diapositive N 59 Session 2 : Définition D de contraintes Concepts Contexte : Élément auquel est associée la contrainte self : appel du contexte Syntaxe : context %élément% Invariant : Expression à vérifier en permanence Syntaxe : inv %expression% Dérivation d attribut : Syntaxe : derive : %valeur% Pré et post conditions : result : valeur retournée par l opération %attribut%@pre : valeur avant l appel d opération Syntaxe : pre %expression% & post %condition% Définition de variable : Syntaxe : let %variable% = %valeur% in %expression% Syntaxe : def %variable% = %valeur% ENSTA B9-1 UML Septembre 10 Diapositive N 60

31 Session 2 : Définition D de contraintes Concepts Structure de contrôle : Syntaxe : if %expression 1% then %expression 2% else %expession 3% endif Autres opérateurs : and : et or : ou xor : ou exclusif not : inverse implies : implique ENSTA B9-1 UML Septembre 10 Diapositive N 61 Session 2 : Définition D de contraintes Exemple context Compte::débiter(somme : Real) pre : self.somme > 0 context Compte::getSolde() : Real post : result = self.solde context Personne inv : let argent = compte.solde in (age>=18 implies argent>0) context Personne def : argent = compte.solde inv : age>=18 implies argent>0 context Personne::annéeNaissance derive : argent = date - age ENSTA B9-1 UML Septembre 10 Diapositive N 62

32 Session 2 : Définition D de contraintes Concepts Opérations sur chaque objet : «oclistypeof(t : OclType) : Boolean» : renvoie vrai si le type est celui spécifié «ocliskindof(t : OclType) : Boolean» :renvoie vrai si le type est celui spécifié ou un de ses parents «oclisinstate(s : OclState) : Boolean» :renvoie vrai si le la classe est dans l état spécifié Accès aux objets : «.» : accéder à une propriété «::» : accéder à un élément de l élément englobant «->» : accéder aux caractéristiques d une collection ENSTA B9-1 UML Septembre 10 Diapositive N 63 Session 2 : Définition D de contraintes Concepts Opérations sur les collections : «size(): Integer» : nombre d éléments «includes(objet: T) : Boolean» : vrai si elle inclus l objet «excludes(objet: T) : Boolean» : vrai si elle ne contient pas l objet «count(objet: T): Integer» : nombre d occurrences de l objet «includesall(c:collection(t)) : Boolean» : vrai si elle contient tous les éléments «excludesall(c:collection(t)) : Boolean» : vrai si elle ne contient aucun élément «isempty() : Boolean» : vrai si elle est vide «notempty() : Boolean» : vrai si elle n est pas vide ENSTA B9-1 UML Septembre 10 Diapositive N 64

33 Session 2 : Définition D de contraintes Exemple context Société inv : self.employé->notempty() context Société inv : self.directeur->size()=1 context Société inv : self.employés->includes(self.directeur) context Personne def : argent = compte.solde inv : age>=18 implies argent>0 ENSTA B9-1 UML Septembre 10 Diapositive N 65 Session 2 : Définition D de contraintes Concepts Opérations sur les collections : «select(%variable% : %type% %expression%)» : génère une collection en filtrant les éléments qui satisfont à l expression «reject(%variable% : %type% %expression%)» : génère une collection en filtrant les éléments qui ne satisfont pas à l expression «forall(%variable% : %type% %expression%)» : expression vraie pour tout élément «exists(%variable% : %type% %expression%)» : il existe un élément pour lequel l expression est vraie ENSTA B9-1 UML Septembre 10 Diapositive N 66

34 Session 2 : Définition D de contraintes Exemple context Société inv : self.employé->select(individu individu.age>50)->notempty() context Société inv : self.employé->exists(age>50) context Personne inv : Personne.allInstances()->forAll(p1, p2 p1 <> p2 implies p1.nom <> p2.nom) ENSTA B9-1 UML Septembre 10 Diapositive N 67 Session 2 : Définition D de contraintes Exercice Exercice 8 : Traduction de contraintes OCL en langage naturel Exercice 9 : Rédaction de contraintes en OCL ENSTA B9-1 UML Septembre 10 Diapositive N 68

35 Session 2 : Vue statique Sommaire Diagramme de paquetages Diagramme de classes Diagrammes d objets Définition de contraintes TD ENSTA B9-1 UML Septembre 10 Diapositive N 69

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

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

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

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

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

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

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

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

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

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

Object Constraint Language (OCL)

Object Constraint Language (OCL) Object Constraint Language (OCL) Eric Cariou Université de Pau et des Pays de l'adour UFR Sciences Pau Département Informatique Eric.Cariou@univ-pau.fr 1 Plan 1. Pourquoi OCL? Introduction par l'exemple

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

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

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

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

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

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

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

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

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

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

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

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

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

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 UML. Christine Solnon 2013-2014. INSA de Lyon - 3IF 1/140.

Modélisation UML. Christine Solnon 2013-2014. INSA de Lyon - 3IF 1/140. 1/140. Modélisation UML Christine Solnon INSA de Lyon - 3IF 2013-2014 Introduction Positionnement de l UE / IF Domaines d enseignement du département IF : Système d Information Réseaux Architectures matérielles

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

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf Introduction à Java Matthieu Herrb CNRS-LAAS http://homepages.laas.fr/matthieu/cours/java/java.pdf Mars 2014 Plan 1 Concepts 2 Éléments du langage 3 Classes et objets 4 Packages 2/28 Histoire et motivations

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

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

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

Auto-évaluation Programmation en Java

Auto-évaluation Programmation en Java Auto-évaluation Programmation en Java Document: f0883test.fm 22/01/2013 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INTRODUCTION AUTO-ÉVALUATION PROGRAMMATION EN

Plus en détail

Environnements de développement (intégrés)

Environnements de développement (intégrés) Environnements de développement (intégrés) Tests unitaires, outils de couverture de code Patrick Labatut labatut@di.ens.fr http://www.di.ens.fr/~labatut/ Département d informatique École normale supérieure

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

Ingénierie des Modèles. Méta-modélisation

Ingénierie des Modèles. Méta-modélisation Ingénierie des Modèles Méta-modélisation Eric Cariou Master Technologies de l'internet 2 ème année Université de Pau et des Pays de l'adour UFR Sciences Pau Département Informatique Eric.Cariou@univ-pau.fr

Plus en détail

Développement d un interpréteur OCL pour une machine virtuelle UML.

Développement d un interpréteur OCL pour une machine virtuelle UML. ObjeXion Software Prototyping made easy SA au capital de 500 000 F Siret 421 565 565 00015 APE 722Z Téléphone : 03 89 35 70 75 Télécopie : 03 89 35 70 76 L embarcadère 5, rue Gutemberg 68 800 Vieux-Thann,

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

Package Java.util Classe générique

Package Java.util Classe générique Package Java.util Classe générique 1 Classe Vector La taille est dynamique: dès qu un tableau vectoriel est plein, sa taille est doublée, triplée, etc. automatiquement Les cases sont de type Object add(object

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

ACTIVITÉ DE PROGRAMMATION

ACTIVITÉ DE PROGRAMMATION ACTIVITÉ DE PROGRAMMATION The purpose of the Implementation Process is to realize a specified system element. ISO/IEC 12207 Sébastien Adam Une introduction 2 Introduction Ø Contenu Utilité de l ordinateur,

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

Java Licence Professionnelle CISII, 2009-10

Java Licence Professionnelle CISII, 2009-10 Java Licence Professionnelle CISII, 2009-10 Cours 4 : Programmation structurée (c) http://www.loria.fr/~tabbone/cours.html 1 Principe - Les méthodes sont structurées en blocs par les structures de la programmation

Plus en détail

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ; CNAM NFP121 TP 10 19/11/2013 (Séance 5) Objectif Manipuler les exceptions ; 1 Entrées/sorties Exercice 1 : Lire un entier à partir du clavier Ajouter une méthode readint(string message) dans la classe

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

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

Programmation Par Objets

Programmation Par Objets Programmation Par Objets Structures de données package java.util B. Carré Polytech Lille 1 Tableaux et structures de données Tableaux «Objets» taille fixe type des éléments : primitif (homogène) ou objets

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

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

RMI le langage Java XII-1 JMF

RMI le langage Java XII-1 JMF Remote Method Invocation (RMI) XII-1 Introduction RMI est un ensemble de classes permettant de manipuler des objets sur des machines distantes (objets distants) de manière similaire aux objets sur la machine

Plus en détail

RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION)

RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION) CLASSE RACINE Object ancêtre de toutes les classes RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION) définit donc des méthodes héritées par toutes

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

Alfstore workflow framework Spécification technique

Alfstore workflow framework Spécification technique Alfstore workflow framework Spécification technique Version 0.91 (2012-08-03) www.alfstore.com Email: info@alfstore.com Alfstore workflow framework 2012-10-28 1/28 Historique des versions Version Date

Plus en détail

Générer du code à partir d une description de haut niveau

Générer du code à partir d une description de haut niveau Cedric Dumoulin Générer du code à partir d une description de haut niveau Ce projet vise à fournir un environnement de développement permettant de modéliser des UI Android à un haut niveau d abstraction,

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

as Architecture des Systèmes d Information

as Architecture des Systèmes d Information Plan Plan Programmation - Introduction - Nicolas Malandain March 14, 2005 Introduction à Java 1 Introduction Présentation Caractéristiques Le langage Java 2 Types et Variables Types simples Types complexes

Plus en détail

Généralités. javadoc. Format des commentaires. Format des commentaires. Caractères spéciaux. Insérer du code

Généralités. javadoc. Format des commentaires. Format des commentaires. Caractères spéciaux. Insérer du code Généralités javadoc Université de Nice - Sophia Antipolis Richard Grin Version 1.4.1 8/2/11 javadoc produit de la documentation en partant de commentaires particuliers insérés dans le code source des classes

Plus en détail

Object Constraint Language (OCL) Une introduction

Object Constraint Language (OCL) Une introduction Object Constraint Language (OCL) Une introduction Master 2 IFPRU - Module Ingénierie des modèles - FMIN310 Marianne Huchard 7 novembre 2008 1 Présentation générale OCL est un langage formel, basé sur la

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

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

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

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

Développement mobile MIDP 2.0 Mobile 3D Graphics API (M3G) JSR 184. Frédéric BERTIN fbertin@neotilus.com

Développement mobile MIDP 2.0 Mobile 3D Graphics API (M3G) JSR 184. Frédéric BERTIN fbertin@neotilus.com Développement mobile MIDP 2.0 Mobile 3D Graphics API (M3G) JSR 184 Frédéric BERTIN fbertin@neotilus.com Présentaion : Mobile 3D Graphics API JSR 184 M3G :présentation Package optionnel de l api J2ME. Prend

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

Corrigés des premiers exercices sur les classes

Corrigés des premiers exercices sur les classes Corrigés des premiers exercices sur les classes Exercice 2.1.1 utilisation d une classe Voici le texte d une classe représentant de façon sommaire un compte bancaire et les opérations bancaires courantes.

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

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

Création d un service web avec NetBeans 5.5 et SJAS 9

Création d un service web avec NetBeans 5.5 et SJAS 9 Sommaire Création d un service web avec NetBeans 5.5 et SJAS 9 1. Présentation... 2 2. Création d un service web avec NetBeans... 2 2.1. Création d une application Web... 2 2.2. Création du service web...

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

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

Classes et Objets en Ocaml.

Classes et Objets en Ocaml. Classes et Objets en Ocaml. Didier Rémy 2001-2002 http://cristal.inria.fr/ remy/mot/2/ http://www.enseignement.polytechnique.fr/profs/informatique/didier.remy/mot/2/ Cours Exercices Slide 1 1. Objets 2.

Plus en détail

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP COURS PROGRAMMATION INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC page 1 / 7 INITIATION AU LANGAGE C SUR PIC DE MICROSHIP I. Historique du langage C 1972 : naissance du C dans les laboratoires BELL par

Plus en détail

Création d objet imbriqué sous PowerShell.

Création d objet imbriqué sous PowerShell. Création d objet imbriqué sous PowerShell. Par Laurent Dardenne, le 13/01/2014. Niveau Ce tutoriel aborde la création d objet composé, c est-à-dire que certains de ses membres seront eux-mêmes des PSObjects.

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

Projet 2. Gestion des services enseignants CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE. G r o u p e :

Projet 2. Gestion des services enseignants CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE. G r o u p e : CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE Projet 2 Gestion des services enseignants G r o u p e : B E L G H I T Y a s m i n e S A N C H E Z - D U B R O N T Y u r i f e r M O N T A Z E R S i

Plus en détail

Besoins utilisateurs. Quelle démarche pour passer des besoins au code? Code. chapitre1 UNIFIED MODELING LANGUAGE. package LogiqueMetier.

Besoins utilisateurs. Quelle démarche pour passer des besoins au code? Code. chapitre1 UNIFIED MODELING LANGUAGE. package LogiqueMetier. chapitre1 Besoins utilisateurs Quelle démarche pour passer des besoins au code?? UNIFIED MODELING LANGUAGE package LogiqueMetier.Gestion; import LogiqueMetier.Catalogue.Livre; import java.util.*;public

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

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

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

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes PLAN CYCLE DE VIE D'UN LOGICIEL EXPRESSION DES BESOINS SPÉCIFICATIONS DU LOGICIEL CONCEPTION DU LOGICIEL LA PROGRAMMATION TESTS ET MISE AU POINT DOCUMENTATION CONCLUSION C.Crochepeyre Génie Logiciel Diapason

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

Lambda! Rémi Forax Univ Paris-Est Marne-la-Vallée

Lambda! Rémi Forax Univ Paris-Est Marne-la-Vallée Lambda! Rémi Forax Univ Paris-Est Marne-la-Vallée forax at univ-mlv dot fr - ParisJUG Java.next() - Mars 2012 What Else? Lambda == Inner class? Java a des lambdas depuis la version 1.1 Exemple utilisant

Plus en détail

RTDS G3. Emmanuel Gaudin emmanuel.gaudin@pragmadev.com

RTDS G3. Emmanuel Gaudin emmanuel.gaudin@pragmadev.com RTDS G3 Emmanuel Gaudin emmanuel.gaudin@pragmadev.com PragmaDev Dédiée au développement d un AGL pour le développement des applications temps réel et embarquées. Réseau de partenaires: Formations, Service,

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

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

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

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

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme Rappel Ralf Treinen Université Paris Diderot UFR Informatique Laboratoire Preuves, Programmes et Systèmes treinen@pps.univ-paris-diderot.fr 6 mai 2015 Jusqu'à maintenant : un petit langage de programmation

Plus en détail

Projet de programmation (IK3) : TP n 1 Correction

Projet de programmation (IK3) : TP n 1 Correction Projet de programmation (IK3) : TP n 1 Correction Semaine du 20 septembre 2010 1 Entrées/sorties, types de bases et structures de contrôle Tests et types de bases Tests et types de bases (entiers) public

Plus en détail

Aide mémoire UML & Java 1ère partie : Introduction. marc.lemaire@u-cergy.fr

Aide mémoire UML & Java 1ère partie : Introduction. marc.lemaire@u-cergy.fr Aide mémoire UML & Java 1ère partie : Introduction marc.lemaire@u-cergy.fr 9 septembre 2014 1 2014 v1.11 Table des matières 1 Généralités 6 1.1 Notations utilisées.....................................

Plus en détail

Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs)

Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs) Modularité Extensions Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs) généricité modules de première classe : peuvent être

Plus en détail

Corrigé des exercices sur les références

Corrigé des exercices sur les références Corrigé des exercices sur les références Exercice 3.1.1 dessin Pour cet exercice, vous allez dessiner des structures de données au moyen de petits schémas analogues à ceux du cours, comportant la pile

Plus en détail

Programme Compte bancaire (code)

Programme Compte bancaire (code) using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; Programme Compte bancaire (code) namespace compte_bancaire /// Classe Program public

Plus en détail

Programmation Objet Java Correction

Programmation Objet Java Correction INSA - 4 AE 2007 2008 Durée : 1H00 Contrôle Programmation Objet Java Correction Consignes Tous les documents sont autorisés, mais ils seront peu utiles. Indiquez vos nom et prénom sur chaque feuille. Le

Plus en détail

OpenPaaS Le réseau social d'entreprise

OpenPaaS Le réseau social d'entreprise OpenPaaS Le réseau social d'entreprise Spécification des API datastore SP L2.3.1 Diffusion : Institut MinesTélécom, Télécom SudParis 1 / 12 1OpenPaaS DataBase API : ODBAPI...3 1.1Comparaison des concepts...3

Plus en détail

JADE : Java Agent DEvelopment framework. Laboratoire IBISC & Départ. GEII Université & IUT d Evry nadia.abchiche@ibisc.univ-evry.

JADE : Java Agent DEvelopment framework. Laboratoire IBISC & Départ. GEII Université & IUT d Evry nadia.abchiche@ibisc.univ-evry. : Java Agent DEvelopment framework Laboratoire IBISC & Départ. GEII Université & IUT d Evry nadia.abchiche@ibisc.univ-evry.fr Introduction à la plateforme JADE 1) Modèle d agent 2) Services 3) Norme FIPA

Plus en détail

Remote Method Invocation (RMI)

Remote Method Invocation (RMI) Remote Method Invocation (RMI) TP Réseau Université Paul Sabatier Master Informatique 1 ère Année Année 2006/2007 Plan Objectifs et Inconvénients de RMI Fonctionnement Définitions Architecture et principe

Plus en détail

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation ING 01 LANGAGUE JAVA Durée : 21 heures 1090 HT / jour Dates : à définir en 2012 Concevoir et développer des programmes en langage Java Comprendre le fonctionnement de la machine virtuelle S approprier

Plus en détail

Langage Java. Classe de première SI

Langage Java. Classe de première SI Langage Java Table des matières 1. Premiers pas...2 1.1. Introduction...2 1.2. Mon premier programme...2 1.3. Les commentaires...2 2. Les variables et les opérateurs...2 3. La classe Scanner...3 4. Les

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

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp Serveur d'application Client HTML/JS Apache Thrift Bootcamp Pré-requis La liste ci-dessous de logiciels doit être installée et opérationnelle sur la machine des participants : Compilateur thrift http://thrift.apache.org/

Plus en détail