+ Répondre à la discussion
Page 1 sur 2 12 DernièreDernière
Affichage des résultats 1 à 20 sur 23
  1. #1
    Membre éprouvé
    Avatar de VivienD
    Homme Profil pro Vivien Duboué
    Ingénieur en génie électrique, électronique et informatique industrielle
    Inscrit en
    octobre 2009
    Messages
    262
    Détails du profil
    Informations personnelles :
    Nom : Homme Vivien Duboué
    Âge : 24
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Ingénieur en génie électrique, électronique et informatique industrielle
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : octobre 2009
    Messages : 262
    Points : 425
    Points
    425

    Par défaut Ce que sont réellement les applications monolithiques et les applications modulaires

    Bonsoir,

    J'entends souvent parler d'«application monolithique» et d'«application modulaire»; je devrais plutôt dire que je lis souvent ces termes, mais là n'est pas le problème. Des nombreuses recherches que j'ai faites sur la toile — parce que ça m'énerve de ne pas comprendre ce que j'entends ou lis — je n'ai pu tirer que des définitions vagues et floues de ces notions qui me restent donc quelque peu absconses — même si j'en ai une petite idée. C'est pourquoi j'aimerais qu'on m'explique enfin ces termes et ce que ça implique concrètement.

    Merci d'avance pour votre patience aide.

    Bis gleesch!

    PS: J'espère avoir posté ce sujet dans le forum idoine.

    PPS: L'adjectif «abscons» est difficile à caser dans une discussion ... «mondaine», vous en conviendrez. Idem pour «idoine».
    Timbré tatillon invétéré et fier de l'être!

    Digression du jour:
    SFINAE rocks!

  2. #2
    Membre expérimenté

    Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    mars 2009
    Messages
    244
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : Industrie

    Informations forums :
    Inscription : mars 2009
    Messages : 244
    Points : 539
    Points
    539

    Par défaut

    Je ne sais pas s'il existe de définition officielle pour ces termes, mais je pense que ce sont des notions assez subjectives et je ne suis donc pas surpris que tu trouves beaucoup de réponses différentes.

    D'un point de vue utilisateur, une application donne le sentiment d'être monolithique si toutes les tâches s'effectue dans le même espace de travail. Une application donne le sentiment d'être modulaire si une nouvelle fenêtre s'ouvre à chaque fois qu'on démarre une nouvelle tâche.

    Mais cela ne préjuge en rien de la façon dont a été développée l'application. Un développeur appellera monolithique une application qui tient entièrement dans un seul exécutable, et la même application deviendra modulaire si elle tient sur 1 éxecutable + des librairies chargées dynamiquement.

    On appelle aussi modulaire les applications qui utilisent un système de plug-in pour ajouter/enlever dynamiquement certaines fonctionnalités.

    Enfin voilà quoi, c'est assez flou, je crois!

  3. #3
    Expert Confirmé Sénior
    Profil pro
    Inscrit en
    décembre 2007
    Messages
    3 189
    Détails du profil
    Informations personnelles :
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : décembre 2007
    Messages : 3 189
    Points : 10 584
    Points
    10 584

    Par défaut

    Effectivement, il y a le point de vue de l'utilisateur, et le point de vue de l'architecte/développeur. Il PEUT y avoir corrélation entre les deux, mais je n'en suis absolument pas sur.

    D'un point de vue développeur, une appli modulaire, c'est une appli dont l'architecture est en petits morceaux indépendants - qu'on peut rajouter ou retirer facilement sans rien casser. Une appli monolithique, c'est une appli ou tout retrait ou ajout change absolument tout. D'un point de vue développeur, une appli se doit d'être modulaire.

    Du point de vue de l'utilisateur, c'est plus complexe. Une appli ou on ne se rend même pas compte qu'on a changé de sous-appli peut être très rassurante et efficace.
    Les 4 règles d'airain du développement informatique sont, d'après Michael C. Kasten :
    1)on ne peut pas établir un chiffrage tant qu'on a pas finalisé la conception
    2)on ne peut pas finaliser la conception tant qu'on a pas complètement compris toutes les exigences
    3)le temps de comprendre toutes les exigences, le projet est terminé
    4)le temps de terminer le projet, les exigences ont changé
    Et le serment de non-allégiance :
    Je promets de n’exclure aucune idée sur la base de sa source mais de donner toute la considération nécessaire aux idées de toutes les écoles ou lignes de pensées afin de trouver celle qui est la mieux adaptée à une situation donnée.

  4. #4
    Membre éprouvé
    Avatar de VivienD
    Homme Profil pro Vivien Duboué
    Ingénieur en génie électrique, électronique et informatique industrielle
    Inscrit en
    octobre 2009
    Messages
    262
    Détails du profil
    Informations personnelles :
    Nom : Homme Vivien Duboué
    Âge : 24
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Ingénieur en génie électrique, électronique et informatique industrielle
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : octobre 2009
    Messages : 262
    Points : 425
    Points
    425

    Par défaut

    Je vois un peu mieux. En revanche, une question subsiste: est-ce qu'une application modulaire, du point de vue des développeurs, implique automatiquement la gestion de greffons ou une pléthore de bibliothèques pour un exécutable ... aussi «minimaliste» que possible?
    Timbré tatillon invétéré et fier de l'être!

    Digression du jour:
    SFINAE rocks!

  5. #5
    Expert Confirmé Sénior
    Profil pro
    Inscrit en
    décembre 2007
    Messages
    3 189
    Détails du profil
    Informations personnelles :
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : décembre 2007
    Messages : 3 189
    Points : 10 584
    Points
    10 584

    Par défaut

    Citation Envoyé par VivienD Voir le message
    Je vois un peu mieux. En revanche, une question subsiste: est-ce qu'une application modulaire, du point de vue des développeurs, implique automatiquement la gestion de greffons ou une pléthore de bibliothèques pour un exécutable ... aussi «minimaliste» que possible?
    EDIT : C'est le principe pour les sources. Un seul source énorme qui passe même l'aspirateur, c'est le cauchemar. Il FAUT découper son source en petits morceaux.

    Par contre, pour l'executable, c'est une question de choix architectural. On peut essayer de tout compiler sous un executable unique, ou au contraire avoir une galaxie d'executables. Je suis partisan de la deuxième solution, et c'est la plus fréquente, mais la première a aussi ses qualités.
    Les 4 règles d'airain du développement informatique sont, d'après Michael C. Kasten :
    1)on ne peut pas établir un chiffrage tant qu'on a pas finalisé la conception
    2)on ne peut pas finaliser la conception tant qu'on a pas complètement compris toutes les exigences
    3)le temps de comprendre toutes les exigences, le projet est terminé
    4)le temps de terminer le projet, les exigences ont changé
    Et le serment de non-allégiance :
    Je promets de n’exclure aucune idée sur la base de sa source mais de donner toute la considération nécessaire aux idées de toutes les écoles ou lignes de pensées afin de trouver celle qui est la mieux adaptée à une situation donnée.

  6. #6
    Membre habitué
    Homme Profil pro Daniel BALLAND
    Retraité MO
    Inscrit en
    mai 2008
    Messages
    75
    Détails du profil
    Informations personnelles :
    Nom : Homme Daniel BALLAND
    Âge : 66
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Retraité MO
    Secteur : Finance

    Informations forums :
    Inscription : mai 2008
    Messages : 75
    Points : 126
    Points
    126

    Par défaut

    On trouve aussi l'organisation de gros systèmes :

    J'ai travaillé, il y a quelques temps, sur une appli faisant partie d'un ensemble comptable. Elle n'était composée que d'un ensemble de tâches lancées par un ordonnanceur indépendant ($Universe). Ce dernier pilotant aussi quelques centaines d'autres applications et diverses copies de données d'une machine à l'autre.
    On a bien alors un lot de modules complètement indépendants, en nombre variable dans le temps, regroupés sous un nom d'application mais complètement autonomes si ce n'est qu'ils exploitent des données communes.
    Pour éviter les parasites, l'ordonnanceur de tâches doit alors tenir compte de paramètres de lancement : horaire, ou bien exécution réussie d'une autre tâche (traitement après filtrage réussi), ou inversement non exécution (pas d'accès utilisateur pendant les chargement de données), ou lancement manuel à la demande (stats, purges).

    L'inconvénient ici, c'est que toutes les vérifs doivent être paramétrées dans le module. On ne peut pas compter sur une mémoire quelconque pour servir de référence à une exécution. Hors la base de données accessible partout, aucun programme ne peut revenir sur le précédent. Par exemple, si la base des dates de traitement n'est pas conforme aux dates des données, le module de traitement de ces données ne peut pas corriger. Il doit être interrompu pour relancer le module de gestion des dates, puis relancé à zéro quand l'ordonnanceur (ou l'opérateur) aura reçu le feu vert attendu.
    Chaque module gère ici un sujet déterminé en totale autonomie, mais pour une même BDD.

    Voir ensuite l'éventualité de cette organisation dans une petite application ne traitant qu'un sujet limité.
    R.BASILE, 1971 : "Il y a mille et un procédés pour accélérer des particules. Le seul véritablement fondamental restant...le carnet de chèques."

  7. #7
    Membre éprouvé
    Avatar de VivienD
    Homme Profil pro Vivien Duboué
    Ingénieur en génie électrique, électronique et informatique industrielle
    Inscrit en
    octobre 2009
    Messages
    262
    Détails du profil
    Informations personnelles :
    Nom : Homme Vivien Duboué
    Âge : 24
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Ingénieur en génie électrique, électronique et informatique industrielle
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : octobre 2009
    Messages : 262
    Points : 425
    Points
    425

    Par défaut

    Alors une application modulaire peut aussi être un exécutable qui gère tout un ensemble d'exécutables dont la portée de chacun est plus nettement restreinte et ciblée et qui sont indépendants les uns des autres... Ça me donne envie de m'attarder sur ce dernier concept (cf. mon avatar pour voir la belle tête de sadique que je suis en train de faire), mais la complexité de la programmation d'une telle application me semble beaucoup plus relevée qu'en ce qui concerne de «simples» monolithes applicatifs. J'imagine ce que la gestion temporelle des threads, des processus et des sémaphores doit être pour une telle bête; je wanda très mal sur ça, mon frère!
    Timbré tatillon invétéré et fier de l'être!

    Digression du jour:
    SFINAE rocks!

  8. #8
    Rédacteur/Modérateur
    Avatar de pseudocode
    Homme Profil pro Xavier Philippeau
    Architecte système
    Inscrit en
    décembre 2006
    Messages
    9 960
    Détails du profil
    Informations personnelles :
    Nom : Homme Xavier Philippeau
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : décembre 2006
    Messages : 9 960
    Points : 15 759
    Points
    15 759

    Par défaut

    Citation Envoyé par el_slapper Voir le message
    D'un point de vue développeur, une appli modulaire, c'est une appli dont l'architecture est en petits morceaux indépendants - qu'on peut rajouter ou retirer facilement sans rien casser.
    Il y a généralement une dépendance entre les composants, du genre "fournisseur -> consommateur" d'un service ou d'une fonction.

    Pour préciser ta définition, je dirais que dans une application modulaire il n'y a pas d'inter-dépendance fonctionnelle entre 2 composants. Visuellement, on pourrait dire que la chaine fonctionnelle traverse les interfaces sans faire de boucles.

    La modularité est souvent atteinte en imposant la spécification des interfaces, afin d'éviter de "faire des noeuds" dans l'architecture. On met aussi généralement en oeuvre des bonnes pratiques comme le couplage faible/cohésion forte.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  9. #9
    Expert Confirmé Sénior
    Profil pro
    Inscrit en
    décembre 2007
    Messages
    3 189
    Détails du profil
    Informations personnelles :
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : décembre 2007
    Messages : 3 189
    Points : 10 584
    Points
    10 584

    Par défaut

    Merci pseudocode, je m'aperçois que je n'avais pas été parfaitement clair(pour rester poli).
    Les 4 règles d'airain du développement informatique sont, d'après Michael C. Kasten :
    1)on ne peut pas établir un chiffrage tant qu'on a pas finalisé la conception
    2)on ne peut pas finaliser la conception tant qu'on a pas complètement compris toutes les exigences
    3)le temps de comprendre toutes les exigences, le projet est terminé
    4)le temps de terminer le projet, les exigences ont changé
    Et le serment de non-allégiance :
    Je promets de n’exclure aucune idée sur la base de sa source mais de donner toute la considération nécessaire aux idées de toutes les écoles ou lignes de pensées afin de trouver celle qui est la mieux adaptée à une situation donnée.

  10. #10
    Membre éprouvé
    Avatar de VivienD
    Homme Profil pro Vivien Duboué
    Ingénieur en génie électrique, électronique et informatique industrielle
    Inscrit en
    octobre 2009
    Messages
    262
    Détails du profil
    Informations personnelles :
    Nom : Homme Vivien Duboué
    Âge : 24
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Ingénieur en génie électrique, électronique et informatique industrielle
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : octobre 2009
    Messages : 262
    Points : 425
    Points
    425

    Par défaut

    Citation Envoyé par pseudocode Voir le message
    [...]

    Pour préciser ta définition, je dirais que dans une application modulaire il n'y a pas d'inter-dépendance fonctionnelle entre 2 composants. Visuellement, on pourrait dire que la chaine fonctionnelle traverse les interfaces sans faire de boucles.

    [...]
    Quand tu dis qu'il n'y a aucune interdépendance entre modules et application modulaire, je ne suis pas tout à fait d'accord. En effet, si j'ai bien compris le concept, les greffons, qui représentent une partie des briques d'une application modulaire, sont normés pour correspondre à une interface application-greffon qui dépend intrinsèquement de l'application concernée. Quand bien même l'interdépendance est infime, on ne peut, par exemple, pas utiliser un greffon de Firefox avec Internet Explorer, Safari ou Google Chrome.
    Timbré tatillon invétéré et fier de l'être!

    Digression du jour:
    SFINAE rocks!

  11. #11
    Rédacteur/Modérateur
    Avatar de pseudocode
    Homme Profil pro Xavier Philippeau
    Architecte système
    Inscrit en
    décembre 2006
    Messages
    9 960
    Détails du profil
    Informations personnelles :
    Nom : Homme Xavier Philippeau
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : décembre 2006
    Messages : 9 960
    Points : 15 759
    Points
    15 759

    Par défaut

    Citation Envoyé par VivienD Voir le message
    Quand tu dis qu'il n'y a aucune interdépendance entre modules et application modulaire, je ne suis pas tout à fait d'accord. En effet, si j'ai bien compris le concept, les greffons, qui représentent une partie des briques d'une application modulaire, sont normés pour correspondre à une interface application-greffon qui dépend intrinsèquement de l'application concernée. Quand bien même l'interdépendance est infime, on ne peut, par exemple, pas utiliser un greffon de Firefox avec Internet Explorer, Safari ou Google Chrome.
    Dans cet exemple, il y a bien un "sens" dans la dépendance fonctionnelle. Ici, Firefox a besoin du greffon pour apporter la fonctionnalité souhaitée (par exemple l'affichage d'un contenu flash). Firefox consomme un service et le greffon produit un service.

    Un cas d'interdépendance serait par exemple un programme avec une IHM et un traitement. L'IHM déclenche le début du traitement, et le traitement à besoin à un moment d'informations provenant de l'utilisateur pour continuer (genre une application web). L'IHM et le traitement se retrouvent dépendant l'un de l'autre. Le résultat c'est un programme qui n'est pas modulaire.

    Je ne sais pas si je suis bien clair.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  12. #12
    Membre éprouvé
    Avatar de VivienD
    Homme Profil pro Vivien Duboué
    Ingénieur en génie électrique, électronique et informatique industrielle
    Inscrit en
    octobre 2009
    Messages
    262
    Détails du profil
    Informations personnelles :
    Nom : Homme Vivien Duboué
    Âge : 24
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Ingénieur en génie électrique, électronique et informatique industrielle
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : octobre 2009
    Messages : 262
    Points : 425
    Points
    425

    Par défaut

    Hum... Pourtant, un greffon peut devoir utiliser des données entrées par l'utilisateur ou les résultats du traitement de ces données pour fonctionner. Est-ce que ce genre de greffon casse la modularité de l'application à cause de cette interdépendance?

    PS: Est-ce que IHM veut dire Interface Homme-Machine?
    Timbré tatillon invétéré et fier de l'être!

    Digression du jour:
    SFINAE rocks!

  13. #13
    Rédacteur/Modérateur
    Avatar de pseudocode
    Homme Profil pro Xavier Philippeau
    Architecte système
    Inscrit en
    décembre 2006
    Messages
    9 960
    Détails du profil
    Informations personnelles :
    Nom : Homme Xavier Philippeau
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : décembre 2006
    Messages : 9 960
    Points : 15 759
    Points
    15 759

    Par défaut

    Citation Envoyé par VivienD Voir le message
    Hum... Pourtant, un greffon peut devoir utiliser des données entrées par l'utilisateur ou les résultats du traitement de ces données pour fonctionner. Est-ce que ce genre de greffon casse la modularité de l'application à cause de cette interdépendance?
    Dans ce cas, ca casse la modularité "fonctionnelle": on ne peut pas dire comment va se comporter le greffon sans savoir comment fonctionne Firefox, et réciproquement.

    Évidemment, on a toujours une modularité "technique" car le code de chaque composant est distinct et l'interface est bien définie.

    PS: Est-ce que IHM veut dire Interface Homme-Machine?
    oui.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  14. #14
    Membre éprouvé
    Avatar de VivienD
    Homme Profil pro Vivien Duboué
    Ingénieur en génie électrique, électronique et informatique industrielle
    Inscrit en
    octobre 2009
    Messages
    262
    Détails du profil
    Informations personnelles :
    Nom : Homme Vivien Duboué
    Âge : 24
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Ingénieur en génie électrique, électronique et informatique industrielle
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : octobre 2009
    Messages : 262
    Points : 425
    Points
    425

    Par défaut

    Alors, la modularité fonctionnelle implique que les modules puissent travailler en parfaite indépendance vis-à-vis des autres modules et de l'application, pas la modularité technique.
    Timbré tatillon invétéré et fier de l'être!

    Digression du jour:
    SFINAE rocks!

  15. #15
    Expert Confirmé Sénior
    Avatar de _skip
    Homme Profil pro
    Développeur d'applications
    Inscrit en
    novembre 2005
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur d'applications
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : novembre 2005
    Messages : 2 725
    Points : 6 918
    Points
    6 918

    Par défaut

    Citation Envoyé par pseudocode Voir le message
    Dans ce cas, ca casse la modularité "fonctionnelle": on ne peut pas dire comment va se comporter le greffon sans savoir comment fonctionne Firefox, et réciproquement.

    Évidemment, on a toujours une modularité "technique" car le code de chaque composant est distinct et l'interface est bien définie.

    oui.
    Tiens je ne connaissais pas cette différentiation.

    On peut alors se poser la question suivante : Existe-t-il à ce moment d'autres solutions pour une modularité "fonctionnelle" que d'avoir recours au multiprocessing? Soit finir avec des exécutables séparés qui s'appellent par ligne de commande?

  16. #16
    Expert Confirmé Sénior

    Inscrit en
    janvier 2007
    Messages
    10 190
    Détails du profil
    Informations personnelles :
    Âge : 57

    Informations forums :
    Inscription : janvier 2007
    Messages : 10 190
    Points : 14 375
    Points
    14 375

    Par défaut

    Citation Envoyé par _skip Voir le message
    On peut alors se poser la question suivante : Existe-t-il à ce moment d'autres solutions pour une modularité "fonctionnelle" que d'avoir recours au multiprocessing? Soit finir avec des exécutables séparés qui s'appellent par ligne de commande?
    ça pourrait être aussi des serveurs qui se parlebt par protocole, des fonctions enregsitrées style callbacks, ...

    C'est un très vaste sujet...
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  17. #17
    Rédacteur/Modérateur
    Avatar de pseudocode
    Homme Profil pro Xavier Philippeau
    Architecte système
    Inscrit en
    décembre 2006
    Messages
    9 960
    Détails du profil
    Informations personnelles :
    Nom : Homme Xavier Philippeau
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : décembre 2006
    Messages : 9 960
    Points : 15 759
    Points
    15 759

    Par défaut

    Citation Envoyé par VivienD Voir le message
    Alors, la modularité fonctionnelle implique que les modules puissent travailler en parfaite indépendance vis-à-vis des autres modules et de l'application, pas la modularité technique.
    la modularité fonctionnelle d'un composant implique que ses fonctions (publiques) soient indépendantes:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    C1 {
      f1(input) {
        return C2.g(input);
      }
      f2(input) {
          return 0;
      }
    }
    
    C2 {
      g(input) {
        return 1;
      }
    }
    S'il y a une interdépendance, on doit considérer les 2 composants comme un seul "gros" module.

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    C1 {
      f1(input) {
        return C2.g(input);
      }
      f2(input) {
        return 0;
      }
    }
    
    C2 {
      g(input) {
        return 1+C1.f2(input);
      }
    }

    Citation Envoyé par _skip Voir le message
    On peut alors se poser la question suivante : Existe-t-il à ce moment d'autres solutions pour une modularité "fonctionnelle" que d'avoir recours au multiprocessing? Soit finir avec des exécutables séparés qui s'appellent par ligne de commande?
    Bah heu... oui. Il suffit d'avoir une claire différenciation entre les fonctions qui "produisent" des données, et celles qui en "consomment". Par exemple une archi web 3-tiers, est une architecture modulaire...
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  18. #18
    Membre éprouvé
    Avatar de VivienD
    Homme Profil pro Vivien Duboué
    Ingénieur en génie électrique, électronique et informatique industrielle
    Inscrit en
    octobre 2009
    Messages
    262
    Détails du profil
    Informations personnelles :
    Nom : Homme Vivien Duboué
    Âge : 24
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Ingénieur en génie électrique, électronique et informatique industrielle
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : octobre 2009
    Messages : 262
    Points : 425
    Points
    425

    Par défaut

    Citation Envoyé par pseudocode Voir le message
    la modularité fonctionnelle d'un composant implique que ses fonctions (publiques) soient indépendantes:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    C1 {
      f1(input) {
        return C2.g(input);
      }
      f2(input) {
          return 0;
      }
    }
    
    C2 {
      g(input) {
        return 1;
      }
    }
    [...]
    Euh... ton exemple me laisse perplexe: est-ce que la fonction C1.f1(input) ne dépend-elle pas de la fonction C2.g(input)? Si oui, est-ce que ça casse alors la modularité fonctionnelle, à moins que l'on considère C1 et C2 comme faisant partie d'un même module?
    Timbré tatillon invétéré et fier de l'être!

    Digression du jour:
    SFINAE rocks!

  19. #19
    Rédacteur/Modérateur
    Avatar de pseudocode
    Homme Profil pro Xavier Philippeau
    Architecte système
    Inscrit en
    décembre 2006
    Messages
    9 960
    Détails du profil
    Informations personnelles :
    Nom : Homme Xavier Philippeau
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : décembre 2006
    Messages : 9 960
    Points : 15 759
    Points
    15 759

    Par défaut

    Citation Envoyé par VivienD Voir le message
    Euh... ton exemple me laisse perplexe: est-ce que la fonction C1.f1(input) ne dépend-elle pas de la fonction C2.g(input)? Si oui, est-ce que ça casse alors la modularité fonctionnelle, à moins que l'on considère C1 et C2 comme faisant partie d'un même module?
    Heu... S'il n'y avait pas de dépendances, on n'aurait aucun problème. On ne se poserait meme pas la question de la modularité. Faire une architecture modulaire, ca implique que les modules se parlent entre-eux.

    Peut-être que c'est plus compréhensible avec ce genre d'exemple:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Firefox {
      display_flash(bytecode) {
        return FlashPlayer.render(bytecode, window);
      }
    }
    
    FlashPlayer {
      render(bytecode,window) {
        // do rendering directly in window
        return OK;
      }
    }
    et

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Firefox {
      display_flash(bytecode) {
        return FlashPlayer.render(bytecode, window);
      }
      display_image(window, bitmap) {
        // display bitmap here
        return OK;
      }
    }
    
    FlashPlayer {
      render(bytecode,window) {
        loop {
          // compute one image here
          Firefox.display_image(window, image);
        } 
        return OK;
      }
    }
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  20. #20
    Membre éprouvé
    Avatar de VivienD
    Homme Profil pro Vivien Duboué
    Ingénieur en génie électrique, électronique et informatique industrielle
    Inscrit en
    octobre 2009
    Messages
    262
    Détails du profil
    Informations personnelles :
    Nom : Homme Vivien Duboué
    Âge : 24
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Ingénieur en génie électrique, électronique et informatique industrielle
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : octobre 2009
    Messages : 262
    Points : 425
    Points
    425

    Par défaut

    OK. Alors l'architecture applicative pour la modularité fonctionnelle ressemble un peu à une architecture serveur-client, si j'ai bien compris.
    Timbré tatillon invétéré et fier de l'être!

    Digression du jour:
    SFINAE rocks!

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •