0% ont trouvé ce document utile (0 vote)
44 vues41 pages

Conception Logicielle2023

Transféré par

788vz5z7zh
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)
44 vues41 pages

Conception Logicielle2023

Transféré par

788vz5z7zh
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

GEL−1001 Design I

(méthodologie)
Technique 1 –
Quelques éléments
de conception logicielle
Hiver 2023

Département de génie électrique


et de génie informatique
Plan
< Conception logicielle – architecture
< Décomposition de système
< Aspects de sécurité
< Base de données

Hiver 2023 2
Conception logicielle
< Bien structurer notre code afin :
a D’offrir
les fonctionnalités aux usagers
a D’assurer la qualité du logiciel

Hiver 2023 3
Conception logicielle
< Repose sur un bon choix d’architecture
< Architecture = composants + connecteurs

Hiver 2023 4
Vue globale du système

Environnement

Intrants Extrants
Capteurs Effecteurs

Système

Sense-Compute-Control
Hiver 2023 5
Vue globale du système

Environnement

Intrants Extrants

Capteurs Effecteurs

Système

Hiver 2023 6
Un exemple

Environnement

Intrants Extrants

Modules de traitement:
Fusion, monitoring, détection aux angles morts, détection de
collision, freinage d’urgence, conduite, changement de voie…

Hiver 2023 7
Quoi faire avec...

Environnement

Intrants Extrants

Capteurs Effecteurs

Système
Usager(s) ? Données ?

Hiver 2023 8
Presentation-Logic-Data
< Modèle à 3 couches
< Utile pour les systèmes d’information
• Saisir les inputs des usagers
Presentation (UI) • Présenter les informations
• Capter les événements de l’interface

• Gérer les commandes de l’usager


Application Logic • Analyser les données (ex. filtrer, classifier…)
• Exécuter les fonctions principales du système
• Déterminer quoi présenter à l’usager
Data
• Assurer la persistance des données
• Faciliter la recherche et la manipulation

Hiver 2023 9
On fusionne le tout

Environnement

Intrants Extrants
Capteurs Effecteurs

Couche de présentation (UI)

Couche logique de l’application

Hiver 2023 10
Oui... mais combien ça coûte?
Presentation (UI)
< Complexité vs. coût Application Logic
a Très simple Data
= Conversion oC en oF
a Relativement simple
= Alarme, formulaire de saisie de données, BD simple
a Plus complexe
= Planification de trajectoire, affichage 2D/3D, crypto,
authentification, BD de la structure d’un pont
a Encore plus complexe
= Apprentissageautomatique, réalité augmentée,
reconnaissance de la parole, biométrie, intégration de
systèmes

Hiver 2023 11
D’accord... sauf que...

Environnement

Intrants Extrants

Capteurs Effecteurs

Couche de présentation (UI)

Couche logique de l’application

Hiver 2023 12
Modèle client-serveur
< Principal modèle pour les systèmes
distribués

Requête
Serveur
+service1()
Client +service2()
Réponse …
+serviceN()

Hiver 2023 13
On fusionne encore le tout...

Environnement

Intrants Extrants
Capteurs Effecteurs

Couche de présentation (UI)

Couche logique de l’application

Hiver 2023 14
Différents clients
< Client léger et client lourd (thin vs. fat)

Client léger (thin) Serveur


UI Logic Data

Client lourd (fat) Serveur

UI Logic Logic Data

Hiver 2023 15
Client léger
< Modèle client-serveur sur le Web
a Affichage avec un navigateur

Client Requête (HTTP)


HTML J2EE
JavaScript Serveur PHP
.NET
Ajax Réponse (HTML) Web Python
AngularJS
React Ruby
… …
Spring, Flask,
Django, Rails, Rest…

Hiver 2023 16
Client lourd
< Plus de traitements du côté client

Hiver 2023 17
Que désigne les flèches?
< Ce sont des connecteurs
Serveur
Client +service1()
+service2()

+serviceN()

a Format des échanges


= HTML, XML, Json…
a Protocoles d’échange
= Ex. Http, ftp…
a Niveau physique
= Câble ou ondes radio

Hiver 2023 18
Échanges client-serveur
< Sockets
a Protocole de bas niveau pour l’échange d’information.
a Similaire à l’écriture à distance dans un fichier.
< Remote Procedure Calls (RPC)
a Exécution de fonctions à distance.
a Génération automatique des fonctions client et serveur.
< Http
a Transfert de fichiers hypertextes (ressources).
a Principales commandes: GET, POST, HEAD, PUT.
< Rest
a Extension de Http pour les services Web.
a Axé sur l’exécution de services à distance.

Hiver 2023 19
HyperText Markup Language (HTML)

< Langage avec marqueurs


< Structure un document avec des balises
donnant des indications de présentation
<!DOCTYPE html>
<html>
<head>
<title>Hello HTML</title>
</head>
<body>
<h1>The Title</h1>
<p>Hello, World!</p>
</body>
</html>
Hiver 2023 20
XML
En-tête standard
<?xml version="1.0" ?>
<customer_list>
<customer number="050"> Balise racine
<name>Stephen Harper</name>
<customer_since year="2006"/>
</customer>
<customer number="041"> Balise avec
<name>George W. Bush</name> élément texte
<customer_since year="2001"/>
</customer>
Balise sans élément
</customer_list> avec attribut
Fermeture de la
balise racine
Hiver 2023 21
JSON
< Devient le standard pour l’échange d’infos
< Plus simple que XML à décortiquer
< Ressemble à un dictionnaire Python

Hiver 2023 22
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 2023 23
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 2023 24
Le système doit être sécuritaire

Authentification
Environnement

Couche de présentation (UI)


Contrôle
d’accès
Couche logique de l’application
Encryption

Hiver 2023 25
Sécurité
<Authentification
a Vérifier l’identité d’une personne pour autoriser
l’accès à des ressources.
<Contrôle d’accès
a Limite l’utilisation de ressources en fonction de
l’usager.
<Chiffrement («encryption»)
a Utilisation de clés pour chiffrer et déchiffrer les
informations transmises.

Hiver 2023 26
Authentification
< Valider l’identité d’un usager à partir
d’informations personnelles.
a Disponible dans plusieurs environnements
a Utilitaires disponibles (ex. LDAP, ASP.NET)
a Important – Chiffrement des mots de passe

Hiver 2023 27
Contrôle d’accès
< Habituellement basé sur des rôles
a Role-based access control
a Le rôle détermine les permissions.
< Nécessite l’authentification des usagers

Hiver 2023 28
Chiffrement (« encryption »)
< Chiffrement symétrique
a Une même clé pour chiffrer et déchiffrer

< Chiffrement asymétrique


a Paire composée d'une clé publique et
d'une clé privée
a Données chiffrées avec une clé doivent être
déchiffrées avec l’autre

Hiver 2023 29
Chiffrement symétrique

Hiver 2023 30
Chiffrement asymétrique

Hiver 2023 31
Génération des clés
< Chiffrement symétrique
a 128 bits, donc 2128 façons de chiffrer
a Certains disponibles pour 256 bits

< Chiffrement asymétrique


a Algorithme RSA : basé sur la factorisation
en nombres premiers
a 1024 bits ou plus car la clé doit respecter
une structure particulière
Hiver 2023 32
Confidentialité

Hiver 2023 33
Authentification par chiffrement

Hiver 2023 34
Base de données
< Outil pour assurer la persistance des données
a Stockage et utilisation
< Les informations sont structurées.
a Nombre, symbole, date, chaîne de caractères.
< Système de gestion de base de données (SGBD)
a Un serveur qui manipule et dirige l’accès au contenu
< 4 opérateurs CRUD de manipulation de données
a Create (création)
a Read (lecture)
a Update (mise à jour)
a Delete (retrait)

Hiver 2023 35
Base de données relationnelles

< Enregistrement
a Tuple de données
a Plusieurs champs
< Table
a Ensemble d’enregistrements
< Clé primaire
a Désigne un enregistrement
a Différent pour chaque enregistrement
< Clé étrangère
a Référence à une donnée connexe

Hiver 2023 36
Base de données
relationnelles
< Langage de requête SQL
a SQL – Structured query language
a Standard de l’industrie
Informations recherchées
< Exemple

SELECT Nom, Prénom, SalaireFROM Table sur laquelle


on effectue la recherche
PERSONNELWHERE Salaire * 12 > 50000 order by
Salaire DESC;
Condition

Tri sur les données

Hiver 2023 37
Espace de stockage requis?

< Pour chaque table:


a # d’enregistrements
a Pour chacun des champs:
= Estimer l’espace requis…

< Avec quelques additions et


multiplications, vous y arriverez

Hiver 2023 38
Cours pertinents
< Cours liés à la conception logicielle
a GLO-2004 Génie logiciel orienté objet
a IFT-2004 Modèles et langages des bases de données
a GLO-2003 Introduction aux processus du génie logiciel
a GLO-2005 Modèles et langages des bases de données
a GLO-3004 Spécification formelle et vérification de logiciels
a GLO-3102 Développement d’applications Web
a GLO-3112 Développement avancé d’applications Web
a GLO-4000 Interface personne-machine
a GLO-4002 Qualité et métriques du logiciel
a GLO-3013 Projet de conception multidisciplinaire (= Design III)
a GLO-4003 Architecture logicielle
a GLO-4008 Applications infonuagiques natives et DevOps
a GLO-4035 Base de données avancées
a GLO-3002 Projet en génie logiciel (= Design IV)

Hiver 2023 39
Cours pertinents
< Cours liés aux télécommunications et à la sécurité
a GLO-2000 Réseaux pour ingénieurs
a GEL-3006 Systèmes de télécommunications
a GIF-3001 Réseaux de transmission de données
a GEL-4200 Communications numériques
a IFT-2102 Introduction à la sécurité informatique
a IFT-3002 Informatique d’enquête
a GLO-3100 Cryptographie et sécurité informatique
a IFT-3201 Cyberattaques et tests d’intrusions dans les
systèmes d’information
a GLO-3202 Sécurité des applications Web
a IFT-7016 Sécurité basée sur les langages: confidentialité et
intégrité

Hiver 2023 40
Des questions ?

Hiver 2023 41

Vous aimerez peut-être aussi