2010-12-01 31 views
2

Quelles mesures dois-je utiliser pour mesurer la qualité d'un projet PHP? J'en ai quelques-unes en tête comme LOC, les changements fonctionnels, le temps passé, mais je ne suis pas sûr si je vais bien? Que recommanderais-tu?Quelles mesures de qualité dois-je suivre pour un projet PHP et y a-t-il des logiciels disponibles?

De même, existe-t-il des logiciels disponibles pour mesurer la qualité d'un produit (en fonction de paramètres)? Merci pour les pointeurs.

+0

Vous pouvez uniquement mesurer la taille, l'échelle du projet par le LOC et le temps passé, pas la qualité. –

+0

Je suis convaincu qu'il n'y a pas d'autre métrique fiable autre que WPM (WTFs par minute). LoC est mauvais parce que moins de lignes signifie souvent un meilleur code, les changements fonctionnels varient en taille, donc il n'y a pas de constante comme référence et le temps passé n'est pas fiable parce que les bons programmeurs codent beaucoup plus rapidement que les mauvais. programmeurs tout en ajoutant moins de bugs et en écrivant (loin) moins de code. Vous pouvez cependant avoir une idée de la qualité en vérifiant combien de temps les développeurs ont passé sur une fonctionnalité par rapport à ce qu'ils ont estimé. – dbemerlin

Répondre

0

La seule chose qui n'a jamais vraiment fonctionné pour moi était en suivant les principes de conception d'interaction. C'est, suivant ce flux de travail:

Exigences Gathering/Définition des objectifs> Personas utilisateur/fil-images/Test Cases> Conception graphique/développement> Test basé sur les cas de test.

Fondamentalement, vous devriez avoir toute l'interface définie à l'étape 2, ainsi que des cas de test qui définissent les résultats attendus pour les caractéristiques importantes devraient être. Ensuite, après (ou pendant que) vous construisez l'application, vous utilisez les cas de test et les trames de fil pour vous assurer qu'il ressemble à ce qu'il était censé faire. Tester des classes/fonctions individuelles peut vous aider à assurer l'évolutivité, mais la plupart des projets sont mesurés par la qualité de la version actuelle, et non par la facilité avec laquelle vous pouvez corriger ce qui ne va pas avec la version actuelle.

En ce qui concerne les progrès, autant que les gens veulent qu'il y ait une certaine mesure, vous pouvez mesurer qui vous dira si un projet a pris trop longtemps ou est allé trop vite, il n'y a vraiment rien. Les choses ont tendance à prendre aussi longtemps que nécessaire, si vous essayez de réduire ce temps, le produit final n'est pas aussi bon. Cependant, avoir la menace d'une échéance imminente est un puissant facteur de motivation. C'est un équilibre délicat.

J'ai vraiment jamais trouvé d'outils qui favorisent un meilleur logiciel à la fin, au moins aussi loin que la mesure de la qualité va. Il y a beaucoup d'outils pour faire en sorte que cela prenne moins de temps pour atteindre l'objectif, mais pour évaluer le succès de cet objectif, rien ne bat vraiment un document d'avant-match et une évaluation post-match de combien ils rencontre.

Ne laissez jamais personne vous dire que vous ne pouvez pas concevoir un projet complet dans les moindres détails sans code. Vous êtes ASSURÉ un désordre si vous ne le faites pas.

+0

Vous devriez clarifier "grand détail". J'ai vu des diagrammes qui ont modélisé le code à chaque affectation, condition et boucle, ce qui est horrible à mon humble avis. Un bon niveau de détail sont (à mon humble avis) des diagrammes qui modélisent les interfaces et les interactions mais pas la logique des méthodes ni les méthodes privées. Bien sûr, vous devriez d'abord faire la conception de niveau supérieur et travailler à partir de là (Oui, je préfère de haut en bas à bas). – dbemerlin

+0

Par images filaires, je veux dire une esquisse d'interface entièrement réalisée et complète. Pas le traitement graphique, pas une définition de la façon dont le code devrait fonctionner. Les cas de test devraient alors clarifier tout ce qui n'est pas totalement évident à partir des cadres de fils. Tels que la théorie derrière la façon dont le système de classement devrait affecter les postes, ici sur SO. – DampeS8N