Ift 2251 Introduction au Génie Logiciel

Slides:



Advertisements
Présentations similaires
Tests et Validation du logiciel
Advertisements

Machines séquentielles
Eléments de Génie Logiciel
Introduction: Concepts de la programmation
Spécification et qualité du logiciel
Introduction à l’Algorithmique
Sensibilisation à l’Algorithmique et structure de données
Introduction aux environnements de developpement.
GEF 243B Programmation informatique appliquée
Cours n°2M2. IST-IE (S. Sidhom) UE 303 Promo. M2 IST-IE 2005/06 Conception dun système d'information multimédia Architecture trois-tiers : PHP/MySQL &
Le jeu d ’instructions Introduction Un jeu d ’instruction classique
Les sous-programmes Chapitre n° 5: Objectifs : Activité:
Qu’est-ce qu’un ordinateur ?
1 ARCHITECTURE DACCÈS la méthode générale modèle de données définitions module daccès / modules métiers construction des modèles les modules daccès, les.
Points importants de la semaine Les commentaires. Les variables. Les instructions conditionnelles. Les instructions itératives (les boucles).
Sous-programmes Concepts généraux Passage de paramètres Fonctions
44 Contrôle du déroulement du programme. 4-2 Objectifs A la fin de ce cours, vous serez capables de : Utiliser les constructions de prise de décision.
Analyse lexicale Généralités Expressions rationnelles Automates finis
Initiation à la conception de systèmes d'information
F Copyright © Oracle Corporation, Tous droits réservés. Créer des programmes avec Procedure Builder.
Test et débogage Tests unitaires. Gestion d’erreurs. Notion d’état, de pré-condition et de post-condition. Assertion. Traces de programme. Débogueur et.
Programme de baccalauréat en informatique Programmation Orientée Objets IFT Thierry EUDE Module 7 : Classes et fonctions paramétrables Département.
Introduction à l’algorithmique
Semaine #1 INF130 par Frédérick Henri.
CSI3525: Concepts des Languages de Programmation
I&G- chapitre 11-La logique Logarithmique -Mme Roulaud
© Petko ValtchevUniversité de Montréal Janvier IFT 2251 Génie Logiciel Notions de Base Hiver 2002 Petko Valtchev.
LIFI-Java 2004 Séance du Jeudi 9 sept. Cours 1. La notion de langage Décrire une tâche à effectuer –programme Écrire à un haut niveau –facile pour lutilisateur.
Chapitre 3 Syntaxe et sémantique.
Partie II Sémantique.
Instructions de contrôle
Introduction à Linda Béat Hirsbrunner References Nicholas Carriero, David Gelernter : "Linda in context", Communications of ACM, vol. 32 (n° 4, April 1989)
Initiation aux bases de données et à la programmation événementielle
Synchronisation Classique
Répéter dans un programme avec une Instruction itérative
NORMALISATION DES LANGAGES DE PROGRAMMATION des Automates Programmables Industriels CEI
Structures alternative et répétitive
Animateur : Med HAIJOUBI
LANGAGE PASCAL Introduction rapide….
Paradigmes des Langages de Programmation
LES PILES ET FILES.
Paradigmes des Langages de Programmation
La Boucle Repeat Cours LCS N°1 Présenté par Mr: LALLALI.
O-notation 1. Introduction 2. O-notation 3. Opérations 3.1 Somme 3.2 Produit 4. Règles générales 5. Exemple 6.Analyse des algorithmes récursifs 6.1 Dilatation.
3 Les instructions. Cours 32 Plan du cours 3 Instruction Bloc Portée L’alternative Affectations =, +=, *=… Comment comparer –Comparer des réels –Comparer.
Supports de formation au SQ Unifié
1 Algorithmique et programmation en Itérations (boucles) Types numériques simples (suite)
Algorithmique et programmation en
Algorithmes de tri et de recherche
Créer des packages.
 Syntaxe du langage PHP
Introduction au langage C Fonctions et Procédures
Initiation à la conception des systèmes d'informations
Algorithmique : Introduction
Cours LCS N°4 Présenté par Mr: LALLALI
Ift 2251 Introduction au Génie Logiciel
1 Programmation en C++ Marianne Morris. 2 Intro générale à la programmation On a déjà étudié le langage assembleur Langage de bas niveau Meilleur que.
2.4 Le langage SFC - Un langage de description de systèmes séquentiels
Introduction au langage C : Structures de contrôle 1 ère année Génie Informatique Dr Daouda Traoré Université de Ségou
CSI3525: Concepts des Langages de Programmation Notes # 10: Controle ( Lire Chapitre 7 )
3 Copyright © Oracle Corporation, Tous droits réservés. Créer des fonctions.
1 Cours 6 Définitions de nouvelles procédures Transmissions de données/résultats Déclarations globales/locales Visibilités Interface/implementation.
Scripts et fonctions Instructions de contrôle
02/10/2015Les structures de contrôle1 COURS A2I12 Initiation à l'algorithmique illustrée par le langage C Guillaume BOURLET Département GEII IUT Sénart/Fontainebleau.
Initiation aux bases de données et à la programmation événementielle
Algorithmique Algorithmique  Pascal
Algorithmique Boucles et Itérations
1 Spécifications de Problèmes. 2 Plan Définition Motivation Qualités attendues Types de formalismes Rappels du cours de programmation Spécifications structurées.
Java Réalisé par: Mouna POKORA. PLAN: Définition : Historique: Caractéristiques: un langage orienté objet: un langage interprété : un langage portable:
Introduction au Langage Pascal
Transcription de la présentation:

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

4.3 Conception détaillée

Conception détaillée La conception détaillée s’intéresse à la conception des composants ou modules formant l’architecture d’un système. On devient de moins en moins abstrait, pour s’approcher d’une conception de plus en plus détaillée, prête à être codée dans un langage de programmation. On pourrait décrire la conception détaillée des composants directement dans un langage de programmation. Une alternative propose toutefois de le faire dans une notation intermédiaire (de plus haut niveau qu’un langage de programmation) qui peut facilement être traduite en code source. Ces notations intermédiaires peuvent être graphiques (flowchart, organigramme), tabulaires (tables de décision) textuelles (pseudocode).

Conception détaillée open A ce niveau également, on procède par raffinements successifs open walk to door; reach for knob; open door; repeat until door opens turn knob clockwise; walk through; if knob doesn't turn, then close door. take key out; find correct key; insert in lock; endif pull/push door move out of way; end repeat

Conception détaillée Programmation structurée La programmation structurée propose une méthode de conception détaillée basée sur l’utilisation d’un ensemble limité de construction logiques: la séquence la condition la répétition - Ce minimalisme permet de réduire la complexité des programmes et d’en améliorer la compréhension, le test et la maintenance. - Contribue à la qualité des logiciel… mais n’est pas suffisant.

Conception détaillée Programmation structurée - Organigrammes La programmation structurée s’exprime généralement en utilisant une notation graphique (flowchart, organigramme). Cette notation utilise trois primitive. Action (à un niveau d’abstraction quelconque) Condition (à un niveau d’abstraction quelconque) Flot d’exécution

Conception détaillée Programmation structurée - Organigrammes Trois constructions principales… While-Do v f Repeat-until f v Séquence Condition Répétition

Conception détaillée Programmation structurée - Organigrammes Ajouter une condition Z, a Si vrai, sortir du programme La situation se complique… Il faudrait rajouter des branches de sortie permettant de sortir des boucles imbriquées… Ce qui n’est pas autorisé en prog. structurée La programmation structurée n’est pas toujours adéquate et efficace… x 1 b x 2 c x d 3 f e x 4 g x 5

Conception détaillée Tables de décision Utile lorsqu’un module doit évaluer une combinaison complexe de conditions et sélectionner les actions appropriées qui en découlent. Permet de structurer les actions et les conditions dont elles dépendent sous forme de tableau. Peut éventuellement être utilisé comme donnée d’entrée à un programme pour diriger les pas d’un algorithme.

Conception détaillée Tables de décision - exemple Matrice des combinaisons de conditions Liste des conditions Conditions Règles 1 2 3 4 5 6 7 8 Client a commandé catalogue d’hiver v f Client a commandé catalogue de Noël Client a commandé catalogue spécial Actions Envoyer le catalogue de Noël x Envoyer le catalogue spécial Envoyer les deux catalogues Liste des actions Matrice des actions activées

Conception détaillée Tables de décision Étapes à suivre pour développer une table de décision: Faire la liste de toutes les actions qui peuvent être associées à une procédure donnée. Faire la liste de toutes les conditions à vérifier pendant l’exécution de cette procédure. Faire la liste de toutes les combinaisons de satisfaction de conditions possibles en éliminant celles qui sont impossibles. Définir les règles en indiquant quelles actions sont déclenchées pour chaque combinaison de conditions.

Conception détaillée Notation textuelle - pseudocode Notation de conception qui utilise une syntaxe proche de celle d’un langage de programmation des expressions en langue naturelle Peut éventuellement être compilée pour produire le squelette d`un programme ou une représentation graphique sous forme d’organigramme. - Les notations textuelles de conception sont - souvent une simple transposition d’un langage de programmation déjà existant. Ex. pseudo-pascal, pseudo-ada, etc. - parfois spécialement conçu pour aider à la conception.

Conception détaillée Notation textuelle - pseudocode Caractéristiques d’une notation textuelle de conception Mots clefs avec syntaxe précise pour décrire: - les constructions structurées: séquence, condition, répétition, structure de bloc - la déclaration des types et des données (simples ou complexes) - les caractéristiques des modules: entête et définition d’interface - entrées/sortie 2) Syntaxe libre en langue naturelle pour décrire certains aspects de traitement.

Conception détaillée – notation textuelle Module FonctionsEntiers Export procedure rechercheNpremiers(n : in integer) Implementation procedure rechercheNpremiers(n: in integer) var i : integer; var liste: array(1..n) of integer; begin initialiser liste; i := 2; while i < n do if premier(i) then insérer i dans liste else ne rien faire i := nouveau candidat end while imprimer la liste à l’écran end; End FonctionsEntiers Entête et interface du module Entête de procédure et déclaration de variables Dans cet exemple, les pseudo-instructions susceptibles d’être raffinées: - Initialiser - Insérer - Nouveau candidat

Conception détaillée – notation textuelle Quelques autres éléments de la notation… Repeat instructions Until condition Function t (n: in boolean): integer; Procedure v (n: in boolean; x: out real); Type B : array(1..5,1..8) of boolean;