Conception. Génie Logiciel. Renaud Marlet. LaBRI / INRIA (d'après A.-M. Hugues) màj 17/04/2007

Dimension: px
Commencer à balayer dès la page:

Download "Conception. Génie Logiciel. Renaud Marlet. LaBRI / INRIA http://www.labri.fr/~marlet. (d'après A.-M. Hugues) màj 17/04/2007"

Transcription

1 1 Génie Logiciel (d'après A.-M. Hugues) Conception Renaud Marlet LaBRI / INRIA màj 17/04/2007

2 2 Position dans le cycle de vie Contexte : étant donnée une spécification (ce que doit faire le produit) Phase de conception : architecture du produit (comment il est structuré pour faire ce qu'il doit faire) document de conception globale / détaillée (si cycle de vie en V : + plan d'intégration) Phase suivante : codage

3 Cycle de vie : 3 modèle en V (rappel) (Expression des besoins) (Validation des besoins) Spécifications Qualification Conception globale Conception détaillée Tests d'intégration Tests unitaires Programmation

4 4 Deux niveaux de détail Conception globale (ou préliminaire) choix fondamentaux d'architecture logicielle en lien éventuel avec l'architecture matérielle Conception détaillée description précise de chaque module algorithmes mis en œuvre traitements effectués en cas d'erreur

5 5 Conception détaillée Souvent escamotée petite taille des modules description précise des algorithmes pas nécessaire Pas traitée dans ce cours (on verra des exemples au cas par cas)

6 6 Objectifs de la conception Séparation des problèmes permet d'appréhender un problème complexe Décomposition modulaire du logiciel permet le développement en parallèle (test y compris) facilite la maintenance (corrective ou évolutive) documentation et isolation des comportements localisation des modifications facilite la réutilisation

7 7 Importance de la conception Influence considérable sur la réalisation du logiciel en particulier sur la qualité Erreur dans la conception (mauvaise architecture) édifice chroniquement branlant surcoûts récurrents pour palier les défauts

8 Facteurs de qualité 8 de la conception / architecture (1) Correction aptitude à réaliser les tâches spécifiées Robustesse aptitude à fonctionner dans des conditions anormales Extensibilité aptitude à s'adapter aux changements de spécification Réutilisabilité aptitude à resservir dans de nouvelles applications

9 Facteurs de qualité 9 de la conception / architecture (2) Compatibilité aptitude à être combinée avec d'autres logiciels Efficacité bonne utilisation des ressources Portabilité facilité d'adaptation à différents environnements Vérifiabilité facilité à être vérifiée

10 Facteurs de qualité 10 de la conception / architecture (3) Sécurité... Intégrité : aptitude à protéger ses composants (y compris ses données) contre des modifications non autorisées Confidentialité : aptitude à masquer des informations privées (à des agents non autorisés)...

11 Facteurs de qualité 11 de la conception / architecture (4) Les facteurs de qualité s'excluent souvent mutuellement ex. : efficace vs. portable, sûr,... ex. : robuste vs. vérifiable faire des compromis

12 12 Quelques chiffres Bonne conception facilité de maintenance Coûts de maintenance : 42% modification des besoins utilisateur / solutions proposées 18% modification du format des données 13% correction d'erreurs en urgence 9% correction d'erreurs de routine 6% modification de matériel 5% documentation 4% amélioration de l'efficacité 3% autre

13 13 Facilité de maintenance Coût de maintenance principal = modification de spécification (60%) Pouvoir effectuer les modifications de manière aussi simple que possible Permettre et exploiter la traçabilité des spécifications Un outil méthodologique : la modularité

14 14 Plusieurs notions de module Module logique élément du découpage logique de la solution du problème Module de compilation/chargement bloc de code pouvant être compilé/chargé séparément ex. : fichier C (types, variables, fonctions), classe Java (champs, méthodes), script shell (variables, fonctions) Module du langage de programmation bloc de code nommé pouvant être utilisé (appelé,...) ex. : fonction, classe, fichier d'inclusion C (.h),...

15 15 Identifier des modules Objectif : forte cohésion à l'intérieur du module faible couplage entre les modules 30 nœuds, 66 arêtes 2,2 arêtes par nœud

16 16 Identifier des modules Objectif : forte cohésion à l'intérieur du module faible couplage entre les modules intra-module : 5 à 7 nœuds ; 2 arêtes / nœud inter-module : 5 modules ; 1,2 arêtes / module

17 17 Critères de modularité (comment analyser la modularité) Décomposabilité modulaire Composabilité modulaire Compréhensibilité modulaire Continuité modulaire Protection modulaire Pas toujours facile à satisfaire ( contre-exemples) être pragmatique, faire au mieux

18 Décomposabilité modulaire 18 Définition (critère de modularité) Le module découpe un problème complexe en problèmes plus petits, solubles isolément (décomposition souvent récursive) Exemple modules issus d'une conception descendante Contre-exemple module d'initialisation globale

19 Composabilité modulaire 19 Définition (critère de modularité) Les modules peuvent facilement être utilisés et combinés, éventuellement dans des contextes différents de ceux pour lesquels ils ont été initialement développés Exemple bibliothèque de sous-programmes

20 Compréhension modulaire 20 Définition (critère de modularité) La compréhension d'un module ne nécessite pas la compréhension des autres Contre-exemple dépendances séquentielles : modules conçus de façon à fonctionner dans un certain ordre ( peu recommandable)

21 Continuité modulaire 21 Définition (critère de modularité) Des petites modifications de spécification n'amènent pas à revoir l'ensemble du logiciel (~ extensibilité, évolutivité) Exemple constantes symboliques, références uniformes Contre-exemple utilisation de la représentation physique des données, de leur adresse mémoire,...

22 Protection modulaire 22 Définition (critère de modularité) Si une condition anormale se produit pendant l'exécution du module, elle reste localisée au module (ou à quelques modules voisins) Exemple validation des données d'entrées au plus tôt Contre-exemple exceptions inter-modules (lieu de traitement d'erreur séparé du lieu de production de l'erreur)

23 Principes de modularité 23 (règles à respecter) Unités modulaires du langage Contrôle des tailles Découpage logique Minimisation des interfaces Simplification des interfaces Interfaces explicites Masquage de l'information Pas toujours facile à satisfaire ( contre-exemples) être pragmatique, faire au mieux

24 Unités modulaires du langage 24 Principe (principe de modularité à respecter) module = unité syntaxique du langage bloc de code nommé pouvant être utilisé (appelé,...) modules compilables séparément prise en compte partielle du langage dès la conception Exemple classes Java, C++ ; fichier C Contre-exemple sous-programmes non compilables séparément

25 25 Contrôle des tailles (principe de modularité à respecter) Principe Un module ne doit être ni trop gros (sinon le découper en sous-modules) Exemple ni trop petit (sinon ça ne mérite pas d'être un module) trop gros : un unique module pour une API graphique trop petit : un module pour remettre un tableau à zéro Contre-exemple modules naturellement gros : lecture/écriture d'image, arithmétique entière en précision arbitraire,...

26 Découpage logique 26 Principe (principe de modularité à respecter) Un module doit autant que possible correspondre à un découpage logique du problème Ne pas découper arbitrairement un module sous prétexte qu'il est trop gros Exemple modules qui suivent un modèle conceptuel Contre-exemple cas de contraintes matérielles ou logicielles imposant un découpage en petites unités

27 Minimisation des interfaces 27 Principe (principe de modularité à respecter) Tout module doit communiquer avec aussi peu d'autres modules que possible S'il y a N modules, le nombre d'interconnexions doit être plus proche de N-1 que de N(N-1)/2 Critères protection, continuité

28 Simplification des interfaces 28 Principe (principe de modularité à respecter) Les modules doivent échanger aussi peu de données que possible Exemples faible nombre d'arguments des fonctions/méthodes transmission de pointeurs restreinte Contre-exemple variables globales Critères continuité, protection

29 Interfaces explicites 29 Principe (principe de modularité à respecter) Lorsque deux modules communiquent, cela doit se voir clairement dans le texte de l'un et/ou de l'autre Contre-exemple modules communicant par partage de données (ex. variables globales) sans communication apparente (ex. appel de procédure sans argument) Critères décomposabilité, composabilité

30 Masquage de l'information 30 Principe (principe de modularité à respecter) Toute information d'un module est privée, sauf son interface explicite Exemples en C : n'est visible à l'extérieur d'un fichier que ce qui est déclaré «extern» (variables, fonctions) Critères continuité (le contenu d'un module peut changer sans que les autres modules doivent être modifiés)

31 Et aussi (principes de modularité à respecter) Autres principes : Éviter (minimiser) les dépendances circulaires Éviter une trop grande profondeur d'appel Si possible, définir des modules à comportement prévisible (dépendant uniquement des entrées, sans mémorisation interne, sans état, déterministes)...

32 32 Modularité Comment effectuer un découpage en modules? (étant donnés les éléments d'un dossier d'analyse des besoins)

33 33 Approche fonctionnelle descendante À partir d'un graphe de flot de données, on dérive : une architecture modulaire un graphe d'appel ( ) Principe : concevoir les fonctions de haut niveau affiner jusqu'à obtenir une conception suffisamment détaillée

34 34 Graphe d'appel A y y z z B C D x u v w unité E F appel donnée transmise Attention : l'ordre des appels n'est pas représenté

35 35 Exemple : vérificateur d'orthographe Algorithme à implémenter : extraire tous les mots d'un document en faire un liste triée et sans doublons rechercher chaque mot de la liste dans le dictionnaire si le mot apparaît dans le dictionnaire, rien à faire sinon, demander à l'utilisateur si l'utilisateur décide que le mot est correct, il est entré dans le dictionnaire sinon il est inclus dans la liste résultante des mots mal orthographiés ( N.B. Il existe des méthodes bien plus efficaces!)

36 36 Diagramme de flot de données entrée utilisateur obtenir nom de fichier nom du document documents lire et séparer en mots liste de mots mots triés sans doublons trier, unifier entrée utilisateur dictionnaire rechercher nouveaux mots mots inconnus mots inconnus traiter mots inconnus faire confirmer réponse utilisateur mots mal orthographiés

37 Un exemple de graphe d'appel 37 (très plat) vérifier orthographe nom fichier mots mots triés mots inconnus mots inconnus réponse utilisateur obtenir nom de fichier lire et séparer en mots trier et unifier rechercher dans dico faire confirmer traiter mots inconnus

38 Un exemple de 38 (mauvais) graphe d'appel vérifier orthographe obtenir nom de fichier vérifier fichier lire et séparer en mots vérifier mots trier et unifier vérifier avec dico rechercher dans dico gérer mots inconnus faire confirmer traiter mots inconnus

39 Un autre exemple de 39 (mauvais) graphe d'appel vérifier orthographe trouver mots mal othographiés traiter mots inconnus trouver mots inconnus faire confirmer obtenir mots triés et unifiés rechercher dans dico obtenir mots trier et unifier obtenir nom de fichier lire et séparer en mots

40 Un autre exemple de (meilleur) 40 graphe d'appel mots vérifier orthographe mots mots inconnus mots inconnus obtenir mots nom fichier mots mots rechercher dans dico mots triés mots mots inconnus inconnus traiter mots inconnus réponse utilisateur nouveaux mots obtenir nom de fichier lire et séparer en mots trier et unifier compulser dico faire confirmer mettre à jour dico

41 Approches descendantes, 41 montantes, et réutilisation Approches descendantes (top-down) fournissent un découpage (au moins logique) d'un problème complexe mais ne se préoccupent pas de réutilisabilité (indépendance des parties découpées) Approches montantes (bottom-up) définition de composants simples et de leur composition plus grand souci de réutilisabilité pertinence incertaine : pas de garantie de l'existence d'un véritable besoin de réutilisation le convergence vers une solution du problème

42 42 Approche fonctionnelle descendante Il existe une méthode «mécanique» employée dans l'industrie Mais si employée trop mécaniquement : ignore types abstraits ( ) et masquage de l'information grande sensibilité aux petits changements difficile d'isoler des sous-systèmes communs difficile de réutiliser des composants disponibles... car trop détachée de la nature logique du programme

43 Critique de l'approche 43 fonctionnelle descendante Ce qui se passe souvent en pratique : on garde une décomposition vague espoir d'une clarification près des feuilles résolution du problème en même temps qu'est structurée la solution quand on s'approche des feuilles, on commence à ajouter plein de hacks ( ) pour que la décomposition tienne introduction d'un couplage fort (sensibilité au changement) échec possible

44 44 Méthodologie Garder l'esprit de l'analyse descendante concevoir les abstractions ( ) de haut niveau affiner jusqu'à une conception suffisamment détaillée Mais appliquer des heuristiques s'appuyer sur le modèle conceptuel découper en modules de même niveau d'abstraction veiller à respecter tous les principes de modularité Si de la réutilisabilité est recherchée combiner avec un peu d'approche montante

45 45 Les données d'abord Important résultat de l'expérience : Le plus souvent, il vaut mieux organiser un système autour des données qu'autour des fonctions Importance du lien avec le modèle conceptuel objets, attributs, opérations pour les manipuler Programmation orientée objet (OO)

46 46 (Parenthèse) Notions de programmation orientée objet ( ) idées les plus importantes exemples en Java comment faire de la programmation objet en C

47 47 Type abstrait (1) Un type déclaration/définition selon le langage ex. : interface Java, (pointeur vers) structure C Une interface déclaration de constantes d'un certain type et de fonctions (publiques) qui opèrent sur des objets de ce type ex. : interface Java, fichier d'inclusion «.h»

48 48 Type abstrait (2) Une (ou plusieurs) implémentation qui satisfait l'interface définition des constantes et fonctions (publiques) autres données et fonctions invisibles (privées) ex. : classe Java, fichier «.c» qui implémente «.h»

49 49 Type abstrait (3) Intérêt on peut modifier le contenu d'une implémentation sans changer ses utilisations (via l'interface) on peut remplacer une implémentation par une autre (par ex. plus efficace, suivant le contexte) = notion très importante en génie logiciel

50 Méthodes de conception 50 orientée objet Méthode de Booch (1986) : définir le problème ( ) développer une stratégie informelle de résolution identifier les objets et leurs attributs identifier les opérations sur ces objets établir les interfaces pour ces opérations implémenter les objets éventuellement répéter le processus récursivement

51 51 Définition du problème (méthode de Booch) Définir le problème en une seule phrase grammaticalement correcte ex. «compter les feuilles d'un arbre binaire complet» Se concentrer sur ce qui est vraiment important Ne pas essayer de résoudre le problème Éviter les phrases imprécises

52 52 Stratégie informelle (1) (méthode de Booch) Exprimer les éléments essentiels de la solution en un seul «paragraphe» grammaticalement correct (S'exprimer dans un langage compris de tous) (Pas plus de quelques heures) Ce travail doit être revu et corrigé

53 53 Stratégie informelle (2) (méthode de Booch) Compter les feuilles d'un arbre binaire complet : Maintenir une pile des parties d'arbre qui n'ont pas encore été comptées. Initialement obtenir un arbre et le mettre sur une pile vide ; le compteur de feuilles est initialisé à zéro. Tant que la pile n'est pas vide, enlever un arbre de la pile et l'examiner. Si l'arbre consiste en une seule feuille, incrémenter le compteur de feuilles et jeter cet arbre. Sinon, l'arbre possède deux sous-arbres ; séparer l'arbre en son sous-arbre droit et son sous-arbre gauche, et remettre ces arbres sur la pile. Une fois que la pile est vide, imprimer le compteur de feuilles.

54 54 Stratégie informelle (3) (méthode de Booch) Compter les feuilles d'un arbre binaire complet Maintenir une pile des parties d'arbre qui n'ont pas encore été comptées. Initialement obtenir un arbre et le mettre sur une pile vide ; le compteur de feuilles est initialisé à zéro. Tant que la pile n'est pas vide, enlever un arbre de la pile et l'examiner. Si l'arbre consiste en une seule feuille, incrémenter le compteur de feuilles et jeter cet arbre. Sinon, l'arbre possède deux sous-arbres ; séparer l'arbre en son sous-arbre droit et son sous-arbre gauche, et mettre ces arbres sur la pile. Une fois que la pile est vide, imprimer le compteur de feuilles.

55 55 Identification des objets et attributs (méthode de Booch) Souligner dans le texte les formes nominales ex., «la mise à jour des capteurs est effectuée chaque seconde» Éliminer les noms qui ne font pas partie du domaine de la solution ex. seconde Considérer comme opération les noms représentant une activité ex. mise à jour Les noms qui restent correspondent à des objets ex. capteur Regrouper les objets de même type Associer des identificateurs aux objets (conventions de nommage) Associer des attributs aux objets et aux types (adjectifs) ex., «les capteurs sont lus toutes les 100 ms» : fréquence de lecture

56 56 Isoler les noms et adjectifs (méthode de Booch) Compter les feuilles d'un arbre binaire complet Maintenir une pile des parties d'arbre qui n'ont pas encore été comptées. Initialement obtenir un arbre et le mettre sur une pile vide ; le compteur de feuilles est initialisé à zéro. Tant que la pile n'est pas vide, enlever un arbre de la pile et l'examiner. Si l'arbre consiste en une seule feuille, incrémenter le compteur de feuilles et jeter cet arbre. Sinon, l'arbre possède deux sous-arbres ; séparer l'arbre en son sous-arbre droit et son sous-arbre gauche, et mettre ces arbres sur la pile. Une fois que la pile est vide, imprimer le compteur de feuilles.

57 57 Identification des objets et attributs (méthode de Booch) Objets Noms : compteur de feuilles, pile, feuille, arbre, sous-arbre, partie d'arbre Objets : Attributs compteur_de_feuilles, pile, arbre Adjectifs : vide (pile), gauche (sous-arbre), droit (sous-arbre), seule (feuille) Attributs : pile : est_vide [ booléen] arbre : a_une_seule_feuille [ booléen], sous-arbre_gauche [ arbre], sous-arbre_droit [ arbre]

58 58 Identification des opérations (méthode de Booch) Souligner les formes verbales elles correspondent à des opérations (sauf être / avoir / appartenance attributs) Associer un identificateur à chaque opération convention de nommage Associer à chaque opération un objet ou un type (sur lequel elle est effectuée) ex. «mettre la chaîne de caractère dans la liste» : opération sur une liste, pas sur une chaîne ni sur un caractère Associer des conditions et attributs aux opérations en examinant les compléments et formes adverbiales ex., «déclencher l'alarme quand les valeurs sont trop hautes» Identifier les relations entre opérations ex., «allouer un buffer à l'ouverture d'un fichier»

59 59 Isoler les formes verbales (méthode de Booch) Compter les feuilles d'un arbre binaire complet Maintenir une pile des parties d'arbre qui n'ont pas encore été comptées. Initialement obtenir un arbre et le mettre sur une pile vide ; le compteur de feuilles est initialisé à zéro. Tant que la pile n'est pas vide, enlever un arbre de la pile et l'examiner. Si l'arbre consiste en une seule feuille, incrémenter le compteur de feuilles et jeter cet arbre. Sinon, l'arbre possède deux sous-arbres ; séparer l'arbre en son sous-arbre droit et son sous-arbre gauche, et mettre ces arbres sur la pile. Une fois que la pile est vide, imprimer le compteur de feuilles.

60 60 Identification des opérations (méthode de Booch) Opérations Verbes : initialement obtenir (un arbre), mettre sur (la pile), initialiser à zéro (le compteur), enlever (un arbre de la pile), examiner (un arbre), incrémenter (le compteur), jeter (arbre), séparer (arbre) consister en (une seule feuille), posséder (deux sous-arbres) Opérations pile : empiler (arbre), dépiler (arbre) compteur_de_feuilles : initialiser_à_zéro, incrémenter, imprimer Attributs (rappel) pile : est_vide [ booléen] arbre : a_une_seule_feuille [ booléen], sous-arbre_gauche [ arbre], sous-arbre_droit [ arbre]

61 61 Spécification et regroupement (méthode de Booch) Définir les spécifications des types, objets et opérations visibles Déterminer les dépendances et l'imbrication des unités (ex. objets inclus dans d'autres) Identifier les regroupements possibles (ex. opérations sur un même type d'objet) Rechercher l'héritage (objets et types d'objets admettant plus ou moins d'opérations) et la généricité (parties communes des objets et opérations, et parties variables paramétrables)

62 62 Analyse et clarification (méthode de Booch) Examiner les variantes possibles (identifications, regroupements) Expliquer les choix de conception Donner toutes les indications nécessaires à la réalisation

63 63 Autres méthodes... (non détaillées ici) Merise (MCD) HOOD (Hierarchical Object Oriented Design) Modèles à trois plans : (plans structure, communication, comportement) (vue temps-contrôle, vue fonctionnelle, vue données) OMT OOA-OOD Shlaer et Mellor

64 Remarques sur la phase de 64 conception Analyse des besoins et conception sont étroitement mêlées point de départ : formulation du problème élaboration/formulation d'une solution structuration logicielle de cette solution C'est le cas également avec UML ( )

65 65 UML Langage de modélisation UML = Unified Modeling Language notations normalisées Pour la résolution de problèmes orientée objet Mais c'est une notation, pas une méthode!

66 66 Modèle Modèle = abstraction du problème sous-jacent objets qui interagissent par envoi de messages attributs des objets (valeurs état de l'objet) opérations/comportements des objets objets de mêmes type = instances d'une classe

67 67 (Principaux) diagrammes UML Diagramme de cas d'utilisation (use case) Diagramme de classe Diagramme d'objet Diagramme de séquence Diagramme de collaboration Diagramme d'états (statechart) Diagramme d'activité Diagramme de composants Diagramme de déploiement

68 68 Diagramme de cas d'utilisation (1) ~ Scénario Ce que le système fait, vu de l'extérieur Le «quoi», pas le «comment» (d'après Borland) Ex. : prise de rendez-vous à la clinique

69 69 Diagramme de cas d'utilisation (2) (d'après Borland)

70 70 Diagramme de cas d'utilisation (3) Expression de besoins/exigences [angl. requirements] nouveau cas d'utilisation nouvelles exigences Communication aisée avec le client simplicité de notation Génération de tests ensemble de scénarios ensemble de cas de test

71 71 Diagramme de classe (1) Aperçu du système classes et relations entre elles Vue statique existence d'interactions mais pas d'information sur le comportement effectif

72 72 Diagramme de classe (2) (d'après Borland) Ex. : commande client pour une vente au détail aggregation

73 73 Diagramme de package (d'après Borland) Package = collection d'éléments reliés logiquement

74 74 Diagramme d'objets (1) (d'après Borland) Montre les instances et non les classes Utile pour expliquer les relations récursives Ex. : département d'université pouvant comporter des (sous-(sous-))départements diagramme de classe :

75 75 Diagramme d'objets (2) (d'après Borland) Instantiation du diagramme de classe précédent

76 76 Diagramme de séquence (1) Diagramme d'interaction : vue dynamique comment les objets collaborent entre eux Déroulement des opérations quelles opérations et quand Ex. : réservation d'une chambre d'hôtel ( )

77 77 Diagramme de séquence (2) (d'après Borland)

78 78 Diagramme de collaboration (1) Diagramme d'interaction : vue dynamique comment les objets collaborent entre eux Focalisation sur le rôle des objets (pas sur le temps ou l'ordre) Ex. : réservation d'une chambre d'hôtel ( )

79 79 Diagramme de collaboration (2) (d'après Borland)

80 80 Diagramme d'état (1) Vue du comportement et des états des objets états, et transitions qui créent des changements d'état = diagramme états-transitions vu précédemment (cf. cours sur l'analyse des besoins) Ex. : login sur un système bancaire entrée du numéro de sécurité sociale (SSN) [Social Security Number] numéro d'identification (code PIN) [Personal Identification Number]

81 81 Diagramme d'état (2) (d'après Borland)

82 82 Diagramme d'activité (1) Flot d'activité d'un processus (et non d'un objet) fork et join Dépendances entre activités Ex. retrait d'argent dans un distributeur

83 83 Diagramme d'activité (2) (d'après Borland)

84 84 Diagramme de déploiement (1) Configuration physique logicielle et matérielle Ex. : transaction immobilière

85 85 Diagramme de déploiement (2) (d'après Borland)

86 86 UML et précision Tous les niveaux de formalisation : informel : cas d'utilisation semi-formel : modèles statiques et dynamiques formel : OCL (object constraint language)

87 87 UML et cycle de vie Définition des besoins : diagramme de cas d'utilisation Analyse des besoins diagrammes d'état, d'activité Conception diagrammes d'état, d'activité diagrammes de classe, d'objet, de package diagrammes de séquence, de collaboration diagrammes de déploiement

88 88 À retenir Conception séparation des problèmes / décomposition modulaire Méthodologie globalement descendante, parfois montante Principes de modularité à respecter découpage logique ; taille équilibrée ; masquage de l'information ; interface minimale, simple et explicite Organiser le système autour des données (!) Notion de type abstrait UML : notations normalisées, vues différentes

Modélisation Principe Autre principe

Modélisation Principe Autre principe Modélisation Principe : un modèle est une abstraction permettant de mieux comprendre un objet complexe (bâtiment, économie, atmosphère, cellule, logiciel, ). Autre principe : un petit dessin vaut mieux

Plus en détail

Chapitre I : le langage UML et le processus unifié

Chapitre I : le langage UML et le processus unifié I. Introduction Les méthodes d analyse orientées objet sont initialement issues des milieux industriels. La préoccupation dominante de leurs auteurs est le génie logiciel, c est-àdire les principes et

Plus en détail

Université de Bangui. Modélisons en UML

Université de Bangui. Modélisons en UML Université de Bangui CRM Modélisons en UML Ce cours a été possible grâce à l initiative d Apollinaire MOLAYE qui m a contacté pour vous faire bénéficier de mes connaissances en nouvelles technologies et

Plus en détail

Analyse,, Conception des Systèmes Informatiques

Analyse,, Conception des Systèmes Informatiques Analyse,, Conception des Systèmes Informatiques Méthode Analyse Conception Introduction à UML Génie logiciel Définition «Ensemble de méthodes, techniques et outils pour la production et la maintenance

Plus en détail

Programmabilité du réseau avec l'infrastructure axée sur les applications (ACI) de Cisco

Programmabilité du réseau avec l'infrastructure axée sur les applications (ACI) de Cisco Livre blanc Programmabilité du réseau avec l'infrastructure axée sur les applications (ACI) de Cisco Présentation Ce document examine la prise en charge de la programmabilité sur l'infrastructure axée

Plus en détail

Architecture Logicielle

Architecture Logicielle Architecture Logicielle Chapitre 3: UML pour la description et la documentation d une architecture logicielle Année universitaire 2013/2014 Semestre 1 Rappel L architecture d un programme ou d un système

Plus en détail

MÉTHODOLOGIES DE CONCEPTION ET NOTATION GRAPHIQUE

MÉTHODOLOGIES DE CONCEPTION ET NOTATION GRAPHIQUE MÉTHODOLOGIES DE CONCEPTION ET NOTATION GRAPHIQUE m Notations : diagrammes m Diagrammes de transition d'états m Méthodes d'analyse de flot de m Conventions pour diagrammes données objet m Diagrammes de

Plus en détail

Génie logiciel. Concepts fondamentaux. Bruno MERMET, Université du Havre 1

Génie logiciel. Concepts fondamentaux. Bruno MERMET, Université du Havre 1 Génie logiciel Concepts fondamentaux Bruno MERMET, Université du Havre 1 Nécessité du Génie Logiciel Bruno MERMET, Université du Havre 2 Développement d un logiciel Caractéristiques souhaitées : Adéquation

Plus en détail

Cours de Génie Logiciel

Cours de Génie Logiciel Cours de Génie Logiciel Sciences-U Lyon Diagrammes UML (2) http://www.rzo.free.fr Pierre PARREND 1 Avril 2005 Sommaire Les Diagrammes UML Diagrammes de Collaboration Diagrammes d'etats-transitions Diagrammes

Plus en détail

Génie logiciel avancé

Génie logiciel avancé Université Paris-Sud L3 MIAGE apprentissage Année 2014-2015 Génie logiciel avancé Introduction Delphine Longuet delphine.longuet@lri.fr Logiciel : définitions Ensemble d'entités nécessaires au fonctionnement

Plus en détail

Conception, architecture et urbanisation des systèmes d information

Conception, architecture et urbanisation des systèmes d information Conception, architecture et urbanisation des systèmes d information S. Servigne Maître de Conférences, LIRIS, INSA-Lyon, F-69621 Villeurbanne Cedex e-mail: sylvie.servigne@insa-lyon.fr 1. Introduction

Plus en détail

IFT2255 : Génie logiciel

IFT2255 : Génie logiciel IFT2255 : Génie logiciel Chapitre 6 - Analyse orientée objets Section 1. Introduction à UML Julie Vachon et Houari Sahraoui 6.1. Introduction à UML 1. Vers une approche orientée objet 2. Introduction ti

Plus en détail

Présentation générale de la méthode orientée objet : O.M.T. (Rumbaugh & al.)

Présentation générale de la méthode orientée objet : O.M.T. (Rumbaugh & al.) Présentation générale de la méthode orientée objet : O.M.T. (Rumbaugh & al.) Bernard ESPINASSE Professeur à l'université d'aix-marseille Plan Introduction Les modèles d'omt Le Modèle Objet (MO) Le Modèle

Plus en détail

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB www.enseirb.fr/~legal Olivier Augereau Formation UML

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB www.enseirb.fr/~legal Olivier Augereau Formation UML basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB www.enseirb.fr/~legal Olivier Augereau Formation UML http://olivier-augereau.com Sommaire Introduction I) Les bases II) Les diagrammes

Plus en détail

Les diagrammes de modélisation

Les diagrammes de modélisation L approche Orientée Objet et UML 1 Plan du cours Introduction au Génie Logiciel L approche Orientée Objet et Notation UML Les diagrammes de modélisation Relations entre les différents diagrammes De l analyse

Plus en détail

Projet : Plan Assurance Qualité

Projet : Plan Assurance Qualité Projet : Document : Plan Assurance Qualité 2UP_SPEC_DEV1 VERSION 1.00 Objet Ce document a pour objectif de définir la démarche d analyse et de conception objet ainsi les activités liées. Auteur Eric PAPET

Plus en détail

UML (Paquetage) Unified Modeling Language

UML (Paquetage) Unified Modeling Language UML (Paquetage) Unified Modeling Language Sommaire Introduction Objectifs Paquetage Espace de nommage d un paquetage Dépendances entre paquetages 2 Notion introduite véritablement par UML car superficiellement

Plus en détail

Cycle de vie du logiciel. Unified Modeling Language UML. UML: définition. Développement Logiciel. Salima Hassas. Unified Modeling Language

Cycle de vie du logiciel. Unified Modeling Language UML. UML: définition. Développement Logiciel. Salima Hassas. Unified Modeling Language Unified Modeling Language UML Salima Hassas Version Cycle de vie du logiciel Client Besoins Déploiement Analyse Test Conception Cours sur la base des transparents de : Gioavanna Di Marzo Serugendo et Frédéric

Plus en détail

Figure 1. Structure répartie

Figure 1. Structure répartie Chapitre I: Applications Réparties et Middleware 1. Définition d une application répartie Une application répartie est constituée d un ensemble de processus (d objets, d agents, d acteurs) s exécutant

Plus en détail

ISTA H.H www.developpez.c.la Diagramme d activité SOMMAIRE

ISTA H.H www.developpez.c.la Diagramme d activité SOMMAIRE SOMMAIRE I. Définition... 2 II. Intérêts des diagrammes d activité... 5 III. Quand employer le diagramme d activité?... 5 IV. Avantage et Inconvénient... 6 V. Les étapes de constructions... 7 VI. Comment

Plus en détail

Architecture d'entreprise : Guide Pratique de l'architecture Logique

Architecture d'entreprise : Guide Pratique de l'architecture Logique Guides Pratiques Objecteering Architecture d'entreprise : Guide Pratique de l'architecture Logique Auteur : Version : 1.0 Copyright : Softeam Equipe Conseil Softeam Supervisée par Philippe Desfray Softeam

Plus en détail

Gestion de Projet. Génie Logiciel. Renaud Marlet. LaBRI / INRIA. http://www.labri.fr/~marlet. (d'après A.-M. Hugues) màj 19/04/2007

Gestion de Projet. Génie Logiciel. Renaud Marlet. LaBRI / INRIA. http://www.labri.fr/~marlet. (d'après A.-M. Hugues) màj 19/04/2007 1 Génie Logiciel (d'après A.-M. Hugues) Gestion de Projet Renaud Marlet LaBRI / INRIA http://www.labri.fr/~marlet màj 19/0/007 Est-ce bien nécessaire? Principes de gestion = beaucoup d'évidences Pourtant

Plus en détail

Le génie logiciel. maintenance de logiciels.

Le génie logiciel. maintenance de logiciels. Le génie logiciel Définition de l IEEE (IEEE 1990): L application d une approche systématique, disciplinée et quantifiable pour le développement, l opération et la maintenance de logiciels. Introduction

Plus en détail

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes PLAN CYCLE DE VIE D'UN LOGICIEL EXPRESSION DES BESOINS SPÉCIFICATIONS DU LOGICIEL CONCEPTION DU LOGICIEL LA PROGRAMMATION TESTS ET MISE AU POINT DOCUMENTATION CONCLUSION C.Crochepeyre Génie Logiciel Diapason

Plus en détail

SOA et Services Web. 23 octobre 2011. SOA: Concepts de base

SOA et Services Web. 23 octobre 2011. SOA: Concepts de base SOA et Services Web 23 octobre 2011 1 SOA: Concepts de base 2 Du client serveur à la SOA N est Nest pas une démarche entièrement nouvelle: années 1990 avec les solutions C/S Besoins d ouverture et d interopérabilité

Plus en détail

CONCEPTS ET MISE EN PRATIQUE POUR LA VALIDATION DE GRANDS SYSTÈMES

CONCEPTS ET MISE EN PRATIQUE POUR LA VALIDATION DE GRANDS SYSTÈMES MODEL-BASED TESTING (MBT) CONCEPTS ET MISE EN PRATIQUE POUR LA VALIDATION DE GRANDS SYSTÈMES Le Model-Based Testing est une pratique de test en plein développement dans l'industrie pour accroitre l'efficacité

Plus en détail

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface

Plus en détail

MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE»

MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE» MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE» Du cours Modélisation Semi -Formelle de Système d Information Du Professeur Jean-Pierre GIRAUDIN Décembre. 2002 1 Table de matière Partie 1...2 1.1

Plus en détail

LES INTERFACES HOMME-MACHINE

LES INTERFACES HOMME-MACHINE LES INTERFACES HOMME-MACHINE 1 ère Partie : Introduction aux Interfaces Homme-Machine 2 ème Partie : Notions de base sur les Sciences Cognitives 3 ème Partie : Recommandations ergonomiques 4 ème Partie

Plus en détail

Introduction au génie logiciel

Introduction au génie logiciel Introduction au génie logiciel Guillaume Laurent ENSMM 2007 G. Laurent (ENSMM) Introduction au génie logiciel 2007 1 / 36 Plan du cours 1 Problématique du génie logiciel 2 Méthodes de développement logiciel

Plus en détail

C++ COURS N 2 : CLASSES, DONNÉES ET FONCTIONS MEMBRES Classes et objets en C++ Membres d'une classe Spécification d'une classe Codage du comportement

C++ COURS N 2 : CLASSES, DONNÉES ET FONCTIONS MEMBRES Classes et objets en C++ Membres d'une classe Spécification d'une classe Codage du comportement C++ COURS N 2 : CLASSES, DONNÉES ET FONCTIONS MEMBRES Classes et objets en C++ Membres d'une classe Spécification d'une classe Codage du comportement des objets d'une classe Utilisation d'une classe Droit

Plus en détail

Introduction au développement du logiciel

Introduction au développement du logiciel Introduction au développement du logiciel Vers le génie logiciel Université de Nantes Master Miage M1 Plan 1 Introduction 2 Génie logiciel 3 Projet informatique 4 Méthode de développement 5 Qualité Bibliographie

Plus en détail

Thèmes. Modélisation d applications industrielles avec UML. Motivations à l origine d UML. Introduction au formalisme UML.

Thèmes. Modélisation d applications industrielles avec UML. Motivations à l origine d UML. Introduction au formalisme UML. Modélisation d applications industrielles avec UML ACOO Analyse, Conception et développement Orientés Objet de logiciels de commande Thèmes Motivations à l origine d UML. Introduction au formalisme UML.

Plus en détail

Structures de données non linéaires

Structures de données non linéaires Structures de données non linéaires I. Graphes Définition Un graphe (simple) orienté G est un couple (S, A), où : S est un ensemble dont les éléments sont appelés les sommets. A est un ensemble de couples

Plus en détail

Le Guide Pratique des Processus Métiers

Le Guide Pratique des Processus Métiers Guides Pratiques Objecteering Le Guide Pratique des Processus Métiers Auteur : Version : 1.0 Copyright : Softeam Equipe Conseil Softeam Supervisée par Philippe Desfray Softeam 21 avenue Victor Hugo 75016

Plus en détail

Guichet automatique de banque

Guichet automatique de banque Guichet automatique de banque Mastère 2004 1 Guichet automatique de banque : GAB Objectif : Illustrer la vue fonctionnelle et particulièrement la définition des cas d utilisation. 1. Spécification du problème

Plus en détail

Direction Générale des Études Technologiques. Institut Supérieur des Etudes Technologiques de Djerba Département Technologies de l informatique

Direction Générale des Études Technologiques. Institut Supérieur des Etudes Technologiques de Djerba Département Technologies de l informatique Direction Générale des Études Technologiques Institut Supérieur des Etudes Technologiques de Djerba Département Technologies de l informatique Génie Logiciel Mejdi BLAGHGI m.blaghgi@gmail.com Chapitre

Plus en détail

UML Diagramme de classes (class diagram) pour le recueil et l analyse des besoins. Emmanuel Pichon 2013 V1.1

UML Diagramme de classes (class diagram) pour le recueil et l analyse des besoins. Emmanuel Pichon 2013 V1.1 UML Diagramme de classes (class diagram) pour le recueil et l analyse des besoins 2013 V1.1 Objectif Diagramme de classes (class diagram) pour le recueil des besoins et l analyse Présenter un ensemble

Plus en détail

Analyse et Conception objet du logiciel Analyse et conception objet du logiciel : Méthode de conception objet et notation UML.

Analyse et Conception objet du logiciel Analyse et conception objet du logiciel : Méthode de conception objet et notation UML. Analyse et conception objet du logiciel : Méthode de conception objet et notation UML Rémy Courdier Email : Remy.Courdier@univ-reunion.fr Rémy Courdier V2.1 1 Plan du cours Introduction au Génie Logiciel

Plus en détail

IFT2251 Introduction au génie logiciel Plan de cours. 2. Description du cours et objectifs généraux

IFT2251 Introduction au génie logiciel Plan de cours. 2. Description du cours et objectifs généraux IFT2251 Introduction au génie logiciel Plan de cours Été 2008 Yann-Gaël Guéhéneuc 1. Introduction Les exigences et les attentes à l égard de la qualité logicielle sont de plus en plus grandes. La taille

Plus en détail

Université Laval Faculté des sciences et de génie Département d'informatique et de génie logiciel IFT-3101. Travail pratique #2

Université Laval Faculté des sciences et de génie Département d'informatique et de génie logiciel IFT-3101. Travail pratique #2 Université Laval Faculté des sciences et de génie Département d'informatique et de génie logiciel IFT-3101 Danny Dubé Hiver 2014 Version : 11 avril Questions Travail pratique #2 Traduction orientée-syntaxe

Plus en détail

Une calculatrice qui manipule les régions cubiques

Une calculatrice qui manipule les régions cubiques Une calculatrice qui manipule les régions cubiques Emmanuel Haucourt 1 Introduction Alors qu une calculatrice usuelle effectue des opérations numériques (addition, multiplication, soustraction, division,

Plus en détail

Méthodes de développement. Analyse des exigences (spécification)

Méthodes de développement. Analyse des exigences (spécification) 1 / 16 Méthodes de développement Analyse des exigences (spécification) 1 -Objectifs de l'analyse des exigences... 2 2 - Approfondissement et formalisation du besoin... 2 2.1 Séparation des besoins, contraintes

Plus en détail

Titre. Mots clés Source. Date de publication Février 2001 Nombre de pages 39 Langue Liens avec autres normes

Titre. Mots clés Source. Date de publication Février 2001 Nombre de pages 39 Langue Liens avec autres normes Statut du document Titre Mots clés Source Date de publication Février 2001 Nombre de pages 39 Langue Liens avec autres normes Situation courante Final Draft electronic business XML (ebxml) Technical Architecture

Plus en détail

Cours Gestion de projet

Cours Gestion de projet Cours Gestion de projet Méthodes de conduite de projet Version Date Auteur V1.8 Septembre 2007 Pascal HEYER 1 Méthodes de conduite de projet Ce document est publié sous la licence libre Creative Commons-BY-NC-SA

Plus en détail

Les évolutions des méthodes de développement de logiciels. Depuis Merise de l'eau est passée sous les ponts

Les évolutions des méthodes de développement de logiciels. Depuis Merise de l'eau est passée sous les ponts Les évolutions des méthodes de développement de logiciels Depuis Merise de l'eau est passée sous les ponts Programmation Orientée Objets Encapsulation des données et des traitements Polymorphisme Modularité

Plus en détail

Le Processus RUP. H. Kadima. Tester. Analyst. Performance Engineer. Database Administrator. Release Engineer. Project Leader. Designer / Developer

Le Processus RUP. H. Kadima. Tester. Analyst. Performance Engineer. Database Administrator. Release Engineer. Project Leader. Designer / Developer Le Processus RUP Database Administrator Project Leader H. Kadima Performance Engineer Release Engineer Analyst Designer / Developer Tester Table des matières 1. De l artisanat à l industrialisation de

Plus en détail

C12. Les structures arborescentes. Août 2006

C12. Les structures arborescentes. Août 2006 Les structures arborescentes Août 2006 Objectifs du C12 Connaître le principe de la structure d arbre binaire Connaître les détails d implémentation de la structure d arbre binaire de recherche Les structures

Plus en détail

Processus d Informatisation

Processus d Informatisation Processus d Informatisation Cheminement de la naissance d un projet jusqu à son terme, deux grandes étapes : Recherche ou étude de faisabilité (en amont) L utilisateur a une idée (plus ou moins) floue

Plus en détail

Sommaire. Conduite de projet Méthode d analyse et de conception. Processus unifié. Objectifs d un processus de développement

Sommaire. Conduite de projet Méthode d analyse et de conception. Processus unifié. Objectifs d un processus de développement Conduite de projet Méthode d analyse et de conception Processus unifié G. Picard SMA/G2I/ENS Mines Saint-Etienne gauthier.picard@emse.fr Octobre 2009 Sommaire!!Objectifs d un processus d ingénierie logicielle!

Plus en détail

Méthodologies de développement de logiciels de gestion

Méthodologies de développement de logiciels de gestion Méthodologies de développement de logiciels de gestion Chapitre 5 Traits caractéristiques des deux approches de méthodologie Présentation réalisée par P.-A. Sunier Professeur à la HE-Arc de Neuchâtel http://lgl.isnetne.ch

Plus en détail

Département Informatique Programmation objet. Cours n 8. Structures de données partie 3 Arbres binaires de calcul

Département Informatique Programmation objet. Cours n 8. Structures de données partie 3 Arbres binaires de calcul Programmation objet Cours n 8 Structures de données partie 3 Arbres binaires de calcul 1 Arbre binaire de calcul Nous avons vu l'utilisation des arbres binaires en tant que structure de données optimisée

Plus en détail

Arbres binaires de recherche

Arbres binaires de recherche Chapitre 1 Arbres binaires de recherche 1 Les arbre sont très utilisés en informatique, d une part parce que les informations sont souvent hiérarchisées, et peuvent être représentées naturellement sous

Plus en détail

Génie Logiciel. - Visite rapide - C. Crochepeyre Génie Logiciel visite rapide - 1

Génie Logiciel. - Visite rapide - C. Crochepeyre Génie Logiciel visite rapide - 1 Génie Logiciel - Visite rapide - C. Crochepeyre Génie Logiciel visite rapide - 1 INTRODUCTION GL: ingénierie appliquée au logiciel informatique Objectif: la qualité diminution du coût du logiciel et fiabilité

Plus en détail

Développement itératif, évolutif et agile

Développement itératif, évolutif et agile Document Développement itératif, évolutif et agile Auteur Nicoleta SERGI Version 1.0 Date de sortie 23/11/2007 1. Processus Unifié Développement itératif, évolutif et agile Contrairement au cycle de vie

Plus en détail

Généralités sur le Langage Java et éléments syntaxiques.

Généralités sur le Langage Java et éléments syntaxiques. Généralités sur le Langage Java et éléments syntaxiques. Généralités sur le Langage Java et éléments syntaxiques....1 Introduction...1 Genéralité sur le langage Java....1 Syntaxe de base du Langage...

Plus en détail

Projet Active Object

Projet Active Object Projet Active Object TAO Livrable de conception et validation Romain GAIDIER Enseignant : M. Noël PLOUZEAU, ISTIC / IRISA Pierre-François LEFRANC Master 2 Informatique parcours MIAGE Méthodes Informatiques

Plus en détail

METHODOLOGIE : INGENIERIE DES SYSTEMES

METHODOLOGIE : INGENIERIE DES SYSTEMES METHODOLOGIE : INGENIERIE DES SYSTEMES L ingénierie de systèmes regroupe l ensemble des activités de pilotage des projets de construction effective d un système en s appuyant sur sa décomposition architecturale

Plus en détail

Nom de l application

Nom de l application Ministère de l Enseignement Supérieur et de la Recherche Scientifique Direction Générale des Etudes Technologiques Institut Supérieur des Etudes Technologiques de Gafsa Département Technologies de l Informatique

Plus en détail

Formation Conception orientée objet

Formation Conception orientée objet Objectif La programmation orientée objet (POO) est un paradigme de programmation informatique qui consiste en la définition et l'interaction de briques logicielles appelées objets. Un objet représente

Plus en détail

UML (Diagramme de classes) Unified Modeling Language

UML (Diagramme de classes) Unified Modeling Language UML (Diagramme de classes) Unified Modeling Language Sommaire Introduction Objectifs Diagramme de classes Classe (Nom, attribut, opération) Visibilité et portée des constituants d une classe Association

Plus en détail

COMMENT DÉFINIR L ORIENTÉ OBJET

COMMENT DÉFINIR L ORIENTÉ OBJET COMMENT DÉFINIR L ORIENTÉ OBJET De manière superficielle, le terme «orienté objet», signifie que l on organise le logiciel comme une collection d objets dissociés comprenant à la fois une structure de

Plus en détail

Principes de Paquetage. Packaging et Marketing

Principes de Paquetage. Packaging et Marketing Génie Logiciel Conception Principes de Paquetage Packaging et Marketing La conception Définition Générale : Activité créatrice qui consiste à élaborer un projet, ou une partie des éléments le constituant,

Plus en détail

Programmation Orientée Objet

Programmation Orientée Objet Université de Pau et des Pays de l Adour Institut Universitaire de Technologie des Pays de l Adour Département Réseaux et Télécommunications 371, rue du Ruisseau BP 201 40004 Mont-de-Marsan Cedex tél :

Plus en détail

UML : Modéliser la Dynamique

UML : Modéliser la Dynamique MAI NFE103 Année 2013-2014 UML : Modéliser la Dynamique F.-Y. Villemin (f-yv@cnam.fr) Plan! Introduction! Cas d'utilisation: Diagramme des Cas d'utilisation! Evènements! Scénario: Diagrammes de Séquence

Plus en détail

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation ING 01 LANGAGUE JAVA Durée : 21 heures 1090 HT / jour Dates : à définir en 2012 Concevoir et développer des programmes en langage Java Comprendre le fonctionnement de la machine virtuelle S approprier

Plus en détail

PTSI PT ÉTUDE DES SYSTEMES

PTSI PT ÉTUDE DES SYSTEMES PTSI PT ÉTUDE DES SYSTEMES Table des matières 1 - PRESENTATION GENERALE... 1 1.1 - Définition d'un système... 1 1.2 - Exemples... 1 1.3 - Cycle de vie d'un système... 1 1.4 Langage de description SysML...

Plus en détail

Proposition de programme de formation pour les enseignants chargés de la spécialité Informatique et sciences du numérique en terminale S

Proposition de programme de formation pour les enseignants chargés de la spécialité Informatique et sciences du numérique en terminale S Proposition de programme de formation pour les enseignants chargés de la spécialité Informatique et sciences du numérique en terminale S La formation des enseignants chargés de la spécialité Informatique

Plus en détail

Structures de données, IMA S6

Structures de données, IMA S6 Structures de données, IMA S6 Arbres Binaires d après un cours de N. Devésa, Polytech Lille. Laure Gonnord http://laure.gonnord.org/pro/teaching/ Laure.Gonnord@polytech-lille.fr Université Lille 1 - Polytech

Plus en détail

Génie Logiciel. Rappels. C. Crochepeyre Génie Logiciel Rappels 1

Génie Logiciel. Rappels. C. Crochepeyre Génie Logiciel Rappels 1 Génie Logiciel Rappels C. Crochepeyre Génie Logiciel Rappels 1 INTRODUCTION GL: ingénierie appliquée au logiciel informatique Objectif: la qualité diminution du coût du logiciel et fiabilité Besoin: complexité

Plus en détail

Arbres ordonnés, binaires, tassés, FAP, tri par FAP, tas, tri par tas

Arbres ordonnés, binaires, tassés, FAP, tri par FAP, tas, tri par tas Arbres ordonnés, binaires, tassés, FAP, tri par FAP, tas, tri par tas 1. Arbres ordonnés 1.1. Arbres ordonnés (Arbres O) On considère des arbres dont les nœuds sont étiquetés sur un ensemble muni d'un

Plus en détail

Modèles. Outils. Méthodes. Typologie des Outils et Méthodes de spécification en Génie Logiciel - Bernard ESPINASSE - - 4

Modèles. Outils. Méthodes. Typologie des Outils et Méthodes de spécification en Génie Logiciel - Bernard ESPINASSE - - 4 Typologie des modèles, outils et des méthodes de spécification en Génie Logiciel Bernard ESPINASSE Professeur à l'université d'aix-marseille 2008 Typologie des modèles : analytiques, conceptuels, structurels,

Plus en détail

Générer du code à partir d une description de haut niveau

Générer du code à partir d une description de haut niveau Cedric Dumoulin Générer du code à partir d une description de haut niveau Ce projet vise à fournir un environnement de développement permettant de modéliser des UI Android à un haut niveau d abstraction,

Plus en détail

URBANISME DES SYSTÈMES D INFORMATION

URBANISME DES SYSTÈMES D INFORMATION FAYCAL AYECH GL2. INSAT 2010/2011 INTRODUCTION AUX SYSTÈMES D INFORMATIONS URBANISME DES SYSTÈMES D INFORMATION De l Urbanisme à L Urbanisation des SI Urbanisme : Mise en œuvre des politiques urbaines

Plus en détail

Aperçu général sur la technologie des Workflows

Aperçu général sur la technologie des Workflows Aperçu général sur la technologie des Workflows Zakaria Maamar Groupe Interfonctionnement Section Technologie des systèmes d'information Centre de recherches pour la défense Valcartier 2459 boul. Pie-XI

Plus en détail

Analyse et modélisation de tâches

Analyse et modélisation de tâches Analyse et modélisation de tâches 1. Introduction La conception de logiciel interactif (ou conception d'interface homme-machine [IHM], ou conception d'interface) est l'activité qui vise à définir le fonctionnement

Plus en détail

Chap 4: Analyse syntaxique. Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 1

Chap 4: Analyse syntaxique. Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 1 Chap 4: Analyse syntaxique 1 III- L'analyse syntaxique: 1- Le rôle d'un analyseur syntaxique 2- Grammaires non contextuelles 3- Ecriture d'une grammaire 4- Les méthodes d'analyse 5- L'analyse LL(1) 6-

Plus en détail

Vérification et Validation

Vérification et Validation Vérification et Validation Génie Logiciel Master 1 II Mihaela Sighireanu Objectifs I. Introduire la vérification et la validation (V&V) du logiciel et comprendre leurs différences. II.Définir le plan de

Plus en détail

Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml

Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml OCL Object Constraint Language Le langage de contraintes d'uml Plan 1. Introduction 2. Les principaux concepts d'ocl Object Constraint Language 1 Object Constraint Language 2 Exemple: une application bancaire

Plus en détail

Ingénierie des Modèles. Méta-modélisation

Ingénierie des Modèles. Méta-modélisation Ingénierie des Modèles Méta-modélisation Eric Cariou Master Technologies de l'internet 2 ème année Université de Pau et des Pays de l'adour UFR Sciences Pau Département Informatique Eric.Cariou@univ-pau.fr

Plus en détail

Cours Génie Logiciel. Ilhem Boussaïd

Cours Génie Logiciel. Ilhem Boussaïd Cours Génie Logiciel Ilhem Boussaïd 15 octobre 2009 Table des matières 1 Introduction 2 1.1 Analyse de l existant : Crise du logiciel........................ 2 1.2 Une solution : le Génie Logiciel............................

Plus en détail

Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets.

Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets. Encapsulation L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets. La visibilité dépend des membres : certains membres peuvent être visibles et d'autres

Plus en détail

Chapitre 1 : Introduction aux bases de données

Chapitre 1 : Introduction aux bases de données Chapitre 1 : Introduction aux bases de données Les Bases de Données occupent aujourd'hui une place de plus en plus importante dans les systèmes informatiques. Les Systèmes de Gestion de Bases de Données

Plus en détail

Sommaire. G. Pujolle, F. Ravat, C. Soulé-Dupuy, G. Zurfluh

Sommaire. G. Pujolle, F. Ravat, C. Soulé-Dupuy, G. Zurfluh NOTATION UML AVEC RATIONAL ROSE G. Pujolle, F. Ravat, C. Soulé-Dupuy, G. Zurfluh Sommaire 1 GÉNÉRALITES...2 1.1 ENVIRONNEMENT LOGICIEL...2 1.2 LES VUES DU LOGICIEL ROSE...3 1.3 ORGANISATION RECOMMANDÉE...3

Plus en détail

GESTION DE PROJET SÉANCE 2 : LES CYCLE DE VIE D'UN PROJET

GESTION DE PROJET SÉANCE 2 : LES CYCLE DE VIE D'UN PROJET GESTION DE PROJET SÉANCE 2 : LES CYCLE DE VIE D'UN PROJET 1 Tianxiao LIU Licence Professionnelle Réseaux & Sécurité Université de Cergy-Pontoise http://depinfo.u-cergy.fr/~tliu/lpg.php PLAN Objectif et

Plus en détail

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP COURS PROGRAMMATION INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC page 1 / 7 INITIATION AU LANGAGE C SUR PIC DE MICROSHIP I. Historique du langage C 1972 : naissance du C dans les laboratoires BELL par

Plus en détail

Conception des bases de données : Modèle Entité-Association

Conception des bases de données : Modèle Entité-Association Conception des bases de données : Modèle Entité-Association La modélisation d un problème, c est-à-dire le passage du monde réel à sa représentation informatique, se définit en plusieurs étapes pour parvenir

Plus en détail

Qu'est-ce que le BPM?

Qu'est-ce que le BPM? Qu'est-ce que le BPM? Le BPM (Business Process Management) n'est pas seulement une technologie mais, dans les grandes lignes, une discipline de gestion d'entreprise qui s'occupe des procédures contribuant

Plus en détail

GL - 2 2.1 Le Génie Logiciel

GL - 2 2.1 Le Génie Logiciel GL - 2 2.1 Le Génie Logiciel Lydie du Bousquet Lydie.du-bousquet@imag.fr En collaboration avec J.-M. Favre, I. Parissis, Ph. Lalanda 1 Rappels La production logicielle est une activité complexe de façon

Plus en détail

CONCEPTION Support de cours n 3 DE BASES DE DONNEES

CONCEPTION Support de cours n 3 DE BASES DE DONNEES CONCEPTION Support de cours n 3 DE BASES DE DONNEES Auteur: Raymonde RICHARD PRCE UBO PARTIE III. - LA DESCRIPTION LOGIQUE ET PHYSIQUE DES DONNEES... 2 A. Les concepts du modèle relationnel de données...

Plus en détail

Cours Algorithmique, 2ème partie AS IUT

Cours Algorithmique, 2ème partie AS IUT Cours Algorithmique, 2ème partie AS IUT Cours 2 : Arbres Binaires Anne Vilnat http://www.limsi.fr/individu/anne/coursalgo Plan 1 Représentations arborescentes 2 Définition d un arbre binaire récursive

Plus en détail

BAZIN Danil et PRIEZ Jean-Baptiste. LEX & YACC : Calculatrice Évoluée

BAZIN Danil et PRIEZ Jean-Baptiste. LEX & YACC : Calculatrice Évoluée BAZIN Danil et PRIEZ Jean-Baptiste LEX & YACC : Calculatrice Évoluée Table des matières 1 Introduction 3 2 Description 4 3 La grammaire utilisée 6 4 Lexèmes et FLEX 8 5 Analyse syntaxique et YACC 8 5.1

Plus en détail

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN Les contenues de ce document sont la propriété exclusive de la société REVER. Ils ne sont transmis qu à titre d information et ne peuvent en aucun cas

Plus en détail

modélisation solide et dessin technique

modélisation solide et dessin technique CHAPITRE 1 modélisation solide et dessin technique Les sciences graphiques regroupent un ensemble de techniques graphiques utilisées quotidiennement par les ingénieurs pour exprimer des idées, concevoir

Plus en détail

ETL. Extract, Transform, Load

ETL. Extract, Transform, Load ETL Extract, Transform, Load Plan Introduction Extract, Transform, Load Démonstration Conclusion Plan Introduction Extract, Transform, Load Démonstration Conclusion Identification Problématique: Quoi?

Plus en détail

Arbres binaires de recherche (ABR) Binary Search Trees (BST)

Arbres binaires de recherche (ABR) Binary Search Trees (BST) LSVIII-BIM Algorithmie, 2015 Arbres binaires de recherche (ABR) Binary Search Trees (BST) I. Arbres binaires 1. Structure 2. Parcours II. Arbres binaires de recherche 1. Définition 2. Opérations sur les

Plus en détail

THÉORIE DE L'INFORMATION : RAPPELS

THÉORIE DE L'INFORMATION : RAPPELS THÉORIE DE L'INFORMATION : RAPPELS 1920 : premières tentatives de définition de mesure de l'information à partir de 1948 : travaux de Shannon Théorie de l'information discipline fondamentale qui s'applique

Plus en détail

Projet 2. Gestion des services enseignants CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE. G r o u p e :

Projet 2. Gestion des services enseignants CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE. G r o u p e : CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE Projet 2 Gestion des services enseignants G r o u p e : B E L G H I T Y a s m i n e S A N C H E Z - D U B R O N T Y u r i f e r M O N T A Z E R S i

Plus en détail

Génie Logiciel Orienté Objet UML

Génie Logiciel Orienté Objet UML Licence Professionnelle en Informatique Génie Logiciel Orienté Objet UML E. Grislin-Le Strugeon E. Adam UVHC ISTV Plan Concepts orientés objet Principes des méthodes OO Qu est-ce que UML? Caractéristiques

Plus en détail

Module Business Process Management & Service Oriented Architecture

Module Business Process Management & Service Oriented Architecture - 1 - Module Business Process Management & Service Oriented Architecture SI5/Master IFI Audrey Occello occello@polytech.unice.fr http://moodle.i3s.unice.fr/course/view.php?id=55 Pour ceux qui ne sont pas

Plus en détail