• Keine Ergebnisse gefunden

Softwareanforderungsanalyse Modellierung der Operationen des Systems Burkhardt Renz

N/A
N/A
Protected

Academic year: 2021

Aktie "Softwareanforderungsanalyse Modellierung der Operationen des Systems Burkhardt Renz"

Copied!
26
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Softwareanforderungsanalyse

Modellierung der Operationen des Systems

Burkhardt Renz

THM, Fachbereich MNI

Wintersemester 2018/19

(2)

Das Modell der Operationen im Kontext der Modellierung

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

(3)

Übersicht

Aufgaben des Modells der Operationen

Sicht auf die Funktionalität Operationalisierung von Zielen

Darstellung von Operationen im Modell Heuristische Regeln

(4)

Modellierung der Operationen des Systems

Sicht auf dieFunktionalität

WelcheDienstestellt das System bereit?

Wie tragen sie zum Erreichen von Zielen bei?

DieWas-Dimension der Anforderungsanalyse Funktionale Sicht wird benötigt für

Beschreibung von Leistungen für Anwender, externe Systeme etc.

Verfolgbarkeit der Realisierung von Zielen in den Operationen des Systems

Input für Design und Entwicklung

Basis für Definition von Testfällen, insbesondere für Black-Box-Tests

Basis für die Dokumentation für Benutzer

Darstellung: Operationalisierungsdiagramm, das zeigt, wie Operationen zum Erreichen vonZielen beitragen undObjekte im Objektmodell dazu als Input/Output verwenden

(5)

Übersicht

Aufgaben des Modells der Operationen Sicht auf die Funktionalität

Was sind Operationen?

Charakterisierung von Operationen

Operationalisierung von Zielen

Darstellung von Operationen im Modell Heuristische Regeln

(6)

Was sind Operationen?

Operationen verändern den Zustand des Systems Ihre Signatur besteht aus den Eingabevariablen und den Ausgabevariablen

Man kann sie also auffassen als Menge von Paaren von Zuständen vorhernachher

OpInputState×OutputState

Die Ausführung der Operation entspricht dann genau einem Übergang von einemInputState in einenOutputState

tr.Speed 0

tr.DoorsState ‘closed'

Stop(tr) OpenDoors(tr)

tr.Speed 0 tr.DoorsState ‘open'

Quelle: Lamsweerde S. 423

(7)

Eigenschaften von Operationen

Eigenschaften

Operationen müssen Ziele des Zielemodellsoperationalisieren Operationen sind im Modellatomar

Akteure agieren nebenläufig und auch ein einzelner Akteur kann mehrere Operationen parallelausführen

Kategorien von Operationen

Softwareoperationenausgeführt durch Softwarekomponenten des Systems, oft auch Dienste oder Services genannt

Operationen derUmgebung des Systems, ausgeführt durch menschliche Akteure, Geräte oder externe Softwaresysteme, oft auchTasks genannt

(8)

Charakterisierung von Operationen

Annotierte Grundeigenschaften: Name,Def,Category Signatur, d.h. Input und Output

textuell oder graphisch

Vor- und Nachbedingungenin Bezug auf das Anwendungsgebiet

beschreiben (deskriptiv) den Zustand des Systems vor und nach der Ausführung der Operation.

WelcherAkteur führt die Operation aus?

Operation OpenDoors

Input tr: TrainInfo/{Speed, Position}

Output tr: TrainInfo/DoorsState Open

Doors Open

Doors

tr.Speed, tr.Position

TrainInfo tr.DoorsState input

output DomPreDomPosttr.DoorsState = ‘closed’

tr.DoorsState = ‘open’

Quelle: Lamsweerde S. 425, 426

(9)

Ausführender der Operation

Ein Akteurführt eine Operation aus, wenn Instanzen des Akteurs die Ausführung anstoßen können. Dazu muss gelten:

Ein ausführender Akteur muss die Eingabe- und

Ausgabevariablen der Operation beobachten bzw. steuern.

Eine Operation wird von genau einem Akteur (dessen Instanzen) ausgeführt.

(10)

Übersicht

Aufgaben des Modells der Operationen Sicht auf die Funktionalität

Operationalisierung von Zielen

Vor-, Nach- und Triggerbedingungen für die Zielerreichung Verhalten von Akteuren

Operationalisierung von Zielen und Erfüllungsargument

Darstellung von Operationen im Modell Heuristische Regeln

(11)

Operationalisierung von Zielen

Ziele wurden im Zielemodell so weit verfeinert, dass für ihre Erreichung genauein Akteur verantwortlich ist

Akteure können Operationenausführen.

Man spricht von der Operationalisierung eines Zielsum zu bezeichnen, dass die Operationen, die der für das Ziel

verantwortliche Akteur ausführen kann, dazu führen, dass das Ziel erreicht wird.

graphisch wird das dargestellt durch eine Verbindung zwischen dem Ziel und der Operation.

(12)

Präskriptive Bedingungen für Zielerreichung

Erforderliche Bedingungen(required conditions) sollen sicherstellen, dass das gewünschte Ziel erreicht wird

ReqPre: Vorbedingung, die die Eingabevariablen erfüllen müssen, damit die Operation ausgeführt werdenkann ReqTrig: Triggerbedingung bedeutet, dass die Operation ausgeführt werdenmuss, wenn die Bedingung eintritt ReqPost: gibt an, was nach der Ausführung der Operation garantiert ist

(13)

Beispiel für Operationalisierung eines Ziels

Fast Entry&Exit

DoorsStateClosed If NonZeroMeasuredSpeed

Open Doors

Start Train ReqTrig tr.Speed = 0 and tr.Position is

a platform position

ReqPretr.Speed =0

ReqPretr.DoorsState = ‘closed' operationalization

Quelle: Lamsweerde S. 428

(14)

Das Beispiel textuell

Operation OpenDoors

Def Software operation controlling the opening of all doors of a train;

Input tr: TrainInfo;

Output tr: TrainInfo/DoorsState;

DomPre tr.DoorsState = ’closed’;

DomPost tr.DoorsState = ’open’;

ReqPre for DoorsStateClosedIfNonZeroMeasuredSpeed:

tr.Speed = 0;

ReqPre for SafeEntry&Exit:

tr.Position is a platform position;

ReqTrig for FastEntry&Exit:

tr.Position is a platform position and tr.Speed = 0;

(15)

Verhalten von Akteuren

Zur Erreichung der Ziele, für die ein Agent verantwortlich ist, muss er die Operationen ausführen, die das Ziel

operationalisieren und zwar entsprechend der Vor-, Nach- und Triggerbedingungen.

Ein Akteur, der eine Operation sofort ausführt, wenn alle ihre Vorbedingungen erfüllt sind, wird eifrig(eager) genannt.

Ein Akteur, der eine Operation erst ausführt, wenn eine Triggerbedingung das verlangt, wird verzögert(lazy) genannt.

Mehrere Triggerbedingungen können im selben Systemzustand zutreffen – die dadurch ausgelösten Operationen werden dann nebenläufigausgeführt.

(16)

Operationalisierung von Zielen und Erfüllungsargument

Ein ZielG ist korrekt operationalisiertin die Operationen

Op1, . . . ,Opn wenn die Spezifikationen der Operationen

Spec(Op1), . . . ,Spec(Opn) folgendes erfüllen:

1 Vollständigkeit, d.h.

{Spec(Op1), . . . ,Spec(Opn)}G

2 Konsistenz d.h.

{Spec(Op1), . . . ,Spec(Opn)}2⊥

3 Minimalität, d.h.

Für jede echte Teilmenge S ⊂ {Spec(Op1), . . . ,Spec(Opn)}

gilt S 2G

DasErfüllungsargument besteht im Nachweis, dass {Spec(Op1), . . . ,Spec(Opn)}G gilt.

(17)

Übersicht

Aufgaben des Modells der Operationen Sicht auf die Funktionalität

Operationalisierung von Zielen

Darstellung von Operationen im Modell Ziele, Akteure, Objekte und Operationen Operationalisierungsdiagramm

Das Anwendungsfalldiagramm der UML

Heuristische Regeln

(18)

Wie hängen Ziele, Akteure, Objekte und Operationen zusammen?

Instanzen von Akteuren

Ausführung einer Operation

Ziele Zustand von

Instanzen von Objekten

Zeit Kleinste Zeiteinheit

Quelle: Lamsweerde S.434

(19)

Operationalisierungsdiagramm

Das Operationalisierungsdiagramm zeigt in einem annotierten Graph, durch welche Operationen Ziele erreicht werden:

Operationen, Ziele und Objekte sind die Knoten Operationalisierung verbindet Operationen und Ziele Input/Output-Beziehungen verbinden Operationen mit Objekten

(20)

Operationalisierungsdiagramm – Beispiel Zugsteuerung

Fast

Entry&Exit DoorsStateClosed If NonZeroMeasuredSpeed NoDelay

AtPlatform

Open Doors Close

Doors Start

Train

tr.Speed, tr.Position

TrainInfo tr.DoorsState ReqTrig tr's opening timeout

has elapsed

ReqTrig tr.Speed = 0 and tr.Position is a platform position

ReqPre tr.Speed = 0 ReqPretr.DoorsState = ‘closed'

DomPre tr.Speed = 0 DomPost tr.Speed 0 operationalization

input output

Quelle: Lamsweerde S.435

(21)

Operationalisierungsdiagramm – Beispiel Bibliothek

LimitedLoanAmount

Check Out ReqPre The book copy bc

is available in the library Input bc: BookCopy, p: Patron Output Loan

ReqPre The number of loans by p is < Max

DomPre notLoan( -, bc) DomPost Loan(p, bc) AvailableCopyCheckedOut

If LoanEncoded

Quelle: Lamsweerde S.436

(22)

Das Anwendungsfalldiagramm der UML

Das Anwendungsfalldiagramm der UML kann aus den Operationalisierungsdiagrammen generiert werden:

Für jeden Akteur sind alle Operationen, die er ausführen kann seine Anwendungsfälle.

Andere Akteure sind beteiligt, wenn sie Attribute von

Objekten beobachten oder steuern, die in der Ausführung der Operationen vorkommen.

(23)

Operationen und UML Anwendungsfalldiagramm – Beispiel

<<extend>>

NotAvailable

ComputeSafe Acceleration SendAcceleration

Command TrainController Tracking

System

OnBoard Controller Open

Doors Close

Doors

OnBoardController HandleAcceleration

Commands Train

Controller Acceleration

Actuator

Doors Actuator

CheckOut

LibrarySoftware

Biblio Search Staff

Patron Return

ExtendLoan

WhoBorrowed What?

AddCopy

RefuseLoan ReserveBook

CheckReserved

<<extend>>

TooManyLoans

<<include>>

<<include>>

Quelle: Lamsweerde S.436

(24)

Übersicht

Aufgaben des Modells der Operationen Sicht auf die Funktionalität

Operationalisierung von Zielen

Darstellung von Operationen im Modell Heuristische Regeln

(25)

Vorgehen beim Entwicklen der Operationalisierungsdiagramme

1 Operationen identifizieren mit DomPreundDomPost

2 Identifizieren und Zuordnen der Input- und Output-Variablen

3 Präzise Spezifikation der Operationen mit Vor-, Nach- und Triggerbedingungen

4 Operationalisierungsbeziehungen zu den Zielen im Zielemodell herstellen

(26)

Heuristiken

Analyse von Zielen:

Ist das Ziel vom TypAchieve

→ Operation, die den gewünschten Zustand erzeugt.

Ist das Ziel vom Type Maintain

→ Operation, die die Bedingungen sicherstellt.

Szenarien durchspielen und daraus Operationen entwickeln.

Zusammenhang zwischen Zielen, Objekten und Akteuren untersuchen, um die verbindenden Operationen zu finden.

Referenzen

ÄHNLICHE DOKUMENTE

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

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

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

Modellierung des Verhaltens von Instanzen Szenarien mit Sequenzdiagrammen der UML Verfeinerung von Szenarien.. Modellierung des Verhaltens von Klassen Vorgehen bei der Modellierung