Question

Le processus logiciel personnel (PSP) est conçu pour permettre aux ingénieurs en logiciel de comprendre et d'améliorer leur performance. La PSP utilise des scripts pour guider un praticien tout au long du processus. Chaque script définit l'objectif, les critères d'entrée, les étapes à suivre et les critères de sortie. PSP0 est conçu pour être un cadre permettant de lancer un processus personnel.

L’un des scripts utilisés dans PSP0 est le script de développement, destiné à guider le développement. Ce script est utilisé une fois qu'il existe une instruction relative aux exigences, un résumé du plan de projet, des journaux d'enregistrement de l'heure et des défauts, et qu'une norme de type de défaut est établie. Les activités de ce script sont la conception, le code, la compilation et le test. Vous quittez le script lorsque vous avez une application soigneusement testée et que vous consignez les journaux de temps et de défauts.

Au cours de la phase de code, vous passez en revue les exigences et en créez une conception, enregistrez les défauts d’exigences dans le journal et effectuez un suivi du temps. Au cours de la phase de compilation, vous compilez, corrigez les erreurs de compilation, répétez la procédure jusqu’à ce que le programme soit compilé et enregistrez les défauts et l’heure. Enfin, dans la phase de test, vous testez jusqu'à ce que tous les tests soient exécutés sans erreur et que tous les défauts soient corrigés, tout en enregistrant le temps et les défauts.

Je suis préoccupé par la façon de gérer le code, la compilation et les phases de test lors de l'utilisation de langages de programmation modernes (notamment les langages interprétés comme Python, Perl et Ruby) et les IDE.

Mes questions:

  • Dans les langages interprétés, il n'y a pas de temps de compilation. Cependant, il pourrait y avoir des problèmes d'exécution. L’exécution du script, en dehors des tests unitaires (et autres), est considérée comme "compiler". ou " test " temps? Les erreurs d'exécution doivent-elles être considérées comme "compilées"? ou " test " des erreurs lors du suivi des défauts?
  • Si un scénario de test rencontre une erreur de syntaxe, est-ce considéré comme un défaut de code, un défaut de compilation ou un défaut de test? Le test a effectivement trouvé l’erreur, mais c’est un problème de code.
  • Si un IDE identifie une erreur qui empêcherait la compilation avant la compilation effective, doit-elle être identifiée? Si tel est le cas, doit-il être identifié et suivi comme une erreur de compilation ou une erreur de code?

Il semble que le PSP, du moins le processus de base PSP0, soit conçu pour être utilisé avec un langage compilé et de petites applications écrites à l’aide d’un éditeur de texte (et non d’un IDE). Outre mes questions, j'apprécierais les conseils et les commentaires de toute personne utilisant ou ayant utilisé le PSP.

Était-ce utile?

La solution 5

Après avoir lu les réponses de Mike Burton , Vinko Vrsalovic , et JRL et repris En relisant les chapitres appropriés dans PSP: un processus d’auto-amélioration pour les ingénieurs en logiciel, j’ai élaboré mes propres réflexions sur ces problèmes. Ce qui est bien, en revanche, c’est que j’ai trouvé une partie du livre que j’avais manquée lorsque deux pages sont collées.

  
      
  • Dans les langages interprétés, il y a   pas de temps de compilation. Cependant, il pourrait   avoir des problèmes d'exécution. Est en train d'exécuter   le script, en dehors de l'unité (et   autres), considérés comme "compiler". ou   " test " temps? Faut-il des erreurs avec   l'exécution sera considérée " compile " ou   " test " des erreurs lors du suivi des défauts?
  •   

Selon le livre, il est indiqué que "si vous utilisez un environnement de développement qui ne compile pas, vous devez simplement ignorer l'étape de compilation." Cependant, il indique également que si vous avez une étape de construction, vous pouvez enregistrer le temps de construction et toutes les erreurs de construction au cours de la phase de compilation, "

."

Cela signifie que pour les langages interprétés, vous allez soit supprimer la phase de compilation du suivi, soit remplacer la compilation par vos scripts de construction. Étant donné que le PSP0 est généralement utilisé avec de petites applications (similaires à celles que vous attendez dans un laboratoire universitaire), je m'attendrais à ce que vous n'ayez pas de processus de construction et omettiez simplement l'étape.

  
      
  • Si un scénario de test rencontre une syntaxe   erreur, est-ce considéré comme un code   défaut, un défaut de compilation, ou un test   défaut? Le test a effectivement trouvé le   erreur, mais c’est un problème de code.
  •   

Je voudrais enregistrer les erreurs où elles se trouvent.

Par exemple, si un scénario de test présente un défaut, il s’agit d’un test. Si le test s’exécutait et si une erreur était détectée dans l’application testée, il s’agirait d’un défaut de code ou de conception, selon l’origine du problème.

  
      
  • Si un IDE identifie une erreur qui   empêcherait la compilation avant   effectivement compiler, devrait-il être   identifiés? Si oui, devrait-il être   identifié et suivi comme une compilation   erreur ou une erreur de code?
  •   

Si l'EDI identifie une erreur de syntaxe, c'est la même chose que si vous l'aviez détectée avant son exécution. Si vous utilisez correctement un environnement de développement intégré, il n’ya guère d’excuses permettant de laisser des défauts qui auraient une incidence sur l’exécution (par exemple, provoqueraient des erreurs lors de l’exécution de l’application autres que des erreurs de logique / d’implémentation).

Autres conseils

En général, la PSP étant un processus d'amélioration personnelle , les réponses à vos questions n'importent pas tant que vous choisissez une réponse et l'appliquez de manière cohérente. De cette façon, vous serez en mesure de mesurer les temps que vous prenez dans chaque phase définie, c'est ce que recherche la PSP. Si votre équipe utilise collectivement le PSP, vous devez tous vous mettre d’accord sur les scripts à utiliser et sur la manière de répondre à vos questions.

Mes opinions sur les questions réelles sont (pas qu'elles sont pertinentes):

  
      
  • Dans les langages interprétés, il n'y a pas de temps de compilation. Cependant, il pourrait   avoir des problèmes d'exécution. Est en train d'exécuter   le script, en dehors de l'unité (et   autres), considérés comme "compiler". ou   " test " temps? Faut-il des erreurs avec   l'exécution sera considérée " compile " ou   " test " des erreurs lors du suivi des défauts?
  •   

Pour moi, le temps de test est le moment où les tests sont exécutés et rien d’autre. Dans ce cas, à la fois les erreurs et le temps d’exécution, j’ajouterais le «temps de compilation», temps utilisé pour générer et exécuter le code.

  
      
  • Si un scénario de test rencontre une erreur de syntaxe, est-ce considéré comme un code?   défaut, un défaut de compilation, ou un test   défaut? Le test a effectivement trouvé le   erreur, mais c’est un problème de code.
  •   

Les erreurs de syntaxe sont des défauts de code.

  
      
  • Si un IDE identifie une erreur qui empêcherait la compilation avant   effectivement compiler, devrait-il être   identifiés? Si oui, devrait-il être   identifié et suivi comme une compilation   erreur ou une erreur de code?
  •   

Si l’EDI fait partie de votre chaîne d’outils, le fait de voir les erreurs revient à dire que vous-même avez repéré les erreurs, et donc les erreurs de code. Si vous n'utilisez pas régulièrement l'EDI, je les compterais comme des erreurs de compilation.

J'ai utilisé la PSP pendant des années. Comme d'autres l'ont dit, il s'agit d'un processus personnel et vous devrez faire évoluer PSP0 pour améliorer votre processus de développement. Néanmoins, notre équipe (formée de PSP) s'est attaquée à ces problèmes sur plusieurs fronts. Laissez-moi vous donner une idée des composants impliqués, puis je vous dirai comment nous avons géré la tâche.

Nous avions un "niveau" PowerBuilder ;; l'EDI PowerBuilder vous empêche même d'enregistrer votre code jusqu'à ce qu'il soit correctement compilé et lié. Une partie du système utilisait JSP, bien que la quantité de Java soit mineure et passe-partout, de sorte qu'en pratique, nous ne le comptons pas du tout. Une grande partie du système était en JS / JavaScript; Cela a été fait avant l'arrivée des merveilleuses bibliothèques Ajax, qui représentaient une grande partie du travail. L'autre grande partie était Oracle Pl / Sql; cela a une phase de compilation un peu plus traditionnelle.

Lorsque vous travaillez dans PowerBuilder, la phase de compilation (et de liaison) a démarré lorsque le développeur a enregistré l'objet. Si la sauvegarde a réussi, nous avons enregistré un temps de compilation de 0. Dans le cas contraire, nous avons enregistré le temps qu'il nous a fallu pour réparer l'erreur ou les erreurs à l'origine du défaut de compilation. Le plus souvent, il s’agissait de défauts injectés lors du codage, éliminés lors de la compilation.

Cet aspect obligatoire de la compilation / liaison de l'EDI PowerBuilder nous a obligés à déplacer la phase de révision du code après la compilation. Au début, cela nous a occasionné une certaine détresse, car nous ne savions pas comment / si un tel changement affecterait la signification des données. En pratique, cela est devenu un non-problème. En fait, nombre d'entre nous ont également déplacé nos critiques de code Oracle Pl / Sql après la phase de compilation, car nous avons constaté que lors de la révision du code, nous dissimulions souvent certaines erreurs de syntaxe signalées par le compilateur.

Il n’ya rien de mal avec un temps de compilation de 0, pas plus qu’un défaut de temps avec un temps de test de 0 (ce qui signifie que votre test unitaire a réussi sans détection d’erreurs et a fonctionné considérablement plus rapidement que votre unité de mesure). Si ces temps sont égaux à zéro, vous ne supprimerez aucun défaut dans ces phases et vous ne rencontrerez pas de problème div / 0. Vous pouvez également enregistrer un minimum nominal de 1 minute, si cela vous rend plus à l'aise ou si vos mesures nécessitent une valeur non nulle.

Votre deuxième question est indépendante de l'environnement de développement. Lorsque vous rencontrez un défaut, vous enregistrez la phase dans laquelle vous l'avez injecté (généralement conception ou code) et la phase que vous avez supprimée (généralement la révision de conception / code, la compilation ou le test). Cela vous donne la mesure appelée "levier", qui indique l'efficacité relative de la suppression d'un défaut dans une phase particulière (et confirme la "connaissance commune" selon laquelle la suppression plus rapide des défauts est plus efficace que leur suppression ultérieure). La phase dans laquelle le défaut a été injecté correspond à son type, c’est-à-dire un défaut de conception ou de codage. La phase de suppression du défaut n’affecte pas son type.

De même, avec JS / JavaScript, le temps de compilation est effectivement incommensurable. Nous n'avons enregistré aucun temps pour la phase de compilation, mais encore une fois, nous n'avons supprimé aucun défaut lors de cette phase. La plupart des défauts JS / JavaScript ont été injectés dans la conception / le codage et supprimés lors de la révision de la conception, de la révision du code ou des tests.

En gros, il semble que votre processus officiel ne corresponde pas à votre processus de pratique. Reculez, réévaluez ce que vous faites et indiquez si vous devez choisir une approche formelle différente (si vous avez réellement besoin d'une approche formelle pour commencer).

  
      
  • Dans les langages interprétés, il n'y a pas de temps de compilation. Cependant, il pourrait   avoir des problèmes d'exécution. Est en train d'exécuter   le script, en dehors de l'unité (et   autres), considérés comme "compiler". ou   " test " temps? Faut-il des erreurs avec   l'exécution sera considérée " compile " ou   " test " des erreurs lors du suivi des défauts?
  •   

Les erreurs doivent être classées en fonction de leur date de création et non du moment où vous les avez trouvées.

  
      
  • Si un scénario de test rencontre une erreur de syntaxe, est-ce considéré comme un code?   défaut, un défaut de compilation, ou un test   défaut? Le test a effectivement trouvé le   erreur, mais c’est un problème de code.
  •   

Comme ci-dessus. Retournez toujours au tout premier moment. Si l'erreur de syntaxe a été introduite lors du codage, elle correspond à la phase de codage. Si elle a été introduite lors de la correction d'un bogue, elle est en phase de défaillance.

  
      
  • Si un IDE identifie une erreur qui empêcherait la compilation avant   effectivement compiler, devrait-il être   identifiés? Si oui, devrait-il être   identifié et suivi comme une compilation   erreur ou une erreur de code?
  •   

Je pense que cela devrait ne pas être identifié. C'est juste du temps passé à écrire le code.

En guise de remarque, j'ai utilisé l'outil Process Dashboard pour suivre les données PSP et je l'ai trouvé plutôt sympa. C'est gratuit et basé sur Java, il devrait donc fonctionner n'importe où. Vous pouvez l'avoir ici: http://processdash.sourceforge.net/

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top