L'analyse de projet : comment réussir son projet avant même de le coder.

UML, Workbench, MCD/Merise, Maquettage, Design Pattern, Astuces...

a marqué ce sujet comme résolu.

Un projet de très gros tutoriel ou de plusieurs tutoriels interconnectés (à voir) au travers duquel ou desquels j'espère vous emmener assez loin en profondeur sur le sujet du développement d'une application web utilisant des technologies telles que PHP, MySQL, XML, et bien d'autres.

Le but ici est bel et bien d'emmener le lecteur à découvrir de multiples facettes du développement d'un site web quand l'étude est faite en profondeur. On va parler d'analyse de projet avec les différentes facettes et nombreux diagrammes UML, la réalisation de maquettes pour visualiser le look de notre application à tel ou tel moment, la réalisation de diagrammes MCD, MLD et MPD pour décrire notre base de données et la générer à la volée, et identifier tous les problèmes qui peuvent se présenter avant même d'avoir commencé à coder. Ce sera aussi l'occasion d'attaquer les design patterns et l'orienté objet en général à ce stade. On commencera aussi à parler de développement en couche, vers la fin quand nos diagrammes commenceront à être très proches du futur code.

Etape suivante, on parlera de la notion de peristance des données, et de fil en aguïlle on arrivera à la manipulation de XML. La persistance des données passe aussi par la base de données mais ce sera abordé dans un second temps seulement. Ici, on apprendra à rédiger efficacement des documents XML, à les définir via XSD, à y naviguer en XPath, et le transformer en n'importe quoi à l'aide d'XSLT.

Ensuite, on s'intéressera à la manière d'interroger et de manipuler notre base de données. Avec MySQL en fil rouge, il y aura beaucoup de chose à dire, des requêtes DDL et DML jusqu'aux transactions, fonctions, procédures et triggers. Le but clairement affiché étant de détacher la structure des tables de l'application.

Etape suivante, conception d'IHM. Autrement dit : HTML et CSS. On verra aussi un peu de programmabilité JavaScript mais ce ne sera pas l'essentiel de ce tutoriel.

Enfin, l'application proprement dite sera abordée en PHP. On y découvrira la notion de programmation en couches, en allant au-delà du MVC classique. On répondra à un certain nombre de problématique plus techniques qui n'étaient pas forcément mise en évidence pendant l'analyse, et d'autres petites astuces ou subtilités liées à PHP.

Tout au long de ces étapes, le fil rouge sera la réalisation d'une application web n-tiers au travers de laquelle on sera à même de rencontrer un maximum de problématiques, au-delà de celle de son simple site : interactions sur le net, utilisation de web services, etc…

Un projet de tuto assez ambitieux, qui demandera donc un peu de temps. En attendant, si vous avez des conseils, idées, ou autres, je suis tout ouïe. :)

J'éditerai le présent message au fur et à mesure de l'évolution de la réflexion.

Edit : abandon du thème "concevoir son site de A à Z" au profit de la seule partie "analyse". Il y aura déjà beaucoup à en dire…

Plan prévu

  1. Pourquoi analyser ? (MOA, MOE, gestion prévisionnelle, pilotage, processus, modèle en cascade, modèle en V, modèle iétratif, quelques mots surMerise et CDM, aperçu de l'UML, logiciels utilisés pour le tutoriel)
  2. Expression du besoin (dialogue avec le client ou la MOA pour savoir ce dont on a besoin, mise en place des exigences et de la vision du projet)
  3. Capture du besoin fonctionnel (Cas d'utilisation, table de traçabilité, table de priorisation)
  4. Analyse du domaine (Diagramme d'activités, scénari, séquence système, maquettage, diagramme de collaboration, classes d'analyse, Etat/Transitions)
  5. Analyse des données (Présentation générale des bases de données, MCD, MLD)
  6. Capture du besoin technique (Réflexion techniques, diagramme de composants, diagramme de déploiement)
  7. L'orienté objet (nécessaire de parler de la théorie "Objet" avant d'attaquer la suite)
  8. Conception préléminaire (Classes participantes, séquence objet, diagramme de communication, diagramme de packages)
  9. Conception détaillée (Affinage des diagrammes de classes afin d'être prêt à coder. On commence à aborder les solutions davantages spécifiques aux techniques et technologies choisies. Découverte des design patterns)
  10. Le testing (je ne sais pas encore comment je vais m'y prendre ici, je manque de connaissance… pour l'instant. ;) )
  11. SCRUM et les méthodes agiles (Présentation des méthodes agiles et de leur intérêt, présentation de SCRUM)
+4 -0

Projet très ambitieux que voilà ! :D

C'est une bonne idée, mais j'ai peur que ce soit trop large pour pouvoir rester accessible et cohérent.

Il vaudrait mieux plusieurs tutos spécialisés je pense. D'autant plus qu'il y aura des tutos PHP, des tutos JavaScript et des tutos HTML/CSS pour traiter d'une bonne partie du développement.

Sinon, si tu parles de persistance des données, je pense qu'il ne faut pas oublier d'évoquer les principales méthodes (la principale étant globalement la BDD) : il n'y a pas que XML dans la vie (qui d'ailleurs a tendance à perdre du terrain au profit de JSON j'ai l'impression). ;)

Pour la partie conception, j'avais commencé un tuto sur feu le SdZ concernant la modélisation de BDD (MDL, MCD…). Je pourrai sans doute te donner un coup de main sur quelques points si je suis dispo (et compétent sur ces points précis, bien sûr). :)

Bah je parle d'accès aux bases de données, juste qu'il s'agit de la partie suivante. :)

XML perdre du terrain au profit de JSON, euh… JSON est utiliser pour les différents protocoles entre services web ou entre applications à travers le net ? JSON est transformable en image, en PDF ou en SVG ? JSON est capable de communiquer avec un automate physique genre robot ? :-°

Après oui, il n'y a pas que l'XML comme persistance fichier. Mais s'il fallait que je les couvre tous, dans 10 ans j'y serais encore, donc il fallait en choisir un. L'avantage à mon sens du XML sur d'autres c'est que les 4/5 des autres sont basés sur XML. Je pense, en exemple phare, à SOAP.

Pas de soucis, si on peut s'y mettre à plusieurs, le résultat viendra plus rapidement et pourra être plus riche. Ce que j'avais en tête sur le coup c'est faire découvrir le MCD et le MLD à travers Oracle Data Modeler, qui me parait très performant et très clair sur le domaine. Cependant, il ne fait pas vraiment de MPD et ne gère pas MySQL, donc pour cette étape je pensais à switcher sur MySQL Workbench pour transposer le diagramme MLD éjà établit et utiliser le modèle Workbench pour générer la base de données à la volée.

+0 -0

JSON est utiliser pour les différents protocoles entre services web ou entre applications à travers le net ?

Darth Killer

Oui, de plus en plus. C'est précisément sur ce terrain que pour moi XML est de moins en moins utilisé au profit de JSON.

De plus en plus d'APIs publiques de grands sites (Twitter par exemple) ont abandonné leur version XML au profit d'une version JSON.

Il est de plus en plus utilisé pour les fichiers de config également.

+5 -0

Bon, il apparait que ce sera effectivement une collection de gros tutoriels. Rien que pour la partie analyse, je me retrouve avec un plan détaillant un gros tutoriel de 11 parties toutes abondamment remplies. Autant dire que ça promet. :p

J'édite mon premier message pour y ajouter le plan de ce premier tutoriel de la collection à venir. Si quelqu'un a des commentaires ou souhaite donner un coup de patte, no souçaille. ;)

+0 -0

C'est très gros à rédiger ouais, c'est bien pour ça que je commence par rendre publique le plan de toutes les parties : si pour telle ou telle partie des gens ont intéressés pour être co-auteurs je ne vais pas dire non :p

+0 -0

Je vais également suivre ce sujet avec grand intérêt, surtout la partie Analyse, qui, si elle est vraiment complète et accessible, peut vraiment être une très bonne chose. Bien souvent, en tant que débutant (et c'est normal), on se jette dans le code, mais bien vite, suivant les projets qu'on développe, on se rend compte que la partie Analyse est très importante et on manque parfois de ressource pour avoir de bonnes pratiques…

J'attend donc ce tuto dès demain sur mon bureau ! :-)

+0 -0

Changement de programme, parce que ce projet s'avère trop ambitieux pour être raisonnable. La partie analyse est inchangée, mais ce sera la seule partie pour l'heure, donc un seul tuto (de 11 parties au moins).

J'aurai l'occasion dans le futur de me pencher sur les autres sujets. ;)

+0 -0

Salut,

Je commencerais d'abord par dire merci à Darth Killer pour ce périple qu'il a entrepris, et je suis très intéressé par un tutoriel pareil. Le plan se montre vraiment très chargé (même comme je regrette un peu le fait qu'il ait juste une partie ).

Je suppose aussi que le tutoriel prendra un certain temps, mais je me demandais s'il est possible déjà de voir le plan détaillé (enfin je pense qu'il y a en). Bon courage pour la suite, je suis très impatient de voir le résultat et surtout pouvoir les appliquer

+0 -0

D'autant que j'ai pas pu l'avancer ces dernières semaines, la formation dans laquelle je suis est TRÈS prenante… :(

Pour ce qui est du plan précisé dans mon premier message, il s'agit de parties, hein ? Pas de chapitres ! Par exemple, "expression du besoin" est prévu d'être une partie complète avec plusieurs chapitres de réflexion et chapitres d'exercice.

Le problème avec l'analyse, c'est qu'il n'y a jamais une manière fixe de penser. A un problème donné correspond une myriade de réponses possibles, sous réserve d'avoir les bons arguments. Ce gros tuto aura donc aussi pour but de sensibiliser les lecteurs sur cette question.

Pour ce qui est des délais dans sa rédaction, je vais être encore overbooké jusqu'à mi-décembre, période où je passerai devant mon jury pour ma soutenance de stage de fin de formation. Par la suite ça devrait aller mieux. ;)

Edit : la partie "testing" sera vraissemblablement annulée, à moins qu'un expert en méthodes de testing me prête main forte à ce moment là. Dors et déjà, si "testing" n'évoque pour vous que les tests unitaires, c'est pas ça. Par "testing" je pensais vraiment à l'étude de test réalisée en parallèle au développement, et généralement menée par une équipe différente. Le testing c'est un métier en soi.

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte