IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Débats sur le développement - Le Best Of Discussion :

programmation modulaire


Sujet :

Débats sur le développement - Le Best Of

  1. #21
    Membre expert Avatar de jabbounet
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2009
    Messages
    1 909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 909
    Points : 3 284
    Points
    3 284
    Par défaut
    Citation Envoyé par davcha Voir le message
    J'ai deux petites questions.

    1 - qui a la plus grosse, alors ? Mac LAK ou ZoinX ?
    2 - comment vous rendez deux modules totalement indépendants, quand l'un utilise les données générées par l'autre ?
    facile en définissant une API assez strict entre tes modules et en ne passant que par elle.

    après qui te fournis les données sur ton api tu t'en fout, cela peu être simulé afin de pouvoir tester tes modules indépendament dans le cadre d'une campagne de tests fonctionnels.

    exemple tout bête:
    les moteurs d'échecs et les interface graphique associé.
    Cnuchess/xboard communique via un protocole spécifique, ensuite tu trouve plein d'api et de moteur d'échecs qui supportent ce protocole.
    tu as aussi http://fr.wikipedia.org/wiki/Universal_Chess_Interface
    http://www.tim-mann.org/xboard/engine-intf.html
    bazar: http://www.improetcompagnie.com/publ...ctacles-6.html

    BÉPO la disposition de clavier francophone, ergonomique et libre: http://bepo.fr/wiki/Accueil

    Emacs Wiki: http://www.emacswiki.org/

    En attente de ce que produira: http://www.pushmid.com

  2. #22
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par ZoinX Voir le message
    Je ne prétends pas avoir raison, mais pour moi ce n'est pas comme ça qu'on définit quels seront les différents modules d'un projet. Certes dans l'idéal c'est évidemment mieux qu'ils soient au maximum indépendants des autres, mais c'est pas dans cette optique là qu'on les définit.
    Eh bien comme le dit Mac LAK vous avez tort, et ça en promet de belles dans le futur...


    Citation Envoyé par simcoin Voir le message
    Le problème reste de trouver des gens assez compétents et expérimentés pour reprendre et maintenir de tels joyaux du code, parce qu'au train où vont les choses tout le monde fait du java ou du C# (j'aime pas spécialement ces langages mais faut accepter les faits) voire du php, donc les futurs génies du C vont se faire très rares...

    Après peut-être que certains langages haut niveau permettent de simplifier ce genre de choses,sans impact notable sur les performances, le tout avec une syntaxe plus agréable, mais pourquoi changer ses habitudes ?

    Voui, de l'autre côté nous avons vu passer à notre âge un certain nombre (pour ne pas dire un nombre certain) d'horreurs et de (graves) problèmes..

    Alors la fougue et l'enthousiasme de la jeunesse c'est bien beau, mais la réalité dépasse souvent la fiction...





    On en reparlera quand on te demandera de reprendre ce vieux projet en C# (langage traité de dinosaures par les étudiants actuels ) ou en Java (la version n'est plus maintenue depuis 15 ans ) dans 20 ans



    Citation Envoyé par davcha Voir le message
    2 - comment vous rendez deux modules totalement indépendants, quand l'un utilise les données générées par l'autre ?
    Pour te répondre et répondre au premier post, la réponse est fonctionelle :

    Des modules bien faits sont en général des modules fonctionnels, correspondant à une certaine (voir une partie d'une) fonctionalité.

    Bien entendu, il y a des dépendances.

    Mais un beau découpage modulaire implique une conception "en service" et en couches, et uniquement une dépendance descendante ou au pire de même niveau : chaque "service" a une API, qui servira aux modules extérieurs. Il peut lui-même faire appel à d'autres modules.

    La souplesse tient dans le découpage strict en termes de fonctionalités.

    Exemple (déjà donné ailleurs) :

    Un navigateur Web.


    1. Couche d'en bas (module) : implantation du protocole TCP/IP
    2. Couche d'au dessus (module) : envoi de packets et récupérations/vérification via le protocole
    3. Couche d'au dessus (module) : fourniture d'un service utilisateur (ouverture socket, envoi message, réception)
    4. Couche d'au dessus (module) : interprétation spécialisée du message (décodage HTML)
    5. Couche d'au dessus (module) : widget graphique permettant l'affichage du message ainsi interprété
    6. Couche d'au dessus (modules) : IHM du navigateur (boutons, historiques, fonction d'impression, etc)



    • Chaque couche se sert de la précédente, mais n'attaque jamais la couche d'en dessus
    • Chaque couche ne sait pas comment elle sera utilisée par la couche du dessus (bibliothèque)
    • Chaque couche peut être modifiée sans avoir à toucher à celles du dessus (exemple : on peut passer pour le graphique de la WIN API à du X11 sans rien changer en dessous).



    Par exemple, un bon découpage en modules de l'IHM (couche du dessus) serait d'avoir un module par fenêtre (fenêtre d'impression, fenêtre générale, ...)
    Il devrait y avoir également des modules (séparés) de gestion d'impression ou du transfert de fichier , indépendantes de l'outil d'IHM.

    etc etc...

    Bref, un bon découpage fonctionnel se transcrit immédiatement en bon découpage en modules.




    PS: errata de frappe : lire "d'en dessus" et non "d"en dessous" (corrigé) dans le dernière liste...
    "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

  3. #23
    Membre expert Avatar de jabbounet
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2009
    Messages
    1 909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 909
    Points : 3 284
    Points
    3 284
    Par défaut
    Citation Envoyé par souviron34 Voir le message
    Bref, un bon découpage fonctionnel se transcrit immédiatement en bon découpage en modules.

    cqfd, ....
    le tout est de savoir découper.
    bazar: http://www.improetcompagnie.com/publ...ctacles-6.html

    BÉPO la disposition de clavier francophone, ergonomique et libre: http://bepo.fr/wiki/Accueil

    Emacs Wiki: http://www.emacswiki.org/

    En attente de ce que produira: http://www.pushmid.com

  4. #24
    Membre expert Avatar de jabbounet
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2009
    Messages
    1 909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 909
    Points : 3 284
    Points
    3 284
    Par défaut
    Citation Envoyé par alex_pi Voir le message
    le mettre sur une carte a puce pourquoi pas, mais quel sera le minimum requit sur l'hôte chargé de l'exécution?

    Il y'a par exemple des pilotes automatique de métro qui tourne avec 16 Mo de Ram et des processeur 68000.
    Je ne sais pas quel serait le matériel requis pour faire la même chose en java.

    Avec un techno comme ça, les développeurs java vont devoir apprendre a se serrer la ceinture et a restreindre l'utilisation des ressource, et ce n'est pas dans leur culture si j'ai bien compris.
    bazar: http://www.improetcompagnie.com/publ...ctacles-6.html

    BÉPO la disposition de clavier francophone, ergonomique et libre: http://bepo.fr/wiki/Accueil

    Emacs Wiki: http://www.emacswiki.org/

    En attente de ce que produira: http://www.pushmid.com

  5. #25
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    Citation Envoyé par jabbounet Voir le message
    le mettre sur une carte a puce pouruqoi pas, mais quel sera le minimum requit sur l'hote chargé de l'execution?

    sans compter que les dev java vont devoir apprendre a se serrer la ceinture et a restreindre l'utilisation des ressource, et ce n'est pas dans leur culture si j'ai bien compris.
    C'est même "pire" que ça... Il y a aussi du Java embarqué dans la téléphonie mobile par exemple, mais ce n'est qu'un sous-ensemble du Java "normal".

    Dans tous les cas, le but cherché par du Java embarqué n'est pas la performance, mais la portabilité d'applications devant être particulièrement mobiles, sans contraintes de matériel hôte... Bref, pas grand-chose à voir avec de l'embarqué "normal", c'est plus proche des ordinateurs miniatures (type PDA) que des applications industrielles, ou des équipements embarqués.

    Pour ma part, je mets ça au même niveau que les jeux Java des téléphones mobiles : c'est rigolo, mais ça ne révolutionne pas grand-chose au final.
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  6. #26
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par jabbounet Voir le message
    cqfd, ....
    le tout est de savoir découper.
    voir mon errata (tu peux coriger dans ta citation)
    "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

  7. #27
    alex_pi
    Invité(e)
    Par défaut
    Citation Envoyé par Mac LAK Voir le message
    Dans tous les cas, le but cherché par du Java embarqué n'est pas la performance, mais la portabilité d'applications devant être particulièrement mobiles, sans contraintes de matériel hôte... Bref, pas grand-chose à voir avec de l'embarqué "normal", c'est plus proche des ordinateurs miniatures (type PDA) que des applications industrielles, ou des équipements embarqués.
    Ce n'est absolument pas le but de javacard, qui a pour vocation de faire de l'embarqué sécurisé. (typiquement carte sim, de carte de crédit, etc.). On est loin du tétris sur le dernier portable tactile.

  8. #28
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    Citation Envoyé par davcha Voir le message
    1 - qui a la plus grosse, alors ? Mac LAK ou ZoinX ?
    Expérience professionnelle ? Moi. Dix ans.
    Mais bon, ayant été pareil à mes débuts que ZoinX, je sais aussi qu'il finira par comprendre (plus ou moins "durement") que l'idéalisme de la jeunesse ne dure qu'un temps... Et qu'il y a parfois un monde entre la plaquette commerciale filée au client et la réalité du code !

    Citation Envoyé par davcha Voir le message
    2 - comment vous rendez deux modules totalement indépendants, quand l'un utilise les données générées par l'autre ?
    Application stricte des interfaces : à partir du "noyau" du programme principal, on définit une interface vers le "bas", une interface vers le "haut". Ces interfaces sont bien sûr sous forme de collection, il n'y a pas qu'une seule entrée ni une seule sortie.

    Ensuite, chaque couche basse vient s'enficher dans la plus basse couche déjà enfichée (le noyau applicatif pour la première, donc). La seule chose qu'une couche basse peut savoir, c'est qu'elle est connectée à "quelque chose" au dessus. Ce que c'est ? Aucune idée, et elle ne doit surtout pas le savoir ! La dernière couche basse se connecte directement au matériel (ou à l'OS).

    Côté haut niveau, c'est presque pareil, mais dans l'autre sens : chaque couche sait qu'elle a "quelque chose" en DESSOUS, mais ne sait pas "quoi". On l'initialise avec les données adéquates, et elle transfère les données (en les traitant) vers la couche du dessus.

    C'est le noyau applicatif qui va décider du "routage" des données, avec ou sans duplication, depuis les couches basses (ex : une carte d'E/S analogique, un capteur quelconque, etc.) vers les couches hautes (ex : un stockage de données, une IHM, un superviseur général, etc.).

    Si tu fais ça encore un peu plus évolué, tu peux également prévoir un retour des données, pas forcément par le même "chemin" que l'arrivée. Ceci permet par exemple d'implémenter proprement des "arcs-réflexe" au niveau du projet, où une décision d'action est prise au plus bas niveau possible (et donc au plus rapide possible aussi), avec ou sans propagation vers le haut niveau.
    Dans tous les cas, c'est le noyau applicatif qui décide du "câblage" logiciel du projet, à l'initialisation, en fonction de la configuration demandée (qui peut être statique et/ou dynamique, bien entendu).

    Au final, tu mets bien sûr en temps réel tout ce qui est noyau applicatif et les couches plus basses, les couches hautes étant elles en temps "normal".


    Citation Envoyé par alex_pi Voir le message
    Ce n'est absolument pas le but de javacard, qui a pour vocation de faire de l'embarqué sécurisé. (typiquement carte sim, de carte de crédit, etc.). On est loin du tétris sur le dernier portable tactile.
    Sécurisé ?? Un truc décompilable comme pas permis, avec des VM pouvant être hookées de partout ?
    Tu m'excuseras si j'ai un peu plus confiance dans les ID fondues sur silicium et protégées par RSA ou système équivalent, hein...
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  9. #29
    alex_pi
    Invité(e)
    Par défaut
    Citation Envoyé par Mac LAK Voir le message
    Sécurisé ?? Un truc décompilable comme pas permis, avec des VM pouvant être hookées de partout ?
    Tu m'excuseras si j'ai un peu plus confiance dans les ID fondues sur silicium et protégées par RSA ou système équivalent, hein...
    Il semble que l'usage du gras ne soit pas suffisant.

    je parle de javaCARD

  10. #30
    Membre à l'essai
    Inscrit en
    Juillet 2009
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 21
    Points : 22
    Points
    22
    Par défaut
    Citation Envoyé par souviron34 Voir le message
    Des modules bien faits sont en général des modules fonctionnels, correspondant à une certaine (voir une partie d'une) fonctionalité.

    Bien entendu, il y a des dépendances.
    Citation Envoyé par souviron34 Voir le message
    Bref, un bon découpage fonctionnel se transcrit immédiatement en bon découpage en modules.
    Mais c'est exactement ce que je me tue à dire depuis le début !!!!!!!!!!! Le découpage en modules correspond au découpages des fonctionnalités de la spec, ce qui suffit généralement à limiter les dépendances, mais ce n'est pas l'objectif premier et il y a forcément quand même des dépendances. EXACTEMENT ce que je dis depuis le début...

    Citation Envoyé par souviron34 Voir le message
    Mais un beau découpage modulaire implique une conception "en service" et en couches, et uniquement une dépendance descendante ou au pire de même niveau : chaque "service" a une API, qui servira aux modules extérieurs. Il peut lui-même faire appel à d'autres modules.
    Encore une fois exactement ce que j'ai dit. On travaille en couches, avec des interfaces et des API, ce qui rend les dépendances peu nombreuses, tout à fait gérables et propres ! Mais on n'élimine pas toute dépendance !

    Citation Envoyé par Mac Lak
    Application stricte des interfaces : à partir du "noyau" du programme principal, on définit une interface vers le "bas", une interface vers le "haut".
    Et une interface, c'est quoi sinon une interconnexion entre deux modules, donc une dépendance ???

    Ca me tue ça... en fait depuis le début on pense exactement la même chose et on essaye de dire la même chose mais on s'est pas du tout compris. Toi tu parles de modules "absolument complètement totalement indépendants sans le moindre lien entre eux" comme si ce devait être des projets différents n'ayant strictement rien à voir entre eux sans la moindre possibilité d'un quelconque lien. Et moi je parle d'avoir des interfaces et API claires entre modules et une organisation par couches (soit exactement ce que toi et souviron avez dit dans vos derniers posts) mais vous avez compris ça comme "on fait des modules tentaculaires qui dépendent tous les uns des autres de manière complètement crade"...

  11. #31
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    Citation Envoyé par alex_pi Voir le message
    Il semble que l'usage du gras ne soit pas suffisant.

    je parle de javaCARD
    Oui, j'ai lu. Et ton monolithe Java, tu le stockes comment, sinon dans une ROM ? Oh, le beau microcode à décompiler !!!
    Sûr que comparé à l'utilisation de microscope à balayage et de cohortes d'analyseurs logiques nécessaires pour "décompiler" un circuit "fondu", c'est vachement plus sécurisé...

    Citation Envoyé par ZoinX Voir le message
    Et une interface, c'est quoi sinon une interconnexion entre deux modules, donc une dépendance ???
    Une dépendance, c'est si dans ton module "A", tu références explicitement un entête (une classe, une constante, on s'en fiche) du module "B". C'est ça, un tentacule dans le code, pas autre chose.
    Quand tes modules dérivent d'une interface commune prévue pour les faire coexister, mais que ni l'un ni l'autre n'ont besoin de l'existence du module d'à côté, alors c'est "séparé".

    Comme je l'ai dit, c'est au noyau principal de coordonner et assembler le tout, c'est lui qui créé les dépendances réelles entre les modules, et ceci à l'exécution. Si c'est à la compilation, c'est "mauvais".

    Citation Envoyé par ZoinX Voir le message
    Toi tu parles de modules "absolument complètement totalement indépendants sans le moindre lien entre eux" comme si ce devait être des projets différents n'ayant strictement rien à voir entre eux sans la moindre possibilité d'un quelconque lien.
    C'est un peu ça, en effet, ne serait-ce que pour assurer le test unitaire et la possibilité de stubber. Le lien existe, mais c'est au travers d'une interface générique déterminée à l'exécution.

    Citation Envoyé par ZoinX Voir le message
    mais vous avez compris ça comme "on fait des modules tentaculaires qui dépendent tous les uns des autres de manière complètement crade"...
    Parce que tel que tu le dis, c'est lu comme "c'est fait en dur dans le code source"... Ce qui est tentaculaire et crade.
    Si c'est dynamique et à l'exécution, comme des briques de Lego empilées les unes sur les autres, c'est "propre". Parce que tu n'as pas besoin d'avoir de dépendances au niveau du code source (#include, using, etc...) pour pouvoir faire ceci, la seule "contrainte" étant de référencer l'interface commune, qui devient la seule et unique dépendance statique des modules.
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  12. #32
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 9
    Points : 10
    Points
    10
    Par défaut
    Citation Envoyé par Mac LAK Voir le message
    Oh, le beau microcode à décompiler !!!
    Sûr que comparé à l'utilisation de microscope à balayage et de cohortes d'analyseurs logiques nécessaires pour "décompiler" un circuit "fondu", c'est vachement plus sécurisé...
    Ah, security through obscurity quand tu nous tiens...

  13. #33
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    Citation Envoyé par Alakazam Voir le message
    Ah, security through obscurity quand tu nous tiens...
    L'idéal étant toujours de mettre les deux : sécurité par algo, puis sécurité par obscurcissement... Aucune protection n'est inviolable, tout est dans la durée de craquage par rapport à la durée d'utilité des éléments craqués.
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  14. #34
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 9
    Points : 10
    Points
    10
    Par défaut
    *Ajouter* de l'obscurité volontairement, est toujours une mauvaise idée, car cela rallonge les temps de développement sans apporter de protection concrète et garantie.

  15. #35
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    Citation Envoyé par Alakazam Voir le message
    *Ajouter* de l'obscurité volontairement, est toujours une mauvaise idée, car cela rallonge les temps de développement sans apporter de protection concrète et garantie.
    Quand l'obscurité est faite de façon tacite (circuit câblé / fondu, cryptage de binaires, etc.), c'est un facteur de ralentissement totalement négligeable.

    Le but n'est pas l'IOCCC, c'est juste de plomber radicalement le lambda moyen (qui ne saura même pas comment commencer), et de ralentir un hacker "pro" qui, de toutes façons, arrivera à craquer les protections s'il le veut vraiment.
    Le but est simplement de le ralentir suffisamment pour qu'il ne soit plus du tout intéressant de craquer les protections en question (obsolescence des données protégées par exemple).
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  16. #36
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 9
    Points : 10
    Points
    10
    Par défaut
    Plomber le lambda moyen ne sert à rien, il n'a pas les moyens de craquer l'algorithme qui est destiné au hacker pro. Ralentir le hacker pro ne sert guère, puisque, proportionnellement à l'algorithme, c'est une protection dérisoire.

    Partant de là, la sécurité par l'obscurité ne sert à rien, ce n'est pas de la sécurité. "Le code est décompilable" par opposition à "le code est dans les circuits électroniques eux-mêmes" ne doit pas être un critère de choix de technologie.

  17. #37
    Membre expérimenté Avatar de davcha
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 258
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 258
    Points : 1 539
    Points
    1 539
    Par défaut
    Citation Envoyé par souviron34 Voir le message
    1. Couche d'en bas (module) : implantation du protocole TCP/IP
    2. Couche d'au dessus (module) : envoi de packets et récupérations/vérification via le protocole
    3. Couche d'au dessus (module) : fourniture d'un service utilisateur (ouverture socket, envoi message, réception)
    4. Couche d'au dessus (module) : interprétation spécialisée du message (décodage HTML)
    5. Couche d'au dessus (module) : widget graphique permettant l'affichage du message ainsi interprété
    6. Couche d'au dessus (modules) : IHM du navigateur (boutons, historiques, fonction d'impression, etc)
    On ne parle pas tout à fait de la même chose, là ^^.

    En fait, plutôt que de couches, je parlais plutôt de plug-ins, quand je parlais de modules.

    Un exemple qui me vient à l'esprit, pour illustrer le problème : un ERP extensible qui de base ne gère pas grand chose, mais dont chaque fonctionnalité fait l'objet d'un plug-in (plug-in gestion du personnel, plug-in temps-passés, plug-in suivi de dossiers, plug-in rentabilité, etc...)
    Il parait évident que le plug-in temps-passés dépend des données fournies par le plug-in gestion du personnel, par exemple.

    J'admet que l'exemple est rapide, et qu'en définitive, peut-être le plug-in temps-passés est inclut directement dans le plug-in gestion du personnel. Mais dans ce cas, ce temps passé doit bien être lié à un projet/dossier/travail. Et ces dernièrs éléments font certainement l'objet d'un plug-in n'ayant rien à voir avec le personnel.

    Bref.

    Dans un cas de ce genre, comment vous faites pour garder une totale indépendance ? Impossible ?

  18. #38
    Membre expert Avatar de jabbounet
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2009
    Messages
    1 909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 909
    Points : 3 284
    Points
    3 284
    Par défaut
    Citation Envoyé par davcha Voir le message
    On ne parle pas tout à fait de la même chose, là ^^.

    En fait, plutôt que de couches, je parlais plutôt de plug-ins, quand je parlais de modules.

    Un exemple qui me vient à l'esprit, pour illustrer le problème : un ERP extensible qui de base ne gère pas grand chose, mais dont chaque fonctionnalité fait l'objet d'un plug-in (plug-in gestion du personnel, plug-in temps-passés, plug-in suivi de dossiers, plug-in rentabilité, etc...)
    Il parait évident que le plug-in temps-passés dépend des données fournies par le plug-in gestion du personnel, par exemple.

    J'admet que l'exemple est rapide, et qu'en définitive, peut-être le plug-in temps-passés est inclut directement dans le plug-in gestion du personnel. Mais dans ce cas, ce temps passé doit bien être lié à un projet/dossier/travail. Et ces dernièrs éléments font certainement l'objet d'un plug-in n'ayant rien à voir avec le personnel.

    Bref.

    Dans un cas de ce genre, comment vous faites pour garder une totale indépendance ? Impossible ?
    ok, mais si c'est bien fait et que les interfaces sont correctement définis tes plug in ne dépendent pas les un des autres dans le sens ou ton plug-in temps passé ne sais absolument rien du plug-in gestion du personnel et de la façon dont il génere ses données.

    tout comme la partie mise en page de ton navigateur internet n'a absolument aucune idée de comment lui arrive les données (tcp/ip,hdlc...) et par quel protocole. ce qu'il reçoit c'est du html/du javascript/ ....
    bazar: http://www.improetcompagnie.com/publ...ctacles-6.html

    BÉPO la disposition de clavier francophone, ergonomique et libre: http://bepo.fr/wiki/Accueil

    Emacs Wiki: http://www.emacswiki.org/

    En attente de ce que produira: http://www.pushmid.com

  19. #39
    Membre chevronné

    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Novembre 2006
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 252
    Points : 1 954
    Points
    1 954
    Par défaut
    Citation Envoyé par jabbounet Voir le message
    ok, mais si c'est bien fait et que les interfaces sont correctement définis tes plug in ne dépendent pas les un des autres dans le sens ou ton plug-in temps passé ne sais absolument rien du plug-in gestion du personnel et de la façon dont il génere ses données.
    Disons que les plugins interdépendants (conséquence de leur responsabilité métier) sont mis en relation par un couplage faible. Ainsi bien qu'un plugin n'est pas autonome, il n'est pas non plus dépendant d'une instance spécifique (mais d'un représentant quelconque conforme aux interfaces). La plateforme OSGi est une bonne illustration de cela.

  20. #40
    Membre expérimenté Avatar de davcha
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 258
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 258
    Points : 1 539
    Points
    1 539
    Par défaut
    Citation Envoyé par jabbounet Voir le message
    ok, mais si c'est bien fait et que les interfaces sont correctement définis tes plug in ne dépendent pas les un des autres dans le sens ou ton plug-in temps passé ne sais absolument rien du plug-in gestion du personnel et de la façon dont il génere ses données.

    tout comme la partie mise en page de ton navigateur internet n'a absolument aucune idée de comment lui arrive les données (tcp/ip,hdlc...) et par quel protocole. ce qu'il reçoit c'est du html/du javascript/ ....
    Ca, oui, on est tout à fait d'accord.
    Toujours est-il que mes plug-ins partagent, partiellement, les mêmes données.

Discussions similaires

  1. L'interet de la programmation modulaire.
    Par giggs dans le forum C
    Réponses: 3
    Dernier message: 01/11/2006, 12h35
  2. programmation modulaire en C
    Par lastrecrue dans le forum GTK+ avec C & C++
    Réponses: 11
    Dernier message: 28/06/2006, 21h03
  3. programmation modulair en C
    Par argon dans le forum C
    Réponses: 32
    Dernier message: 26/06/2006, 10h10
  4. programmation modulaire
    Par barbarello dans le forum C++
    Réponses: 2
    Dernier message: 19/02/2006, 13h04
  5. [Projet] Programmation modulaire d'un projet.
    Par loverdose dans le forum Langages de programmation
    Réponses: 1
    Dernier message: 18/11/2005, 21h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo