34
Département de génie électrique et de génie informatique GEL1001 Design I (méthodologie) Technique 2 – Quelques éléments de conception logicielle Hiver 2018

GEL 1001 Design I (méthodologie)wcours.gel.ulaval.ca/2018/h/GEL1001/default..." GLO-2004 Génie logiciel orienté objet " IFT-2004 Modèles et langages des bases de données " GLO-2003

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: GEL 1001 Design I (méthodologie)wcours.gel.ulaval.ca/2018/h/GEL1001/default..." GLO-2004 Génie logiciel orienté objet " IFT-2004 Modèles et langages des bases de données " GLO-2003

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

Page 2: GEL 1001 Design I (méthodologie)wcours.gel.ulaval.ca/2018/h/GEL1001/default..." GLO-2004 Génie logiciel orienté objet " IFT-2004 Modèles et langages des bases de données " GLO-2003

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

Page 3: GEL 1001 Design I (méthodologie)wcours.gel.ulaval.ca/2018/h/GEL1001/default..." GLO-2004 Génie logiciel orienté objet " IFT-2004 Modèles et langages des bases de données " GLO-2003

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

Page 4: GEL 1001 Design I (méthodologie)wcours.gel.ulaval.ca/2018/h/GEL1001/default..." GLO-2004 Génie logiciel orienté objet " IFT-2004 Modèles et langages des bases de données " GLO-2003

GEL−1001 Design I (méthodologie) 4

Conception logicielle

! Repose sur un bon choix d’architecture! Architecture = composants + connecteurs

Hiver 2018

Page 5: GEL 1001 Design I (méthodologie)wcours.gel.ulaval.ca/2018/h/GEL1001/default..." GLO-2004 Génie logiciel orienté objet " IFT-2004 Modèles et langages des bases de données " GLO-2003

Vue globale

Hiver 2018 GEL−1001 Design I (méthodologie) 5

Environnement

Système

Intrants Extrants

Capteurs Effecteurs

Sense-Compute-Control

Page 6: GEL 1001 Design I (méthodologie)wcours.gel.ulaval.ca/2018/h/GEL1001/default..." GLO-2004 Génie logiciel orienté objet " IFT-2004 Modèles et langages des bases de données " GLO-2003

Quoi faire avec...

Hiver 2018 GEL−1001 Design I (méthodologie) 6

Environnement

Système

Intrants Extrants

Capteurs Effecteurs

Données ? Usager(s) ?

Page 7: GEL 1001 Design I (méthodologie)wcours.gel.ulaval.ca/2018/h/GEL1001/default..." GLO-2004 Génie logiciel orienté objet " IFT-2004 Modèles et langages des bases de données " GLO-2003

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

Page 8: GEL 1001 Design I (méthodologie)wcours.gel.ulaval.ca/2018/h/GEL1001/default..." GLO-2004 Génie logiciel orienté objet " IFT-2004 Modèles et langages des bases de données " GLO-2003

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

Page 9: GEL 1001 Design I (méthodologie)wcours.gel.ulaval.ca/2018/h/GEL1001/default..." GLO-2004 Génie logiciel orienté objet " IFT-2004 Modèles et langages des bases de données " GLO-2003

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

Page 10: GEL 1001 Design I (méthodologie)wcours.gel.ulaval.ca/2018/h/GEL1001/default..." GLO-2004 Génie logiciel orienté objet " IFT-2004 Modèles et langages des bases de données " GLO-2003

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

Page 11: GEL 1001 Design I (méthodologie)wcours.gel.ulaval.ca/2018/h/GEL1001/default..." GLO-2004 Génie logiciel orienté objet " IFT-2004 Modèles et langages des bases de données " GLO-2003

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

Page 12: GEL 1001 Design I (méthodologie)wcours.gel.ulaval.ca/2018/h/GEL1001/default..." GLO-2004 Génie logiciel orienté objet " IFT-2004 Modèles et langages des bases de données " GLO-2003

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…

Page 13: GEL 1001 Design I (méthodologie)wcours.gel.ulaval.ca/2018/h/GEL1001/default..." GLO-2004 Génie logiciel orienté objet " IFT-2004 Modèles et langages des bases de données " GLO-2003

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

Page 14: GEL 1001 Design I (méthodologie)wcours.gel.ulaval.ca/2018/h/GEL1001/default..." GLO-2004 Génie logiciel orienté objet " IFT-2004 Modèles et langages des bases de données " GLO-2003

É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

Page 15: GEL 1001 Design I (méthodologie)wcours.gel.ulaval.ca/2018/h/GEL1001/default..." GLO-2004 Génie logiciel orienté objet " IFT-2004 Modèles et langages des bases de données " GLO-2003

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>

Page 16: GEL 1001 Design I (méthodologie)wcours.gel.ulaval.ca/2018/h/GEL1001/default..." GLO-2004 Génie logiciel orienté objet " IFT-2004 Modèles et langages des bases de données " GLO-2003

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

Page 17: GEL 1001 Design I (méthodologie)wcours.gel.ulaval.ca/2018/h/GEL1001/default..." GLO-2004 Génie logiciel orienté objet " IFT-2004 Modèles et langages des bases de données " GLO-2003

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

Page 18: GEL 1001 Design I (méthodologie)wcours.gel.ulaval.ca/2018/h/GEL1001/default..." GLO-2004 Génie logiciel orienté objet " IFT-2004 Modèles et langages des bases de données " GLO-2003

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

Page 19: GEL 1001 Design I (méthodologie)wcours.gel.ulaval.ca/2018/h/GEL1001/default..." GLO-2004 Génie logiciel orienté objet " IFT-2004 Modèles et langages des bases de données " GLO-2003

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)

Page 20: GEL 1001 Design I (méthodologie)wcours.gel.ulaval.ca/2018/h/GEL1001/default..." GLO-2004 Génie logiciel orienté objet " IFT-2004 Modèles et langages des bases de données " GLO-2003

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.

Page 21: GEL 1001 Design I (méthodologie)wcours.gel.ulaval.ca/2018/h/GEL1001/default..." GLO-2004 Génie logiciel orienté objet " IFT-2004 Modèles et langages des bases de données " GLO-2003

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

Page 22: GEL 1001 Design I (méthodologie)wcours.gel.ulaval.ca/2018/h/GEL1001/default..." GLO-2004 Génie logiciel orienté objet " IFT-2004 Modèles et langages des bases de données " GLO-2003

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

Page 23: GEL 1001 Design I (méthodologie)wcours.gel.ulaval.ca/2018/h/GEL1001/default..." GLO-2004 Génie logiciel orienté objet " IFT-2004 Modèles et langages des bases de données " GLO-2003

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

Page 24: GEL 1001 Design I (méthodologie)wcours.gel.ulaval.ca/2018/h/GEL1001/default..." GLO-2004 Génie logiciel orienté objet " IFT-2004 Modèles et langages des bases de données " GLO-2003

Chiffrement symétrique

Hiver 2018 GEL−1001 Design I (méthodologie) 24

Page 25: GEL 1001 Design I (méthodologie)wcours.gel.ulaval.ca/2018/h/GEL1001/default..." GLO-2004 Génie logiciel orienté objet " IFT-2004 Modèles et langages des bases de données " GLO-2003

Chiffrement asymétrique

Hiver 2018 GEL−1001 Design I (méthodologie) 25

Page 26: GEL 1001 Design I (méthodologie)wcours.gel.ulaval.ca/2018/h/GEL1001/default..." GLO-2004 Génie logiciel orienté objet " IFT-2004 Modèles et langages des bases de données " GLO-2003

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

Page 27: GEL 1001 Design I (méthodologie)wcours.gel.ulaval.ca/2018/h/GEL1001/default..." GLO-2004 Génie logiciel orienté objet " IFT-2004 Modèles et langages des bases de données " GLO-2003

Confidentialité

Hiver 2018 GEL−1001 Design I (méthodologie) 27

Page 28: GEL 1001 Design I (méthodologie)wcours.gel.ulaval.ca/2018/h/GEL1001/default..." GLO-2004 Génie logiciel orienté objet " IFT-2004 Modèles et langages des bases de données " GLO-2003

Authentification par chiffrement

Hiver 2018 GEL−1001 Design I (méthodologie) 28

Page 29: GEL 1001 Design I (méthodologie)wcours.gel.ulaval.ca/2018/h/GEL1001/default..." GLO-2004 Génie logiciel orienté objet " IFT-2004 Modèles et langages des bases de données " GLO-2003

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

Page 30: GEL 1001 Design I (méthodologie)wcours.gel.ulaval.ca/2018/h/GEL1001/default..." GLO-2004 Génie logiciel orienté objet " IFT-2004 Modèles et langages des bases de données " GLO-2003

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

Page 31: GEL 1001 Design I (méthodologie)wcours.gel.ulaval.ca/2018/h/GEL1001/default..." GLO-2004 Génie logiciel orienté objet " IFT-2004 Modèles et langages des bases de données " GLO-2003

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

Page 32: GEL 1001 Design I (méthodologie)wcours.gel.ulaval.ca/2018/h/GEL1001/default..." GLO-2004 Génie logiciel orienté objet " IFT-2004 Modèles et langages des bases de données " GLO-2003

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

Page 33: GEL 1001 Design I (méthodologie)wcours.gel.ulaval.ca/2018/h/GEL1001/default..." GLO-2004 Génie logiciel orienté objet " IFT-2004 Modèles et langages des bases de données " GLO-2003

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

Page 34: GEL 1001 Design I (méthodologie)wcours.gel.ulaval.ca/2018/h/GEL1001/default..." GLO-2004 Génie logiciel orienté objet " IFT-2004 Modèles et langages des bases de données " GLO-2003

Des questions ?

Hiver 2018 34GEL−1001 Design I (méthodologie)