Modélisation Logicielle Orientée Objet
S-INFO-013 (cours du jour, Mons)
Tom Mens
Service de Génie Logiciel – Département Informatique
Structure des UE et AA
US-B2-SCINFO-007-M
50%
“Génie Logiciel”
6 crédits
FS BAB2 Sciences Informatiques S-INFO-103 (Stéphane Dupont)
50% “Développement dirigé par les modèles”
Q1: 8h cours + 16h labos
US-MC-SCINFO-041-M
© Tom Mens, UMONS
“Génie Logiciel”
6 crédits
FS Master Sciences Informatiques S-INFO-013 (Tom Mens)
50%
“Modélisation logicielle orientée objet”
Q1: 18h cours + 12h travaux pratiques
US-MC-SCINFO60-002-M UI-B3-IRCIVI-302-M
“Génie Logiciel” (responable: Stéphane Dupont)
6 crédits “Outils de développement logiciel”
FS Master Court Sc. Informatiques I-ILIA-004 (Stéphane Dupont) FPMS Bachelier Ingénieur Civil
“Modélisation et programmation
US-B3-SCMATH-100-M avancée”
Q1: 6h cours + 24h travaux pratiques 50%
“Génie Logiciel”
6 crédits
FS Bachelier Mathématiques
2
S-INFO-013
Modélisation logicielle orientée objet
Dispensée en Q1
–18h de théorie sur la modélisation orientée objet
© Tom Mens, UMONS
• Le langage de modélisation UML
• La modélisation exécutable des statecharts
–12h de travaux pratiques
3
S-INFO-013
Méthode d’évaluation
Examen écrit à cahier fermé en janvier
(ou en août pour la 2ème session)
–Pour tester la connaissance théorique et pratique sur
© Tom Mens, UMONS
le langage UML et les statecharts
–Certaines questions des années précédentes
disponibles sur Moodle
4
L’UE Génie Logiciel
• L’AA S-INFO-013 fait partie d’une UE « Génie
Logiciel » pour FS Sciences Informatiques et
Mathématiques (pondération 50%)
– Autre AA en Q1: Développement dirigée par les modèles (S-
© Tom Mens, UMONS
INFO-103) par S. Dupont
• L’AA S-INFO-013 fait partie d’une UE « Outils de
développement logiciel » Pour FPMS BAB3 IG
(pondération 50%)
– Autre AA en Q1: Modélisation et programmation avancée (I-
ILIA-004) assurée par S. Dupont
5
AA S-INFO-013
Modélisation logicielle orientée objet
Par Tom Mens.
Objectifs:
© Tom Mens, UMONS
• Se familiariser avec le design et la modélisation des
systèmes logiciels
• apprendre le langage de modélisation UML
– version 2.5 sera utilisé dans ce cours
• pouvoir développer des modèles en UML en utilisant de
bonnes pratiques de l’orientée objet
– abstraction, généralité, modularité, réutilisabilité,
compréhensibilité, cohérence, …
6
AA S-INFO-103 (en FS)
Développement dirigée par les modèles
Par Stéphane Dupont.
Objectifs: Apprendre les aspects avancés de la
programmation orientée objet en Java
© Tom Mens, UMONS
– Les design patterns
– Les tests logiciels (tests unitaires, mock testing, …)
– La synchronisation entre code et modèles
– La génération du code source à partir des modèles
7
AA I-ILIA-004 (en FPMS)
Modélisation et programmation avancée
Par Stéphane Dupont.
Objectifs: Apprendre les aspects avancés de la
programmation orientée objet en Java
© Tom Mens, UMONS
– Développement orienté objet
– Structures de données (Collections en Java)
– La programmation fonctionnelle en Java (lambdas et streams)
– La programmation parallèle en Java (threads)
– Le développement d’une interface utilisateur GUI
– La gestion d’exceptions
– Les design patterns
– Les tests unitaires
– La synchronisation entre code et modèles
8
Liens utiles
Plateforme Moodle
https://moodle.umons.ac.be/course/view.php?id=3298
Accès automatique
© Tom Mens, UMONS
... ou, pour commencer ...
accès anonyme avec clef ML2023
9
Logiciels recommandés
pour la modélisation UML
Attention! Vérifiez la comptabilité des outils avec une version 2.5
d’UML
Logiciels recommandés:
© Tom Mens, UMONS
–Visual Paradigm UML
Licence académique disponible sur la plate-forme e-learning
https://ap.visual-paradigm.com/university-of-mons
User guide:
https://circle.visual-paradigm.com/docs/
–Itemis Create Professional edition (statechart tool)
Stand-alone application:
https://www.itemis.com/en/products/itemis-create
Cloud-based: https://create.itemis.io
Licence académique et instructions d’installation
18
disponibles sur Moodle
© Tom Mens, UMONS Visual Paradigm for UML
20
Contenu de l’AA S-INFO-013
Exemple d’un processus « léger » pour le
développement dirigé par les modèles:
Visual Paradigm Standard(Tom Mens(University of Mons))
© Tom Mens, UMONS
UI designer
Create User Create State
Interface Machine Diagram
Mockup Controlling
Event-Based UI
Create Use Case Create
Create Use Case Scenarios Sequence
Diagram Diagrams
UML designer
Create Interaction Create Class
Overview Diagram Diagrams
Developer
Generate
Deploy Write (and Test)
Source Code
Code More Source Code
from Diagrams
21
Visual Paradigm Standard(Tom Mens(University of Mons))
UI designer
Create User Create State
Interface Machine Diagram
Mockup Controlling
Event-Based UI
Create Use Case
Exemple d’une maquette (créé avec Visual
Create
Create Use Case Scenarios Sequence
Diagram Diagrams
UML designer
Paradigm) de l’interface graphique (user Create Interaction
Overview Diagram
Create Class
Diagrams
interface mockup) d’un thermostat :
© Tom Mens, UMONS
Developer
Generate
Deploy Write (and Test)
Source Code
Code More Source Code
from Diagrams
22 https://bitbucket.org/evolumons/mythermostat
Visual Paradigm Standard(Tom Mens(University of Mons))
UI designer
Create User Create State
Interface Machine Diagram
Mockup Controlling
Event-Based UI
Exemple d’un statechart
Create Use Case représentant
Scenarios le controleur
Create Use Case
du thermostat
Create
Sequence
Diagram Diagrams
UML designer
Create Interaction Create Class
Overview Diagram Diagrams
© Tom Mens, UMONS
Developer
Generate
Deploy Write (and Test)
Source Code
Code More Source Code
from Diagrams
23
Itemis Create
Stand-alone statechart editor
© Tom Mens, UMONS
24
Itemis Create
Cloud-based statechart editor
(create.itemis.io)
© Tom Mens, UMONS
25
Visual Paradigm Standard(Tom Mens(University of Mons))
UI designer
Create User Create State
Interface Machine Diagram
Mockup Controlling
Event-Based UI
Simulation d’un statechart exécutable
Create Use Case
Diagram
Create Use Case
Scenarios
Create
Sequence
Diagrams
UML designer
Create Interaction Create Class
Overview Diagram Diagrams
© Tom Mens, UMONS
Developer
Generate
Deploy Write (and Test)
Source Code
Code More Source Code
from Diagrams
26
Visual Paradigm Standard(Tom Mens(University of Mons))
UI designer
Create User Create State
Interface Machine Diagram
Mockup Controlling
Event-Based UI
Simulation du statechart exécutable
Create Use Case
Diagram
Create Use Case
Scenarios
Create
Sequence
Diagrams
UML designer
(avec create.itemis.io)
Create Interaction Create Class
Overview Diagram Diagrams
© Tom Mens, UMONS
Developer
Generate
Deploy Write (and Test)
Source Code
Code More Source Code
from Diagrams
27
Contenu de l’AA S-INFO-013
Cours théoriques
La modélisation en UML: différents points de vue
Modélisation de la structure statique
• les diagrammes de classes
(et les diagrammes d’objets)
© Tom Mens, UMONS
Modélisation de l’architecture
• du logiciel: les diagrammes de composants
• du matériel: les diagrammes de déploiement
Modélisation du comportement dynamique
• Modélisation de la fonctionnalité pour l'utilisateur
– les diagrammes de cas d’utilisation
(et les scénarios semi-structurés)
• Modélisation des processus et workflow
– interaction overview diagrams
– les diagrammes d'activités
– les diagrammes de séquences
• Les statecharts (diagrammes d'états comportementaux)
29
© Tom Mens, UMONS
30
Contenu de l’AA S-INFO-013
La modélisation en UML
Utilisez de bonnes pratiques de modélisation
–Exactitude: dévelopez des modèles syntaxiquement
corrects
© Tom Mens, UMONS
–Précision: évitez l’ambiguité dans les modèles
–Concision: évitez les détails inutiles
–Complétude: modélisez tous les aspects essentiels
–Cohérence: évitez les incohérences dans les
modèles
–Compréhensibilité: créez des modèles lisibles et
compréhensibles
–Uniformité: utilisez un style uniforme partout
31