2 TUP signifie « 2 Track Unified Process »: c’est un processus de développement logiciel qui implémente le Processus Unifié (UP).
2 TUP est un processus qui apporte une réponse aux contraintes de changement continuel imposées aux systèmes d’information de l’entreprise.
Les diagrammes de cas d’utilisation
IUT
- Utilisation d’un dictionnaire du domaine
- Des cas d’utilisations (Use-cases/UC)
- Acteurs, use-cases, system UML
- Processus de construction des Uses-case
- Compléments
Séminaire sur Machines, Deep Learning For Web Mobile and Embedded Application with DL4J and TFJS :
Les vidéos de ce séminaire sont publiée sur les adresses suivantes :
- https://www.youtube.com/watch?v=uGSa4NigFKs
- https://www.youtube.com/watch?v=2yRAu78slgc
- https://www.youtube.com/watch?v=1ThjK3xLWII
- https://www.youtube.com/watch?v=N7LCa6aiqFs
Ce séminaire a été animé à l’ENSET de Mohammedia, dans le cadre du Projet Européen H2020 CybSPEED (Cyber Physical Systems for Pedagogical Rehabilitation in Special Education) dans lequel notre laboratoire de recherche SSDIA (Signaux, Systèmes Distribués et Intelligence Artificielle) est partenaire aux cotés des pays partenaires (France, Espagne, Grèce, Bulgarie, Japan et Chillie). Un projet Multi-disciplinaire autour de l'Intelligence Artificielle, visant à créer un robot destiné à assister les personnes à besoins spécifiques, en particulier les personnes atteintes par la maladie de l’autisme. Ce séminaire traite deux thématiques principales Lattice Computing animé par le professeur Vassillis Kaburlasos, EMaTTech, KAVALA, GRECE et Outils de mise en oeuvre de Machines et Deep Learning pour les applications Web Mobiles et embarquées, animé par moi même. Ce séminaire a un caractère de formation, de sensibilisation et de maîtrise des outils de développement des algorithmes de l'IA pour un public hétérogène Multi-disciplinaire (Informatique, Génie Electrique, Génie Mécanique, Ingénierie Pédagogique, Biologie, Chimie, etc..) constitué principalement des doctorants de notre Labo SSDIA, d'autres Labo affiliés au CeDOC de la FST de Mohammedia ainsi que des enseignants chercheurs de l'ENSET, de EMaTTech Kavala, Grèce et d'autres enseignants chercheurs venant de d'autres centres comme CRMF de Marrakech.
Ce séminaire vise particulièrement à expliquer quelques concepts liés à l’intelligence artificielle. Principalement Machines et Deep Learning et comment mettre en œuvre les Frameworks de machines et deep lerning dans des applications Web, Mobile et embarquées en utilisant Principalement Deeplearning4J pour les applications Java coté backend ou coté FrontEnd Desktop, Web ou Mobiles Android, et TensorFlowJS pour les applications Java Scripts coté Browser Web et Coté Applications Mobiles Hybrides ou NodeJS coté Backend.
Cette série de vidéo aborde les éléments suivants :
• Concepes généraux de l’Intelligence Artificielle, L’IA Distribuée et Systèmes Multi Agents
• Concepts fondamentaux de Machines et Deep Learning
• Réseaux de neurones artificiels : MLP, CNN
• Période d’incertitude des réseaux de neurones
• Catalyseur de l’Intelligence Artificielle
o Architectures Parallèles GPU (CUDA, OpenCL)
o Systèmes Distribués
o Application Mobile et IOT
o Algorithmes de MDL
o Framework de MDL
• Machines et Deep Learning avec TensorFlowJS : Architecture
o Architecture et Mise en oeuvre
• Machines et Deep Learning avec le Framework DL4J
o Architecture et Mise en oeuvre
Ce Support de cours Spring contient :
- Architecture JEE (Over view)
- Spring Overview
- Spring IOC
- Spring MVC
- Spring Integration (RMI, JaxWS, JaxRS, JMS, JMX,...)
- Spring Security
Bon apprentissage à tous
El documento describe la naturaleza privilegiada de los Andes, que albergan el 45% de la biodiversidad mundial con sus ríos, lagos, bosques y especies únicas. Los Andes son patrimonio vivo de Ecuador, Colombia, Perú, Bolivia y Venezuela debido a la preservación de culturas milenarias y parques naturales declarados patrimonio mundial, como Galápagos, para garantizar la vida presente y futura.
El documento describe la historia y el funcionamiento de las válvulas de vacío. Las válvulas fueron los dispositivos electrónicos activos dominantes hasta los años 1960, cuando fueron reemplazados por los transistores. Sin embargo, las válvulas siguen siendo populares en amplificadores de instrumentos musicales debido a que producen un sonido más rico y atractivo que los transistores. El documento explica los componentes básicos de una válvula y cómo funciona para amplificar una señal de audio.
2 TUP signifie « 2 Track Unified Process »: c’est un processus de développement logiciel qui implémente le Processus Unifié (UP).
2 TUP est un processus qui apporte une réponse aux contraintes de changement continuel imposées aux systèmes d’information de l’entreprise.
Les diagrammes de cas d’utilisation
IUT
- Utilisation d’un dictionnaire du domaine
- Des cas d’utilisations (Use-cases/UC)
- Acteurs, use-cases, system UML
- Processus de construction des Uses-case
- Compléments
Séminaire sur Machines, Deep Learning For Web Mobile and Embedded Application with DL4J and TFJS :
Les vidéos de ce séminaire sont publiée sur les adresses suivantes :
- https://www.youtube.com/watch?v=uGSa4NigFKs
- https://www.youtube.com/watch?v=2yRAu78slgc
- https://www.youtube.com/watch?v=1ThjK3xLWII
- https://www.youtube.com/watch?v=N7LCa6aiqFs
Ce séminaire a été animé à l’ENSET de Mohammedia, dans le cadre du Projet Européen H2020 CybSPEED (Cyber Physical Systems for Pedagogical Rehabilitation in Special Education) dans lequel notre laboratoire de recherche SSDIA (Signaux, Systèmes Distribués et Intelligence Artificielle) est partenaire aux cotés des pays partenaires (France, Espagne, Grèce, Bulgarie, Japan et Chillie). Un projet Multi-disciplinaire autour de l'Intelligence Artificielle, visant à créer un robot destiné à assister les personnes à besoins spécifiques, en particulier les personnes atteintes par la maladie de l’autisme. Ce séminaire traite deux thématiques principales Lattice Computing animé par le professeur Vassillis Kaburlasos, EMaTTech, KAVALA, GRECE et Outils de mise en oeuvre de Machines et Deep Learning pour les applications Web Mobiles et embarquées, animé par moi même. Ce séminaire a un caractère de formation, de sensibilisation et de maîtrise des outils de développement des algorithmes de l'IA pour un public hétérogène Multi-disciplinaire (Informatique, Génie Electrique, Génie Mécanique, Ingénierie Pédagogique, Biologie, Chimie, etc..) constitué principalement des doctorants de notre Labo SSDIA, d'autres Labo affiliés au CeDOC de la FST de Mohammedia ainsi que des enseignants chercheurs de l'ENSET, de EMaTTech Kavala, Grèce et d'autres enseignants chercheurs venant de d'autres centres comme CRMF de Marrakech.
Ce séminaire vise particulièrement à expliquer quelques concepts liés à l’intelligence artificielle. Principalement Machines et Deep Learning et comment mettre en œuvre les Frameworks de machines et deep lerning dans des applications Web, Mobile et embarquées en utilisant Principalement Deeplearning4J pour les applications Java coté backend ou coté FrontEnd Desktop, Web ou Mobiles Android, et TensorFlowJS pour les applications Java Scripts coté Browser Web et Coté Applications Mobiles Hybrides ou NodeJS coté Backend.
Cette série de vidéo aborde les éléments suivants :
• Concepes généraux de l’Intelligence Artificielle, L’IA Distribuée et Systèmes Multi Agents
• Concepts fondamentaux de Machines et Deep Learning
• Réseaux de neurones artificiels : MLP, CNN
• Période d’incertitude des réseaux de neurones
• Catalyseur de l’Intelligence Artificielle
o Architectures Parallèles GPU (CUDA, OpenCL)
o Systèmes Distribués
o Application Mobile et IOT
o Algorithmes de MDL
o Framework de MDL
• Machines et Deep Learning avec TensorFlowJS : Architecture
o Architecture et Mise en oeuvre
• Machines et Deep Learning avec le Framework DL4J
o Architecture et Mise en oeuvre
Ce Support de cours Spring contient :
- Architecture JEE (Over view)
- Spring Overview
- Spring IOC
- Spring MVC
- Spring Integration (RMI, JaxWS, JaxRS, JMS, JMX,...)
- Spring Security
Bon apprentissage à tous
El documento describe la naturaleza privilegiada de los Andes, que albergan el 45% de la biodiversidad mundial con sus ríos, lagos, bosques y especies únicas. Los Andes son patrimonio vivo de Ecuador, Colombia, Perú, Bolivia y Venezuela debido a la preservación de culturas milenarias y parques naturales declarados patrimonio mundial, como Galápagos, para garantizar la vida presente y futura.
El documento describe la historia y el funcionamiento de las válvulas de vacío. Las válvulas fueron los dispositivos electrónicos activos dominantes hasta los años 1960, cuando fueron reemplazados por los transistores. Sin embargo, las válvulas siguen siendo populares en amplificadores de instrumentos musicales debido a que producen un sonido más rico y atractivo que los transistores. El documento explica los componentes básicos de una válvula y cómo funciona para amplificar una señal de audio.
CIRCULAR RAC (Red de Astronomía de Colombia) Circular 687 Enero_26-2013SOCIEDAD JULIO GARAVITO
Este documento resume las actividades recientes de la Circular 687 de la RAC, incluyendo el ocultamiento de Júpiter por la Luna observado desde el sur de Colombia, la astronomía como un instrumento de paz y para renovar el patrimonio científico de Colombia, y el primer entrenamiento del año para las Olimpiadas de Astronomía de Colombia.
Este documento resume la historia de la evolución en la comprensión de las galaxias y el universo. Se describen los primeros avistamientos de galaxias y nebulosas, y cómo a través de observaciones se descubrió que Andrómeda y otras "nebulosas" están mucho más lejos que la Vía Láctea. El descubrimiento de la ley de Hubble mostró que el universo está en expansión. Se clasificaron las galaxias en elípticas y espirales, y se estudian sus poblaciones estelares, func
Este documento presenta información sobre las aportaciones de diversos autores a la enseñanza del español. Incluye resúmenes breves sobre las técnicas y enfoques propuestos por autores como Emilia Ferreiro, Isabel Solé, Yulia Soloviera y Myriam Nemirovsky sobre temas como el desarrollo de la alfabetización, la comprensión lectora y la enseñanza de la lectura y escritura en edades tempranas.
Los niños de 3 años decoraron su aula con pinturas de frutas, hojas y setas de otoño, usando también hojas recogidas. Aprendieron sobre los cambios estacionales observando castañas y recitando poesías, y enviaron una postal a sus familias para felicitarles.
La oferta se refiere a los términos en que las empresas desean producir y vender sus productos. La tabla de oferta muestra las cantidades que los productores están dispuestos a ofrecer a diferentes precios, con más producción a precios más altos que cubren los costos. La curva de oferta representa gráficamente la tabla de oferta del mercado.
El documento critica las creencias comunes sobre el amor y las relaciones, señalando que no hay una única forma de ser feliz y que cada persona debe descubrir su propio camino. Nos enseñaron que el gran amor ocurre una sola vez antes de los 30, que cada persona es la mitad de otra, y que casarse y reprimir los deseos es obligatorio; pero en realidad podemos ser felices de muchas maneras y no necesitamos completarnos con otra persona.
Desarrollo Turístico y Ambiental en Puerto LIbertad, El SalvadorConectaDEL
El documento describe los esfuerzos del alcalde Carlos Molina para transformar el puerto de La Libertad, El Salvador en un destino turístico a través de una alianza público-privada que invirtió más de $13 millones en el malecón turístico. También aprovechó la construcción de un relleno sanitario municipal para generar ingresos que financiaron obras. Los resultados incluyen el nuevo puerto turístico, capacitación técnica para 1.260 familias y servicios mejorados para el municipio y 12 vecinos adic
El documento proporciona 11 pasos para subir archivos a Slideshare. Estos incluyen crear una cuenta en Slideshare, agregar información personal como una foto de perfil, seleccionar el tipo de archivo a subir (presentaciones, documentos o videos), seleccionar el archivo en el escritorio, esperar a que termine de cargar, y finalmente poder compartir el archivo subido.
El documento expresa el gran cariño y amor que siente la persona por su pareja. Señala que su pareja ha sido una de las mejores cosas que le ha pasado y que siempre corresponderá su cariño. Aunque a veces puedan tener desacuerdos, se apoyarán mutuamente. La persona termina expresando cuánto ama a su pareja y lo importante que es el cariño entre ellos.
La Dimensión Ética de la Vida y Obra de Wernher Von Braun 23 de Febrero 2013SOCIEDAD JULIO GARAVITO
El documento analiza la dimensión ética de la vida y obra de Wernher von Braun, ingeniero alemán pionero en cohetes y astronáutica que trabajó para la Alemania nazi y luego para Estados Unidos en la NASA. Se examinan sus contribuciones científicas y también su papel en el uso de trabajadores esclavos durante la Segunda Guerra Mundial.
Uml: Diagrammes de classes -- Concepts De Base 41megaplanet20
Introduction aux modèles de classes d'UML. Uniquement les concepts de bases sont présentés:
- classes et objets
- associations et liens
- héritages
Les autres concepts ne sont pas fondamendaux. Ils sont présentés dans un autre jeu de transparents.
2. Processus de développement logiciel
Analyse
des besoins
Tests d'acceptation
Spécification
Tests système
Conception
architecturale
Conception
détaillée
Tests d'intégration
Tests unitaires
Développement
D. Longuet - UML
2
3. Objets et classes
Conception orientée objet : Représentation du système comme un
ensemble d'objets interagissant
Diagramme de classes
●
Représentation de la structure interne du logiciel
●
Utilisé surtout en conception mais peut être utilisé en analyse
Diagramme d'objets
●
Représentation de l'état du logiciel (objets + relations)
●
Diagramme évoluant avec l'exécution du logiciel
- création et suppression d'objets
- modification de l'état des objets (valeurs des atributs)
- modification des relations entre objets
D. Longuet - UML
3
4. Objets et classes
Objet
●
●
Entité concrète ou abstraite du domaine d'application
Décrit par état (attributs) + comportement (opérations)
nom de l'objet
attributs
opérations
D. Longuet - UML
MonLivretA : Compte
numéro = 123456
devise = EUR
solde = 3509,43
déposer(montant : float)
retirer(montant : float)
solde() : float
état (valeur des attributs)
4
5. Objets et classes
Classe : Regroupement d'objets de même nature (mêmes attributs +
mêmes opérations)
Objet = instance d'une classe
nom de la classe
MonCompteJoint : Compte
MonLivretA : Compte
numéro = 123456
devise = EUR
solde = 3509,43
déposer(montant : float)
retirer(montant : float)
solde() : float
numéro = 854126
devise = EUR
solde = 2215,03
déposer(montant : float)
retirer(montant : float)
solde() : float
MonCompteSuisse : Compte
numéro = 70054568
devise = CHF
solde = 121000
déposer(montant : float)
retirer(montant : float)
solde() : float
D. Longuet - UML
Compte
instances de
attributs
numéro : int
devise : Devise
solde : float
déposer(montant : float)
retirer(montant : float)
solde() : float
opérations
5
6. Classes
Attributs
●
Propriété partagée par tous les objets de la classe
●
Associe à chaque objet une valeur
●
Type associé simple (int, bool...), primitif (Date) ou énuméré
Opérations
●
Service qui peut être demandé à tout objet de la classe
Ne pas confondre avec une méthode = implantation de l'opération
Compte
D. Longuet - UML
numéro : int
devise : Devise
solde : float
déposer(montant : float)
retirer(montant : float)
solde() : float
6
7. Relations entre objets
Association entre objets
●
relation binaire (en général)
●
au plus un lien entre deux objets
JeanDupont : Personne
nom = "Dupont"
prénom = "Jean"
adresse = "Montrouge"
naissance = 20/08/1990
D. Longuet - UML
possède
MonLivretA : Compte
numéro = 123456
devise = EUR
solde = 3509,43
7
8. Relations entre objets
Association entre objets
●
relation binaire (en général)
●
au plus un lien entre deux objets
MarieDupont : Personne
nom = "Dupont"
prénom = "Marie"
adresse = "Montrouge"
naissance = 4/12/1992
possède
possède
JeanDupont : Personne
nom = "Dupont"
prénom = "Jean"
adresse = "Montrouge"
naissance = 20/08/1990
sesComptes
possède
possède
MonCompteJoint : Compte
numéro = 854126
devise = EUR
solde = 2215,03
MonLivretA : Compte
numéro = 123456
devise = EUR
solde = 3509,43
MonCompteSuisse : Compte
numéro = 70054568
devise = CHF
solde = 121000
D. Longuet - UML
8
9. Relations entre objets
Association entre objets
●
relation binaire (en général)
●
au plus un lien entre deux objets
MarieDupont : Personne
nom = "Dupont"
prénom = "Marie"
adresse = "Montrouge"
naissance = 4/12/1992
possède
possède
JeanDupont : Personne
nom = "Dupont"
prénom = "Jean"
adresse = "Montrouge"
naissance = 20/08/1990
possède
possède
sesPropriétaires
MonCompteJoint : Compte
numéro = 854126
devise = EUR
solde = 2215,03
MonLivretA : Compte
numéro = 123456
devise = EUR
solde = 3509,43
MonCompteSuisse : Compte
numéro = 70054568
devise = CHF
solde = 121000
D. Longuet - UML
9
10. Relations entre classes
Association entre classes : Relation binaire (en général)
Rôle : Nomme l'extrémité d'une association, permet d'accéder aux
objets liés par l'association à un objet donné
Cardinalité : Contraint le nombre d'objets liés par l'association
nom : string
prénom : string
adresse : string
naissance : Date
ouvrirCompte(init : float)
D. Longuet - UML
Compte
rôle
Personne
sesComptes
sesPropriétaires
1..2
cardinalité
possède
nom de
l'association
(optionnel)
*
numéro : int
devise : Devise
solde : float
déposer(montant : float)
retirer(montant : float)
solde() : float
10
11. Attribut et association
Association
●
Deux attributs implicites
●
Explicitée comme attributs en phase de conception détaillée, qui
porteront les noms des rôles de l'association
Exemple de diagramme en conception
Compte
Personne
nom : string
prénom : string
adresse : string
naissance : Date
ouvrirCompte(init : float)
D. Longuet - UML
sesPropriétaires
1..2
sesComptes
*
numéro : int
devise : Devise
solde : float
déposer(montant : float)
retirer(montant : float)
solde() : float
11
12. Attribut et association
Association
●
Deux attributs implicites
●
Explicitée comme attributs en phase de conception détaillée, qui
porteront les noms des rôles de l'association
Exemple de diagramme en conception détaillée
Personne
nom : string
prénom : string
attributs correspondants
adresse : string
aux deux rôles de l'association
naissance : Date
sesComptes : Collection(Compte)
ouvrirCompte(init : float)
D. Longuet - UML
Compte
numéro : int
devise : Devise
solde : float
sesPropriétaires : Personne[2]
déposer(montant : float)
retirer(montant : float)
solde() : float
12
13. Attribut et association
Association
●
Deux attributs implicites
●
Explicitée comme attributs en phase de conception détaillée, qui
porteront les noms des rôles de l'association
Par conséquent, pas de référence à un objet dans un attribut s'il existe
une association vers cet objet
Compte
Personne
nom : string
prénom : string
adresse : string
naissance : Date
sesComptes : List(Compte)
ouvrirCompte(init : float)
D. Longuet - UML
sesPropriétaires
1..2
sesComptes
*
numéro : int
devise : Devise
solde : float
sesPropriétaires : Personne[2]
déposer(montant : float)
retirer(montant : float)
solde() : float
13
14. Cardinalités
Nombre de B associés à un A
A
A
n
n,m,p
B
Exactement n
B
Exactement n ou m ou p
A
n..m
B
Entre n et m
A
n..*
B
Au moins n
A
*
B
Plusieurs (0 ou plus)
D. Longuet - UML
14
15. Association réflexive
Diagramme de classes
Personne
nom : string
prénom : string
naissance : Date
parents
2
*
enfants
association réflexive
(d'une classe vers
elle-même)
Exemple de diagramme d'objets
JeanDupont : Personne
AnneBérou : Personne
nom = "Bérou"
prénom = "Anne"
naissance = 14/12/1965
MichelDupont : Personne
nom = "Dupont"
prénom = "Michel"
naissance = 2/09/1959
D. Longuet - UML
MarieDupont : Personne
nom = "Dupont"
prénom = "Jean"
naissance = 20/08/1990
nom = "Dupont"
prénom = "Marie"
naissance = 4/12/1992
PierreDupont : Personne
nom = "Dupont"
prénom = "Pierre"
naissance = 30/05/1992
LucieDupont : Personne
nom = "Dupont"
prénom = "Lucie"
naissance = 10/02/1996
VictorDupont : Personne
nom = "Dupont"
prénom = Victor
naissance = 12/07/2012
15
16. Association multiple
plusieurs associations
entre deux classes
Diagramme de classes
Personne
nom : string
prénom : string
naissance : Date
propose
1
loue
*
Appartement
* adresse : string
pièces : int
* loyer : float
Exemple de diagramme d'objets
JeanDupont : Personne
nom = "Dupont"
prénom = "Jean"
naissance = 20/08/1990
loue
propose
AlainDupuis : Personne
nom = "Dupuis"
prénom = "Alain"
naissance = 15/01/1983
D. Longuet - UML
BLR145 : Appartement
adresse = "145 av gal Leclerc,
Bourg-la-Reine"
pièces = 2
loyer = 900
Cach23 : Appartement
loue
adresse = "23 rue Dumotel,
Cachan"
pièces = 3
loyer = 1200
16
17. Navigabilité
Orientation d'une association
●
Restreint l'accessibilité des objets
●
Depuis un A, on a accès aux objets de B qui lui sont associés,
mais pas l'inverse
A
rôle
rôle
B
Exemple (listes chaînées)
Liste
tête
1
0..1
Nœud
contenu : int
1
0..1
suivant
Par défaut, associations navigables dans les deux sens (pas de flèche)
D. Longuet - UML
17
18. Classe-association
Permet de paramétrer une association entre deux classes par une classe
Personne
nom : string
prénom : string
naissance : Date
1..*
*
Entreprise
nom : string
Emploi
intitulé : string
début : Date
fin : Date
classe-association
Équivalence en termes de classes et d'associations
Personne
nom : string
prénom : string
naissance : Date
D. Longuet - UML
Emploi
1
* intitulé : string
début : Date
fin : Date
1..*
1
Entreprise
nom : string
18
19. Classe-association
Exemple de diagramme d'objets
Développeur : Emploi
MarieDupont : Personne
nom = "Dupont"
prénom = "Marie"
naissance = 4/12/1992
intitulé = "Développeur web"
début = ...
fin = ...
SecrétaireRH : Emploi
JeanDupont : Personne
nom = "Dupont"
prénom = "Jean"
naissance = 20/08/1990
AlainDupuis : Personne
nom = "Dupuis"
prénom = "Alain"
naissance = 15/01/1983
D. Longuet - UML
intitulé = "Secrétaire RH"
début = ...
fin = ...
RespClientEssilor : Emploi
intitulé = "Responsable clients"
début = ...
fin = ...
Essilor : Entreprise
nom = "Essilor"
ville = "Créteil"
Fnac : Entreprise
nom = "Fnac"
ville = "Bordeaux"
RespClientFnac : Emploi
intitulé = "Responsable clients"
début = ...
fin = ...
19
20. Association n-aire
Association reliant plus de deux classes
Étudiant
Enseignant
1
1..*
1
association ternaire
Cours
Utiliser de préférence des classes-associations
D. Longuet - UML
20
21. Agrégation
Association particulière entre classes
●
Dissymétrique : une classe prédominante sur l'autre
●
Relation de type composant-composite
Deux types d'agrégation
●
Agrégation faible
●
Composition
Pièce
1..*
3..*
agrégation faible
D. Longuet - UML
Mur
*
1
Brique
composition
21
22. Agrégation faible
Agrégation par référence
●
Le composite fait référence à ses composants
●
La création ou destruction du composite est indépendante de la
création ou destruction de ses composants
●
Un objet peut faire partie de plusieurs composites à la fois
Exemple
●
Une pièce est composée de murs
●
Un mur peut être commun à plusieurs pièces
Pièce
1..*
3..*
Mur
agrégation faible
D. Longuet - UML
22
23. Composition
Agrégation par valeur
●
Le composite contient ses composants
●
La création ou destruction du composite entraîne la création ou
destruction de ses composants
●
Un objet ne fait partie que d'un composite à la fois
Exemple
●
Un mur est composé de briques
●
Une brique n'appartient qu'à un mur
Mur
*
1
Brique
composition
D. Longuet - UML
23
24. Hiérarchie de classes
Principe : Regrouper les classes partageant des attributs et des
opérations et les organiser en arborescence
Spécialisation : raffinement d'une classe en une sous-classe
Généralisation : abstraction d'un ensemble de classes en super-classe
CompteÉpargne
CompteCourant
numéro : int
devise : Devise
solde : float
découvertAutorisé : float
fraisDécouvert : float
D. Longuet - UML
déposer(montant : float)
retirer(montant : float)
solde() : float
numéro : int
devise : Devise
solde : float
plafond : float
taux : float
déposer (montant : float)
retirer(montant : float)
solde() : float
calculerIntérêts() : float
24
25. Hiérarchie de classes
Principe : Regrouper les classes partageant des attributs et des
opérations et les organiser en arborescence
Spécialisation : raffinement d'une classe en une sous-classe
Généralisation : abstraction d'un ensemble de classes en super-classe
Compte
numéro : int
devise : Devise
solde : float
déposer(montant : float)
retirer(montant : float)
solde() : float
spécialisation
découvertAutorisé : float
fraisDécouvert : float
généralisation
CompteÉpargne
CompteCourant
D. Longuet - UML
super-classe
sous-classes
plafond : float
taux : float
calculerIntérêts() : float
25
26. Hiérarchie de classes
Principe : Regrouper les classes partageant des attributs et des
opérations et les organiser en arborescence
Héritage : Construction d'une classe à partir d'une classe plus haute
dans la hiérarchie (partage des attributs, opérations, contraintes...)
Compte
numéro : int
devise : Devise
solde : float
déposer(montant : float)
retirer(montant : float)
solde() : float
classes héritant
de la classe Compte
CompteCourant
découvertAutorisé : float
fraisDécouvert : float
D. Longuet - UML
CompteÉpargne
plafond : float
taux : float
calculerIntérêts() : float
26
27. Classe abstraite
Classe sans instance car certaines opérations non définies
●
Opération non définie en italique
●
Nom de la classe en italique (ou stéréotype « abstract »)
Exemple : On ne peut pas calculer la surface d'une forme sans savoir
de quelle forme il s'agit
opération non définie
(abstraite)
D. Longuet - UML
Forme
nom : string
surface() : float
27
28. Polymorphisme
Contexte : Définition d'une opération abstraite dans les classes
héritant d'une classe abstraite
Opération polymorphe : Opération définie dans différentes sous-classes
mais opération spécifique à la sous-classe
Forme
nom : string
surface() : float
Rectangle
longueur : float
largeur : float
opération
polymorphe
Cercle
rayon : float
surface() : float
surface() : float
D. Longuet - UML
28
29. Interface
Liste d'opérations constituant un contrat à respecter par les classes
réalisant l'interface
●
Pas une classe, ne peut pas servir à créer des objets
●
Toutes les opérations sont abstraites
Point
abscisse : float
ordonnée : float
« interface »
Comparable
égal(Object o) : boolean
supérieur(Object o) : boolean
égal(Object o) : boolean
supérieur(Object o) : boolean
classes réalisant
l'interface
D. Longuet - UML
Date
jour : int
mois : int
année : int
égal(Object o) : boolean
supérieur(Object o) : boolean
diff(Date d) : int
String
content : string
égal(Object o) : boolean
supérieur(Object o) : boolean
print()
29
30. Notations avancées
Vecteur
- début : Point
- longueur : float = 0.0
- angle : float = 0.0
+ / fin : Point
+ contient(in p : Point) : boolean
+ déplace(inout p : Point)
Attributs
[visibilité] [dérivé] nomAttribut [: type] [= valeur par défaut]
Opérations
[visibilité] nomOpération [(liste Paramètres)] [: typeRetour]
Paramètre
[direction] nom : type [= valeur par défaut]
Direction
in | out | inout (par défaut : in)
D. Longuet - UML
30
31. Notations avancées
attributs privés
attribut dérivé
Vecteur
- début : Point
- longueur : float = 0.0
- angle : float = 0.0
+ / fin : Point
+ contient(in p : Point) : boolean
+ déplace(inout p : Point)
opérations publiques
Visibilité
+ : public, accessible à toutes les classes
# : protégé, accessible uniquement aux sous-classes
- : privé, inaccessible à tout objet hors de la classe
Pas de visibilité par défaut
Attribut dérivé : Peut être calculé à tout moment à partir des autres
attributs
D. Longuet - UML
31
32. Notations avancées
Attributs et opérations de classes
●
Attribut de classe : valeur commune à toutes les instances
●
Opération de classe : opération sur la classe elle-même
(création de nouvelles instances par exemple)
●
Soulignés dans la classe
Article
- référence : int
- prixHT : float
- nbInstances : int
+ calculerPrixTTC(taxe : float) : float
+ créer()
+ compterInstances() : int
D. Longuet - UML
32
33. Contraintes
Propriétés :
●
Portant sur les éléments du modèle
●
Doivent être vérifiées à tout instant
●
En général, restriction sur les diagrammes d'objets possibles à
partir du diagramme de classes
Annotations dans le diagramme de classes
●
Sous forme textuelle, entre accolades
●
En OCL (Object Constraint Language)
D. Longuet - UML
33
34. Contraintes
{age = diff(naissance,today)}
Personne
nom : string
naissance : Date
/ age : int
{age ≥ 0}
1
*
appartient
{subset}
1
administre
●
* {ordered}
ExpériencesPro
entreprise : string
entrée : Date
sortie : Date
●
●
●
D. Longuet - UML
*
*
Groupe
thème : string
création : Date
L'âge est toujours positif
L'âge est calculé comme la différence
entre la date de naissance et la date
d'aujourd'hui
L'administrateur d'un groupe en est
membre
On a accès aux expériences
professionnelles dans l'ordre
34
35. Contraintes en OCL
Banque
nom : string
1..*
1
banque
banques
1..* clients
Client
nom : string
naissance : Date
1..* comptes
Compte
1
propriétaire
comptes numéro : int
devise : Devise
1..*
solde : float
dest
1
1
orig
Virement
montant : float
0..* date : Date
0..*
Tout propriétaire d’un compte est client de la banque hébergeant ce compte.
context c : Compte
inv : c.banque.clients -> include(c.propriétaire)
Tout client d’une banque y possède au moins un compte.
context b : Banque
inv : b.clients -> forAll(cl | cl.comptes
-> select(c | c.banque = b) -> size() >= 1)
Les virements ne sont autorisés qu'entre des comptes partageant la même devise.
context v : Virement
inv : v.orig.devise = v.dest.devise
D. Longuet - UML
35