Disons que j'ai reçu les spécifications d'un projet d'un client, et maintenant il est temps de commencer à le développer. Normalement, je viens de commencer avec le premier module (généralement l'enregistrement de l'utilisateur), puis passez d'un module à l'autre. Je prévois seulement dans ma tête juste avant que je sois sur le point de commencer sur un module comment il va travailler, mais il n'y a aucune planification avant cela.
Cependant, je pense que ce serait mieux si je suis allé sur les spécifications et que je prévoyais comment le système allait travailler avant que je l'a codé, par exemple quels sont les composants principaux, comment ils vont interagir, etc. Je suis juste Je ne sais pas exactement ce que je devrais planifier.
Donner une meilleure idée de ce que je demande, comment devrais-je
a) diviser le projet en composants,
b) Planifiez leurs interactions, E.g Devrais-je faire des diagrammes de classe, écrire des tests d'unité, etc.?
Des idées?
Lorsque vous avez le privilège de commencer un nouveau projet, vous avez une toile vierge - qui est à la fois passionnante et décourageante en même temps. Je travaille dans des itérations, et c'est comme ça que je divise le travail:
Essentiellement, cette approche de définir progressivement un projet de niveau très élevé à une conception plus détaillée m'a bien servi. Même les interactions entre les sous-systèmes sont affinées lorsque vous essayez réellement de les mettre en œuvre. C'est une bonne chose.
Je pense que ce serait mieux si je suis allé sur les spécifications
Droit. Bonne idée.
prévu comment le système allait fonctionner avant que je le codie.
Bon. Faire plus de cela.
quels sont les composants principaux,
Excellent.
comment ils vont interagir,
Correct.
Je ne suis tout simplement pas sûr de ce que je devrais planifier.
Comment pouvez-vous ne pas être sûr lorsque vous avez déjà répertorié un tas de choses? Si ce sont les choses qui vous concernent, pourquoi ne pas vous concentrer sur ces choses?
Lisez le modèle 4 + 1 Voir le modèle: http://fr.wikipedia.org/wiki/4%2b1_architectural_view_model
Lisez sur la structure de Zachman: http://fr.wikipedia.org/wiki/zachman_framework
C'est ce que vous devez planifier.
comment dois-je) diviser le projet en composants,
Utilisez des modèles de conception largement adoptés pour d'autres projets similaires.
En cas de doute, lisez les plans J2EE pour des idées.
http://www.oracle.com/technetwork/java/javae/blueprint/index.html
comment devrais-je planifier leurs interactions, E.g Devrais-je faire des diagrammes de classe, écrire des tests d'unité, etc.?
Oui. Bonnes idées, tous.
Tente la plus importante à faire: Passez en revue les spécifications, interagissez avec le client pour obtenir des spécifications plus raffinées.
Les exigences sont sans aucun doute incomplètes, vagues ou incorrectes. La plus grande perte de temps fait la mauvaise chose. Les clients ne sont pas des livraiseurs de logiciels professionnels et ne peuvent pas être bons pour développer un bon ensemble d'exigences.
Donc, vous devriez examiner les spécifications, interroger le client et savoir si c'est ce qu'il ait vraiment besoin et veut vraiment, et peut se permettre, etc.
Développer des cas de test/utilisation et examinez avec le client. Si une exigence n'est pas testable, jetez-la.
Développez la conception et assurez-vous que toutes les pièces fonctionnent correctement que ce serait en théorie faire ce dont vous avez besoin.
Développer un prototype d'architecture qui teste toute la technologie à utiliser dans chaque couche mais ignore la fonctionnalité. Vous testez l'architecture et non la spécification fonctionnelle. Avoir la mauvaise architecture signifie que vous devez tout réécrire, alors que la bonne architecture est importante. Assurez-vous qu'il puisse répondre à vos besoins pour la rapidité, l'efficacité, la sécurité, etc.
Vous voulez absolument avoir une conception en place avant de commencer à coder.
Une fois que vous avez cela, je préfère généralement effectuer une première phase d'architecture d'abord afin de définir la manière dont vos couches d'applications s'emboîtent. Cela inclurait des trucs de backbone comme la sécurité et la journalisation.
Ensuite, je construis 1 de haut en bas pour que vous ayez mis en œuvre quelque chose de complètement.
Ensuite, passez de là.
tout
Planifiez tout cela, il est plus facile de le modifier sur papier qu'une seule fois, il est déjà codé, vous obtenez une bonne base de documentation et de nombreux autres avantages.