• Keine Ergebnisse gefunden

Softwareanforderungsanalyse Ziele und das Zielemodell Burkhardt Renz

N/A
N/A
Protected

Academic year: 2021

Aktie "Softwareanforderungsanalyse Ziele und das Zielemodell Burkhardt Renz"

Copied!
37
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Softwareanforderungsanalyse

Ziele und das Zielemodell

Burkhardt Renz

THM, Fachbereich MNI

Wintersemester 2018/19

(2)

Übersicht

Ziele

Ziele und Anforderungen Klassifikationen von Zielen

Zielorientierter Ansatz zur Anforderungsanalyse Zielemodell

Exkurs zu Zielemodell & Problem Frames

(3)

Was sind Ziele?

Definition (Akteur agent)

EinAkteur ist eine aktive Komponente eines Systems, z.B.

Softwarekomponenten, Geräte (Sensoren, Aktoren), Anwender Definition (Zielgoal)

EinZiel ist eine präskriptive Aussage, welche Effekte ein System durch die Kooperation seiner Akteure im Anwendungsgebiet erreichen soll.

(4)

Beispiele von Zielen

Beispiel (Bibliotheksverwaltung)

Studenten sollen Bücher des eigenen Fachbereichs und von anderen Bibliotheken bestellen können.

Beispiel (Zugsteuerung)

Das System soll sicheren Transport der Passagiere garantieren.

Beispiel (Terminvereinbarungen)

Terminvereinbarungen sollen so gelegt werden, dass möglichst viele Teilnehmer anwesend sein können.

(5)

Ziele und Eigenschaften des Anwendungsgebiets

Ziel ist präskriptiv

Eigenschaft ist deskriptiv, also im Indikativ Unterschied ist wesentlich:

Ziele kann man diskutieren, verhandeln, verändern Eigenschaften sind i.a. gegeben, etwa durch physikalische Gesetze, Regeln einer Organisation etc

In der Anforderungsanalyse werden beide Arten von Aussagen benötigt, wichtig sie zu unterscheiden

(6)

Granularität von Zielen

Höhere Ebene – strategische Ziele

z.B. „50% Steigerung der Transportkapazität der Züge“

Niedrigere Ebene – detaillierte, technischer

z.B. „Wenn das Signal auf ‚frei‘ wechselt, soll der Zug möglichst schnell in das nächste Segment fahren“

Je niedriger die Ebene ist, desto weniger Akteure sind an der Erreichung des Ziels beteiligt

(7)

Ziele, Anforderungen, Erwartungen, Eigenschaften

Ziel = gewünschstes/gefordertes Verhalten für dessen Erreichung mehrere Akteure verantwortlich sind

(Software)anforderung= Ziel, für das ein einzelner Akteur in der zu konstruierenden Software verantwortlich ist

„doorState = ’closed’ solange measuredSpeed > 0“ – verantwortlich die Zugsteuerung

Erwartung = Ziel, für das ein einzelner Akteur im Anwendungsgebiet verantwortlich ist

„Passagiere steigen aus, wenn der Zug sein Ziel erreicht hat“

– verantwortlich die Passagiere

Eigenschaft = deskriptive Aussage über das Anwendungsgebiet, die unabhängig von dem zu konstruierenden System gilt

„Ein Zug bewegt sich, wenn seine Geschwindigkeit v6= 0 ist“

– physikalische Tatsache

(8)

Arten von Aussagen

Aussage

präskriptiv/im Optativ deskriptiv/im Indikativ

Ziel mit mehreren Akteuren

Ziel mit einem Akteur

Eigenschaft des Anwendungsgebiets

Annahme über das Anwendungsgebiet Anforderung Erwartung

(9)

Typen von Zielen

Weiches Ziel (soft goal) = Präferenz unter Alternativen des Verhaltens des Systems

z.B. „Für die Vereinbarung der Termine sollen möglichst wenig Interaktionsschritte notwendig sein“

Improve

Increase,Reduce Maximize,Minimize

Verhaltensziel(behavioural goal) = deklarative Beschreibung des Verhaltens des Systems

z.B. „Achieve[BookRequestSatisfied]: Wenn ein Buch bestellt wird, wird ein Exemplar früher oder später für die Ausleihe verfügbar sein“

Achievebzw.Cease

wird irgendwann erreicht oder (dual) nicht mehr gültig sein Maintainbzw.Avoid

ist immer so oder (dual) niemals so

(10)

Kategorien von Zielen

funktionale Ziele

intendierte Dienste, die das System erfüllen soll nicht-funktionale Ziele, die dieAnwender betreffen

Qualitätsmerkmale der zur Verfügung gestellten Funktionen nicht-funktionale Ziele, die dieEntwicklung betreffen Qualitätsmerkmale der Entwicklung

(11)

Übersicht

Ziele

Zielorientierter Ansatz zur Anforderungsanalyse Zielemodell

Exkurs zu Zielemodell & Problem Frames

(12)

Vorgehen

zielorientiert= die Warum-Dimension!

modellbasiert = abstrakte Repräsentation des (zu konstruierenden) Systems

mehrere Sichten

KAOS – Beispiel für das Vorgehen

KAOS = „Knowledge Acquisition in autOmated Specification“

KAOS = „Keep All Objectives Satisfied“

(13)

Sichten/Modelle

Sicht auf . . .

Intentionen: Zielemodell und Risikoanalyse im Hindernismodell Struktur: Objektmodell

Verantwortlichkeit: Akteure und ihre Verantwortlichkeiten Funktionalität: Modell der Operationen

Verhalten: Modell des Verhaltens

(14)

Übersicht über die Modelle und ihre Beziehungen

SafeTransportation

SpeedLimited NoCollision DoorsClosed WhileMoving Goal model

Train On Block 0..1

Platform At

Object model Concern

Obstacle model NoStopAtSignal

Obstruction

Tracking

System Train

Controller Speed, Position Agent model Responsibility

Operation model Compute Acceleration

Send Acceleration

TrainController Tracking

System Operationalization

Behavior model Movement State

Closed Open

opening

[TimeOut] [AtPlatform]

Stopped Moving

start [doorsClosed]

Doors State Train

Controller Passenger

Opening entrance Closing

Start Stop

...

Coverage

Quelle: Lamsweerde, S. 291

(15)

Übersicht

Ziele

Zielorientierter Ansatz zur Anforderungsanalyse Zielemodell

Spezifikation von Zielen Verfeinerung von Zielen Alternative Möglichkeiten

Regeln für die Entwicklung von Zielemodellen Muster der Verfeinerung von Zielen

Exkurs zu Zielemodell & Problem Frames

(16)

Ziele und Zielemodell

Definition (Zielemodell)

DasZielemodellzeigt, wie die funktionalen und nicht-funktionalen Ziele durch Verfeinerung bis hin zu Softwareanforderungen und Erwartungen an Akteure der Umgebung gegliedert sind.

Eigenschaften des Zielemodells Spezifikation von Ziele Zielediagramm

Erfüllbarkeitsargument

(17)

Spezifikation von Zielen

Jedes Ziel wird im Modell durch Eigenschaften annotiert:

Name – eindeutige Bezeichnung Def – präzise textuelle Beschreibung optional:

Type – z.B. Achieve . . . Category – z.B. Safety . . . Source – Herkunft des Ziels Priority

Stability

FitCriterion – wie stellt man fest, ob erfüllt?

FormalSpec – formale Spezifikation Issue – Fragen, Probleme

(18)

Beispiele

Maintain [WorstCaseStoppingDistance]

Name WorstCaseStoppingDistance

A train shall never get so close to a train in front that if the latter stops suddenly the following train would hit it.

Type Maintain Category Safety

Source BART preliminary study report p.27.

Priority Highest FormalSpec tr1, tr2: Train

Following(tr2,tr1) Dist(tr2,tr1) WCS-Dist(tr2) Achieve [CopyDueSoonForCheckOut

If Not Available]

Name CopyDueSoonForCheckOut If Not Available

Def In case a requested book has no copy available for check out, a copy of that book should be made available within 2 weeks for check out by the requesting patron.

Type Achieve Category Satisfaction

SourceLibrary staff interview 12/12/06.

PriorityMedium

Issue Shouldn't this be differentiated (staff vs. student patron)?

: annotation

goal

feature

Def

>

Quelle: Lamsweerde S.295

(19)

AND-Verfeinerung

Ziele werden in Subziele aufgegliedert Die Subziele verfeinern ein Ziel

Ein Ziel wird erreicht, wenn alle Subziele erreicht werden (Konjunktion)

AND-Verfeinerung sollten sein vollständig

konsistent minimal

Blätter sind Anforderungen oder Erwartungen und können einem Akteur zugeordnet werden

(20)

Beispiel AND-Verfeinerung

Maintain [DoorsClosedWhileMoving]

Maintain [DoorsClosedWhileNonZeroSpeed]

Maintain [DoorsStateClosed If NonZeroMeasuredSpeed]

MeasuredSpeed = PhysicalSpeed

TrainController

software agent domain property

environment agent responsibility assignment

DoorsActuator

expectation requirement

DoorsClosed Iff DoorsStateClosed

SpeedSensor Moving Iff NonZeroSpeed

Quelle: Lamsweerde S.299

(21)

Beispiel mit potentiellen Konflikten

Avoid [TrainCollisions]

SafeTransportation EffectivePassengersTransportation

FastJourney DoorsClosed

BetweenStations

SignalPromptly SetToGo

SpeedBelow BlockLimit

Avoid [TrainsOn SameBlock]

SignalSafely KeptToStop

Evacuation

WhenAlarm

DoorsOpenWhen Alarm&Stopped RapidTransportation

potential conflict FastRunToNextBlock

If GoSignal

TrainStoppedAtBlockEntry If StopSignal Quelle: Lamsweerde S.302

(22)

Alternative Möglichkeiten (OR)

Ziele können mehrere Verfeinerungen haben

Das Ziel kann dann durch alle Subziele jeweils einer der Alternativen erreicht werden

Mehrfache Verfeinerungen bedeuten verschiedeneSysteme, die dasselbe Ziel erreichen

Folglich können auch jeweils unterschiedliche Akteure verantwortlich sein

(23)

Beispiel (Terminplaner)

ConstraintsKnownFromRequest

ConstraintsObtained FromE-agenda Constraints

Requested E-agenda

Accessible E-agenda

UpToDate Communication

Working Constraints

Transmitted

alternative refinements

Quelle: Lamsweerde S.8.8

(24)

Annotationen in Zielediagrammen

FastJourney

FastRunToNextBlock If GoSignal

SignalPromptly SetToGo

TrainController TrainDriver

Avoid [TrainCollisions]

Avoid [TrainsOn SameBlock]

Maintain [WorstCase StoppingDistance]

TrainWaiting Unless OnNextBlock Tactic Guard introduction

Name DriverlessStart SysRef SystemToBe

SysRef SystemAsIs

Name AccelerationControl SysRef SystemToBe

Quelle: Lamsweerde S. 308

(25)

Heuristische Regeln für Zielemodelle, 1

Ziele und Probleme vorhandener Systeme untersuchen Begriffe, die auf Ziele hindeuten in Dokumenten suchen Kategorien von Zielen als Basis der Ermittlung nehmen Wie-Fragen → Verfeinerung von Zielen

Warum-Fragen → Allgemeinere Ziele finden

Verantwortlichkeiten aufteilen → Verfeinerung von Zielen Weiche Ziele finden durch die Analyse von Pro und Contra bei Alternativen

(26)

Heuristische Regeln für Zielemodelle, 2

Wünsche von Akteuren ermitteln Umkehrung eines Achieve-Ziels prüfen

Komplementären Fall eines bedingten Achieve-Ziels prüfen Verfeinerung bis die Zuordnung zu einem Akteur möglich ist Umgekehrt: Verallgemeinerung von Zielen bis zur

Systemgrenze

Ziele nicht mit Operationen/Funktionen verwechseln AND- und OR-Verfeinerungen nicht verwechseln

(27)

Verfeinerung durch Teilschritte

Idee

Zerlege ein Ziel in Teilziele, die sukzessive zum Erreichen des Ziels führen

Beispiel

Instantiation:

TargetCondition / ConvenientMeetingScheduled MilestoneCondition / ConstraintsKnown CurrentCondition / Requesting

Achieve[ConvenientMeeting ScheduledFromRequest]

Achieve[Constraints

KnownFromRequest] Achieve[ConvenientMeeting ScheduledFromConstraints]

Achieve[Target Condition FromCurrentCondition]

Achieve[MilestoneCondition

From CurrentCondition] Achieve[TargetCondition From MilestoneCondition]

Quelle: Lamsweerde S.320

(28)

Verfeinerung durch Fallunterscheidung

Idee

Zerlege ein Ziel in verschiedene Fälle, die zusammen zum Erreichen des Ziels führen

Beispiel

Achieve[TargetCondition]

Achieve[TargetCondition1

If Case1] Achieve[TargetCondition2 If Case2]

If TargetCondition1 or TargetCondition2 then TargetCondition

Case1 or Case2 not (Case1 and Case2)

ConvenientMeetingScheduled

If Not ConflictingConstraints ConvenientMeeting ScheduledFromConstraints

ConvenientMeetingScheduled If ConflictingConstraints Quelle: Lamsweerde S.323

(29)

Verfeinerung durch Einführen einer Wächterbedingung

Idee

Führe zu einem Ziel vom Typ Achieve eine Wächterbedingung ein, deren Erreichen für das Erreichen des Ziels erforderlich ist

Beispiel

Achieve[TargetCondition If CurrentCondition And Guard]

Achieve[Target Condition If CurrentCondition]

Achieve[Guard If CurrentCondition] Maintain[CurrentCondition]

Unless TargetCondition

Quelle: Lamsweerde S. 324

(30)

Verfeinerung durch Teile und herrsche

Idee

Ein Ziel vom Typ Maintain wird erreicht, indem man Teilziele erreicht, die zusammen des Ziel ergeben

Beispiel

Maintain[GoodCondition1 And GoodCondition2]

unless EndCondition

Maintain[GoodCondition1]

unless EndCondition Maintain[GoodCondition2]

unless EndCondition

Maintain[ReminderSent And FineIncreased]

unless CopyReturned

Maintain[ReminderSent]

unless CopyReturned

Maintain[FineIncreased]

unless CopyReturned

Quelle: Lamsweerde S. 324

(31)

Verfeinerung durch Einführen einer beobachtbaren Bedingung

Idee

Ist ein Ziel abhängig von einer Bedingung, die ein Akteur nicht beobachten kann, führt man eine beobachtbare Bedingung ein, die indirekt zum Erreichen des Ziels führt

Beispiel

GoalOn UnMonitorableCondition

GoalOn

MonitorableCondition MonitorableCondition Iff UnMonitorableCondition

Maintain[DoorsClosedWhileNonZeroSpeed]

NonZeroMeasuredSpeed Iff NonZeroSpeed Maintain[DoorsClosedWhile

NonZeroMeasuredSpeed]

Quelle: Lamsweerde S. 325

(32)

Verfeinerung durch Einführen einer steuerbaren Bedingung

Idee

Ist ein Ziel abhängig von einer Bedingung, die ein Akteur nicht kontrollieren kann, führt man eine steuerbare Bedingung ein, die indirekt zum Erreichen des Ziels führt

Beispiel

GoalOn UnControllableCondition

GoalOn

ControllableCondition ControllableCondition Iff UnControllableCondition

Maintain[DoorsClosedWhileNonZeroSpeed]

Maintain[DoorsStateClosed WhileNonZeroSpeed]

DoorsStateClosed Iff DoorsClose d

Quelle: Lamsweerde S. 326

(33)

Übersicht

Ziele

Zielorientierter Ansatz zur Anforderungsanalyse Zielemodell

Exkurs zu Zielemodell & Problem Frames

(34)

Das Problem Frame: Anzeige von Information (Information Display)

Ein Problem Frame aus dem Buch von

Michael JacksonProblem Frames: Analysing and Structuring Software Development Problems

Problemstellung

Es gibt einen Teil der wirklichen Welt, über dessen Zustände und Verhalten fortlaufend gewisse Informationen gebraucht werden.

Das Problem ist, eine Maschine zu bauen, die diese Informationen ermittelt und am verlangten Ort und in der verlangten Form darstellt.

Beispiel

Tachometer und Kilometerzähler

(35)

Problem Frame Anzeige von Information

Informations- Maschine

Wirkliche Welt

Zeige wirkliche Welt

C

Anzeigegerät

C

(36)

Zielemodell zu diesem (einfachen) Problem

Zeige wirkliche Welt

WirklicheWerte ~ GemesseneWerte

Achieve[GemesseneWerteZu AnzeigeWerte Transformiert]

AnzeigeWerte ~ Angezeigte Werte

Sensor Informations-Maschine Ausgabegerät

Beschreibung des Sensors

Spezifikation der Maschine

Beschreibung des Geräts

(37)

Argumentation bei der „Informationsanzeige“

Informations- Maschine

Wirkliche Welt

Zeige wirkliche Welt

C

Anzeigegerät

C

Wenn der Zustand der Welt so und so ist…

(Anforderung)

…und weil sich die Instrumente, die das messen diese Eigenschaften haben…

(Beschreibung)

…wird die Maschine dieses feststellen…

(Spezifikation)

…und Ereignisse erzeugen…

(Spezifikation)

…die das Anzeigegerät so beeinflussen,…

(Beschreibung)

…dass der Zustand der Welt in der gewünschten Form dargestellt wird.

(Anforderung)

1 2

3

4

5 6

Referenzen

ÄHNLICHE DOKUMENTE

Dokumentation von Risiken Semiformale Techniken für Risiken Alternative Möglichkeiten einbeziehen Priorisierung von Anforderungen.. Typen

Spezifikation in natürlicher Sprache Modellbasierte Spezifikationen Formale Spezifikationen.. Gliederung der Anforderungsspezifikation.. ISO/IEC/IEEE

Jaza Animator für Z Rhapsody für State Charts Alloy Analyzer für Alloy. ProB Animator and

Evolution im Anwendungsgebiet und doch Konsistenz, Vollständigkeit und Adäquatheit der Anforderungen Dazu muss man Änderungen antizipieren. und einen geregelten Änderungsprozess

Ein Hindernis ist eine Vorbedingung, die dazu führt, dass ein Ziel nicht erreicht wird.

Jedes konzeptuelle Objekt (Entität, Akteur, Ereignis, Beziehung) hat (kann haben) bestimmte Eigenschaften, die Typen sind durch ihre Attribute gleichartig strukturiert.

Ein Akteur hängt in der Verantwortlichkeit für ein Ziel von einem anderen Akteur ab, wenn dessen Versagen dazu führen kann, dass er sein Ziel nicht erreicht. Darstellung

ReqPre: Vorbedingung, die die Eingabevariablen erfüllen müssen, damit die Operation ausgeführt werden kann ReqTrig: Triggerbedingung bedeutet, dass die Operation ausgeführt werden