Frage

Die Personal Software Process (PSP) ist so konzipiert, Software-Ingenieure zu ermöglichen, zu verstehen und zu verbessern ihre Leistung. Das PSP verwendet Skripte einen Praktiker durch den Prozess zu führen. Jedes Skript definiert den Zweck, die Aufnahmekriterien, die Schritte durchzuführen, und die Ausgangskriterien. PSP0 soll ein Rahmen sein, die zum Starten eines persönlichen Prozesses ermöglicht.

Eines der Skripte in PSP0 verwendet wird, ist die Entwicklung Script, die Entwicklung zu führen ist. Dieses Skript verwendet wird, wenn es einen Bedarf Aussage ist, sind ein Projektplan Zusammenfassung, Zeit und Fehlererfassung Protokolle gemacht, und ein Fehlertyp Standard etabliert ist. Die Aktivitäten dieses Skript sind Design, Code, kompilieren und zu testen. Das Skript wird beendet, wenn Sie ein Herz und Nieren geprüft Anwendung und vollständige Zeit und Fehlerprotokolle haben.

In der Code-Phase, um die Anforderungen zu überprüfen und ein Design, Rekord Anforderungen Mängel im Protokoll machen, und Zeiterfassung durchzuführen. In der Compile-Phase, kompilieren Sie, beheben Sie die Kompilierung-Fehler, und wiederholen Sie, bis das Programm kompiliert, und etwaige Mängel und Zeit aufzeichnen. Schließlich wird in der Testphase, testen Sie, bis alle Tests ohne Fehler ausgeführt und alle Mängel festgelegt sind, während die Zeit und Fehlererfassung.

Meine Bedenken sind mit, wie Sie den Code verwalten, kompilieren und Testphasen bei modernen Programmiersprachen (vor allem interpretierte Sprachen wie Python, Perl und Ruby) und IDEs.

Meine Fragen:

  • In interpretierten Sprachen gibt es keine Kompilierung. Es könnte jedoch Probleme in der Ausführung sein. Ist die Ausführung des Skripts, Tests außerhalb der Einheit (und andere), als „Übersetzen“ oder „test“ Zeit? Sollten Fehler bei der Ausführung Fehler als „Übersetzen“ oder „Test“ werden, wenn Mängel Tracking?
  • Wenn ein Testfall einen Syntaxfehler auftritt, ist, dass ein Codefehler, einen Compiler-Fehler angesehen, oder einen Test Defekt? Der Test fand tatsächlich den Fehler, aber es ist ein Code Problem.
  • Wenn ein IDE einen Fehler identifiziert, die Kompilierung, bevor sie tatsächlich kompilieren, sollte diese identifiziere verhindern? Wenn ja, sollten sie identifiziert und als Compiler-Fehler oder einen Codefehler verfolgt werden?

Es scheint, wie die PSP, zumindest den PSP0 Baseline-Prozess verwendet werden soll mit einer kompilierten Sprache und kleinen Anwendungen mit einem Texteditor geschrieben (und nicht ein IDE). Zusätzlich zu meinen Fragen, würde ich den Rat und Kommentare von jedermann schätzen, die mit oder hat das PSP verwendet.

War es hilfreich?

Lösung 5

Nach den Antworten von Mike Burton lesen , Vinko Vrsalovic und JRL und re die entsprechenden Kapitel in PSP -reading: Ein Self-Improvement Process für Software Engineers, ich habe auf diese Probleme mit meinen eigenen kommen nimmt. Was gut ist, ist jedoch, dass ich einen Abschnitt in dem Buch, das ich ursprünglich verpasst, wenn zwei Seiten zusammengeklebt.

  
      
  • In interpretierten Sprachen gibt es   keine Kompilierung. Es könnte jedoch   sein, um Probleme in der Ausführung. ist die Ausführung   das Skript, außerhalb der Einheit (und   andere) Tests als „Übersetzen“ oder   "Test" Zeit? Sollten Fehler mit   Ausführung in Betracht gezogen werden „Übersetzen“ oder   "Test" Fehler beim Tracking-Defekte?
  •   

Nach dem Buch heißt es, dass „wenn Sie eine Entwicklungsumgebung verwenden, die nicht kompilieren, dann sollten Sie nur die Kompilierung Schritt überspringen.“ Aber es sagt auch, dass, wenn Sie einen Build-Schritt haben, „können Sie die Erstellungszeit und Buildfehler unter der Kompilierung Phase aufnehmen können.“

Das bedeutet, dass für interpretierte Sprachen, werden Sie entweder die Kompilierung Phase aus dem Tracking entfernen oder Kompilation mit Ihrem Build-Skripte ersetzen. Da die PSP0 im Allgemeinen mit kleinen Anwendungen (ähnlich dem, was Sie in einem Universitätslabor erwarten würde) verwendet wird, würde ich erwarten, dass Sie nicht einen Build-Prozess und würde einfach weglassen den Schritt haben würde.

  
      
  • Wenn ein Testfall trifft eine Syntax   Fehler, ist, dass ein Code betrachtet   Defekt, der Kompilierung ein Defekt oder ein Test   Defekt? Der Test fand tatsächlich die   Fehler, aber es ist ein Code Problem.
  •   

Ich würde Fehler aufzuzeichnen, wo sie sich befinden.

Zum Beispiel, wenn ein Testfall einen Defekt hat, das wäre ein Test Defekt sein. Wenn der Test läuft, und ein Fehler wurde in der Anwendung getestet gefunden, das wäre ein Code oder Konstruktionsfehler sein, je nachdem, wo das Problem tatsächlich entstanden ist.

  
      
  • Wenn ein IDE einen Fehler identifiziert,   würde verhindern, dass Zusammenstellung vor   tatsächlich kompilieren, sollte das sein   identifiziert? Wenn ja, sollte es sein,   identifiziert und als Kompilierung verfolgt   Fehler oder ein Codefehler?
  •   

Wenn die IDE einen Syntaxfehler identifiziert, ist es das gleiche wie Sie tatsächlich den Fehler vor der Ausführung Spek. Mit richtig ein IDE gibt es nur wenige Entschuldigungen für Defekte lassen, die Ausführung beeinflussen würde (wie in, verursachen Fehler in der Ausführung der Anwendung andere als Logik / Implementierungsfehler) durch.

Andere Tipps

Im Allgemeinen, wie die PSP ein persönliche Verbesserung ist Prozess, die Antworten auf Ihre aktuellen Fragen nicht egal, solange Sie eine Antwort auswählen und es konsequent anwenden. Auf diese Weise werden Sie in der Lage sein, die Zeiten messen Sie in jede definierte Phase nehmen, das ist das, was PSP nach ist. Wenn Ihr Team zusammen, um den PSP verwendet, dann sollten Sie sich alle einig, welche Skripte verwenden und wie Sie Ihre Fragen zu beantworten.

Meine nimmt die aktuellen Fragen sind (nicht, dass sie relevant sind):

  
      
  • In interpretierten Sprachen gibt es keine Kompilierung. Es könnte jedoch   sein, um Probleme in der Ausführung. ist die Ausführung   das Skript, außerhalb der Einheit (und   andere) Tests als „Übersetzen“ oder   "Test" Zeit? Sollten Fehler mit   Ausführung in Betracht gezogen werden „Übersetzen“ oder   "Test" Fehler beim Tracking-Defekte?
  •   

Für mich Testzeit ist die Zeit, wenn die eigentlichen Tests laufen und nichts anderes. In diesem Fall ist sowohl die Fehler und Ausführungszeit ich als ‚kompiliert‘ Zeit hinzufügen würde, die Zeit, die bei der Erzeugung und Ausführung des Codes verwendet wird.

  
      
  • Wenn ein Testfall einen Syntaxfehler auftritt, ist, dass ein Code betrachtet   Defekt, der Kompilierung ein Defekt oder ein Test   Defekt? Der Test fand tatsächlich die   Fehler, aber es ist ein Code Problem.
  •   

Syntaxfehler sind Codefehler.

  
      
  • Wenn ein IDE identifiziert einen Fehler, die Kompilierung verhindern würde vor   tatsächlich kompilieren, sollte das sein   identifiziert? Wenn ja, sollte es sein,   identifiziert und als Kompilierung verfolgt   Fehler oder ein Codefehler?
  •   

Wenn die IDE Teil Ihrer Werkzeugkette ist, dann ist es Fehler zu sehen, ist wie sie die Fehler entdeckt zu haben, und somit Codefehler. Wenn Sie die IDE nicht regelmäßig verwenden, dann würde ich sie als Kompilierungsfehler zählen.

Ich habe PSP seit Jahren verwendet. Wie schon andere gesagt haben, ist es ein persönlicher Prozess, und Sie müssen PSP0 entwickeln Ihren Entwicklungsprozess zu verbessern. Trotzdem unser Team (alles PSP ausgebildete) rang mit diesen Fragen an mehreren Fronten. Lassen Sie mich Ihnen eine Vorstellung der beteiligten Komponenten, und dann werde ich sagen, wie wir es geschafft.

Wir hatten eine Power "tier"; die Powerbuilder IDE verhindert, dass Sie sogar Ihren Code speichern, bis sie richtig und Links erstellt. Teil des Systems verwendet JSP, obwohl die Menge der Java-Moll war, und vorformulierten, so dass in der Praxis, wir haben es nicht überhaupt zählen. Ein großer Teil des Systems war in JS / JavaScript; dies geschah, bevor die wunderbaren Ajax Bibliotheken kam und stellte einen großen Teil der Arbeit. Der andere Großteil war Oracle PL / SQL; dies hat eine etwas traditionellere Kompilierung Phase.

Wenn in Powerbuilder arbeitet, die Kompilierung (und Link) Phase gestartet, wenn der Entwickler das Objekt gespeichert. Wenn das gelungen sparen verzeichnen wir eine Kompilierung von 0. Ansonsten haben wir die Zeit aufgezeichnet dauerte es für uns, den Fehler zu beheben (n), die den Kompilierung-Defekt verursacht. Am häufigsten wurden diese bei der Codierung injizieren Defekte in der Kompilierung Phase entfernt.

Das gezwungen Compile / link Aspekt des Powerbuilder IDE uns gezwungen, die Code-Review-Phase nach dem Kompilieren zu bewegen. Zunächst verursacht dies eine gewisse Not uns, weil wir nicht sicher waren, wie / ob eine solche Änderung die Bedeutung der Daten beeinträchtigen würde. In der Praxis wurde es ein Nicht-Thema. In der Tat, viele von uns bewegten auch unsere Oracle PL / SQL-Code-Reviews, die nach der Kompilierung-Phase, auch, weil wir, dass gefunden, wenn Sie den Code überprüft, würden wir einige Syntaxfehler beschönigen oft, dass der Compiler melden würde.

Es ist nichts falsch mit der Kompilierung von 0, sowenig es etwas falsch mit einer Prüfzeit von 0 (Ihr Gerät zu testen, ohne Erfassen von Fehlern bestanden bedeuten und lief deutlich schneller als Ihre Maßeinheit). Wenn diese Zeiten Null sind, dann entfernen Sie keine Defekte in diesen Phasen, und Sie werden nicht ein div / 0 Problem auftritt. Sie könnten auch einen nominalen Minimum von 1 Minute aufnehmen, wenn das Sie bequemer macht, oder wenn Ihre Maßnahmen erfordern einen Wert ungleich Null.

Ihre zweite Frage ist unabhängig von der Entwicklungsumgebung. Wenn Sie einen Defekt auftreten, notieren Sie, welche Phase Sie es in (in der Regel entwerfen oder Code) injiziert und die Phase Sie es entfernt (in der Regel Design / Code-Review, kompilieren oder Test). Das gibt Ihnen die Maßnahme als „Hebelwirkung“, die in einer bestimmten Phase die relative Wirksamkeit deutet auf einen Defekt zu entfernen (und unterstützen die „allgemein bekannt“, dass das Entfernen Defekte früher wirksamer sind als sie später im Prozess zu entfernen). Die Phase der Defekt injiziert wurde, in seiner Art ist, das heißt, ein Design oder Codierungsfehler. Die Phase der Mangel wirkt sich nicht auf seine Art entfernt wird.

In ähnlicher Weise mit JS / JavaScript ist die Kompilierung effektiv unermesslich. Wir erfassen konnten keine Zeiten für Kompilierung Phase, aber dann wieder, wir konnten entfernen keine Defekte in dieser Phase. Der Großteil der JS / JavaScript Defekte wurden in Design / Codierung und entfernt in Design Review, Code-Review oder Test injiziert.

Es klingt, im Grunde, wie Ihr formaler Prozess nicht Ihre Praxis Prozess entspricht. Schritt zurück, neu zu bewerten, was Sie tun, und ob Sie einen anderen formalen Ansatz wählen sollte (wenn Sie in der Tat einen formalen Ansatz müssen beginnen mit).

  
      
  • In interpretierten Sprachen gibt es keine Kompilierung. Es könnte jedoch   sein, um Probleme in der Ausführung. ist die Ausführung   das Skript, außerhalb der Einheit (und   andere) Tests als „Übersetzen“ oder   "Test" Zeit? Sollten Fehler mit   Ausführung in Betracht gezogen werden „Übersetzen“ oder   "Test" Fehler beim Tracking-Defekte?
  •   

Die Fehler kategorisiert werden sollten nach, wenn sie erstellt wurden, nicht, wenn Sie fand sie.

  
      
  • Wenn ein Testfall einen Syntaxfehler auftritt, ist, dass ein Code betrachtet   Defekt, der Kompilierung ein Defekt oder ein Test   Defekt? Der Test fand tatsächlich die   Fehler, aber es ist ein Code Problem.
  •   

Wie oben. Gehen Sie immer zurück zum frühesten Zeitpunkt. Wenn die Syntaxfehler eingeführt wurde, während Codierung, dann entspricht sie der Codierungsphase, wenn es eingeführt wurde, während ein Fehler behebt, dann ist es in der Fehlerphase.

  
      
  • Wenn ein IDE identifiziert einen Fehler, die Kompilierung verhindern würde vor   tatsächlich kompilieren, sollte das sein   identifiziert? Wenn ja, sollte es sein,   identifiziert und als Kompilierung verfolgt   Fehler oder ein Codefehler?
  •   

ich glaube, das sollte nicht identifiziert werden. Es ist nur Zeit auf das Schreiben des Codes ausgegeben.

Als Randbemerkung, habe ich den Prozess Dashboard-Tool verwendet PSP Daten zu verfolgen und fand es ganz nett. Es ist kostenlos und Java-basiert, so dass es sollte überall laufen. Sie können es hier: http://processdash.sourceforge.net/

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top