specifications

___ answer201721 ___

Kommt darauf an.

Es hängt davon ab, ob Sie dafür bezahlt werden, das zu liefern, was Sie gesagt haben, oder dass Sie qualitativ hochwertige Software an den Kunden liefern.

Wenn ersteres, einfach Mehrdeutigkeit aus den Spezifikationen zu beseitigen und dann bauen, was Sie zugestimmt haben. Versuchen Sie, sich von allem zu entfernen, was nicht messbar ist (wie "schnell", "cool", "bissig" usw.).

Wenn letzteres, was Galwegian gesagt hat + Zeit oder einfach alles nicht absolut tot-tote kritisch geschnitten und so schnell wie möglich gebaut wurde. Die Produktion hat eine bemerkenswerte Möglichkeit zu beleuchten, was Sie in Analysis vermisst haben.

    
___ answer200740 ___

Fortwährende, häufige, offene und wechselseitige Kommunikation mit dem Kunden scheint mir die wichtigste "Technik" zu sein, soweit es mich betrifft.

    
___ qstntxt ___

Ein erster Entwurf der Anforderungsspezifikation wurde fertiggestellt, und jetzt ist es an der Zeit, eine Bestandsaufnahme der Anforderungen vorzunehmen, prüfe die Spezifikation . Ein Teil dieses Prozesses besteht darin, sicherzustellen, dass es keine großen Lücken in der Spezifikation gibt. Unnötig zu sagen, dass die Lücken zu sehr ungenauen Schätzungen führen, unvermeidlichen Spielraum später im Projekt und schließlich zu einem Todesmarsch kriechen.

Was sind die guten, effizienten Techniken, um fehlende und implizite Anforderungen zu lokalisieren?

  • Bei dieser Frage geht es um praktische Techniken, nicht um allgemeine Ratschläge, Prinzipien oder Richtlinien.
  • Fehlende Anforderungen sind alles, was für die Vollständigkeit des Produkts oder der Dienstleistung entscheidend ist, aber nicht gedacht oder vergessen wurde,
  • Implizite Anforderungen sind etwas, von dem Benutzer oder Kunden natürlich annehmen, dass es ein Standardbestandteil der Software sein wird, ohne explizit dazu aufgefordert zu werden.

Ich freue mich darauf, die angenommene Antwort erneut zu besuchen, solange jemand eine bessere, umfassendere Lösung vorlegt.

    
___ answer245832 ___

Bewerten Sie den Lebenszyklus der Elemente des Modells in Bezug auf ein generisches / Gesamtmodell wie

%Vor%
  • Weißt du, woher jede Entität kommt und wie du sie in dein System bekommst?
  • Weißt du, wo jede einmal erworbene Entität wie lange verweilen wird?
  • Weißt du, was mit jeder Entität zu tun ist, wenn sie nicht mehr benötigt wird?

für eine feinkörnigere Analyse des Lebenszyklus der Entitäten in der Spezifikation, erstellen Sie eine CRUDE-Matrix für die wichtigsten Entitäten in den Anforderungen; Dies ist eine Matrix mit den Operationen / Anwendungen als Zeilen und den Entitäten als Spalten. Setzen Sie in jeder Zelle ein C, wenn die Anwendung die Entität erstellt, R für Lesen, U für Aktualisierungen, D für Löschen oder E für "Bearbeitungen"; "E" umfasst C, R, U und D (die meisten "Master Table Maintenance" -Apps sind Es). Dann überprüfe jede Spalte auf C, R, U und D (oder E); Wenn einer fehlt (außer E), finde heraus, ob es benötigt wird. Die Zeilen und Spalten der Matrix können neu angeordnet werden (manuell oder unter Verwendung einer Affinitätsanalyse), um zusammenhängende Gruppen von Einheiten und Anwendungen zu bilden, die im Allgemeinen Teilsystemen entsprechen; Dies kann später bei der Verteilung des physischen Systems helfen.

Es ist auch nützlich, der CRUDE-Matrix eine Entitätsspalte "User" hinzuzufügen und für jede Anwendung (oder Feature oder Funktionsbereich oder was auch immer Sie die Verarbeitungs- / Verhaltensaspekte der Anforderungen nennen möchten) anzugeben, ob Input von benötigt wird der Benutzer, erzeugt Ausgabe für den Benutzer oder Interagiert mit dem Benutzer (ich verwende hierfür I, O und N und mache den Benutzer immer zur ersten Spalte). Dies hilft zu identifizieren, wo Benutzerschnittstellen für Dateneingabe und Berichte benötigt werden.

Ziel ist es, die Vollständigkeit der Spezifikation zu überprüfen; Mit den oben genannten Techniken kann überprüft werden, ob der Lebenszyklus der Entitäten in Bezug auf die identifizierten Entitäten und Anwendungen "geschlossen" ist.

    
___ answer201745 ___

Wie wäre es mit dem Bau eines Prototyps?

    
___ answer200994 ___

Hier finden Sie die fehlenden Anforderungen.

  1. Zerlegen Sie die Anforderungen in kleine kleine Schritte. Wirklich klein. Etwas, das in zwei Wochen oder weniger gebaut werden kann. Sie werden viele Lücken finden.

  2. Priorisieren Sie diejenigen in das, was am besten wäre, zuerst zu haben, was als nächstes zu dem kommt, was nicht wirklich wichtig ist. Sie werden feststellen, dass einige Lückenfüller keine Rolle spielten. Sie werden auch feststellen, dass einige der ursprünglichen "Anforderungen" lediglich wünschenswert sind.

  3. Diskutieren Sie Meinungsverschiedenheiten darüber, was für die Endnutzer am wichtigsten ist und warum. Zwei Benutzer haben drei Meinungen. Sie werden feststellen, dass einige Benutzer keine Ahnung haben und keine ihrer "Anforderungen" benötigt werden. Du wirst feststellen, dass manche Menschen kein Rückgrat haben und Dinge, die sie nicht mutig genug sind, um laut zu sagen, "erforderlich" sind.

  4. Erhalte nur einen Konsens über die ersten zwei oder drei. Diskutiere nicht jede Nuance. Es ist nicht möglich, sich Software vorzustellen. Es ist nicht möglich, sich vorzustellen, wie Software sein wird und wie sie sie verwenden wird. Die "Anforderungen" der meisten Leute sind Beschreibungen, wie der Kampf um die unangemessenen Geschäftsprozesse, an denen sie heute festhalten, zu bewältigen ist.

  5. Erstellen Sie zuerst den wichtigsten Teil mit der höchsten Priorität. Gib es den Benutzern.

  6. GOTO 1 und wiederholen Sie den Vorgang.

"Warte", sagst du, "Was ist mit dem Gesamtbudget?" Was ist damit? Sie können nie das Gesamtbudget kennen. Mach folgendes:

Sehen Sie sich jedes in Schritt 1 definierte Inkrement an. Geben Sie einen Preis pro Inkrement an. In der Reihenfolge der Priorität. Auf diese Weise kann jemand so viel oder so wenig auswählen, wie er möchte. Es gibt keine große, gruselige "Big Budget Schätzung mit einer Menge Nullen". Es ist alles verhandelbar.

    
___ answer245810 ___

Ich habe eine Modellierungsmethode namens Behavior Engineering (bE) verwendet, die den ursprünglichen Spezifikationstext verwendet, um das resultierende Modell zu erstellen. Wenn Sie das Modell haben, können Sie fehlende oder unvollständige Abschnitte der Anforderungen leichter identifizieren.

Ich habe die Methode in bisher sechs Projekten verwendet, die von weniger als zehn Anforderungen bis zu über 1.300 Anforderungen reichen. Wenn Sie mehr wissen möchten, würde ich vorschlagen, zu www.behaviourengineering.org dort einige wirklich gute Arbeiten bezüglich der Methodik zu machen.

Die Firma, für die ich arbeite, hat ein Werkzeug zur Modellierung erstellt. Die Arbeitsrate, um das Modell tatsächlich zu erstellen, ist etwa 5 Anforderungen für einen Anfänger und einen Experten etwa 13 Anforderungen pro Stunde. Das Tolle an der Methode ist, dass Sie nicht wirklich etwas über die Domäne wissen müssen, für die die Spezifikation geschrieben wurde. Mit nur dem Benutzertext wie Nomen und Verben findet der Modellierer in sehr kurzer Zeit Lücken im Modell.

Ich hoffe, das hilft

Michael Larsen

    
___ tag123spezifikationen ___ Eine Spezifikation (auch allgemein als "spec" bezeichnet) ist eine Beschreibung einer definierten Technologie und der Ressourcen, die sie anbietet. ___ qstnhdr ___ Wesentliche Techniken, um fehlende Anforderungen ausfindig zu machen? ___ answer200982 ___

Ich stimme mit Galwegian überein. Die beschriebene Technik ist weitaus effizienter als der Ansatz "Warten auf Kunden, um uns anzuschreien".

    
___ answer263104 ___

Als ich viel Literatur über Softwareanforderungen gelesen habe, habe ich diese zwei interessanten Bücher gefunden:

Diese beiden Autoren heben sich wirklich von der Masse ab, weil sie meiner bescheidenen Meinung nach einen wirklich guten Versuch machen, die Entwicklung von Anforderungen in einen sehr systematischen Prozess zu verwandeln - mehr wie Technik als Kunst oder schwarze Magie. Insbesondere Michael Jacksons Definition dessen, was Anforderungen wirklich sind - ich denke, es ist das sauberste und genaueste, das ich je gesehen habe.

Ich würde diesen Autoren keinen guten Dienst erweisen, wenn ich versuche, ihren Ansatz in einem kurzen Beitrag hier zu beschreiben. Also werde ich das nicht tun. Aber ich werde versuchen zu erklären, warum ihr Ansatz für Ihre Frage äußerst relevant zu sein scheint : es erlaubt Ihnen, die meisten (nicht alle, aber die meisten!) Von Ihnen Anforderungen Entwicklung Arbeit zu einem Haufen zu verarbeiten von Checklisten *, die Ihnen sagen, welche Anforderungen Sie definieren müssen, um alle wichtigen Aspekte des gesamten Kundenproblems abzudecken. Mit anderen Worten, dieser Ansatz soll das Risiko minimieren, wichtige Anforderungen zu verpassen (einschließlich derer, die oft implizit bleiben) .

Ich weiß, dass es mag mag klingen mag, aber es ist nicht. Es bedarf noch erheblicher mentaler Anstrengungen, um zu diesen "magischen" Checklisten zu kommen: Man muss zuerst das Problem des Kunden artikulieren, dann gründlich analysieren und schließlich in sogenannte "Problemframes" zerlegen (die mit dieser Magie einhergehen) check-lists nur dann, wenn sie mit einigen typischen von den Autoren definierten Problemfeldern übereinstimmen. Wie ich schon sagte, verspricht dieser Ansatz nicht, alles einfach zu machen. Aber es verspricht definitiv, den Prozess der Anforderungsentwicklung so systematisch wie möglich zu gestalten.

Wenn die Anforderungsentwicklung in Ihrem aktuellen Projekt bereits von Anfang an weit fortgeschritten ist, ist es möglicherweise nicht möglich, zu diesem Zeitpunkt zu versuchen, den Problemrahmenansatz anzuwenden (obwohl dies stark davon abhängt, wie Ihre aktuellen Anforderungen organisiert sind). Dennoch empfehle ich dringend, diese zwei Bücher zu lesen - sie enthalten eine Menge Weisheit, die Sie vielleicht noch auf das aktuelle Projekt anwenden können.

Meine letzten wichtigen Notizen zu diesen Büchern:

  • Soweit ich weiß, ist Mr. Jackson der ursprüngliche Autor der Idee von "Problemframes". Sein Buch ist ziemlich akademisch und theoretisch, aber es ist sehr, sehr lesbar und sogar unterhaltsam.

  • Herr. Kovitz 'Buch versucht zu zeigen, wie Mr. Jackson Ideen in der realen Praxis angewendet werden können. Es enthält auch viele nützliche Informationen zum Schreiben und Organisieren der tatsächlichen Anforderungen und Anforderungen Dokumente.

Sie können wahrscheinlich vom Kovitz-Buch ausgehen (und sich nur auf Mr. Jacksons Buch beziehen, wenn Sie wirklich tiefer in die theoretische Seite einsteigen müssen). Aber ich bin sicher, dass Sie am Ende des Tages beide Bücher lesen sollten, und Sie werden das nicht bereuen. : -)

HTH ...

    
___
5
Antworten

C # /. NET: Ist 'typeof (variable)' ein mögliches Sprachmerkmal?

Ich habe mehrmals versucht, den deklarierten Typ relativ weit von seiner Deklaration aus einer Variablen zu entlocken, um herauszufinden, dass typeof(T) nur bei Typnamen funktioniert. Ich habe mich gefragt, ob es irgendwelche brechenden Än...
08.11.2010, 15:39
1
Antwort

Gibt es eine API für den Zugriff auf die Telefondatenbank von einer Site wie GSMARENA? [geschlossen]

Ich würde gerne wissen, ob es eine API für den Zugriff auf Telefon-Datenbank von einer Website wie GSMARENA oder einer anderen Website für diese Angelegenheit gibt? Ich brauche es für mein Offline-Projekt und frage mich, ob ich Hilfe bekommen ka...
21.03.2016, 04:05
4
Antworten

c # - ist SHORT Datentyp oder es ist immer noch INT?

Ich mache eine Klassifizierung und ich bin mir nicht sicher: INT ist ein primitiver Datentyp mit dem Schlüsselwort "int" Aber ich kann Int16, Int32 oder Int64 verwenden - ich weiß, dass C # eigene Namen für sie hat. Aber sind diese Datenty...
07.08.2010, 16:34
5
Antworten

Warum gibt es in C ++ keine "NULL-Referenz"?

Ich habe die C ++ - FAQ gelesen - " 8.6 - Wann sollte ich Referenzen verwenden und Wann sollte ich Zeiger verwenden? "und insbesondere diese Aussage:    Verwenden Sie Referenzen, wenn Sie können, und Zeiger, wenn Sie müssen.       ...     ...
10.07.2012, 07:49
3
Antworten

Android 2.1 vs 2.2

Ich habe die meiste Zeit des Jahres für Android 2.2+ entwickelt. Aber wenn ich mir die "Liste der Android-Geräte" auf Wikipedia anschaue, sehe ich eine beträchtliche Anzahl von Android 2.1-Geräten. Viele von ihnen haben möglicherweise noch nie O...
17.08.2011, 20:04
2
Antworten

Federdaten JPA-Spezifikationen - @ OneToMany-Abhängigkeit

Ich habe ein Problem damit, die Liste von der Entity Person zu erhalten, die JPA-Spezifikationen für Spring-Daten verwendet (wegen Paginierung). Ich muss alle Notizen nach Personen erhalten, aber die Abhängigkeit zwischen diesen beiden Entitäten...
20.08.2012, 11:44
3
Antworten

Gibt es die Scala-Spezifikation 2.10 und 2.11?

Ich habe scala offizielle Seite besucht, so dass es nur einen Link zu pdf-Spezifikation . Und diese Spezifikation über scala 2.9. Gibt es Dokumente für 2.10 und 2.11 Scala-Versionen? Ich meine volle pdfs für jede Version?     
15.08.2014, 05:02
2
Antworten

Methodentypinferenz in der Java-Spezifikation

Ich schreibe gerade einen Java-Compiler und habe Abschnitt 15.12.2.7 implementiert. von der JLS7 ( Ссылка ), eins der ärgerlichsten Abschnitte der Spezifikation. Ich habe immer noch ein Problem, da die Spezifikation irgendwie unterspezifiziert o...
21.05.2012, 19:01
1
Antwort

HTML5 Appcache-Manifestdateierweiterung

Ich lese diese Zeile von HTML5 Boilerplate : %Vor% Und ich habe das von Ссылка gesehen %Vor% Hier ist meine Frage. Was ist Microsoft nicht registrierte Anwendung / Manifest-Typ und wann stößt es zusammen?     
29.06.2011, 15:17
1
Antwort

Fetch API - Was nutzt Redirect: Manuell

Ich habe kürzlich mit der JavaScript Fetch API gespielt. Soweit ich weiß, werden standardmäßig alle Weiterleitungen transparent behandelt und am Ende bekomme ich eine Antwort vom letzten Anruf in der Redirect-Kette. Allerdings konnte ich fetc...
10.03.2017, 10:27