Computersimulation nachrichtentechnischer Systeme
Version vom 15. August 2008, 13:04 Uhr von Imag (Diskussion | Beiträge) (→Strukturierung in SDL: Antworten hinzu)
Prüfung: Termine
Prüfungstermine für den 28.08.2008:
Zeiten Komplexprüfung | |||||
---|---|---|---|---|---|
Zeit | Name | ||||
09:30 | Stefan S | ||||
10:30 | Karsten R | ||||
13:00 | Steven S | ||||
14:00 | Sebastian K | ||||
15:00 | Rene G | ||||
16:00 | Sebastian D |
Prüfung: Kontrollfragen
Spezifikation und Konformität
- Welche Eigenschaften sollte eine „gute“ Spezifikation aufweisen? (2/4)
- Sie ist Genau, d.h. es bleibt kein Interpretationsspielraum.
- Sie ist Konsistent, d.h. es existieren keine internen Widersprüche.
- Sie ist Vollständig, d.h. es gibt keine Lücken in der Spezifikation.
- Sie ist Verbindlich, d.h. man kann nicht von vereinbarten Punkten abweichen
- Welche zwei prinzipiellen Arten gibt es, ein System zu beschreiben? Was sind die jeweiligen Vor- und Nachteile? (2/6)
- Informale Beschreibung --> Prosatext, Schematische Darstellung ohne festgelegte formale Regeln
- Formale Beschreibung --> eindeutig festgelegte Regeln zur Beschreibung
- Beschreiben Sie den Aufbau eines Zustandübergangdiagramms. (2/6)
- Man ist in einem Initialzustand. Aufgrund von Ereignissem wechselt man oder bleibt man im selben Zustand. Durch die Zustandsänderung wird eine neue Ausgabe erzeugt.
- Wie wird ein Programmablaufplan spezifiziert? (2/6)
- Durch Konstrukte für Anweisungen (Rechteck) und Verzweigungen (Rombe).
- Welche Probleme können bei Systemspezifikationen auftreten? Beschreiben Sie, wie diese gelöst werden können. (2/16)
- Spezifikation kann logische Fehler enthalten.
- Descrete Event Simulation sind in der Regel parallele Simulationen
- Deadlocks
- Was ist ein Deadlock?
- Zwei Programme verwenden eine je unteilbare Resource A und B. Zum Fortfahren der beiden Programme müssen sie auf die andere Resource zugreifen. Da beide Resourcen blockiert sind, ist dies nicht möglich. Die Fortführung beider Programme ist unmöglich, ein Deadlock ist entstanden.
- Wie ist ein Petri-Netz aufgebaut? (2/19)
- Ein Petri-Netz besteht aus:
- Plätzen/Stellen
- Marken (in einfachster Form nicht unterscheidbar --> farbige Marken)
- Kanten mit Transitionen, welche Bedingungen zum Zustandsübergang definieren können (zB Verzögerungszeiten)
- Schaltbedingungen (Vor- und Nachbedingung)
- Ein Petri-Netz besteht aus:
- Was bedeutet der Begriff „Markierung“ eines Petri-Netzes? (2/20)
- Ist die Belegung der Stellen und der Zustand des Petri-Netzes
- Was versteht man unter „Lebendigkeit“ (in Bezug auf ein Petri-Netz)? (2/21)
- Transition: lebendig, falls sie in jeder erreichbaren Markierung aktivierbar ist
- Petri-Netz
- schwach lebendig, falls es unter keiner Folgemarkierung tot ist
- stark lebendig, falls alle Transitionen lebendig sind
- Wozu werden Konformitätstests durchgeführt? (2/24)
- Nachweis, dass sich das System zu einer Spezifikation konform verhält.
- kein Anspruch auf Vollständigkeit durch Konformitätstests (nur bestimmte Szenarios, State Exposition Problem)
- Welche beiden Arten von Konformitätstests werden unterschieden? (2/25)
- White Box Test (Tester kennt Implementierung)
- Black Box Test (Tester kennt Implementierung NICHT)
- Was können Sie über die Interpretation der Ergebnisse von Tests aussagen? (2/29)
- Wenn ein System bei allen Tests absolut besser ist, kann man das Gegenteil nicht beweisen
- Acuh wenn ein System bei allen Tests besser ist als ein anderes, kann man durch Wahl einer geeigneten Basis das Gegenteil beweisen
- Der Anteil von unterschiedlichen Tests in einem Gesamtszenario ist zu brücksichtigen
- Mittelwerte von Verhältnissen sind bedenklich
Protokollspezifikationen mit endlichen Automaten
Einführung in SDL
- Von wem wurde SDL mit welcher Zielstellung entwickelt? (5/2)
- Entwickelt von der ITU-T respektive CCITT Empfehlung Z.100
- Ziel: Beschreibung und Spezifikation von Systemen
- Was ist der Unterschied zwischen „Specification“ und „Description“? (5/7)
- Spezifikation (formalisierte Beschreibung eines Systems): Ergebnis eines Softwareentwurfs (Systementwurfs); Nicht nur Implementierungsaspekt, sondern auch Kommunikationsmittel unter Experten
- Beschreibung (sprachliche Wiedergabe einer Idee zum Zweck der Informationsweitergabe, in den meisten Fällen eine Erklärung): SDL für bestehende und entstehende Systeme verwendbar
- "In SDL prinzipiell kein Unterschied", da in beiden Fällen gleiche Sprachelemente
- Welche Anforderungen hat SDL – wie alle formalen Beschreibungssprachen – zu erfüllen? (5/6)
- klar definiertes Konzept
- Widerspruchsfrei, präzise und übersichtlich
- Möglichkeit zur Simulation
- Welches ursprüngliche Entwurfsprinzip steckt hinter SDL? Wie hat sich dies durch die Erweiterung in Richtung Objektorientierung geändert?
- Top-Down Entwurf
- mit Objektorientierung auch Buttom-Up Entwurf, da man als erstes seine Objekte entwirft, und diese dann in höherer Abstraktion instanziiert.
- Welche beiden Möglichkeiten gibt es, ein SDL-Modell zu erstellen? Wie unterscheiden sich die jeweiligen Mächtigkeiten?
- ?
- Welche Regeln müssen in SDL zur Spezifikation eines Systems eingehalten werden?
- Ein System hat mindestens einen Block
- Vordefinierte (Daten-)Typen in SDL auf Systemebene
- Alle auf Systemebene verwendeten Signale, Kanäle und Typen müssen auf Systemebene deklariert sein
- Deklarationen auf Systemebene gelten auch für Umgebung
- Blöcke können referenziert sein (Modularität)
- Was ist über die Sichtbarkeit in einem SDL-Modell zu sagen?
- auf Systemebene deklarierte Variablen, Signale, ... sind überall sichtbar (in jedem Block, Prozess, ...)
- Generell sind in der Hierarchie weiter unten deklarierte Variablen, Signale, ... in den darüberliegenden Schichten nicht sichtbar
- Wie wird die Umwelt in SDL nachgebildet?
- innerhalb der Umwelt befindet sich das System
- das System kann über Kanäle mit der Umwelt interagieren, indem es Signale von dieser empfängt oder sendet
SDL-Basiskonstrukte für die Spezifikation von Prozessen
- Wie wird ein Prozess in SDL spezifiziert? Erläutern Sie diese Spezifikationsform genau!
- Ein Prozess ist so ein rechteckiges Symbol mit schrägen Ecken und innerhalb eines Blockes lokalisiert...
- Zur Prozessdeklaration Signale, Signallisten, Datentypen, Variablen, Typdeklarationen auf Prozessebene und der Prozess-Graph (abgebildet durch eine EFSM)
- Womit fängt die Spezifikation eines Prozesses immer an?
- Mit dem Start-Symbol, welches die ESFM in den Initialzustand setzt
- Was ist ein Signal?
- "Sprache" zum Informationsaustausch
- repräsentieren Ereignisse
- besitzen Grundbedeutung (Signalname)
- tragen optional Parameter
- Wie können Signale adressiert werden?
- Über Symbolalphabet
- Wozu werden Signale zu Signallisten zusammengefasst?
- Um die Deklaration der erlaubten Signale bei Kanälen und Signalrouten zu vereinfachen
- Was bedeutet das folgende Symbol?
- Es wird auf ein bestimmtes Signal gewartet, und anschließend erfolgt ein Zustandsübergang
- Wie kann ein Prozess ein Signal senden?
- Beim Zustandsübergang, mit Hilfe eines ähnliches Symbols
- Wie kann in einem Prozess die Zeit in die Simulation mit einbezogen werden?
- Mithilfe von Timern
- Welche Datentypen unterstützt SDL?
- Integer, Real, String, Sets, Boolean, ADTsnee
- Wie muss ein Prozess spezifiziert werden, wenn verschiedene Signale von einem Zustand aus empfangen werden können?
- mh, was soll daran groß anders sein?
- Beschreiben Sie das in SDL verwendete Prinzip der Prozesskommunikation!
- Request-Response?
- Was versteht man in SDL unter einer impliziten Transition?
- Welche vordefinierten Variablen können zur Adressierung eines Prozesses verwendet werden?
- sender
- offspring
- self
- parent
- Wozu dient das „Save“-Symbol?
- Speichert Signale, die nicht sofort bearbeitet werden können; sonst würden sie verworfen werden. Die Warteschlange arbeitet nach dem FIFO-Prinzip
- Wie können Prozesse weiter strukturiert werden?
- Services (teilen sich alle Variablen und FIFO Speicher des Prozessen, laufen nicht parallel ab)
Strukturierung in SDL
- Welche Hierarchie gibt es bei der Beschreibung eines Systems mit SDL?
- SDL teilt sich in die Hierarchie ein (der Reihenfolge nach):
- Umwelt
- System
- Blöcke (1..n)
- Prozesse (1..n)
- Prozessdefinition mittels EFSM (und zB Prozeduren)
- Services
- SDL teilt sich in die Hierarchie ein (der Reihenfolge nach):
- Was bildet die oberste Ebene der Beschreibungshierarchie in SDL?
- Umwelt
- Was stellt ein Block in einem SDL-Modell dar?
- Ein Block kann schon das ganze System beinhalten, welches beschrieben werden soll. Eigentlich dient er nur zur schönen Gliederung des Systems und hilft deshalb bei dessen Strukturierung.
- Was beinhaltet ein Block?
- Prozesse
- Wie werden Blöcke zu Kommunikation verbunden? Welche zwei Möglichkeiten werden in Bezug auf das dynamische Verhalten für die Kommunikation zwischen Blöcken unterschieden?
- Blöcke verbindet man untereinander mit Channels
- Channels kann man mit Zeitverzögerungen versehen
- ??
- Was definiert das Blockinteraktionsdiagramm?
- Kommunikationsstruktur der Blöcke innerhalb eines Systems / eines Blockes
- Wie können Prozesse oder Blöcke wieder verwendet werden?
- Prozesse können dynamisch erstellt werden. Man kann für eine Prozessdefinition angeben, wieviele Instanzen beim Start des Systems vorhanden sein sollen, und wieviele Instanzen es maximal gleichzeitig geben darf.
- "Wiederverwendet" kann ein Prozess mittels seiner Prozess ID
- Blöcke können für eine Wiederverwendung erstellt werden, indem man einen Referenzblock als "Block Type Reference" anlegt - dieser stellt quasi die Klassendefinition dar
- Man kann diesen nun instanziieren, indem man einem Block nicht nur einen Namen gibt, sondern auch den definierten Block Type Reference mit angibt
- Was ist ein Package?
- Ein Package beinhaltet eine Ansammlung von eigenen Typdefinitionen, welche zur Wiederverwendung in anderen Systemen gedacht sind.
- Wozu dient ein Service?
- Zur weiteren Untergliederung von Prozessen.
- Es ist anzumerken, dass Services nicht parallel ablaufen können, und auf die selben Variablen und auf die eine FIFO Warteschlange des Prozessen zugreifen
- Wann wird ein Prozess erzeugt? Wie kann ein Prozess terminiert werden?
- Erstellt wird eine weitere Prozessinstanz durch andere, laufende Prozesse.
- Ein Prozess kann nur sich selbst terminieren. Ein Prozess kann niemals einen anderen Prozess terminieren.