Anforderungsdefinition auf Basis temporaler Logik Sebastian Hagenkötter Gliederung Motivation Temporale Logik Property Specification Patterns Pattern Templates Aktueller Stand Zusammenfassung 2 Motivation "In der Zeit zwischen dem Zeitpunkt, an dem der Aufzug angefordert wurde, und dem Zeitpunkt, an dem der Aufzug an diesem Stockwerk die Tür öffnet, kann der Aufzug höchstens zweimal dieses Stockwerk erreichen." CTL Formel: AG(call Æ !E[!open U (!atfloor & !open & EX(atfloor & E[!open U (!atfloor & !open & EX(atfloor & E[!open U (!atfloor & !open & EX(atfloor & !open & EF(open)))]))]))]) 3 Temporale Logik (mit CTL) EF AF EG E[ U ] 4 Property Specification Patterns Anwendern wird Expertenwissen zugänglich gemacht Verwendung von Patterns, welche häufig auftretende Anforderungen beschreiben Property Specification Pattern: (1) (2) (3) (4) Informelle Beschreibung eines Teilverhaltens Übersetzung der informellen Beschreibung in Spezifikationsformalismen (z.B. CTL Formel) Beispiele zur Anwendung Bezug zu anderen Patterns 5 Property Specification Patterns Occurence Patterns: Order Patterns: Absence Universality Existence Bounded Existence Precedence Response Precedence Chain Response Chain Optional Gültigkeitsbereich: Global, Before Q, After Q, Between Q and R, After Q until R 6 Anwendung s1 s0 {ack} {req} s2 {busy} "Jede Anforderung wird irgendwann erfüllt." Î Î Î Î Î Response Pattern Gültigkeitsbereich: Global Formelvorlage: AG("cause" Æ AF("effect")) Zustände einsetzen AG(req Æ AF(ack)) 7 Probleme Formelvorlagen können nur von Experten variiert werden Patterns lassen bestimmte Details offen Beispiel: "Nachdem ein Stockwerkknopf gedrückt wurde schließt der Aufzug die Tür." Darf sich die Tür mehrfach schließen, wenn mehrfach gedrückt wurde? Was, wenn überhaupt, darf nach dem Knopfdruck und bevor die Tür geschlossen ist passieren? 8 Pattern Templates basieren auf Property Patterns Templates haben Optionen, die Details bestimmen Anwendung mit PROPEL Werkzeug Benutzer setzt Optionen nach "Frage-Antwort" Verfahren Î er erkennt Bestandteile einer Anforderung Templates für: Response, Precedence, Existence, Absence Gültigkeitsbereich (optional) Zwei Notationen: erweiterte endliche Automaten (FSA) eingeschränkte natürliche Sprache (DNL) 9 FSA Response Pattern Template action action ¬action or ¬(action, response) ¬response or action or ¬(action, response) ¬response or ¬action or ¬(action, response) or . Optionen des Templates: response Pre-Arity, Post-Arity, Immediacy, Precedency, Nullity, Repeatability Jeder Option entsprechen ein oder mehrere Komponenten im Template 10 DNL Response Pattern Template (a) Core Phrase Pre-Arity occurences of action Immediacy lead to Post-Arity occurences of response. Pre-Arity occurences of action Immediacy lead to Post-Arity occurences of response. singular exactly one immediately singular exactly one plural one or more eventually plural (b) Nullity Phrase (c) Precedency Phrase (d) Repetition Phrase one or more positive Action may occur zero times. negative Action must occur at least once. Response cannot occur before the first action occurs. Response may occur before the first action occurs. The behavior above is repeatable. The behavior above is not repeatable. 11 Anwendung "Nachdem ein Stockwerkknopf gedrückt wurde schließt der Aufzug die Tür." Î Response Pattern Template (global) Î Î DNL Core Phrase: "…action…result…in…response" FSA: action action ¬action or ¬(action, response) response ¬response or action or ¬(action, response) ¬response or ¬action or ¬(action, response) or . 12 Anwendung "Nachdem ein Stockwerkknopf gedrückt wurde schließt der Aufzug die Tür." Î Response Pattern Template (global) Î Î DNL Core Phrase: "…button…result…in…close" FSA: button button ¬button or ¬(button, close) close ¬close or button or ¬(button, close) ¬close or ¬button or ¬(button, close) or . 13 Anwendung (Forts.) button button ¬close ¬button or ¬(button, close) close or button or ¬(button, close) ¬close or ¬button or ¬(button, close) or . Pre-Arity : Knopf darf mehrfach gedrückt werden Post-Arity : Nach Knopfdruck darf sich die Tür nur einmal schließen "One or more occurences of button eventually result in only one occurence of close." Immediacy : Ereignisse zwischen button und close erlaubt 14 Anwendung (Forts.) Nullity : Der Knopf muss nicht zwingend gedrückt werden Precedency : Tür darf erst geschlossen werden nachdem mindestens einmal der Knopf gedrückt wurde Repeatability : Anforderung kann mehrfach auftreten "One or more occurences of button eventually result in only one occurence of close. button may occur zero times. close cannot occur before the first button occurs. The behavior above is repeatable. The property must hold all times." button button ¬(button, close) close ¬close ¬(button, close) 15 Aktueller Stand Property Specification Patterns: Test mit 555 Spezifikationen aus verschiedenen Quellen in nur 10 Fällen war das Ergebnis der Pattern Anwendung falsch Response (global) wurde am häufigsten verwendet Pattern System wird kontinuierlich erweitert (neue Patterns, Varianten, Kombinationen) PROPEL: Programm wird noch entwickelt keine Testversion verfügbar bisher nur eine Veröffentlichung Anbindung an Verifikationswerkzeuge unklar 16 Zusammenfassung Temporale Logik bietet eine formale Grundlage zur Anforderungsdefinition Aber: Übersetzung von Anforderungen in temporallogische Formeln ist nicht trivial und häufig mit Fehlern verbunden Property Patterns schaffen Abhilfe durch Vorlagen für häufig auftretende Anforderungen Pattern Templates bieten zusätzlich Optionen zur detaillierteren Spezifikation Template Notationen in PROPEL sind auch für unerfahrene Anwender geeignet (insb. DNL) FAZIT: Beide Konzepte erleichtern Anwendung von temporaler Logik zur Anforderungsdefinition 17