Bei der Überprüfung der Anforderungsspezifikation, was „Todsünden“ müssen angegangen werden? [geschlossen]

StackOverflow https://stackoverflow.com/questions/186716

Frage

Bei der Überprüfung Anforderungsspezifikation (das schließt funktionelle, nicht-funktionale Anforderungen, Einschränkungen usw.) jedoch klein oder groß es ist, was sind die „Todsünden“ begangen von Autoren zu achten ist?

Bitte führen Sie nicht mehr als 7 wichtigsten Dinge (in der Reihenfolge der Schwere der niedrigsten), dass (oder nicht getan) in Anforderungsspezifikation haben negative Auswirkungen auf die Qualität der Software-Produkt getan. Weniger als 7 ist vollkommen in Ordnung.

War es hilfreich?

Lösung

OK, das ist mehr als 7, aber gute Voraussetzungen haben folgende Eigenschaften:

  • Unique . Gibt es andere Anforderungen, die ähnlich sind?
  • identifizierbare kann die Anforderung wird eindeutig identifiziert? Kann es im gesamten Entwicklungsprozess zurückgeführt werden?
  • Komplette . Ist irgendetwas fehlt oder Vergessene? Ist es gründlich? Macht es enthält alles, was notwendig zu machen es stand alone?
  • Accurate . Ist es richtig? Ist es richtig definieren die Tor? Gibt es irgendwelche Fehler?
  • Eindeutiges . ist die Beschreibung genau und nicht vage? Gibt es eine Single-Interpretation? ist es leicht zu lesen und zu verstehen?
  • Konsistente . Ist die Beschreibung des die Funktion geschrieben, so dass es steht nicht im Widerspruch mit anderen Gegenständen in die Spezifikation?
  • Relevante . Ist die Aussage notwendig auf die Funktion? Ist es Extra Informationen, die ausgelassen werden sollte? Ist es rückführbar auf ein Original Kundenbedürfnis?
  • Machbar . Kann es sein mit dem implementierten Personal, Tools und Ressourcen innerhalb des festgelegten Budgets und Zeitplan?
  • Code-frei . Ist die Spezifikation Stick mit dem Produkt definiert, und nicht das zugrunde liegende Software-Design, Architektur und Code?
  • Prüfbar . Kann es getestet werden? Reicht Informationen vorgesehen, dass ein Tester könnte erstellen Tests, um die Anforderung zu überprüfen erfüllt ist?
  • priorisierte . Ist es mehr oder weniger wichtig als andere Anforderungen?
  • Nutzt Active Voice . Ist die Spezifikation verwenden, um die aktive Stimme? Passive Stimme nicht immer angeben wer oder was führt die Aktion.
  • Kategorisiert . Ist die Forderung logisch mit ähnlichen gruppiert Anforderungen? mögliche Kategorien ist: Verhalten, Performance, Interface, Datenstrukturen / Elemente, Implementierung, Compliance / Qualität, Operational (Zuverlässigkeit, Sicherheit, Security), Abgeleitete / Engineered.

Eine anständige Anforderung tracking tool kann automatisieren / einige der oben durchzusetzen, wie identifizierbaren, priorisiert, Kategorisierte, sondern nur eine Überprüfung durch das Team kann den Rest überprüfen. Der Schlüssel ist, Ihr Team auf diesen Attributen in der Ausbildung, so dass sie die Praxis immer durch gute und schlechte Beispiele für Anforderungen zu lesen, und ein effizientes Überprüfungsverfahren, die Anforderungen früh genug in Ihrem Lebenszyklus überprüft, wie die Auswirkungen auf den nachgelagerten Aktivitäten haben.

Andere Tipps

Fehlende Anforderungen - viel schwerer zu fangen. Aussortieren Anforderungen in klare Abschnitte (zum Beispiel Sicherheit, Leistung, Styling, etc.) kann machen diese leichter zu erkennen.

Funktionen, Zeit, Qualität - jede zwei holen. sicherstellen, dass die Anforderungen nicht verhängen alle drei in Ihrem Team.

auf Anforderungen zurückschieben, die versuchen, Ihren Prozess zu steuern.

Stellen Sie

für klare Priorisierung von Anfang an.

Bestehen Sie auf eine klare Aufnahmekriterien für jede Anforderung.

Anforderungen müssen spezifisch und eindeutig in Bezug auf das, was gebraucht wird, sollte aber weniger sein, so wie die Anforderungen erfüllen.

zu machen Annahmen -. Überprüfen, dass alles, was wie eine Annahme sieht tatsächlich überprüft

Anforderungen, die nicht leicht zu überprüfen sind als erfüllt werden -. Wechseln Sie in eine Form, die leichter markiert werden können als erfüllt oder nicht, wenn die Überprüfung

Die Anforderung ist nicht festgelegt wer / was die Sache tut.

"The invoice is reconciled to the purchase order."

Bedeutet dies das System etwas tut, oder dem Benutzer?

Schlimmste, das ich an einem Projekt gesehen habe ich codiert für: -

The system shall interface to SAP as required.

Zuerst wird eine Anforderung mit „nach Bedarf“ in es dumm ist. Dass eine Zeile muss Kosten $ 400k haben. Der Kunde hielt es zeigt und sagt es, sagt es Ihnen bla, bla, bla tun werden.

über stringent. - Wenn möglich, relevante Toleranzen angeben

Mehrdeutige Anforderungen sind schlecht.

Nicht überprüfbare und nicht quantifizierbare Anforderungen verdoppeln so.

Natürlich all dies hängt davon ab, welche Art von Anforderung, die Sie erhalten. Ich bin auf typisches Gui oder Web-Anwendung, Batch-Verfahren verwendet und

  • erste Stecke standars, die für sie nicht in jeder Spezifikation definiert werden müssen, siehe
  • Machen Sie es so klein wie möglich - selten kann man eine 200 Seiten lesen dokumentieren und halten alles im Kopf
  • Seien Sie konkret, mesurable, Beton
  • Sie Beispiele (Zeichnungen, Buchhaltung Schriften)
  • Erklären Sie den Zweck vor der Beschreibung der funtction
  • inlcude Leistungsstandards, Belastbarkeit standars, Bereitstellungsanweisungen, Dokumentation für den Betrieb erforderlich

Ich habe auch einen einzigen Rat für die Kritiker: kennen Ihr Thema

Sie müssen sehr detaillierte Kenntnisse über den Kontext des Anforderung, die Notwendigkeit des spezifischen Client, das technische Umfeld und vielleicht die wichtigste, die diese Anforderung zu richten wird und welche Ebene der globalen Verständnis sie haben.

Ich habe sehr schlechte Erfahrungen in Projekten mit vielen Menschen, die Spezifikationen bewerten, da ihre individuellen Kenntnisse sehr flach waren. Sie erhalten die Rückmeldung auf dem gleichen Niveau, vor allem formale Korrekturen aber die tiefe fehlt die Spezifikation wird nur sehr in letzter Zeit im Projekt entdeckt.

Vermeiden ‚Weaselwörter.‘ - jede Sprache, die aus ihrem Kontext entrissen werden können und gemacht klingen schlecht ist schlecht

Stellen Sie sicher, alles ist absolut klar: vage == schlechte Sache (tm)

Meine Empfehlung und was ich immer tun, bevor ein neues Projekt ist die Checkliste überprüfen Sie auf Seite 42,43 von Steve McConnell Code Complete

Das allwissend Wikpedia hat eine gute Übersicht für Anforderungs- http: //en.wikipedia. org / wiki / Requirement # Good_requirements . Ich würde sagen, dass diese Punkte, den Mangel an Überprüfbarkeit ist das, was am häufigsten ist. das große Bild zu verstehen, im Leben wichtig ist, jedoch müssen Sie die Dinge explizit Anforderungen in Ihnen formulieren, ab. Das System muss sich schnell reagieren. Stattdessen wird das System auf alle Anfragen in weniger als 2 Sekunden reagieren.

  • Die Trennung von funktionalen, architektonisch, Schnittstelle, nicht-funktionaler Anforderungen.
  • Die Verwendung von eindeutigen und konsistenten Notation zu beschreiben Entitäten
  • Löschen Eingangs- und Ausgangskriterien für die Anwendungsfälle
  • Haben Sie Flussdiagramme (Mindmaps dienen dem gleichen Zweck wie UML, und sind leichter zu ziehen)
  • Definieren Sie den Umfang in klaren Worten, was abgedeckt ist und was nicht, und wo jene links unerforschten
  • finden
  • Haben Sie eine Traceability-Matrix

Sie betrachten könnten einige Requirement Management und CMMI Dokumente.

Besuchen Sie auch Requirement Prüfliste und Google nach " Kriterien für gute Voraussetzung“.

Diese speziell Prozesse zu schaffen, in der Software-Entwicklung zu helfen.

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