button

Werbung
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
Herunterladen