Was ist eine gute Strategie, um Softwareanforderungen in einem SRS zu kennzeichnen?
In der Regel wird die Gliederungsnummerierung für Überschriften verwendet. Diese werden jedoch neu nummeriert, wenn eine neue Überschrift in das Dokument eingefügt wird. Für mich scheint es eine gute Idee zu sein, für jede Softwareanforderung eine stabilere Bezeichnung anzustreben. Dies sollte es einfacher machen, auf eine bestimmte Anforderung zu verweisen, selbst angesichts eines aktualisierten SRS.
Was sind deine Erfahrungen damit?
requirements
requirements-management
Oskar Berggren
quelle
quelle
Antworten:
Eine Strategie:
Es gibt andere Strategien, z. B. die Verwendung gepunkteter Dezimalstellen für Clusteranforderungen:
Wie Sie vielleicht erraten haben, sollten die jeweiligen Anforderungen unter der Nummer der obersten Ebene entsprechend geordnet werden: 1.1, 1.2 ... für GUI, 2.1, 2.3, 2.4 für DB usw. Beachten Sie, dass für diese Strategie eine kontrollierte Methode erforderlich ist Verwalten von Löschungen und Ergänzungen.
Das Wichtigste, was in einem Anforderungsdokument durchgesetzt werden muss: Sobald eine ID für eine Anforderung verwendet wurde, kann sie nicht mehr für andere Anforderungen verwendet werden. Mit anderen Worten, wenn SRS 1234 verwendet und dann gelöscht wurde, kann es später nicht wieder auftauchen. (Wenn Sie dies zulassen, wird die Rückverfolgbarkeit der Anforderungen im Verlauf eines sich entwickelnden Projekts absolut beeinträchtigt.)
Beachten Sie, dass praktisch jede SRS-Organisation / -Struktur Mängel aufweist. Wählen Sie diejenige aus, die zu Ihrer Entwicklungsumgebung und Ihren Anwendungsanforderungen passt. (Zum Beispiel funktionieren die oben genannten Strategien in stark kontrollierten Entwicklungsumgebungen, wie sie von der FDA oder anderen staatlichen Stellen überwacht werden, recht gut.)
Erwägen Sie schließlich die Verwendung eines Anforderungsmanagement-Tools. Es gibt gute da draußen (Open Source für $$$$$), die das alles für Sie erledigen.
quelle
Das beste konzeptionelle Denken ist, dass Anforderungen unterschiedliche Elemente sind, die auf verschiedene Weise miteinander in Beziehung stehen und daher in einer Datenbank gespeichert werden sollten. Die Verwendung eines Textverarbeitungsprogramms zum Speichern von Anforderungen ist der falsche Weg und führt zu vielen Problemen, da dies das konzeptionelle Denken antreibt, dass "Anforderungen ein Dokument sind" - daher diese Frage. Wenn Sie ein Textverarbeitungsprogramm verwenden müssen, halten Sie jede Anforderung getrennt, genau wie wenn Sie Word zum Speichern von Kontakten verwenden würden.
Daher führt die Verwendung der Gliederungsnummerierung zur Aufrechterhaltung der Anforderungen zu Problemen. Stellen Sie sich vor, Sie versuchen, Querverweise zu Test- und SRS- und Kundenanforderungen zu erstellen, wenn Sie die Zahlen ändern? Stellen Sie sich vor, Sie diskutieren "Anforderung 10.2.3.1" und stellen fest, dass es sich bei dem gestrigen Dokument, das Sie dem Kunden gesendet haben, um "10.2.2.1" handelt.
Anforderungen sind ein Etikett und sollten wenig Bedeutung vermitteln. Möglicherweise haben Sie ein oder mehrere kurze Präfixe mit 2 bis 5 Buchstaben, um den Umfang oder die Einheit zu identifizieren. Bis Sie jedoch mehrere Tausend haben, sollte jede implizite Bedeutung begrenzt sein. zB in einem Auto haben Sie möglicherweise EM-FUEL-1234 (Motormanagement, Kraftstoffsteuerungssystem, Anforderung 1234).
Anforderungen sollten projektübergreifend wiederverwendet werden können.
Die Anforderungen müssen über den Umfang und die Lebensdauer des Projekts hinweg eindeutig sein. Als Richtlinie ist das Ändern einer Anforderung zur Klärung dieselbe Nummer, aber um sie erheblich zu ändern, löschen Sie die alte und ersetzen Sie sie. Die Verwendung eines Versionsschemas (Append_1, _2 usw.) kann hilfreich sein.
Wenn Sie diese Datenbank mit Word speichern müssen, können Sie mithilfe von Start- und End-Token die Anforderungen identifizieren. Wenn Sie einen eindeutigen Schriftstil für die Anforderungsnummerierung verwenden, können Sie diese mithilfe von Makros leicht hervorheben, suchen und extrahieren (möglicherweise in eine Datenbank). Beispiel könnte sein
#Req 1234 #
Bla bla bla bla
# ReqEnd #
#Req 1234a #
Bla bla bla bla und noch mehr bla
# ReqEnd #
quelle