Softwareanforderungsanalyse
Objektmodell
Burkhardt Renz
THM, Fachbereich MNI
Wintersemester 2018/19
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
Ü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
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
Typen konzeptueller Objekte
Entitäten Akteure Ereignisse Beziehungen
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.
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
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
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
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.
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
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
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
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
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
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
Erweitertes ER-Modell – Konzepte
Generalisierung/Spezialisierung Diskriminator
Disjunktheits- und Vollständigkeitseigenschaft Unterschied OO-Sprachen – Entitäten
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
Beispiel Diskriminator
Speed Capacity
Train Acceleration DoorsState
discriminating attribute
ShortTrain
… SemiRapid
…
Rapid
…
LongTrain
…
Quelle: Lamsweerde S. 376
Übersicht
Strukturelle Sicht auf das Anwendungsgebiet im Objektmodell
Vorgehen beim Entwickeln des Objektmodells Zusammenhang zum Zielemodell
Heuristiken für die Entwicklung des Objektmodells
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
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
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
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