Etienne BAUDOUX

Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Etienne BAUDOUX

Forum sur les projets de Etienne BAUDOUX

-29%
Le deal à ne pas rater :
DYSON V8 Origin – Aspirateur balai sans fil
269.99 € 379.99 €
Voir le deal

5 participants

    [TUTO de A à Z] Penser son programme avant de le coder

    Sondage

    Que pensez vous de ce tutoriel ?

    [ 2 ]
    [TUTO de A à Z] Penser son programme avant de le coder  Bar_left67%[TUTO de A à Z] Penser son programme avant de le coder  Bar_right [67%] 
    [ 1 ]
    [TUTO de A à Z] Penser son programme avant de le coder  Bar_left33%[TUTO de A à Z] Penser son programme avant de le coder  Bar_right [33%] 
    [ 0 ]
    [TUTO de A à Z] Penser son programme avant de le coder  Bar_left0%[TUTO de A à Z] Penser son programme avant de le coder  Bar_right [0%] 
    [ 0 ]
    [TUTO de A à Z] Penser son programme avant de le coder  Bar_left0%[TUTO de A à Z] Penser son programme avant de le coder  Bar_right [0%] 
    [ 0 ]
    [TUTO de A à Z] Penser son programme avant de le coder  Bar_left0%[TUTO de A à Z] Penser son programme avant de le coder  Bar_right [0%] 
    [ 0 ]
    [TUTO de A à Z] Penser son programme avant de le coder  Bar_left0%[TUTO de A à Z] Penser son programme avant de le coder  Bar_right [0%] 

    Total des votes: 3
    polien
    polien



    Masculin Nombre de messages : 3003
    Age : 28
    Localisation : Bouches du Rhones
    Emploi/loisirs : velo, informatique, électronique, robotique, modélisme feroviaire
    Humeur : Je commence tout mais ne finit rien :P
    Date d'inscription : 19/05/2011

    [TUTO de A à Z] Penser son programme avant de le coder  Empty [TUTO de A à Z] Penser son programme avant de le coder

    Message par polien Lun 4 Sep 2017 - 22:47

    Bonjour,

    La plupart du temps quand on débute en programmation, on procède comme ceci pour créer son logiciel:

    - Ouvrir SZ (ou VS)
    - Créer un nouveau projet winforms
    - Réfléchir à ce que l'on veut faire comme logiciel en essayant différents composants graphiques (treeview, toolstrip, tabcontrol...)
    - Réfléchir à un algorithme en temps réel pour chacun des évènements / chacune des fonctions.
    - Créer des fonctionnalités au fur et à mesure que l'on programme

    Cette façon de procéder est plutôt adaptée pour les petits projets: bloc-notes, générateur de mot de passe, utilitaire... en revanche elle s'avère contre-productive
    pour les plus gros projets Wink .

    Par exemple j'ai créé un logiciel qui permet rapidement de convertir une proportion (ex: 4/3 = 8/6) en utilisant la règle de trois:

    [TUTO de A à Z] Penser son programme avant de le coder  110
    [TUTO de A à Z] Penser son programme avant de le coder  210

    Dans ce cas là, la réflexion autour de la création du logiciel est basique: faire une règle de 3 en fonction du champ qui est resté vide.

    [TUTO de A à Z] Penser son programme avant de le coder  310

    Ici pour calculer D par exemple, je vais faire D=(BxC)/A soit D=(7x3)/5=21/5.

    Dans ce genre de cas, on as pas besoins de trop planifier le développement du programme: l'algorithme est tellement simple qu'il n'a pas besoins d'être décortiqué.

    [information] Retenez que, dès que plusieurs controls (button, textbox...) ou fonctions font appels à un même enchainement d'action avec des paramètres différents,
    alors il est nécessaire de penser son programme avant de l'élaborer sur ordinateur Surprised . [/information]

    Nous allons apprendre dans ce tutoriel une méthodologie globale pour créer des projets de moyenne ou grande envergure (P.M.G.E pour raccourcir Wink ).


    1 - Que veut t'on faire ?


    La base pour créer un P.M.G.E est de définir en premier ce que l'on veut créer.

    Évidemment, il faut avoir un projet certain dans lequel on pourra s'impliquer dans le temps (par exemple, ne pas passer d'un tableur à un lecteur multimédia amusé)...
    Mais il faut également définir TOUTES les fonctionnalités du logiciel.

    Prenons l'exemple d'un logiciel qui permet d'éditer une bibliothèque de film (Filmotech ci-dessous, j'ai pris une capture au pif sur internet et je ne garantis rien sur la qualité du film Razz ):

    [TUTO de A à Z] Penser son programme avant de le coder  410

    La technique générale consiste à évoquer les fonctionnalités générales puis les fonctionnalités des fonctionnalités puis les fonctionnalités des fonctionnalités des fonctionnalités... qui vont déboucher sur du code Wink .

    Pour ce logiciel par exemple on part d'une fonctionnalité qui découle de ce qu'on veut créer: Gérer une bibliothèque de film.

    Cogitons pour en dégager une hiérarchie:

    [TUTO de A à Z] Penser son programme avant de le coder  512

    Mon début de hiéarchie... cétipabo ? lol
    Au passage, je vous recommande fortement l'outil (open source et gratuit) qui m'a permit de faire cette hiérarchie: Freemind

    [attention]Remarquez que je ne suis pas allé jusqu'au bout dans chacune des branches mais c'est ce qu'il faudrait faire dans l'idéal:
    que les dernières fonctionnalités que vous évoquez soient réalisables avec le moins d'actions possibles ! [/attention]
    [erreur]
    Cette technique demande d'être très à l'aise avec les fonctions de bases (se connecter à une bdd, créer et écrire un fichier, gérer les
    champs vides...) donc c'est pour ça qu'il est recommandé de passer par des petits projets avant d'attaquer les grands ![/erreur]

    2 - Comment doit t'on le faire ?


    Après avoir dégagé les fonctionnalité de base, vous devez retranscrire ce travail en code (ou algo avec SZ).

    Vous pouvez dans un premier temps utiliser une approche fonctionnelle, càd associer à chaque fonctionnalité de base une fonction (qui peut être crée dans SZ depuis SZ2012 je crois...).

    [information]Une fonction est une sorte de machine qui peut recevoir 0, 1, 2,...,+inf d'éléments et renvoyer 0 ou 1 valeurs.

    Par exemple la fonction addition reçois 2 nombres a et b, elle les additionnes et elle met le résultat dans la variable c. Wink[/information]

    La difficulté de cette étape est de transcrire des fonctionnalités de base comme "Générer un fichier XML à partir de l'interface de la fiche" en fonction.

    Il faut définir de cette fonctionnalité 3 choses:


    • Définir si il y a une entrée, si oui laquelle ou lesquelles
    • Définir si il y a une sortie, si oui laquelle
    • Définir l'algorithme à utiliser


    En partant de l'exemple "Générer un fichier XML à partir de l'interface de la fiche" (GFXPIF):


    • L'entrée: Toutes les variables qui contiennent des infos sur le film (nom, réalisateur, année, affiche, résumé...)(étant donné que on doit sauvegarder ce contenu)
    • La sortie: On dit si le fichier c'est bien créé (pour éviter que l'utilisateur n'ait de mauvaises surprise Wink )
    • L'algorithme:
      Code:
      CONTENU est une variable de type texte
      CONTENU=<REAL>%(real)%</REAL>\n<TITRE>%(titre)%</TITRE>\n<ACTEUR>%(acteur)%</ACTEUR>\n...
      Créer un nouveau fichier nommé %(film)%.xml dans le dossier machin/mesfilms/ avec comme contenu %(CONTENU)%
      Renvoyer 1 si le fichier existe bien, sinon renvoyer zéro.
      On se réfère à la norme du XML tout en plaçant nos éléments (mon xml est un peu pourris remarquez... Razz )


    Ainsi il vous suffira d'appeler la fonction GFXPIF pour sauvegarder une fiche !

    [information]Cette fonction pourra resservir quand on voudra modifier la fiche, n'hésitez pas à adapter votre programme pour que les fonctions
    puissent resservir dans plusieurs cas différents. Wink[/information]

    3 - Finissons et concluons


    Il ne vous reste plus qu'à faire appel aux bonnes fonctions avec les bons paramètres dans les bons évènements. Par exemple, appelez la fonction qui sauvegarde la fiche dans le disque dur quand l'utilisateur clique sur le bouton pour sauvegarder la fiche !
    Pensez également à gérer se que renvoie ces fonctions (par exemple, afficher un message d'erreur quand le fichier qui contient le contenu de la fiche n'a pas pu être sauvegardé).



    Au final il faut se dire que le meilleurs moyen de surmonter une difficulté est de découper cette difficulté en sous-difficultés jusqu'à ce que les difficultés
    prises individuellement soient très simple à résoudre. Les gros projets ne doivent pas être résolus en un bloc mais par une succession de blocs Wink .

    J'espère que mon tutos vous a été utile Wink .
    A bientôt !
    Szman
    Szman



    Masculin Nombre de messages : 1257
    Age : 24
    Localisation : 76230 Bois-Guillaume
    Emploi/loisirs : Code, musique, sport
    Humeur : Toujours heureux évidemment!
    Date d'inscription : 22/10/2011

    [TUTO de A à Z] Penser son programme avant de le coder  Empty Re: [TUTO de A à Z] Penser son programme avant de le coder

    Message par Szman Mar 5 Sep 2017 - 9:47

    Hey,

    assez intéressant de montrer le côté plus théorique je dirais dans la conception d'un programme. En effet on a souvent tendance, quand on débute dans le milieu, à vouloir faire quelque-chose, sans savoir quoi, alors on crée son projet qu'on appelle "Test" ou "Tuto" ou même "fjifzeifzejio" pour les plus impatients, et à réfléchir sur le tas après !
    Je sais d'expérience que des fois ça marche, on peut réfléchir sur le tas, mais des fois on a besoin de s'imaginer la situation. Pour mon projet de bac d'info j'avais eu besoin de faire un schéma (j'avais utilisé un outil en ligne je me souviens plus du nom), et ça sert !

    Au fait quand tu dis qu'il faut séparer la difficulté en sous-difficultés, ça me fait penser à un philosophe qui a dit ça mais je sais plus qui.. (je me souviens de vraiment rien aujourd'hui faut croire lol)

    Cordialement,
    Softwarezatorman
    Blackorion35
    Blackorion35
    Je suis là tous les jours
    Je suis là tous les jours


    Masculin Nombre de messages : 2612
    Age : 34
    Localisation : Rouen
    Emploi/loisirs : Technicien Informatique DEC / Associé Directeur Convergence
    Humeur : C'est quand les prochaines vacs... ?
    Date d'inscription : 19/03/2013

    [TUTO de A à Z] Penser son programme avant de le coder  Empty Re: [TUTO de A à Z] Penser son programme avant de le coder

    Message par Blackorion35 Mar 5 Sep 2017 - 10:27

    Hello,

    Très intéressant comme tutoriel ça permettra au débutants de ne pas ce noyer dans leurs objectifs pour concevoir leurs programmes Smile

    Bravo pour ce tuto !
    polien
    polien



    Masculin Nombre de messages : 3003
    Age : 28
    Localisation : Bouches du Rhones
    Emploi/loisirs : velo, informatique, électronique, robotique, modélisme feroviaire
    Humeur : Je commence tout mais ne finit rien :P
    Date d'inscription : 19/05/2011

    [TUTO de A à Z] Penser son programme avant de le coder  Empty Re: [TUTO de A à Z] Penser son programme avant de le coder

    Message par polien Mar 5 Sep 2017 - 13:49

    Bonjour,

    Merci pour vos retours positif amusé

    @Softwarezatorman: Tout à fait et cela reste une vision de la programmation défendable pour les débutants ou ceux qui ont
    besoins de créer leur propres petits outils/expérimentation.
    Tout est une question de contexte et évidemment les gros projets ne dérogent pas à la règle Wink .

    (Rhalala dès que le bac est passé on oublie tout, hein ? lol)
    Pour le philosophe je sais plus non plus qui c'est doute ... Il me semble que cette formulation vient du raisonnement de la
    question "Peut-on tout démontrer ?". En gros, quelque soit ce que l'on veut démontrer, on pourra le démontrer. Car à force
    de conceptualiser l'affirmation on arrivera à des affirmations tellement simple que ces affirmations seront naturelle, évidente... et donc rendrons tout le raisonnement censé.

    Par exemple:

    Polien est bleu car:
    1) Polien mange du poisson                      
    1)a)Le Poisson c'est bon                                
    1)b)Le Poisson contient plein de nutriments

    et:

    2) la nourriture que l'on mange change notre couleur
    2)a) les flamants roses sont roses car ils mangent des crevettes roses

    On reconnait un peu le mode de raisonnement de mon tuto Razz !

    @Blackorion35: Tout à fait ! ça m'est arrivé tellement de fois d 'abandonner un projet par manque d'organisation la gaffe !
    lereparateurdepc
    lereparateurdepc



    Masculin Nombre de messages : 5622
    Age : 32
    Localisation : Calvados
    Emploi/loisirs : Electrotechnicien / électricité, HAUTE TENSION, électronique, informatique, automatisme , Arduino, bref le BRICOLAGE , ...
    Humeur : toujours cool
    Date d'inscription : 31/01/2010

    [TUTO de A à Z] Penser son programme avant de le coder  Empty Re: [TUTO de A à Z] Penser son programme avant de le coder

    Message par lereparateurdepc Mar 5 Sep 2017 - 15:44

    re,

    Super tuto !!! Smile C'est super bien détaillé et même le nom d'un soft en prime !

    Par contre, il va falloir arrêter la philo car là vous allez me perdre ...... Twisted Evil Twisted Evil Twisted Evil Twisted Evil

    Bonne continuation

    Cordialement,
    Le réparateur de PC
    Jerem'
    Jerem'

    Gagnant or au concours SZ2014
    Gagnant or au concours SZ2014


    Masculin Nombre de messages : 935
    Age : 24
    Emploi/loisirs : Développeur et YouTuber à ses heures perdues
    Date d'inscription : 08/08/2013

    [TUTO de A à Z] Penser son programme avant de le coder  Empty Re: [TUTO de A à Z] Penser son programme avant de le coder

    Message par Jerem' Mar 5 Sep 2017 - 16:16

    Hello ,

    Rien à ajouter à ce qui a été dit par les autres : Super tuto Wink

    Cordialement ,

    Jeremy60800
    polien
    polien



    Masculin Nombre de messages : 3003
    Age : 28
    Localisation : Bouches du Rhones
    Emploi/loisirs : velo, informatique, électronique, robotique, modélisme feroviaire
    Humeur : Je commence tout mais ne finit rien :P
    Date d'inscription : 19/05/2011

    [TUTO de A à Z] Penser son programme avant de le coder  Empty Re: [TUTO de A à Z] Penser son programme avant de le coder

    Message par polien Mer 6 Sep 2017 - 14:11

    re,

    @Jeremy60800 merci amusé ,@lereparateurdepc: ah ah promis on arrête lol .
    Szman
    Szman



    Masculin Nombre de messages : 1257
    Age : 24
    Localisation : 76230 Bois-Guillaume
    Emploi/loisirs : Code, musique, sport
    Humeur : Toujours heureux évidemment!
    Date d'inscription : 22/10/2011

    [TUTO de A à Z] Penser son programme avant de le coder  Empty Re: [TUTO de A à Z] Penser son programme avant de le coder

    Message par Szman Mer 6 Sep 2017 - 15:59

    Re,

    le bac ça m'a retourné faut croire  scratch lol (avoir 12 en philo sur un sujet non-traité en cours, donc au full talent, je pense que ça mérite des applaudissements, surtout vu comment j'ai rien foutu de l'année en cours de philo Surprised lol).
    Effectivement je crois bien que c'est en lien avec cette question que j'ai vu ce raisonnement ! Razz
    @lereparateurdepc oups, on va éviter de parler philo alors ! Surprised Razz

    Cordialement,
    Softwarezatorman
    polien
    polien



    Masculin Nombre de messages : 3003
    Age : 28
    Localisation : Bouches du Rhones
    Emploi/loisirs : velo, informatique, électronique, robotique, modélisme feroviaire
    Humeur : Je commence tout mais ne finit rien :P
    Date d'inscription : 19/05/2011

    [TUTO de A à Z] Penser son programme avant de le coder  Empty Re: [TUTO de A à Z] Penser son programme avant de le coder

    Message par polien Mer 6 Sep 2017 - 20:20

    re,

    Bravo Razz !
    Szman
    Szman



    Masculin Nombre de messages : 1257
    Age : 24
    Localisation : 76230 Bois-Guillaume
    Emploi/loisirs : Code, musique, sport
    Humeur : Toujours heureux évidemment!
    Date d'inscription : 22/10/2011

    [TUTO de A à Z] Penser son programme avant de le coder  Empty Re: [TUTO de A à Z] Penser son programme avant de le coder

    Message par Szman Mer 6 Sep 2017 - 20:49

    Re,

    Merci ! Razz

    Cordialement,
    Softwarezatorman

    Contenu sponsorisé


    [TUTO de A à Z] Penser son programme avant de le coder  Empty Re: [TUTO de A à Z] Penser son programme avant de le coder

    Message par Contenu sponsorisé


      La date/heure actuelle est Jeu 21 Nov 2024 - 16:48