• Keine Ergebnisse gefunden

Softwareanforderungsanalyse Objektmodell Burkhardt Renz

N/A
N/A
Protected

Academic year: 2021

Aktie "Softwareanforderungsanalyse Objektmodell Burkhardt Renz"

Copied!
24
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Softwareanforderungsanalyse

Objektmodell

Burkhardt Renz

THM, Fachbereich MNI

Wintersemester 2018/19

(2)

Das Objektmodell 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

Strukturelle Sicht auf das Anwendungsgebiet im Objektmodell Ziele des Objektmodells

Typen konzeptueller Objekte Entity-Relationsship-Modell Erweitertes ER-Modell

Vorgehen beim Entwickeln des Objektmodells

(4)

Ziele des Objektmodells

Strukturelle Sicht des Anwendungsgebiets erfassen Präzise Erfassung der Konzepte und Eigenschaften – Vokabular des Anwendungsgebiets

Festlegung von klar definierten Begrifflichkeiten für alle anderen Modelle

Bestimmung der Zustandsvariablen des Systems, die in der Entwicklung von Zielen, Operationen und Verhalten verwendet werden

enthält alle Informationen, um ein Glossar zu erzeugen

kann Basis für ein in der Implementierung benötigtes Klassen- oder Datenbankschema sein

kann für die Entwicklung einer Softwarearchitektur für das zu konstruierende System verwendet werden

(5)

Typen konzeptueller Objekte

Entitäten Akteure Ereignisse Beziehungen

(6)

Entitäten und Entitätstypen

Definition (Entität)

EineEntität ist ein identifizierbares „Ding“, Objekt aus dem Anwendungsgebiet. Es ist autonom und passiv.

Definition (Entitätstyp)

EinEntitätstyp ist die Menge aller möglichen gleichartig strukturierten Entitäten.1

Beispiel

Zug,Gleissegment sind Entitätstypen bei der Zugsteuerung Buch,BuchExemplarsind Entitätstypen bei der

Bibliotheksverwaltung

1im Buch von Lamsweerde ist der Entitätstypgemeint, wenn von Entität die Rede ist. Die Entität nennt er Instanz.

(7)

Akteure und Akteurstypen

Definition (Akteur)

EinAkteur ist ein identifizierbares autonomesaktives Objekt des Anwendungsgebiets. Akteure können Zustandsvariablen des Systems beeinflussen.

Definition (Akteurstyp)

EinAkteurstypist die Menge aller möglichen gleichartig strukturierten Akteure.

Beispiel

ZugControllerist ein Akteurstyp in der Zugsteuerung

Initiator,Teilnehmersind Akteurstypen bei der Terminplanung BibliotheksMitgliedist ein Akteurstyp in der

Bibliotheksverwaltung

(8)

Ereignisse und Ereignistypen

Definition (Ereignis)

EinEreignis tritt in einem einzelnen, bestimmten Zustand des Systems auf, es ist wie ein unmittelbarer, momentaner Impuls.

Definition (Ereignistyp)

EinEreignistypist die Menge aller möglichen gleichartigen Ereignisse.

Beispiel

Abfahrtist ein Ereignistyp in der Zugsteuerung

BuchAnfrageist ein Ereignistyp bei der Bibliotheksverwaltung TerminAnfrageist ein Ereignistyp bei der Terminplanung

(9)

Beziehungen und Assoziationen (Beziehungstypen)

Beziehungen stellen Verbindungen zwischen konzeptuellen Objekten, also Entitäten, Akteuren und Ereignissen her.

Definition (Beziehung)

EineBeziehung ist ein Verbindung zwischen konzeptuellen Objekten, jedes einbezogene Objekt spielt dabei eine bestimmte Rolle.

Definition (Assoziation)

EineAssoziation (auch:Beziehungstyp) ist die Menge aller

gleichartigen Beziehungen zwischen jeweils bestimmten Typen von konzeptuellen Objekten.

Beispiel

EinZugbefindet sich Aufeinem Gleissegment EinBibliotheksMitglied LeihteinBuchExemplar EinInitiator StartetTerminAnfrage

(10)

Attribut

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

Definition (Attribut)

EinAttributist eine Eigenschaft eines konzeptuellen Objekts.

EinAttributwertist der Wert eines Attributs einer bestimmten Instanz.

EinDatentypist eine Menge von Werten. Jedes Attribut hat einen Datentyp und der Attributwert hat diesen Typ.

(11)

Objektmodell als ER-Modell in UML-Notation

Objektmodelle werden als ER-Modelle in UML-Notation dargestellt, d.h.

Typen von Entitäten, Akteuren und Ereignissen werden als UML-Klassen ohne Methoden dargestellt

Assoziationen werden dargestellt als UML-Assoziationen bzw.

UML-Assoziationsklassen

Alle konzeptuellen Objekte werden annotiert mit ihren

Features und erhalten eine präzise Definition, so dass aus dem Modell ein Glossar des Vokabulars des Anwendungsgebiets erstellt werden kann

(12)

Annotationen konzeptueller Objekte

NameName des Typs, entspricht Klassenname in UML Type Entitätstyp, Akteurstyp oder Ereignistyp

Def präzise Beschreibung des konzeptuellen Objekts mit exakten Angaben darüber, in welchem Zustand Instanzen des Typs sein müssen

Hasdie Attribute erläutert, die auch um UML-Klassendiagramm erscheinen

DomInvInvarianten, die ein Objekt in jedem Zustand erfüllen muss

Init definiert die initialen Werte von Attributen und Beziehungen einer Instanz

(13)

Beispiel annotierter konzeptueller Objekte

Name Meeting; Type Entity

Def Any actual meeting that has been requested in the system (regardless of whether it will hold or not), or that has already been held.

Has Date % the calendar date and day time at which the meeting starts %;

Duration % the meeting duration (in hours or days) %;

Location % the actual venue of the meeting % DomInvar ScheduledIffTiming&LocationSet:

A meeting is scheduled iff its date, duration, and location are set.

Init No date or location determined yet.

annotation entity

features Meeting

Date Duration Location Scheduled

Name Patron; Type Agent

Def Any person currently registered to a system's library for some valid period.

Synonyms Borrower Patron

Name Train; Type Entity

Def Any train currently in operation in the system.

Has Speed %…%; Acceleration %…%; DoorsState %…%;

DomInvar

MovingIffNonZeroSpeed: ( tr:Train) (Moving (tr) tr.Speed 0) NonZeroSpeedIfNonZeroAcceler: ( tr:Train) (tr.Acceleration 0 tr.Speed 0) ClosedIfNotOpen: ( tr:Train) (tr.DoorsState ‘open' tr.DoorsState = ‘closed') Init For any train tr: tr.Speed = 0 tr.Acceleration = 0 tr.DoorsState = ‘closed' Issue How about trains under maintenance?

Train Speed Acceleration DoorsState

Name On

Def The current localization of a train on system blocks.

DomInvar OnTwoBlocksAtMost: A train is on one or two successive blocks at any time.

Init Any train entering the system is on the main station block Block

On

agent attributes

association

, ,

Quelle: Lamsweerde S.364

(14)

ER-Modellierung – Konzepte

Attribute

einfache Attribute

zusammengesetzte Attribute mehrwertige Attribute abgeleitete Attribute unveränderliche Attribute Assoziationen

Arität

Reflexive Assoziationen Multiplizität

Assoziationsklasse

Aggregation und Komposition

(15)

Beispiel ER-Diagramm

has Registered registeredAt

0..2 Starts: Date Expires: Date

registration Period

0..* 0..*

Registration DateRegistered: Date Deposit: Money

Loan DateBorrowed: Date TimeLimit: NumberWeeks

Library

Book

Keywords [1..*]:

# Topic BookCopy

CopyID

Copy Ownership

Borrows BorrowedBy 0..1

* 0..Max

copyOf

hasCopy 1 Patron

Phone [*]: String Email: Prefix x Suffix

Period

multiplicity of attribute

rigid attribute attributes of association multiplicity of

association

N-ary association

role

1 1..*

Quelle: Lamsweerde S.370

(16)

Beispiel Aggregation - Komposition

Library

aggregation

AntiTheft

Directory

Shelve

0..1 1..*

TheftSensor

TheftAlarm

1

At Platform

Train

composition

Car In

Door

2

Quelle: Lamsweerde S. 377

(17)

Erweitertes ER-Modell – Konzepte

Generalisierung/Spezialisierung Diskriminator

Disjunktheits- und Vollständigkeitseigenschaft Unterschied OO-Sprachen – Entitäten

(18)

Beispiel erweitertes ER-Diagramm

Book registeredAt

Loan DateBorrowed: Date TimeLimit: NumberWeeks

BorrowableItem CopyID DateEntered

Copy Borrows BorrowedBy

0..1 0..Max

Patron Phone [*]: String Email: Prefix x Suffix

StudentID YearOfStudy

Student

specialization

features inherited by all specializations

BookCopy

StudentPatron

StaffPatron Department

JournalCopy

ProceedingsCopy ResearchAccount multiple

inheritance

Issue Journal Author

Conference ConfSeries

ProcOf

Quelle: Lamsweerde S.74

(19)

Beispiel Diskriminator

Speed Capacity

Train Acceleration DoorsState

discriminating attribute

ShortTrain

… SemiRapid

Rapid

LongTrain

Quelle: Lamsweerde S. 376

(20)

Übersicht

Strukturelle Sicht auf das Anwendungsgebiet im Objektmodell

Vorgehen beim Entwickeln des Objektmodells Zusammenhang zum Zielemodell

Heuristiken für die Entwicklung des Objektmodells

(21)

Herleiten des Objektmodells aus dem Zielemodell

Entitäts-, Akteurs- und Ereignistypen ergeben sich aus den konzeptuellen Objekten, die in den Zielen vorkommen

z.B. „Die Geschwindigkeit eines Zugs auf einem Gleissegment darf niemals das Geschwindigkeitslimit des Segments

überschreiten“

→ Zug,Gleissegment

Assoziationen ergeben sich aus dem Zielemodell

z.B. das ZielMaintain[Geschwindigkeitslimit] ist nur sinnvoll zu formulieren, wenn man die Assoziation Auf(Zug, Segment)hat

→ AufAssoziation zwischen Zugund Gleissegment

(22)

Vom Zielemodell zum ER-Diagramm – Beispiel

SpeedBelow BlockLimit NoTrainCollision

SafeTransportation RapidTransportation

FastJourney

FastRunToNext BlockIfGoSignal

AccelerationComputed FromEstimates

WorstCase StoppingDistance

SafeAcceleration

Commanded TrainAcceleration FromCommand

AccurateSpeed&

PositionEstimated

Train Speed WCS -Dist Acceleration Position

Block SpeedLimit

Command Acceleration Speed

Signal Position:

{go, stop}

TrainInfo Speed Position Following

On

Next

Tracking Guard

Driving

Quelle: Lamsweerde S. 382

(23)

Heuristiken für die Entwicklung des Objektmodells

Objekte der Umgebung brauchen entsprechende Objekte in der Software – ergibt Abbildungsassoziationen (Tracking), ein Modellder Welt in der Software

z.B. Zugund ZugInfo

Assoziationen ergeben sich aus Invarianten des Anwendungsgebiets

z.B. Zwei Treffen können nicht zur selben Zeit im selben Raum stattfinden

→ AssoziationAllokation zwischenRaum und Treffen

(24)

Welches Modellierungselement wählen?

Attribut oder Assoziation zu anderem Objekttyp?

Attribut hat Werte, dessen Instanzen keine Identität haben Objekttyp hat eigene Identität mit wechselnden Zuständen Entität, Akteur oder Ereignis?

Prüfen ob aktiv, passiv? → Akteur, Entität

Existiert nur in einem einzelnen Zustand? → Ereignis Attribut eines Objekttyps oder einer Assoziation?

Ist das Attribut eine Eigenschaft derBeziehung zwischen Objekttypen?

Assoziation oder Aggregation?

Modellierung der Zusammensetzung? → Aggregation Wann Spezialisierung/Generalisierung einsetzen?

Gleichartige Struktur bzw. Verwendung von verschiedenen Objekttypen→ Generalisierung

Referenzen

ÄHNLICHE DOKUMENTE

Ein Ablauf heißt seriell, wenn alle Schritte einer Transaktion vollständig ausgeführt werden, ehe die der nächsten Transaktion

Keine vorherige Unterscheidung lesend/schreibend Lesende Zugriffe erhalten Werte des Schnappschusses Schreibende Zugriffe müssen die disjoint write property erfüllen:

Architektur verteilter Datenbanken Speicherung in verteilten Datenbanken Verteilte Anfragen. Ein (übertriebenes) Beispiel Algorithmen für verteilte

Eine Annahme ist eine präskriptive Aussage über die Welt, die aber nicht durch das System erreicht werden soll, sondern für dieses vorausgesetzt werden kann. Eine Definition ist

Methodische Ansätze zur Analyse des Anwendungsgebiets Gestaltung und Kreativität in der Anforderungsanalyse

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