sweIhm-ws2018-19 / skillproject-fr-14

skillproject-fr-14 created by GitHub Classroom
3 stars 0 forks source link

Hilfe-Funktion #23

Closed kkaiser12 closed 5 years ago

kkaiser12 commented 6 years ago
Name Hilfe (UC 6)
Kurzbeschreibung  Diese Funktion kann aufgerufen werden, wenn der User nicht weiß, wie ein bestimmter Use Case aufgerufen wird. Er zählt alle Fälle mit dem zugeordneten Kommando auf.
Akteure User
Auslöser  Der User sagt "Alexa, starte Hilfe"
Vorbedingungen  keine
Eingehende Informationen  keine
Ergebnis(se)  Der User weiß, wie er den erforderlichen Use Case aufruft. Er wird zu den eigentlichen Use Cases weitergeleitet oder der Skill wird abgebrochen
Nachbedingungen  keine
Ablauf Alexa informiert den User darüber, wie er die verschiedenen Use Cases aufrufen kann. Dazu sagt sie Folgendes: "Du kannst Dir Deine Liste an mitzunehmenden Gegenständen für den heutigen Tag ausgeben lassen. Außerdem kannst Du angeben welche Fächer Du heute nicht besuchen willst. Ich passe dann deine Liste darauf an. Falls Du zu einem Fach jetzt andere Sachen mitnehmen willst kannst Du das nach Alexas erster Anfrage mit dem Befehl "Gegenstand hinzufügen" tun. Willst Du jetzt Deine Tasche packen?" Wenn der User "Ja" antwortet, kann er anschließend den Skill nutzen. Ansonsten wird der Skill beendet und Alexa wünscht einen schönen Tag.
Offene Punkte  keine
Änderungshistorie  geändert am 11.11.2018 von Kristina Kaiser
Sonstiges, Anmerkungen /
kkaiser12 commented 6 years ago

User Story: Hilfe-Funktion Als Nutzer möchte ich, dass ich Informationen darüber bekomme, wie ich die einzelnen Use Cases nutzen kann, d.h, ich möchte die Kommandos erfahren, mit denen man die Use Cases starten kann.

Akzeptanzkriterien

sfrank13 commented 6 years ago

Die Anwendungsfallbeschreibung ist sehr gut und ausführlich. Kristina kannst du bitte noch bei dem Namen (UC 6) hinschreiben. Also so : Hilfe (UC 6) Sonst passt alles

ngaeng commented 6 years ago

Ich hab dann mal den Intent geschrieben


public class AidIntentHandler implements RequestHandler {

    @Override
    public boolean canHandle(HandlerInput handlerInput) {
        return handlerInput.matches(Predicates.intentName("AidIntent"));
    }

    @Override
    public Optional<Response> handle(HandlerInput handlerInput) {
        final String appreciation = "Danke für das Öffnen von Tasche packen.";
        final String function1 = "Du kannst Dir Deine Liste an mitzunehmenden Gegenständen für den heutigen Tag ausgeben lassen.";
        final String function2 = "Außerdem kannst Du angeben welche Fächer Du heute nicht besuchen willst. Ich passe dann deine Liste darauf an";
        final String function3 = "Falls Du zu einem Fach jetzt andere Sachen mitnehmen willst kannst Du das nach Alexas erster Anfrage mit dem Befehl \"Gegenstand hinzufügen\" tun.";
        final String question = "Willst Du jetzt Deine Tasche packen?";
        return handlerInput.getResponseBuilder()
                .withSpeech(appreciation)
                .withSpeech(function1)
                .withSpeech(function2)
                .withSpeech(function3)
                .withSpeech(question)
                .withSimpleCard("Hilfe", appreciation + function1 + function2 + function3 + question)
                .withReprompt("Ich habe dich nicht verstanden." + question)
                .build();
    }
}
ngaeng commented 6 years ago

Meine Frage ist, wie testet man das am besten ohne dass der gesamte Skill fertig und in der Console ist? Und was ich noch nicht ganz verstanden habe, wo legen wir fest wie das ganze abläuft? Am Ende des Hilfe skills stellt Alexa ja die Frage, ob man die Tasche jetzt packen will (also zum WelcomeIntent) oder nicht (also zum StopIntent). Welche Methode verarbeitet die Antwort?

Ah ja und der Name ist suboptimal, mir ist nur nichts besseres eingefallen, weil es den HelpIntent ja schon gibt.

kkaiser12 commented 6 years ago

Also ich bin mir auch nicht sicher, wie man das testen kann. Man könnte evtl. den Handler auch direkt mit einer Main - Methode starten, aber ich weiß auch nicht, wie man dann den HandlerInput übergeben kann. Das mit der Weiterleitung zum WelcomeIntent müssen wir nochmal schauen. Da müsste ich das wahrscheinlich zum WelcomeIntent hinzufügen und irgendwie einen boolean setzen, damit man dann dahin weitergeleitet wird. An sich musst du dich nicht drum kümmern. Den Stop kannst du mal mit dem StopAndCancelIntentHandler versuchen abzufangen. Also "nein" ruft dann den StopIntent auf. Ich hab da dann bei canHandle immer noch zusätzlich einen boolean, dass z.B. help vorher aufgerufen wurde, weil das Wort "nein" kann ja bei mehreren Intents vorkommen.

ngaeng commented 6 years ago

Ah vielen Dank, das machts deutlich klarer. Wenn ich noch irgendwas anderes machen soll, sagt Bescheid, weil der Block im Vergleich zu den anderen dann ja doch relativ einfach war

ngaeng commented 6 years ago

Hier das Klassendiagramm zum AidIntentHandler: aidintentuml

sollte dann insgesamt ready for review sein

kkaiser12 commented 6 years ago

Review: Passt so, würde ich sagen. Alle Möglichkeiten, die der User hat werden aufgezählt. Wir müssen uns dann noch überlegen, was passiert, wenn der "User" am Ende "nein" antwortet, auf die Frage, ob er jetzt seine Tasche packen soll.