Vous êtes sur la page 1sur 45

UML

Amina OUSSALEH TAOUFIK – Cours UML EHTP Mars 2024


Système d’Information (SI)
Système d’Information
Définition
Un système d'information (SI) est un ensemble organisé de ressources (personnel, matériel, logiciel, données,
procédures) permettant de collecter, stocker, traiter, analyser, diffuser et utiliser des informations au sein d'une
organisation pour atteindre des objectifs spécifiques / Prise de décision

Parties du SI Rôles

Données Informations brutes collectées et stockées, qui sont utilisées pour créer des
connaissances et des rapports
Matériel Équipements physiques tels que les ordinateurs, les serveurs et les périphériques
informatique
Logiciel Programmes informatiques utilisés pour traiter les données et fournir des
fonctionnalités au système
Réseau Infrastructure qui permet de connecter les différents composants du système
d'information
Personnes Utilisateurs, administrateurs, développeurs et autres personnes impliquées dans le
système d'information
Processus Procédures et méthodologies utilisées pour gérer les données et les opérations du
système
Génie Logiciel
Logiciel
Exemples

Application Desktop, Application Web, Mobile, Système d’Exploitation, DataWareHouse, Jeux


vidéos,…

Critères de qualité d’un logiciel

• Utilité du logiciel (Design Thinking)


• Portabilité
• Utilisabilité
• Interopérabilité
• Fiabilité
• Facilité de maintenance
• Performance
Le Génie Logiciel
Définition

• Le génie logiciel (ou "Software engineering" en anglais) est une discipline qui s'intéresse à la
conception, au développement, à la maintenance et à l'évolution de logiciels de qualité.

• Le génie logiciel implique l'application de méthodes, de techniques et d'outils de développement


de logiciels pour garantir que le logiciel développé répond aux besoins des utilisateurs, est fiable,
sécurisé, efficace et facile à maintenir.
Le Génie Logiciel
Métiers / Acteurs du Génie Logiciel

Acteur Description de rôle


Écrire du code en suivant les spécifications et les normes de qualité pour
Développeurs
produire un logiciel de qualité.
Planifier et organiser le développement du logiciel en fonction des délais,
Chef de projet
des ressources et des besoins du client.
Concevoir l'architecture logicielle pour répondre aux besoins du client et
Architectes logiciels
aux exigences techniques.
Exécuter des tests manuels et automatisés pour vérifier que le logiciel
Testeurs de logiciels
fonctionne correctement.
Utiliser le logiciel et fournir des commentaires sur les fonctionnalités et
Utilisateurs finaux
l'utilisabilité du produit.
S'assurer que le logiciel est développé en respectant les normes de qualité
Responsables de la qualité
et les exigences réglementaires.
Communiquer les besoins et les attentes du client aux développeurs et
Propriétaires de produits
s'assurer que le produit final répond à ces exigences.
Le Génie Logiciel
Cycle de vie du Génie Logiciel

Méthode Avantages Inconvénients


- Facile à comprendre et à utiliser - Pas très flexible
- Processus linéaire et étape par étape - Les changements en cours de route
Cascade
- Convient aux projets bien définis et peuvent être coûteux et difficiles à
stables gérer
- Met l'accent sur la vérification et la
validation dès le début du projet - Moins flexible que la méthode en
- Peut détecter les problèmes spirale
En V
rapidement - Peut être coûteux et difficile à
- Convient aux projets où la qualité est mettre en place
primordiale

- Permet une meilleure gestion des - Peut être difficile à comprendre et à


risques mettre en place pour les équipes
- Peut s'adapter aux changements en non expérimentées
Spirale
cours de route - Les coûts peuvent augmenter
- Favorise la communication continue rapidement si le projet n'est pas
avec les parties prenantes géré correctement
Le Génie Logiciel
Cycle de vie d’un logiciel: cycle en V
Le Génie Logiciel
Cycle de vie d’un logiciel: cycle en V
Le Génie Logiciel
Cycle de vie d’un logiciel: cycle en V
Le Génie Logiciel
Cycle de vie d’un logiciel: cycle en V
Le Génie Logiciel
Cycle de vie d’un logiciel: cycle en V
Le Génie Logiciel
Test logiciel

Exemples
Type de test Objectif d'outils
Vérifier le comportement
JUnit, NUnit,
Test unitaire d'un module ou d'une
pytest
fonction isolée
Vérifier le comportement Selenium,
Test
des interactions entre les RestAssured,
d'intégration
composants Postman
Vérifier que le système
Cucumber,
Test répond aux exigences
SpecFlow,
d'acceptation métier et fonctionne
Behave
comme prévu

Selenium (avec Java, Python, C#, etc.)


JUnit (Java)
PyTest (Python)
Le Génie Logiciel
Approche Agile

• L'approche agile est une méthode de gestion de projet qui favorise la


flexibilité et l'adaptabilité aux changements. Elle est souvent utilisée
dans les projets de développement de logiciels, mais elle peut
également être appliquée dans d'autres domaines.

Les principales caractéristiques de l'approche agile sont les suivantes :

▪ Planification itérative et incrémentale : Elle se concentre sur la livraison de résultats fonctionnels en cycles
courts appelés "sprints". Les objectifs et les priorités peuvent être réajustés à chaque sprint en fonction des
besoins des utilisateurs.
▪ Forte collaboration : L'approche agile favorise la communication et la collaboration entre les membres de
l'équipe et les parties prenantes du projet.
▪ Flexibilité et adaptabilité : L'approche agile permet à l'équipe de s'adapter rapidement aux changements dans
les priorités, les besoins des utilisateurs ou les contraintes du projet. L'équipe peut ajuster sa direction à
chaque sprint pour s'assurer que le produit final répond aux besoins réels.
▪ Amélioration continue : L'approche agile encourage une culture d'amélioration continue en encourageant
l'équipe à réfléchir à ses pratiques, à identifier les domaines d'amélioration et à prendre des mesures pour y
remédier.
Introduction à la modélisation Objet
Le Génie Logiciel
La Modélisation
• La modélisation est un processus de représentation d'un
système réel sous une forme abstraite pour en comprendre et
en décrire le fonctionnement.

• La modélisation peut être utilisée à différents niveaux


d'abstraction pour différents objectifs, tels que la
compréhension du domaine, l'analyse des besoins, la
conception de solutions, la documentation et la
communication.
Introduction à la modélisation Objet

La Modélisation
Introduction à la modélisation Objet
La Modélisation
Introduction à la modélisation Objet
La Modélisation
La modélisation peut être divisée en deux types :

• La modélisation d'analyse:
▪ Est axée sur la compréhension des besoins et des exigences du
système.

▪ Elle permet de décrire les processus métier, les règles et les


contraintes qui s'appliquent à un système.

• La modélisation de conception:
▪ Est axée sur la création d'une solution qui répond aux exigences
identifiées lors de la modélisation d'analyse.
Introduction à la modélisation Objet
Introduction à la modélisation Objet

Méthode Merise (1970): Langage UML (1997)

• Méthode offrant une succession de • Langage offrant un ensemble de


modèles adaptés pour: diagrammes adaptés pour:
• Les application fonctionnelles ou objet • Les applications objet

• Les bases de données relationnelles ( • Les bases de données relationnelles ou


Modélisation des acteurs, flux, données, objet
traitements…) • (modélisation des cas d’utilisation, des
classes, des états…)
Introduction à la modélisation Objet
Modélisation par décomposition fonctionnelle (approche descendante)
C’est la fonction qui donne la forme du système et décide son architecture.
Exemple : Modélisation par décomposition fonctionnelle (approche descendante)
Introduction à la modélisation Objet
Modélisation Orientée Objet
Ce sont les objets du systèmes qui déterminent son architecture.
Exemple : Modélisation Orientée Objet
Introduction à la modélisation Objet

1 2 3

6 5
4
Introduction à la modélisation Objet
Objectif de la Modélisation
• Compréhension du domaine : La modélisation permet de comprendre et de représenter les processus métier et les exigences du domaine.
Cela peut aider les analystes et les développeurs à mieux comprendre les besoins des clients et à développer des solutions qui répondent aux
exigences.

• Communication : La modélisation permet de communiquer les exigences et la conception du système aux différentes parties prenantes du
projet, telles que les clients, les développeurs et les testeurs. Les modèles peuvent aider à clarifier les exigences et à s'assurer que toutes les
parties prenantes ont une compréhension commune du système.

• Réduction des erreurs : La modélisation permet d'identifier les erreurs et les incohérences dans la conception du système avant la mise en
œuvre. Cela peut aider à réduire le nombre d'erreurs dans le code et à éviter les retards et les coûts supplémentaires liés à la correction
d'erreurs.

• Planification : La modélisation peut aider à planifier le développement du logiciel en fournissant une vue d'ensemble du système et en aidant
à identifier les parties les plus critiques du système. Cela peut aider les gestionnaires de projet à planifier les ressources et à estimer le temps
nécessaire pour achever le projet.

• Réutilisation : Les modèles peuvent être utilisés pour concevoir des systèmes similaires ou pour réutiliser des parties de la conception dans
d'autres projets. Cela peut aider à accélérer le développement de logiciels et à réduire les coûts de développement.
UML, c’est quoi?
UML (Unified Modeling Language)

Méthode Nom de l’expert Année de Objet de la modélisation


développement
Booch Grady Booch Début des années 1990 Classes, objets, relations
entre eux
OMT James Rumbaugh Début des années 1990 Processus métier, cas
d'utilisation, classes
Objectory Début des années 1990 Cas d'utilisation, classes,
Ivar Jacobson processus de production de
logiciels
UML Booch, Rumbaugh, Milieu des années 1990 Systèmes logiciels,
Jacobson matériels et processus
métier
UML, c’est quoi?
Objectif de UML (Unified Modeling Language)
• L'objectif de UML était de créer un langage de modélisation unifié pour permettre une communication et une
compréhension plus claires entre les développeurs, les concepteurs et les parties prenantes impliquées dans le
développement de logiciels.
UML, c’est quoi?
Principaux diagrammes UML
UML, c’est quoi?
Principaux diagrammes UML (Exemples)

Diagramme de classes
Diagramme de cas d’utilisation
UML, c’est quoi?
Principaux diagrammes UML (Exemples)

Diagramme d’activité Diagramme de séquence


UML, c’est quoi?
Vues
• Les vues définissent le système.
• Ce sont des formulations du problème selon un certain point de vue.
• Elles peuvent se chevaucher pour completer une description.
UML, c’est quoi?
Différents Diagrammes de Modélisation UML
UML définit 9 types de diagrammes dans deux catégories de vues, les vues statiques et les vues
dynamiques.
• Vues statiques:
• Les diagrammes de cas d’utilisation décrivent le comportement et les fonctions d’un
système du point de vue de l’utilisateur
• Les diagrammes de classes décrivent la structure statique, les types et les relations des
ensembles d’objets
• Les diagrammes d’objets décrivent les objets d ’un système et leurs relations
• Les diagrammes de composants décrivent les composants physiques et l’architecture
interne d’un logiciel
• Les diagrammes de déploiement décrivent la répartition des programmes exécutables
sur les différents matériels
• Vues dynamiques :
• Les diagrammes de collaboration décrivent les messages entre objets (liens et
interactions)
• Les diagrammes d’états-transitions décrivent les différents états d’un objet
• Les diagrammes d’activités décrivent les comportements d’une opération (en termes
d’actions)
• Les diagrammes de séquence décrivent de manière temporelle les interactions entre
objets et acteur
Etapes de la modélisation
Etapes de la modélisation
Etapes de la modélisation

Figma
Mockplus
Sketch
Balsamiq
InVision
Adobe XD
Etapes de la modélisation
Etapes de la modélisation
Etapes de la modélisation
Etapes de la modélisation
Etapes de la modélisation
Mini Projet : Application de réservation en ligne de billet de train
Mini Projet : Application de réservation en ligne de billet de train

Enoncé:

Votre client est une entreprise semi-public de transport ferroviaire.


Votre mission est de réaliser une application information de gestion des
voyages. Inspirez vous du site de l’oncf-voyage.ma pour définir les
besoins de votre client ( les acteurs du système, les fonctionnalités et
les spécifications fonctionnelles de votre application).

Vous aimerez peut-être aussi