La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Ift 2251 Introduction au Génie Logiciel

Présentations similaires


Présentation au sujet: "Ift 2251 Introduction au Génie Logiciel"— Transcription de la présentation:

1 Ift 2251 Introduction au Génie Logiciel
Partie 4 Conception Ref. Pressman Ch. 13, 14 et 16 Julie Vachon, DIRO, Université de Montréal, 2001

2 4.2 Conception architecturale

3 Conception architecturale
Besoins du clients “quatre chambres, trois salles de bain, de nombreuses fenêtres…" Conception architecturale

4 4.2.1 Architectures logicielles

5 Architectures logicielles
La description structurée décrivant comment le système est organisé s’appelle l’architecture logicielle. Elle décrit: (1) la décomposition du système en composants (ou modules) qui exécutent une fonctionnalité du système. (2) la description des relations entre ces modules: description des connecteurs qui expriment la communication, la coordination et la coopération entre les composants. (3) un ensemble de contraintes qui définissent comment les composants sont intégrés pour composer le système. (4) un modèle sémantique qui permet de déduire et de comprendre les propriétés générales du système à partir des propriétés individuelles de ses composants.

6 Architectures logicielles Types (ou styles) d’architectures
Quelques types d’architectures: - Architectures de type « centre de donnés ». - Architectures de type « flot de données ». - Architectures de type « appel-retour ». - Architectures orientées objets - Architectures par couches.

7 Architectures logicielles Architecture de type «centre de données»
Architecture où des composants indépendants peuvent modifier, ajouter et enlever des données stockées dans un centre de données. Centre de données - Peut être passif (dépôt de données) Peut être actif (tableau noir) Le centre de données constitue alors une structure logicielle où une mémoire de travail appelée «tableau noir», accessible à plusieurs composants-clients, qui sert à communiquer des résultats intermédiaires et à coordonner ces transferts d’informations entre clients. Avantage: - Des composants peuvent être ajoutés et modifiés sans effet sur les autres composants-clients.

8 Architectures logicielles Architecture de type «flot de données»
Architecture adaptée pour les systèmes concernés par la transformation des données via une série de composants. - Architecture composée de «filtres» connectés par des «canaux de transfert». Filtre = composant de transformation indépendant. Attend des données d`entrée et produit des données de sortie dans des formats (types) prédéfinis. Ajout et retrait de filtres: vérifier l’adéquation des types de données en entrée et en sortie! Si le flot de transformation de données est linéaire, on a une architecture flot de données en « lot séquentiel ».

9 Architectures logicielles Architecture de type «appel-retour»
Architecture simple et classique décomposant le système en une hiérarchie de contrôle. Deux sous-types architecturaux: Architecture «programme principal/sous-programme»: Un module principal invoque des sous-modules pour réaliser les différentes fonctions… Architecture « appel de procédure à distance »: Les composants sont distribuées sur des ordinateurs reliés par un réseau. Avantage: Architecture relativement facile à modifier et à redimensionner.

10 Architectures logicielles Architecture orientée objets
Objet a L’architecture décrit un système où chaque composant encapsule des données et des opérations pour manipuler ces données. La communication et la coordination entre composants sont réalisées par envoi de messages. -m1 -m2 Objet b -m1 -m2 -m3 Objet c c.m1 -m1

11 Architectures logicielles Architecture par couches
Architecture composée de couches accomplissant chacune un certains type d’opérations. - Les composants des couches internes sont généralement responsables des opérations d’interface avec le système d’exploitation. - Les composants des couches plus externes sont généralement responsables des opérations d’interface avec l’usager. - Les composants des couches intermédiaires implémentent les services et fonctions du système. Architecture intéressante pour les systèmes devant interagir de façon particulière avec le système d’exploitation, que ce soit pour gérer les communications, insérer un protocole d’encryption, etc.

12 Architectures logicielles Choix d’une architecture
Ces types d’architecture constituent un petit sous-ensemble de tous les types architecturaux possibles. Une fois que les caractéristiques et les contraintes du système ont été identifiées, on choisit ou on élabore un type d’architecture (pouvant combiner différents types) qui permet de satisfaire les exigences définies et qui répond du mieux possible aux critères de qualité suivants…

13 Architectures logicielles Propriétés
Une bonne architecture logicielle devrait avoir les propriétés suivantes: Peut évoluer et s’adapter facilement aux changements. Favorise le développement de familles de programmes. Maximise la cohésion. Minimise le couplage.

14 4.2.2 Une méthode de conception: la conception structurée

15 Méthode de conception structurée
Objectif de la méthode: Projeter la spécification d’un système décrit à l’aide de diagrammes de flots de données sur une architecture partitionnée de type «appel-retour». Origines: Article de Stevens, Myers, Constantine (1974) Livre de Yourdon (1978)

16 Méthode de conception structurée Dérivation de l’architecture logicielle
Comment dériver une structure de programme partititionnée à partir d’une spécification en DFD? Pourquoi une architecture partitionnée… Procédure de transformation proposée par la méthode de conception structurée pour dériver une conception architecturale Architecture logicielle de type “appel-retour” DFD

17 Méthode de conception structurée Partitionnement
Le type d’architecture « appel-retour » définit une hiérarchie partitionnée horizontalement et verticalement.

18 Méthode de conception structurée Partionnement horizontal
Module de contrôle Pour chaque fonction principale du système, on définit une branche séparée dans la hiérarchie de modules. On utilise un module de contrôle pour coordonner la communication entre les fonctions. fonction 1 fonction 3 fonction 2

19 Méthode de conception structurée Partionnement vertical (factorisation)
Module de contrôle Modules “travailleurs” Construire une architecture qui partage en strates les activités de contrôle et celles d’exécution du travail. Les modules de contrôle devraient se trouver au sommet de la structure.

20 Méthode de conception structurée Avantages du partitionnement
Avantages d’une architecture partitionnée: Plus facile à maintenir et à étendre (pourquoi?) Limite les effets de bord (pourquoi?) Facilite le test du logiciel (pourquoi?)

21 Méthode de conception structurée Méthode de transformation
La transformation d’un modèle DFD en une architecture logicielle se compose des étapes principales suivantes: - On identifie le type de flot On identifie le centre et les limites du flot. Le DFD est projeté sur une structure de programme (i.e. une architecture de type «appel-retour»)  Cette structure définit une hiérarchie de contrôle. Factorisation – 1er niveau. On développe et on raffine la structure. Factorisation – 2e niveau. On raffine l’architecture obtenue en se basant sur différentes heuristiques et mesures de qualité.

22 Méthode de conception structurée Méthode de transformation
L’identification du type de flot est l’étape qui guide tout le reste du processus de transformation. Il y a deux types de flots: Les flots transformationnels Les flots transactionnels Dans un système les deux types de flots peuvent être présents.

23 Méthode de conception structurée Flot transformationnel
Centre de transformation Flots efférents Flots afférents Caractéristiques: Les données externes entrent dans le système par des chemins (flots afférents) qui les transforment en un format interne facilitant leur traitement. Au coeur du système, les données entrantes sont acheminées vers un centre de transformation constitué d’un ou plusieurs processus Après traitement, les données résultantes sont acheminées vers l’extérieur du système sur des chemins (flots efférents) qui les transforment dans un format de sortie adéquat.

24 Méthode de conception structurée Flot transactionnel
Centre de transaction Flot d’actions Caractéristiques: Les données externes entrent dans le système sur des chemins qui les transforment et les amènent vers un centre de transaction (centre de tri). La transaction est évaluée et, selon sa valeur, les données sont acheminées vers un chemin ou un autre (flots d’actions). Les traitements conséquents sont effectués sur les flots d’actions.

25 Méthode de conception structurée Étapes de conception
Revoir le modèle du système (les DFDs). Raffiner les DFDs si nécessaire. Déterminer le type de flot du DFD. Si le flot est transformationnel Si le flot est transactionnel Identifier le centre de transformation en repérant les limites des flots afférents et efférents. Projeter le DFD sur une structure de «transformation» Effectuer une factorisation de deuxième niveau. Raffiner l’architecture générale… Identifier le centre de transaction et le type de flots caractérisant chacun des flots d’action. Projeter le DFD sur une structure de «transaction» Factoriser et raffiner la structure de transaction et celle des flots d’action Raffiner l’architecture générale…

26 Méthode de conception structurée appliquée à un flot transformationnel
Identifier le centre de transformation en repérant les limites des flots afférents et efférents. Projeter le DFD sur une structure de «transformation» Effectuer une factorisation de deuxième niveau. Raffiner l’architecture… g h b f a e d c i j Modèle DFD Projection sur une structure de transformation x1 x2 x3 x4 b c d e f g i a h j

27 Méthode de conception structurée appliquée à un flot transactionnel
Identifier le centre de transaction et le type de flots caractérisant chacun des flots d’action. Projeter le DFD sur une structure de «transaction» Factoriser et raffiner la structure de transaction et celle des flots d’action Raffiner l’architecture… e f a d b t i g h Modèle DFD k l j m Projection sur une structure de transaction n x1 b t a x3 x2 x4 d e f g h x3.1 l m n i j k

28 Méthode de conception structurée Étapes de conception pour un flot transformationnel Exemple- Étapes 1 & 2 Écran d’affichage du panneau Panneau de contrôle Logiciel SafeHome (système d’alarme) DFD niveau 0 Alarme Senseurs Ligne téléphonique Ré-évaluation du travail réalisé pendant la phase d’analyse: Réviser le modèle du système (DFD de contexte et de niveau 1) Raffiner les DFDs si nécessaire: Donner les DFDs de niveau 2 et 3 (si cela n’a pas été fait durant la phase d’analyse) de façon à atteindre un niveau de détail où chaque processus du DFD présente un degré de cohésion appréciable i.e. chaque processus réalise une fonction simple et distincte qui peut être implémentée par un module unique.

29 Méthode de conception structurée Exemple (transformationnel) - Étapes 1 & 2
DFD niveau 1 Pour l’exemple, contentons-nous de ne raffiner qu’une partie de ce DFD soit le « contrôle des capteurs »…

30 Méthode de conception structurée Exemple (transformationnel) – Étapes 1 & 2
Information à propos du capteur Formatage pour l’affichage Écran d’affichage du panneau Information de configuration Id du capteur, type, localisation Produire signal d’alarme Donnée de configuration Alarme Évaluation en regard des paramètres initiaux Donnée d’alarme Type d’alarme Sonder le capteur Id du capteur type Numéro de téléphone Ligne téléphonique Composer le numéro de téléphone Tonalités du numéro de téléphone Capteur État du capteur DFD niveau 2

31 Méthode de conception structurée Exemple (transformationnel) – Étapes 1 & 2
Écran d’affichage du panneau Id du capteur, type, localisation formaté Générer l’affichage DFD niveau 3 Information à propos du capteur Formatage pour l’affichage Id du capteur, type, localisation Produire signal d’alarme Code d’alarme délais, id du capteur, etc. Alarme Type d’alarme Établir les conditions d’alarme Donnée d’alarme Tonalités du numéro de téléphone Sonder le capteur Obtenir les informations correspondantes Générer les impulsions Liste de no de téléphone Sélectionner le numéro de téléphone Id du capteur type Tonalité prête Ligne téléphonique État du capteur Information de configuration Numéro de téléphone Capteur Connexion au réseau tél.

32 3) Déterminer le type de flot.
Méthode de conception structurée Exemple (transformationnel) – Étapes 3 & 4 3) Déterminer le type de flot. On a généralement un flot transformationnel à moins d’évidences d’une transaction… 4) Identifier le centre de transformation, les flots efférents et afférents. La délimitation des flots efférents et afférents peut varier selon l’interprétation. Une variation à une « bulle » près est fort possible.

33 Méthode de conception structurée Exemple (transformationnel) – Étapes 3 & 4
Information à propos du capteur Id du capteur, type, localisation formaté Générer l’affichage Formatage pour l’affichage Centre de transformation Écran d’affichage du panneau Id du capteur, type, localisation Produire signal d’alarme Code d’alarme délais, id du capteur, etc. Alarme Évaluer les conditions de réaction Type d’alarme Donnée d’alarme Tonalités du numéro de téléphone Sonder le capteur Obtenir les informations correspondantes Générer les impulsions Liste de no de téléphone Sélectionner le numéro de téléphone Id du capteur type Tonalité prête Ligne téléphonique État du capteur Information de configuration Numéro de téléphone Capteur Connexion au réseau tél.

34 Méthode de conception structurée Exemple (transformationnel) – Étape 5
5) Projeter le DFD sur une structure de transformation (factorisation – 1er niveau). Définir une architecture appel-retour où un module de contrôle principal coordonne les fonctions principales d`entrée, de traitement et de sortie du système modélisé par le DFD. Structure de transformation Contrôleur général Contrôleur des flots afférents Contrôleur de transformation Contrôleur des flots efférents

35 Méthode de conception structurée Exemple (transformationnel) – Étape 5
Factorisation – 1er niveau Contrôleur général des capteurs Contrôleur des entrées des capteurs Contrôleur de l’état et des réactions du système Contrôleur des sorties (alarme, tel)

36 Méthode de conception structurée Exemple (transformationnel) – Étape 6
6) On effectue une factorisation de 2e niveau. Cette étape consiste à définir les structures correspondant aux flots afférents et efférents et au centre de transformation… - Pour chaque flot afférent aboutissant au centre de transformation, on part de la frontière du centre de transformation et on définit une branche (dans la structure) par flot en remontant les flots. - Pour chaque flot efférent, sortant du centre de transformation, on part de la frontière du centre et on définit une branche (dans la structure) par flot en descendant les flots. La structure est dite « factorisée » si le module du haut effectue uniquement les tâches de contrôle et ceux sous sa dépendance effectuent le travail.

37 Méthode de conception structurée Exemple (transformationnel) – Étape 6
Factorisation pour les flots efférents b a Contrôleur exécutif des capteurs c e Contrôleur des entrées des capteurs Contrôleur de l’état et des réactions du système Contrôleur des sorties (alarme, tel) d a Formatage pour l’affichage Produire signal d’alarme Connexion au réseau téléphonique d b c Générer l’affichage Générer les impulsions e

38 Méthode de conception structurée Exemple (transformationnel) – Étape 6
Structure complète factorisée… 1re itération de l’architecture pour la partie concernant le contrôle des capteurs Contrôleur exécutif des capteurs Contrôleur de l’état et des réactions du système Contrôleur des sorties (alarme, tel) Contrôleur des entrées des capteurs Obtenir les informations sur capteurs Sélection numéro de téléphone Évaluer les conditions de réaction Formatage pour l’affichage Produire signal d’alarme Connexion au réseau téléphonique Sonder les capteurs Générer l’affichage Générer les impulsions

39 Méthode de conception structurée Exemple (transformationnel) – Étape 7
7) On raffine la 1re itération de l’architecture pour obtenir une structure de qualité (minimiser le couplage, maximiser la cohésion, vérifier la faciliter d’implémentation, etc.) Il faut utiliser son jugement. Dans le cas de l’architecture du contrôle des capteurs, on peut: Éliminer le contrôleur pour la gestion des entrées. Il est inutile puisqu’on a qu’un seul flot d`entrée. On peut réduire le couplage en englobant dans un seul module les processus du centre de traitement. Le module « Évaluer les conditions de réaction » se chargera également de sélectionner le bon numéro de téléphone. On peut également englober dans un même module les processus de formatage et de génération de l’affichage.

40 Méthode de conception structurée Exemple (transformationnel) – Étape 7
Architecture raffinée pour la partie concernant le contrôle des capteurs Contrôleur exécutif des capteurs Obtenir les informations à propos des capteurs Évaluer les conditions de réaction du système Contrôleur des sorties (alarme, tel) Sonder les capteurs Produire l’affichage Produire signal d’alarme Connexion au réseau téléphonique Générer les impulsions

41 Méthode de conception structurée Étapes de conception pour un flot transactionnel Exemple- Étapes 1,2 & 3 Les étapes 1,2 & 3 sont les mêmes que pour le cas transformationnel. Cette fois cependant, on a identifié un flot transactionnel. Pour illustrer la conception d’un flot transactionnel, on considère le DFD détaillé (niveau 2) représentant la partie du système d’alarme responsable de gérer les interactions avec l’utilisateur…

42 Commande Méthode de conception structurée Exemple (transactionnel) - Étapes 1,2 & 3 Lire commandes de l’utilisateur Données de config. brutes Bâtir fichier de configuration Lire données du système Configurer Données de config. formatées Type de la commande Invoquer traitement de la commande Information de configuration Arrêter/démarrer Activer/désactiver le système Message A/D Mot de passe Mot de passe Afficher message et état Lire mot de passe Quatre chiffres Mot de passe valide Info d’affichage Comparer mot de passe avec fichier Produire message d’erreur Mot de passe invalide Message « essayez à nouveau »

43 Méthode de conception structurée Exemple (transactionnel) - Étape 4
4) On identifie le centre de transaction et le type de flots d’actions. Le centre de transaction est facilement identifiable: il est à l’origine d’un ensemble de flots d’actions qui émergent de lui. On identifie les limites entre les flots afférents, le centre de transaction et les flots d’action. Chaque flot d’action doit être à son tour traité selon son type (transformationnel ou transactionnel): pour chacun on identifie les limites entre les flots (afférents/transformation/efférents ou afférents/transaction/actions)

44 Méthode de conception structurée Exemple (transactionnel) - Étape 4
Commande Lire commandes de l’utilisateur Données de config. brutes Bâtir fichier de configuration Lire données du système Configurer Invoquer traitement de la commande Données de config. formatées Type de la commande Information de configuration Arrêter/démarrer Mot de passe Activer/désactiver le système Message A/D Mot de passe Afficher message et état Lire mot de passe Quatre chiffres Mot de passe valide Info d’affichage Comparer mot de passe avec fichier Produire message d’erreur Mot de passe invalide Message « essayez à nouveau »

45 Méthode de conception structurée Exemple (transactionnel) - Étape 5
5) Projeter le DFD sur une structure de transaction. (factorisation – 1er niveau). Définir une architecture appel-retour où un module de contrôle principal coordonne les fonctions principales d’entrée et le distributeur de transactions (qui lui-même coordonne les flots d’action) Structure de transaction Contrôleur général Contrôleur des flots afférents Distributeur de transactions Flot d’action1 Flot d’action 2 Flot d’action n

46 Méthode de conception structurée Exemple (transactionnel) - Étape 5
Factorisation – 1er niveau c Contrôleur général des interactions avec l’utilisateur b a Lire commande de l’utilisateur Invoquer traitement de la commande Contrôleur configuration du système Activer/ Désactiver le système Contrôleur traitement mot de passe c b a

47 Méthode de conception structurée Exemple (transactionnel) - Étape 6
6) Factoriser et raffiner la structure de transaction et la structure de chaque flot d’action. Pour les flots efférents: en partant du centre de transaction, on définit une branche par flot, en remontant le flot. Pour les flots d’action: pour chaque flot d’action, il faut réappliquer l’algorithme en fonction du type de flot.

48 Méthode de conception structurée Exemple (transactionnel) - Étape 6
Contrôleur général des interactions avec l’utilisateur Structure complète factorisée. 1re itération de l’architecture pour la partie concernant l’interaction avec l’utilisateur Lire commande de l’utilisateur Invoquer traitement de la commande Contrôleur configuration du système Activer/ Désactiver le système Contrôleur traitement mot de passe lire données Du système Construire fichier de configuration Lire mot de passe Comparer mot de passe avec fichier Contrôleur Traitement de sortie mot de passe Afficher messages et état Production message D’erreur

49 Méthode de conception structurée Exemple (transactionnel) - Étape 7
7) Raffiner l’architecture de 1re itération. Comme pour le cas transformationnel…


Télécharger ppt "Ift 2251 Introduction au Génie Logiciel"

Présentations similaires


Annonces Google