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 .
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:
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.
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 . [/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 ).
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 )...
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 ):
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 .
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:
Mon début de hiéarchie... cétipabo ?
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]
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. [/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:
En partant de l'exemple "Générer un fichier XML à partir de l'interface de la fiche" (GFXPIF):
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. [/information]
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 .
J'espère que mon tutos vous a été utile .
A bientôt !
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 .
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:
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.
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 . [/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 ).
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 )...
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 ):
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 .
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:
Mon début de hiéarchie... cétipabo ?
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. [/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 )
- 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.
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. [/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 .
J'espère que mon tutos vous a été utile .
A bientôt !