0% ont trouvé ce document utile (0 vote)
5 vues46 pages

Cours de Développement Back-End

Drteddd. Hghccc. Ghytggg. Ghffgg. Cc. Chgcc. Hvvhgcgt

Transféré par

Mbaye Sarr
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
5 vues46 pages

Cours de Développement Back-End

Drteddd. Hghccc. Ghytggg. Ghffgg. Cc. Chgcc. Hvvhgcgt

Transféré par

Mbaye Sarr
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Cours Backend

Développement Back-End

Xarala
+221 77 860 60 64
contact@[Link]
Objectifs du Cours

● Comprendre les principes du développement back-end.


● Acquérir des compétences en UML.
● Comprendre les bases de données SQL et NoSQL.
● Développer et déployer des API RESTful en utilisant NestJS.
● Appliquer les connaissances théoriques dans un projet pratique.
Pré-requis

● Compréhension de base du développement web (HTML, CSS,


JavaScript).
● Familiarité avec les frameworks front-end (par exemple, React, Angular,
[Link]).
● Connaissance de base des langages de programmation (par exemple,
JavaScript, Python).
Introduction au Développement Back-End
Développement Front-End

Le développement front-end consiste à construire l'interface utilisateur et


l'expérience utilisateur d'une application web.
● Technologies : HTML, CSS, JavaScript, frameworks front-end (React,
Angular, [Link]).
● Responsabilités : Concevoir et développer les éléments visuels, assurer
un design responsive, gérer les interactions utilisateur.
Développement Back-End

Le développement back-end consiste à construire la logique côté serveur, la


gestion des bases de données et l'intégration des applications.
● Technologies : Langages côté serveur (JavaScript avec [Link], Python,
Java, PHP), frameworks (Express, Django, Spring, Laravel).
● Responsabilités : Gérer le serveur, la base de données et la logique de
l'application, assurer la sécurité, gérer les intégrations d'API et
maintenir la performance.
Responsabilités Principales

● Gestion du Serveur : Configurer et maintenir les serveurs, assurer la performance et


la disponibilité des serveurs.
● Gestion de la Base de Données : Concevoir, implémenter et maintenir les bases de
données, assurer l'intégrité et la sécurité des données.
● Développement d'API : Créer et gérer les API pour permettre la communication entre
le serveur et les applications clientes.
● Sécurité : Mettre en œuvre des mesures de sécurité pour protéger les données et
prévenir les accès non autorisés.
● Optimisation de la Performance : Assurer le bon fonctionnement de l'application,
optimiser les temps de réponse du serveur et les requêtes de la base de données.
Compétences Clés

● Maîtrise des langages et frameworks côté serveur.


● Bonne compréhension de la conception et de la gestion des bases de données.
● Connaissance du développement d'API et des services RESTful.
● Familiarité avec les systèmes de contrôle de version (par exemple, Git).
● Compétences en résolution de problèmes et en débogage.
Langages Côté Serveur Populaires
JavaScript ([Link]) : Environnement d'exécution JavaScript construit sur le moteur V8 de
Chrome.
Cas d'Utilisation : Construction d'applications réseau évolutives, applications web en temps
réel.
Python (Django, Flask) :Connu pour sa lisibilité et sa simplicité.
Cas d'Utilisation : Applications web, analyse de données, apprentissage automatique.
Java (Spring) : Langage de programmation orienté objet et robuste.
Cas d'Utilisation : Applications de niveau entreprise, systèmes à grande échelle.
PHP (Laravel) :Langage de script largement utilisé pour le développement web.
Cas d'Utilisation : Systèmes de gestion de contenu, plateformes de commerce électronique.
Frameworks Populaires
[Link] (Express, NestJS) :
Express : Un framework d'application web minimaliste et flexible pour [Link].
NestJS : Un framework progressif pour [Link] pour la construction d'applications serveur efficaces et
évolutives.
Python (Django, Flask) :
Django : Un framework web Python de haut niveau qui encourage le développement rapide.
Flask : Un framework d'application web WSGI léger.
Java (Spring, Hibernate) :
Spring : Un framework complet pour le développement Java d'entreprise.
Hibernate : Un outil de mappage objet-relationnel pour Java.
PHP (Laravel, Symfony) :
Laravel : Un framework PHP pour les artisans du web, axé sur la simplicité et l'élégance.
Symfony : Un ensemble de composants PHP et un framework d'application web.
Introduction à la Conception Logicielle (Modélisation)
C’est quoi la Modélisation Logicielle

La modélisation logicielle est le processus de création d'une représentation abstraite


ou visuelle des différents aspects d'un système logiciel. Cela inclut la structure, le
comportement et les interactions du système.
Importance de la Modélisation
● Visualisation : Permet de visualiser la structure et le comportement du système avant sa
mise en œuvre.
● Communication : Facilite la communication entre les membres de l'équipe de
développement et les parties prenantes, en fournissant un langage commun et des
représentations graphiques.
● Documentation : Sert de documentation pour le système, facilitant la maintenance et les
mises à jour futures.
● Analyse et Conception : Aide à identifier les exigences, à concevoir l'architecture du
système et à résoudre les problèmes avant l'implémentation.
UML
Introduction à UML
UML (Unified Modeling Language) est un langage de modélisation standardisé utilisé pour
spécifier, visualiser, construire et documenter les artefacts d'un système logiciel.
● Historique : UML a été créé par Grady Booch, Ivar Jacobson et James Rumbaugh chez
Rational Software en 1997 et est maintenant maintenu par l'Object Management Group
(OMG).
● Utilisation : UML est utilisé pour modéliser divers aspects d'un système logiciel, y
compris la structure (diagrammes de classes), le comportement (diagrammes de
séquence, diagrammes de cas d'utilisation) et les interactions (diagrammes de
communication).
Avantages de l'UML
● Standardisation : UML est un langage de modélisation standardisé et largement
accepté.
● Flexibilité : UML peut être utilisé pour modéliser des systèmes logiciels de toute
taille et complexité.
● Compatibilité : UML est compatible avec diverses méthodologies de
développement logiciel, y compris les approches agiles et les méthodes
traditionnelles.
Outils
● [Link]
● Lucidchart
● Visual Paradigm
● Edraw Max
● StarUML
Types de Diagrammes UML
Diagrammes Structurels :
● Diagramme de Classes : Décrit la structure des systèmes en termes de classes et
leurs relations.
● Diagramme d'Objets : Montre des instances spécifiques de classes à un moment
donné.
● Diagramme de Composants : Décrit l'organisation et les dépendances des
composants physiques dans un système.
● Diagramme de Déploiement : Montre l'architecture physique d'un système, y
compris les nœuds matériels et logiciels.
Diagrammes Comportementaux :
● Diagramme de Cas d'Utilisation : Représente les interactions entre les acteurs
externes et le système.
● Diagramme de Séquence : Montre la séquence des messages échangés entre les
objets pour accomplir une fonction spécifique.
● Diagramme d'Activités : Décrit le flux de travail ou les activités dans un
système.
Diagrammes d'Interactions :
● Diagramme de Communication : Montre les interactions entre objets en termes
de messages échangés.
● Diagramme de Temps : Décrit le comportement des objets sur une période de
temps.
● Diagramme de Profilage : Représente la structure et les relations des systèmes
complexes.
Diagramme de Classes :
Un diagramme de classes est un type de diagramme de structure statique qui décrit
la structure d'un système en montrant ses classes, leurs attributs, opérations, et les
relations entre les objets.
Exemple: Diagramme de Classes
Éléments de Base des Diagrammes de Classes
Classe : Représentée par un rectangle divisé en trois compartiments. Le compartiment supérieur contient le
nom de la classe, le compartiment du milieu contient les attributs, et le compartiment inférieur contient les
opérations (méthodes).
Attributs : Variables qui détiennent des données pour une classe.
Opérations : Fonctions ou méthodes qui décrivent le comportement d'une classe.
Relations :
Association : Représente une relation entre classes. Peut avoir une multiplicité pour montrer combien
d'instances d'une classe sont liées à une instance d'une autre classe.
Héritage (Généralisation) : Indique une relation "est-un" où une sous-classe hérite d'une superclasse.
Agrégation : Une relation "a-un" où une classe fait partie d'une autre classe mais peut exister
indépendamment.
Composition : Une relation forte "a-un" où une classe ne peut pas exister sans l'autre.
Exercice 1 : Diagramme de classes
Vous concevez un système de gestion de budget simple. Le système doit gérer les
dépenses, les revenus, le solde et la personne qui gère son budget.
Diagramme de Cas d'Utilisation :
Un diagramme de cas d'utilisation est un type de diagramme comportemental défini
par et créé à partir d'une analyse de cas d'utilisation. Son but est de présenter une
vue d'ensemble graphique des fonctionnalités fournies par un système en termes
d'acteurs, de leurs objectifs (représentés comme des cas d'utilisation) et de toute
dépendance entre ces cas d'utilisation.
Exemple: Diagramme de cas d’utilisation
Éléments de Base des Diagrammes de Cas
d'Utilisation
Acteurs : Entités qui interagissent avec le système (par exemple, utilisateurs,
systèmes externes). Représentés par des figures de bâton.
Cas d'Utilisation : Fonctionnalités spécifiques ou services fournis par le système.
Représentés par des ovales.
Limite du Système : Un rectangle qui définit le périmètre du système.
Éléments de Base des Diagrammes de Cas
d'Utilisation
Relations :
Association : Une ligne reliant les acteurs aux cas d'utilisation, montrant leurs
interactions.
Inclure : Une flèche en pointillés d'un cas d'utilisation à un autre, indiquant que le
comportement du cas d'utilisation inclus est inséré dans le comportement du cas
d'utilisation de base.
Étendre : Une flèche en pointillés d'un cas d'utilisation à un autre, indiquant que le
comportement du cas d'utilisation d'extension peut être inséré dans le cas
d'utilisation de base sous certaines conditions.
Généralisation : Une ligne avec une flèche creuse, montrant qu'un acteur peut
hériter du rôle d'un autre.
Exercice 2: Cas d’utilisation
Vous concevez un système de gestion de budget simple. Le système doit permettre aux
utilisateurs d’ajouter des dépenses, d'ajouter des revenus, de voir leur solde, mettre à
jour les informations sur des dépenses et revenus.
Diagramme de Séquence :
Un diagramme de séquence est un type de diagramme d'interaction qui montre
comment les objets fonctionnent ensemble et dans quel ordre. Il décrit les objets et
les classes impliqués dans le scénario et la séquence des messages échangés entre
eux pour réaliser la fonctionnalité.
Exemple: Diagramme de séquence
Éléments de Base des Diagrammes de Séquence

Acteurs : Entités qui interagissent avec le système, généralement représentées par des
figures de bâton.
Objets/Classes : Représentés par des rectangles avec le nom de l'objet souligné.
Lignes de Vie : Lignes en pointillés verticales qui représentent l'existence de l'objet au fil
du temps.
Activations/Barres : Rectangles fins sur une ligne de vie qui représentent le temps
pendant lequel un objet effectue une action.
Messages : Flèches horizontales entre les lignes de vie qui représentent la
communication entre les objets (synchrones ou asynchrones).
Messages de Retour : Flèches en pointillés représentant le retour de contrôle ou de
données.
Exercice 2: Séquence
Vous concevez un diagramme de séquence pour la fonctionnalité "Ajouter dépense"
dans l’application gestion de budget. Le processus implique qu'un utilisateur ajoute une
dépense.
Base de données

Une base de données est une collection organisée d'informations structurées, ou de données,
généralement stockées électroniquement dans un système informatique. Une base de données
est gérée par un système de gestion de base de données (SGBD).
Importance

● Gestion des Données : Stocker, récupérer et gérer les données de manière


efficace.
● Intégrité des Données : Assurer l'exactitude et la cohérence des données tout
au long de leur cycle de vie.
● Évolutivité : Gérer des volumes de données et des utilisateurs croissants.
● Sécurité : Protéger les données contre les accès non autorisés et les violations.
● Sauvegarde et Récupération : Fournir des mécanismes de récupération des
données en cas de défaillance.
SQL vs NoSQL

Comparaison Bases de Données SQL Bases de Données NoSQL

Données non structurées ou


semi-structurées, stockées dans divers
formats tels que des documents, des
Données structurées organisées en paires clé-valeur, des colonnes larges
Structure tables avec des lignes et des colonnes. ou des graphes.

Schéma Schéma fixe, prédéfini et rigide. Schéma flexible, dynamique et évolutif.

Forte cohérence et intégrité des Cohérence éventuelle, flexibilité dans la


Intégrité des Données données. gestion de la cohérence des données.
Utilisation de divers langages de
Utilisation du SQL (Structured Query requête spécifiques au type de base de
Language) pour définir et manipuler les données (par exemple, le langage de
Langage de Requête données. requête MongoDB).
MySQL, PostgreSQL, Oracle, SQL
Exemples Server. MongoDB, Cassandra, Redis, Neo4j.
Base de données SQL

[Link]
Requêtes SQL de Base

SELECT : Récupérer des données à partir d'une ou plusieurs tables.


SELECT title, author FROM Books;
INSERT : Ajouter de nouveaux enregistrements dans une table.
INSERT INTO Members (name, memberID, membershipDate) VALUES ('John Doe',
1, '2024-06-27');
UPDATE : Modifier des enregistrements existants dans une table.
UPDATE Books SET publicationDate = '2024-01-01' WHERE ISBN = '1234567890';
DELETE : Supprimer des enregistrements d'une table.
DELETE FROM Members WHERE memberID = 1;
Opérations SQL de Base

Créer une Table :


CREATE TABLE Books (
ISBN VARCHAR(13) PRIMARY KEY,
title VARCHAR(255),
author VARCHAR(255),
publicationDate DATE
);

Supprimer une Table :


DROP TABLE Books;

Modifier une Table :


ALTER TABLE Books ADD numberOfPages INT;
Exercice 3: Base de données SQL
Scénario :
● Créer et peupler des tables pour un système de gestion de budget.
Étapes :
● Écrire des requêtes SQL pour créer des tables.
● Insérer des données d'exemple dans les tables.
● Effectuer des requêtes SQL de base pour récupérer et manipuler les données.
Base de données NoSQL
Vue d'Ensemble des Bases de Données NoSQL

Définition : Une catégorie de systèmes de gestion de bases de données qui


n'utilisent pas de modèle de base de données relationnelle traditionnel.
Pourquoi NoSQL : Conçues pour gérer de grands volumes de données non
structurées ou semi-structurées, fournir des performances élevées et supporter le
scaling horizontal.
Types de Bases de Données NoSQL

● Orientées Documents : Stocker les données dans des documents similaires à


JSON. Exemples : MongoDB, CouchDB.
● Clé-Valeur : Stocker les données sous forme de paires clé-valeur. Exemples :
Redis, DynamoDB.
● Famille de Colonnes : Stocker les données dans des familles de colonnes.
Exemples : Cassandra, HBase.
● Graphe : Stocker les données dans des structures de graphe avec des nœuds,
des arêtes et des propriétés. Exemples : Neo4j, ArangoDB.
Caractéristiques Clés

● Évolutivité : Facile à scalier en distribuant les données sur plusieurs serveurs.


● Flexibilité : Gérer des types de données et des structures divers sans schéma
fixe.
● Performance : Optimiser pour des types spécifiques de récupération et de
stockage de données.
● Modèles de Cohérence : Supporter divers modèles de cohérence, de la
cohérence forte à la cohérence éventuelle.
Exercice 4: Base de données NoSQL
Scénario :
● Configurer une base de données MongoDB pour un système de gestion de
bibliothèque.
Étapes :
● Installer MongoDB et configurer l'environnement.
● Créer une base de données et des collections.
● Insérer des documents dans les collections.

Vous aimerez peut-être aussi