Il ya a plusieurs facons de proceder pour concevoir une application.
1/ On part direct sur le code et le graphe
- avantages :
- rendu a presenter ( client ou collaborateur ) permettant de se faire une idée
Developpement relativement simple
- les problemes non pensés deviennent des freins au developpement et augmente géneralement de manière significative les delais
les probleme d'utilisation post prod ( temps de saisie, main d'oeuvre necessaire a l'administration/ mise a jour souvent impossible a prevoir)
La structure du programme se construit au fil de l'eau
Evolution et maintenance hasardeuse puisque non anticipée
- avantages :
- peu de suprise durant le developpement car les problemes sont soulevés en amont
possibilité de coupler a l'analyse des methodes des developpement (Extreme programming)
possibilité de se référer a des schemas decrivant le fonctionnement (structure définie avant le dev)
Maintenance facilité car la structure est definie en amont
- necessite de "normaliser" les schemas ( UML, MERISE.....)
Pas de graphisme à presenter au client/collaborateur juste des schéma (beaucoup moins parlant)
Nécessite de bien anticiper tout les problemes et de les mettre a plat( contrainte de temps : reunion, compte rendu de reunion, validation )
Il existe beaucoup de méthode pour analyser un probleme et concevoir un systeme approprié:
- Analyse fonctionnelle : permet de definir les fonctions et contrainte necessaire a la résolution d'un probleme. Cette analyse est tres utile car elle n'est pas destiné a l'informatique. Elle permet de bien isoler les process, les nomenclatures produits, les risques encourus et prends en compte plusieurs etapes de vie de la solution (developpement, installation maintenance). C'est un méthode d'analyse issue de l'industrie et permettant a la base l'installation de grosse machine outil
Analyse Merise :permet de recenser toute les données a traiter et d'organiser leur stockage. Elle comprend un dictionnaire des données, MCD ( modele conceptuel de données ) et MCT ( modele conceptuel de traitement ). Cette analyse permet de concevoir les bases de données mais aussi les traitements que va supporter l'application. Je vous conseilles d'aller faire un tour sur fabforce et d'utiliser leur logiciel de modelisation
UML : Méthode d'analyse orienté object. Elle permet de prendre en compte traitement, donnée en organisant le tout sous forme objet avec prise en compte de l'héritage, de la specialisation ect ... Une methode d'anlyse utile jusqu'a present pour la conception de logiciel. Elle est tres utilisé avec le RAD (rapide application developpement) qui permet depuis une analyse UML de sortir l'ensemble des classes generique et de n'avoir que les classes metier a developper. Un tres bon outil pour C++ est Rationnal rose, il commence a en exister aussi pour le php
Analyse de la valeur :Analyse permettant de faire evaluer par un client les differentes fonction et leurs priorités. Tres utiles pour eviter de tomber dans les travers actuels d'un developpement. La méthode XP (extreme programming) l'a d'ailleurs inclus en partie pour evaluer la difficulté d'une fonction, l'utilité, et la priorité d'une fonction.
J'essaierai de faire des exemples d'analyses sur des cas simples. Mais vu le temps que cela prends à formaliser je ne promet rien. Si d'autres personnes sont interressées, ce sera avec plaisir que l'on pourra l'integrer à la FAQ