2010-11-14 1 views
3

Je suis un étudiant de dernière année en informatique et dans le cadre de mon baccalauréat, je fais un projet sur l'exploration de données de données d'expression ADN Microarray. Je vais devoir développer quelques algorithmes tels que les réseaux bayésiens pour courir sur mes ensembles de données pour découvrir comment chaque variable (gènes) s'influencent mutuellement.Quelle méthodologie de programmation sera utilisée pour le projet de fin d'année?

Dans le cadre de ma proposition de projet, je dois parler de la méthodologie que je vais utiliser pour développer mon logiciel. D'après ce que j'ai appris à l'école et à partir de lectures supplémentaires, je trouve que le modèle de développement incrémental semble être une bonne idée. J'exécuterais 2 ou 3 itérations de Plan, Design, Implement jusqu'à ce que j'obtienne toutes les fonctionnalités du logiciel. Est-ce que quelqu'un avec plus de connaissances que moi pourrait me dire que cela semble être une bonne idée.

La raison pour laquelle je ne suis pas sûr à 100% quelle méthodologie j'utiliserais est parce que je n'ai pas d'équipe pour travailler sur le logiciel, je n'ai pas de client avec des exigences et je suis très limité en termes de la quantité de temps pour travailler sur le projet car j'ai 3 autres modules. Toutes les méthodologies que j'ai lues semblent concerner de grands projets logiciels avec des équipes de développeurs. Que faites-vous si vous ne faites que 1 personne et que vous vous concentrez principalement sur l'obtention de 3 à 4 algorithmes plutôt que sur l'obtention d'une large gamme de fonctionnalités.

je pense aussi à l'aide d'UML pour obtenir une meilleure idée de ce que je veux le logiciel pour faire et en utilisant comme une version dépouillée d'un objet Méthodologie orientée.

Je dirais que je devrais utiliser des parties de plus de 1 méthodologie à un niveau très basique, mais je ne peux pas choisir.

Je suis très confus et perdu sur le sujet de sorte que toute aide est grandement appréciée.

Merci,

Répondre

2

Pour ces types de travail, je suggère de ne pas accorder beaucoup d'attention aux méthodes, car après tout, ce qui importe est l'algorithme. Mais, pour avoir une réponse à votre dilemme, je suggère d'utiliser XP (eXtreme Programming). Pourquoi?

  • est léger
  • Il ne nécessite pas de remplir de nombreux documents comme & autres
  • RUP
  • est plus adapté à l'évolution des evironments, tels que le vôtre

Il suffit de prendre une recherche rapide avec Google pour Méthodologie XP et vous obtiendrez un tas de résultats utiles. ARUP (Agile RUP) pourrait aussi être intéressant.

J'espère que je peux vous aider.

+0

Bonjour David, je suis d'accord avec vous. Je pense que je vais écrire sur ma proposition que je vais utiliser certaines des idées de développement Agile et plus précisément la méthodologie XP plus que d'autres. Je pense que mon objectif principal en choisissant de développer dans un domaine où vous n'êtes pas très bien informé devrait être la flexibilité. Merci pour la réponse – Jetnor

2

XP/TDD est en harmonie avec la méthode scientifique; chaque itération est une théorie, les tests sont des expériences

+0

Merci pour la réponse. vous m'avez tous aidé à rendre mes décisions plus claires et basées sur le raisonnement. – Jetnor

+0

J'aime votre point de vue Steven. Je vais y penser différemment maintenant :) :) –

1

Il faut un lot de discipline pour suivre une méthodologie tout en travaillant en solo, assurez-vous de choisir celui qui ne demande pas beaucoup de travail ou vous ne serez jamais à la hauteur .

Si j'étais de retour à l'école dans votre situation avec ce que je sais maintenant, je serais probablement aller pour le test Driven Development. Les tests unitaires sont idéaux pour tester les algorithmes et vous laisseront avec un ensemble de tests que vous pouvez utiliser pour démontrer que vous avez suivi une méthodologie.

+0

Salut mec, merci. J'aime un peu l'idée derrière Extreme Programming. Je pense que cela me donnera plus de flexibilité pour jouer car je ne sais pas vraiment où mon projet va se terminer pour deux raisons principales: Pas assez d'expérience de travail sur des projets de développement de logiciels et pas assez de connaissances sur le sujet. Comme je gagne plus de connaissances, je vais probablement changer certaines exigences. J'aime l'approche du Test Drive car je serai capable de tester les choses et de voir les résultats du qucker. – Jetnor

0

Votre idée de faire le projet dans plusieurs itérations de plan, design, code et test est bien, mais avec de petits projets, il est parfois difficile de résister à l'envie de tout faire à la fois. Si vous êtes emporté et terminez le projet en seulement une ou deux fois, gardez des notes sur l'ordre dans lequel vous avez fait les choses (idéalement, utilisez un système de contrôle de version) de sorte que vous puissiez au moins fudge votre documentation pour faire croire que vous avez utilisé plusieurs itérations. Je ne suis pas d'accord avec une telle approche bien sûr ;-)

+0

Salut LachlanG, Encore une fois merci pour la réponse. Comme je l'ai dit sur le post original, ce serait probablement une utilisation de différents aspects de différentes méthodologies. Ce que je retire de toute cette discussion semble être que, pour les petits projets individuels, il serait bon d'opter pour une méthode qui permet de faire des changements tout au long du cycle de vie. – Jetnor

Questions connexes