Upload
others
View
5
Download
0
Embed Size (px)
Citation preview
Département de génie électrique et de génie informatique
GEL−1001 Design I (méthodologie)
Technique 2 – Quelques éléments
de conception logicielleHiver 2018
Hiver 2018 GEL−1001 Design I (méthodologie) 2
Plan
! Conception logicielle – architecture! Décomposition de système! Aspects de sécurité! Base de données
GEL−1001 Design I (méthodologie) 3
Conception logicielle
! Bien structurer notre code afin : " D’offrir les fonctionnalités aux usagers" D’assurer la qualité du logiciel
Hiver 2018
GEL−1001 Design I (méthodologie) 4
Conception logicielle
! Repose sur un bon choix d’architecture! Architecture = composants + connecteurs
Hiver 2018
Vue globale
Hiver 2018 GEL−1001 Design I (méthodologie) 5
Environnement
Système
Intrants Extrants
Capteurs Effecteurs
Sense-Compute-Control
Quoi faire avec...
Hiver 2018 GEL−1001 Design I (méthodologie) 6
Environnement
Système
Intrants Extrants
Capteurs Effecteurs
Données ? Usager(s) ?
GEL−1001 Design I (méthodologie) 7
Presentation-Logic-Data
! Modèle à 3 couches! Utile pour les systèmes d’information
Presentation (UI)
Application Logic
Data
• Saisir les inputs des usagers • Présenter les informations • Capter les événements de l’interface • Gérer les commandes de l’usager • Analyser les données (ex. filtrer, classifier…) • Exécuter les fonctions principales du système • Déterminer quoi présenter à l’usager
• Assurer la persistance des données • Faciliter la recherche et la manipulation
Hiver 2018
On fusionne le tout
Hiver 2018 GEL−1001 Design I (méthodologie) 8
Environnement
Intrants Extrants
Capteurs Effecteurs
Couche de présentation (UI)
Couche logique de l’application
D’accord... sauf que...
Hiver 2018 GEL−1001 Design I (méthodologie) 9
Environnement
Intrants Extrants
Capteurs Effecteurs
Couche de présentation (UI)
Couche logique de l’application
GEL−1001 Design I (méthodologie) 10
Modèle client-serveur
! Principal modèle pour les systèmes distribués
Client
Serveur +service1() +service2() … +serviceN()
Requête
Réponse
Hiver 2018
GEL−1001 Design I (méthodologie) 11
Différents clients
! Client léger et client lourd (thin vs. fat)
Serveur Client lourd (fat)
UI Logic Logic Data
Serveur Client léger (thin)
UI Logic Data
Hiver 2018
GEL−1001 Design I (méthodologie) 12
Client léger
! Modèle client-serveur sur le Web" Affichage avec un navigateur
Serveur
Web
Requête (HTTP)
Réponse (HTML)
HTML JavaScript
Ajax AngularJS
React …
Client J2EE PHP .NET
Python Ruby
…
Hiver 2018
Spring, Flask, Django, Rails, Rest…
GEL−1001 Design I (méthodologie) 13
Que désigne les flèches?
! Ce sont des connecteurs
" Format des échanges# HTML, XML, Json…
" Protocoles d’échange # Ex. Http, ftp…
" Niveau physique# Câble ou ondes radio
Client
Serveur +service1() +service2() … +serviceN()
Hiver 2018
Échanges client-serveur! Sockets
" Protocole de bas niveau pour l’échange d’information. " Similaire à l’écriture à distance dans un fichier.
! Remote Procedure Calls (RPC)" Exécution de fonctions à distance." Génération automatique des fonctions client et serveur.
! Http " Transfert de fichiers hypertextes (ressources)." Principales commandes: GET, POST, HEAD, PUT.
! Rest" Extension de Http pour les services Web." Axé sur l’exécution de services à distance.
Hiver 2018 GEL−1001 Design I (méthodologie) 14
HyperText Markup Language (HTML)
! Langage avec marqueurs! Structure un document avec des balises
donnant des indications de présentation
Hiver 2018 GEL−1001 Design I (méthodologie) 15
<!DOCTYPE html><html> <head> <title>Hello HTML</title> </head> <body> <h1>The Title</h1> <p>Hello, World!</p> </body></html>
XML<?xml version="1.0" ?><customer_list> <customer number="050"> <name>Stephen Harper</name> <customer_since year="2006"/> </customer> <customer number="041"> <name>George W. Bush</name> <customer_since year="2001"/> </customer></customer_list>
Hiver 2018 GEL−1001 Design I (méthodologie) 16
En-tête standard
Balise racine
Balise avec élément texte
Balise sans élément avec attribut
Fermeture de la balise racine
JSON! Devient le standard pour l’échange d’infos! Plus simple que XML à décortiquer! Ressemble à un dictionnaire Python
Hiver 2018 GEL−1001 Design I (méthodologie) 17
Wi-Fi (Wireless Fidelity)! Norme IEEE 802.11 réseaux locaux sans fil (WLAN)! Couches : physique et liaison! Débit : 11 Mbit/s (802.11b), 54 Mbit/s (802.11g) et 150
Mbit/s (802.11n)! Portée : 30 à 50 m (jusqu’à 10 fois plus à l’extérieur)! Sécurité : 802.11i (gestion des clés, chiffrement et
authentification)! Fréquences : 2.4 GHz et 5 GHz! Réseaux : infrastructure (points d’accès) et ad hoc! Protocole : sans connexion
Hiver 2018 GEL−1001 Design I (méthodologie) 18
Hiver 2018 GEL−1001 Design I (méthodologie) 19
Bluetooth! Connexion radio courte distance entre ordinateurs et
périphériques (réseaux personnels)! Portée : 1, 10, 100 mètres (3 puissances)! Débit : 1 Mbit/s (v1) à 3 Mbit/s (v2)
Hiver 2018 GEL−1001 Design I (méthodologie) 20
Sécurité
! Authentification" Vérifier l’identité d’une personne pour autoriser
l’accès à des ressources.! Contrôle d’accès
" Limite l’utilisation de ressources en fonction de l’usager.
! Chiffrement («encryption») " Utilisation de clés pour chiffrer et déchiffrer les
informations transmises.
Authentification
! Valider l’identité d’un usager à partir d’informations personnelles. " Disponible dans plusieurs environnements" Utilitaires disponibles (ex. LDAP, ASP.NET)" Important – Chiffrement des mots de passe
Hiver 2018 GEL−1001 Design I (méthodologie) 21
Contrôle d’accès
! Habituellement basé sur des rôles" Role-based access control" Le rôle détermine les permissions.
! Nécessite l’authentification des usagers
Hiver 2018 GEL−1001 Design I (méthodologie) 22
Hiver 2018 GEL−1001 Design I (méthodologie) 23
Chiffrement (« encryption »)
! Chiffrement symétrique " Une même clé pour chiffrer et déchiffrer
! Chiffrement asymétrique" Paire composée d'une clé publique et
d'une clé privée" Données chiffrées avec une clé doivent être
déchiffrées avec l’autre
Chiffrement symétrique
Hiver 2018 GEL−1001 Design I (méthodologie) 24
Chiffrement asymétrique
Hiver 2018 GEL−1001 Design I (méthodologie) 25
Génération des clés
! Chiffrement symétrique" 128 bits, donc 2128 façons de chiffrer" Certains disponibles pour 256 bits
! Chiffrement asymétrique" Algorithme RSA : basé sur la factorisation en
nombres premiers" 1024 bits ou plus car la clé doit respecter
une structure particulièreHiver 2018 GEL−1001 Design I (méthodologie) 26
Confidentialité
Hiver 2018 GEL−1001 Design I (méthodologie) 27
Authentification par chiffrement
Hiver 2018 GEL−1001 Design I (méthodologie) 28
Base de données! Outil pour assurer la persistance des données
" Stockage et utilisation! Les informations sont structurées.
" Nombre, symbole, date, chaîne de caractères. ! Système de gestion de base de données (SGBD)
" Un serveur qui manipule et dirige l’accès au contenu! 4 opérateurs CRUD de manipulation de données
" Create (création)" Read (lecture)" Update (mise à jour)" Delete (retrait)
Hiver 2018 GEL−1001 Design I (méthodologie) 29
Base de données relationnelles
! Enregistrement " Tuple de données" Plusieurs champs
! Table" Ensemble d’enregistrements
! Clé primaire" Désigne un enregistrement" Différent pour chaque enregistrement
! Clé étrangère" Référence à une donnée connexe
Hiver 2018 GEL−1001 Design I (méthodologie) 30
Base de données relationnelles
! Langage de requête SQL" SQL – Structured query language" Standard de l’industrie
! Exemple
SELECT Nom, Prénom, Salaire FROM PERSONNEL WHERE Salaire * 12 > 50000 order by Salaire DESC;
Hiver 2018 GEL−1001 Design I (méthodologie) 31
Condition
Table sur laquelle on effectue la recherche
Informations recherchées
Tri sur les données
Cours pertinents ! Cours liés à la conception logicielle
" GLO-2004 Génie logiciel orienté objet" IFT-2004 Modèles et langages des bases de données" GLO-2003 Introduction aux processus du génie logiciel" GLO-3102 Développement d’applications Web" GLO-3112 Développement avancé d’applications Web" GLO-4000 Interface personne-machine" GLO-4002 Qualité logicielle" GLO-3013 Projet de conception multidisciplinaire" GLO-4003 Architecture logicielle" GLO-3002 Projet en génie logiciel (= Design IV)
Hiver 2018 GEL−1001 Design I (méthodologie) 32
Cours pertinents ! Cours liés aux télécommunications et à la sécurité
" GLO-2000 Réseaux pour ingénieurs" GEL-3006 Systèmes de télécommunications" GIF-3001 Réseaux de transmission de données" GEL-4200 Communications numériques" GLO-3100 Cryptographie et sécurité informatique" IFT-3201 Sécurité dans les réseaux informatiques" IFT-7016 Sécurité basée sur les langages: confidentialité et
intégrité
Hiver 2018 GEL−1001 Design I (méthodologie) 33
Des questions ?
Hiver 2018 34GEL−1001 Design I (méthodologie)