In dem Buch „Moderne Methoden zur Beschreibung der funktionalen Anforderungen an Systeme“ beschrieb Alistair Coburn eine Methode zum Schreiben eines Teils der Problemstellung, nämlich die Anwendungsfallmethode.
Was ist das? Dies ist eine Beschreibung eines Benutzerinteraktionsszenarios mit einem System (oder Unternehmen). Das System fungiert gleichzeitig als Black Box (und dies ermöglicht es, die komplexe Entwurfsaufgabe in das Entwerfen der Interaktion und das Sicherstellen dieser Interaktion zu unterteilen). Gleichzeitig werden Notationsstandards eingeführt, die das Lesen auch für Nichtteilnehmer erleichtern und es Ihnen ermöglichen, einige Überprüfungen auf Vollständigkeit und Einhaltung der Ziele der Stakeholder durchzuführen.
Anwendungsfallbeispiel
Wie das Szenario am Beispiel der Autorisierung auf der Website per E-Mail aussieht:
(System) Melden Sie sich auf der Website an, um auf Ihr persönliches Konto zuzugreifen. ~~ (Meeresspiegel)
Kontext: Ein nicht autorisierter Kunde ist auf der Website autorisiert, sodass die Website sie erkennt und persönliche Informationen dafür anzeigt: Browserverlauf, Einkäufe, die aktuelle Anzahl der Bonuspunkte usw. unter Verwendung von E-Mail als Login.
Stufe: Benutzerziel
Hauptdarsteller: Kunde (Besucher unseres Online-Shops)
Geltungsbereich: Kundeninteraktion mit der Website des Online-Shops
Interessenten und Interessen:
- Der Vermarkter möchte, dass die maximale Anzahl von Website-Besuchern identifiziert wird, um persönliche Newsletter besser erreichen zu können.
- Ein Sicherheitsspezialist möchte den unbefugten Zugriff auf die persönlichen Daten des Besuchers verhindern, einschließlich der Versuche, ein Passwort für ein Konto auszuwählen oder nach einem Konto mit einem schwachen Passwort zu suchen.
- ein Angreifer möchte Zugang zu Opferboni erhalten,
- Wettbewerber wollen negatives Feedback zu Produkten hinterlassen,
- Das Botnetz möchte den Kundenstamm des Geschäfts ermitteln und den Angriff nutzen, um die Website funktionsunfähig zu machen.
Voraussetzungen: Der Besucher darf nicht eingeloggt sein.
Mindestgarantien: Der Besucher wird feststellen, ob ein Anmeldeversuch erfolgreich oder erfolglos war.
Erfolgsgarantien: Der Besucher ist berechtigt.
Das Hauptszenario:
- Der Client startet die Autorisierung.
- Das System bestätigt, dass der Client nicht autorisiert ist und die Anzahl der erfolglosen Anmeldeversuche aus dieser Sitzung (Suche nach einem schwachen Kennwort für viele Konten) gemäß Sicherheitsregel Nr. 23 nicht überschreitet.
- Das System erhöht den Zähler für die Anzahl der Autorisierungsversuche.
- Das System zeigt dem Client ein Autorisierungsformular an.
- Der Kunde gibt E-Mail und Passwort ein.
- Das System bestätigt die Anwesenheit eines Kunden mit einer solchen E-Mail im System und das Passwort stimmt überein und überschreitet nicht die Anzahl der Versuche, dieses Konto gemäß Sicherheitsregel Nr. 24 zu betreten.
- Das System autorisiert den Client, fügt den Browserverlauf und den Warenkorb dieser Sitzung mit der letzten Sitzung dieses Client-Kontos hinzu.
- Das System zeigt eine Autorisierungserfolgsmeldung an und fährt mit dem Schritt des Skripts fort, von dem aus der Client die Autorisierung unterbrochen hat. In diesem Fall werden die Daten auf der Seite unter Berücksichtigung der persönlichen Daten des Kontos überladen.
Erweiterungen:
2.a. Der Kunde ist bereits autorisiert:
2.a.1. Das System benachrichtigt den Kunden über die Tatsache der zuvor vorgenommenen Autorisierung und schlägt vor, entweder das Skript abzubrechen oder mit Schritt 4 fortzufahren. Wenn Schritt 6 erfolgreich abgeschlossen wurde, wird Schritt 7 mit folgenden Erläuterungen ausgeführt:
2.a.7. Das System deaktiviert den Client unter dem alten Konto, autorisiert den Client unter dem neuen Konto, während der Browserverlauf und der Warenkorb dieser Interaktionssitzung im alten Konto verbleiben und nicht in das neue Konto verschoben werden. Fahren Sie als nächstes mit Schritt 8 fort.
2.b Die Anzahl der Autorisierungsversuche hat den Schwellenwert gemäß "Sicherheitsregel Nr. 23" überschritten:
2.b.1 Weiter mit Schritt 4 wird das Captcha zusätzlich auf dem Autorisierungsformular angezeigt
2.b.6 Das System bestätigt die korrekte Eingabe von Captcha
2.b.6.1 Captcha falsch eingegeben:
2.b.6.1.1. Das System erhöht den Zähler für erfolglose Anmeldeversuche auch für dieses Konto
2.b.6.1.2. Das System zeigt eine Fehlermeldung an und kehrt zu Schritt 2 zurück
6.a. Es wurde kein Konto mit dieser E-Mail gefunden:
6.a.1 Das System zeigt eine Meldung über den Fehler an und bietet die Wahl zwischen einem Übergang zu Schritt 2 oder einem Übergang zum Skript „Benutzerregistrierung“ mit Speichern der eingegebenen E-Mail.
6.b. Das Passwort des Kontos mit dieser E-Mail stimmt nicht mit dem eingegebenen überein:
6.b.1 Das System erhöht den Zähler für erfolglose Versuche, dieses Konto einzugeben.
6.b.2 Das System zeigt eine Fehlermeldung an und bietet an, entweder einen Übergang zum Szenario „Kennwortwiederherstellung“ oder einen Übergang zu Schritt 2 zu wählen.
6.c: Der Zähler für Versuche, dieses Konto zu betreten, hat den Schwellenwert unter "Sicherheitsregel Nr. 24" überschritten.
6.v.1 Das System zeigt eine Meldung zum Sperren des Zugangs zum Konto für X Minuten an und fährt mit Schritt 2 fort.
Was ist toll
Überprüft die Vollständigkeit und Einhaltung der Ziele, dh Sie können die Anforderungen für die Überprüfung einem anderen Analysten übergeben, sodass in der Phase der Aufgabenstellung weniger Fehler auftreten.
Wenn Sie mit einem System wie einer Black Box arbeiten, können Sie die Entwicklung und Koordination der Automatisierung der Implementierungsmethoden mit dem Kunden teilen.
Es ist Teil des Weges des Analysten, einer der Hauptbestandteile der Benutzerfreundlichkeit. Das Skript des Benutzers legt die Hauptpfade für seine Bewegung fest, was die Wahlfreiheit für den Designer und den Kunden erheblich einschränkt und dazu beiträgt, die Geschwindigkeit der Designentwicklung zu erhöhen.
Es ist sehr erfreulich in der Beschreibung des Ortes, an dem die Ausnahmen jedes Interaktionsschritts aufgedeckt werden. Ein ganzheitliches IT-System sollte die eine oder andere Ausnahmebehandlung vorsehen, teils im manuellen Modus, teils im automatischen Modus (wie im obigen Beispiel).
Die Erfahrung hat gezeigt, dass eine schlecht durchdachte Ausnahmebehandlung ein System leicht in ein schrecklich unpraktisches System verwandeln kann. Ich erinnere mich an eine Geschichte, in der zu Sowjetzeiten mehrere Genehmigungen von verschiedenen Diensten erforderlich waren, um eine Entscheidung zu treffen, und es tut weh, wenn der letzte Dienst sagt - und Sie einen falschen Namen oder einen anderen Fehler in der Zeichensetzung haben, alles wiederholen und alles in Einklang bringen.
Oft mit Situationen konfrontiert, wo Ausnahmen sind nicht für die Logik-Betrieb ausgelegt, benötigt das System eine signifikante Veränderung des Systems. Aus diesem Grund wird der Löwenanteil der Arbeit des Analysten für die Behandlung von Ausnahmen aufgewendet.
Im Gegensatz zu Diagrammen können Sie mit der Textnotation mehr Ausnahmen identifizieren und abdecken.
Ergänzung zur Übungsmethode
Der Anwendungsfall ist im Gegensatz zu einer User Story kein unabhängig priorisierter Teil der Produktion.
Betrachten Sie in diesem Szenario die Ausnahme „6.a. Mit dieser E-Mail wurde kein Konto gefunden. “ und der nächste Schritt "6.a.1. Das System zeigt eine Fehlermeldung an und fährt mit Schritt 2 fort". Was ist mit dem Negativen hinter den Kulissen? Für den Kunden entspricht jede Rückgabe der Tatsache, dass die gesamte Arbeit, die er bei der Eingabe der Daten geleistet hat, auf die Deponie geworfen wird. (Dies ist im Skript einfach nicht sichtbar!) Was kann getan werden? Erstellen Sie das Skript neu, damit dies nicht auftritt. Kann das gemacht werden? Sie können sich beispielsweise das Autorisierungsskript in Google ansehen.
Szenariooptimierung
Das Buch spricht über Formalisierung, aber wenig über Optimierungsmethoden für solche Szenarien.
Es ist jedoch möglich, die Methode durch Optimierung von Skripten zu stärken, und die Formalisierungsmethode für Anwendungsfälle ermöglicht dies. Insbesondere müssen Sie für jede auftretende Ausnahme darüber nachdenken, die Ursache ermitteln und das Skript neu erstellen, um die Ausnahme zu beseitigen oder den Pfad des Clients zu minimieren.
Bei der Bestellung des Online-Shops müssen Sie die Lieferstadt eingeben. Es kann sich herausstellen, dass das Geschäft für eine vom Kunden ausgewählte Stadt die Waren nicht liefern kann, weil es dort nicht liefert, aufgrund allgemeiner Einschränkungen oder aufgrund des Mangels an Waren im entsprechenden Lager.
Wenn Sie das Interaktionsszenario in der Entwurfsphase einfach beschreiben, können Sie schreiben: „Informieren Sie den Kunden über die Unmöglichkeit der Lieferung und bieten Sie an, die Stadt oder die Zusammensetzung des Warenkorbs zu ändern“ (und viele unerfahrene Analysten hören damit auf). Wenn es jedoch viele solcher Fälle gibt, können Sie das Szenario optimieren.
Das erste, was zu tun ist, ist, nur die Stadt anzugeben, in der wir die Lieferung vornehmen können. Wann soll es gehen? Vor dem Moment der Auswahl eines Produkts auf der Website (Stadt automatische Erkennung über IP mit Spezifikation).
Zweitens müssen Sie nur die Waren auswählen, die wir an den Kunden liefern können. Wann soll es gehen? Zum Zeitpunkt der Auswahl - auf der Warenplatte und der Produktkarte.
Diese beiden Änderungen beseitigen diese Ausnahme erheblich.
Mess- und Metrikanforderungen
In Anbetracht der Aufgabe, die Behandlung von Ausnahmen zu minimieren, können Sie die Aufgabe für die Berichterstellung festlegen (Anwendungsfall wird nicht beschrieben). Wie viele Ausnahmen gab es, in welchen Fällen traten sie auf und wie viele Szenarien waren von eingehenden erfolgreich.
Aber leider. Die Erfahrung hat gezeigt, dass die Berichtsanforderungen für Szenarien in dieser Form nicht ausreichen. Sie müssen die Berichtsanforderungen für Prozesse berücksichtigen, die hauptsächlich nicht in Form eines Anwendungsfalls beschrieben werden.
Output Usability
In unserer Praxis haben wir die Beschreibung der Anwendungsfallbeschreibung um die Beschreibung spezifischer Attribute von Entitäten und Daten für die Entscheidungsfindung durch den Kunden erweitert, wodurch die spätere Benutzerfreundlichkeit verbessert wird.
Für das Usability-Design haben wir einen Eingabeabschnitt hinzugefügt - die angezeigten Daten.
In einem Autorisierungsszenario ist dies eine Tatsache der Clientautorisierung im System. Wenn der Client vorautorisiert ist, wird nach erfolgreicher Autorisierung eine Warnung zum Umschalten des Navigationsverlaufs und des Warenkorbs auf das neue Konto angezeigt.
Im allgemeinen Fall handelt es sich hierbei um eine Zuordnung der für den Kunden erforderlichen Informationen, damit er je nach Szenario eine Entscheidung über seine weiteren Aktionen treffen kann (man kann sich fragen, ob der Kunde über genügend dieser Daten verfügt, was noch benötigt wird und welche Informationen der Kunde benötigt, um Entscheidungen zu treffen).
Es lohnt sich auch, die Eingabeinformationen in die Eingabefelder aufzuteilen, wenn ihre Verarbeitung separat und unter Bildung verschiedener Ausnahmen erfolgt.
Wenn Sie im Beispiel mit Client-Autorisierung die eingegebenen Informationen mit einem Benutzernamen und einem Kennwort markieren, sollten Sie das Autorisierungsskript mit den separaten Schritten zur Eingabe eines separaten Logins und Passworts ändern (und dies erfolgt in Yandex, Google, jedoch nicht in den meisten Online-Shops).
Zugriff auf erforderliche Datenkonvertierungen
Die Anforderungen für Datentransformationsalgorithmen können auch aus dem Skript herausgezogen werden.
Beispiele:
- Um eine Entscheidung über den Kauf eines Produkts in einem Online-Shop zu treffen, muss ein Kunde die Möglichkeit, die Kosten und die Lieferzeit dieses Produkts in seine Stadt kennen (die vom Algorithmus anhand der Verfügbarkeit von Waren in Lagern und der Parameter der Lieferkette berechnet werden).
- Wenn eine Phrase in die Suchzeichenfolge eingegeben wird, werden dem Client die Suchhinweise des Algorithmus angezeigt (die vom Algorithmus gebildet werden ...).
Insgesamt
Im Allgemeinen ist nach dem Lesen des Buches leider nicht klar, wie der Weg vom Analysten über geschäftliche Probleme bis hin zur formalisierten TK für den Entwickler gehen soll. Das Buch beschreibt nur einen Teil des Prozesses mit unklar formulierten eingehenden und unklar dargestellten nächsten Schritten. Der Anwendungsfall an sich ist für den Entwickler meist keine vollständige Aussage.
Dies ist jedoch eine sehr gute Möglichkeit, Szenarien der Interaktion eines Objekts und eines Subjekts zu formalisieren und zu verarbeiten, wenn die Interaktion eine Änderung in etwas im Subjekt verursacht. Es ist eine der wenigen Schreibmethoden, die überprüfbare Anforderungen mit expliziten Ausnahmesuchpunkten ermöglichen.
Das Buch muss von Analysten gelesen werden, damit sie nachprüfbare Produktionen schreiben können.