SE-Analyse-Übungen - FB2

1. Übung Software-Analyse
1.
Objekt (was immer das auch sein mag) besitzen eine Identität und sind
unterscheidbar. Dabei ist es nicht immer einfach, ein Schema für deren
Unterscheidung zu finden. Es kann auch sein, dass der Zweck der Unterscheidung
dieses Schema beeinflusst. Geben Sie für die nachfolgenden Objektgruppen eine
eindeutige Charakterisierung an:
a) Alle Menschen auf der Welt zum Zwecke der Postzustellung
b) Alle Menschen auf der Welt zum Zwecke der kriminalistischen Erfassung
c) Alle Kunden einer Bank die eine Sicherheitsbox dort haben
d) Alle Telefone der Welt zum Zwecke des Telefonierens
e) Alle Kunden einer Telefongesellschaft zum Zwecke der Abrechnung
f) Alle Mitarbeiter einer Firma zum Zwecke des Zugangs eines
Sicherheitsbereichs
2.
Ein Softwareunternehmen habe n Mitarbeiter, die 8 Stunden am Tag arbeiten.
Aufgrund statistischer Untersuchungen geht die Geschäftsführung davon aus, dass
im Durchschnitt jeder Mitarbeiter 6 Minuten am Tag mit einem anderen spricht.
a) Ab wie viel Mitarbeitern sind alle nur noch mit reden beschäftigt, so dass keine
produktive Arbeit mehr getätigt werden kann?
b) Ab wie viel Mitarbeitern hat die Produktivität (also die Zeit des tatsächlichen
Arbeitens) ihr Maximum?
3.
Was muss ein semantisches Datenmodell beinhalten? In welcher Phase des
Wasserfallmodells kommt es vor?
4.
Ein Algorithmus ist bekanntlich eine Abbildung von einer Menge E von Eingaben
in eine Menge A von Ausgaben. Er heißt semantisch korrekt, wenn er folgende
Bedingungen erfüllt:
(i) Jeder Input eE, der eine festgelegte Eingabebedingung  erfüllt, wird auf
eine Ausgabe aA abgebildet, die eine vorgegebene Ausgabebedingung 
erfüllt.
(ii) Der Algorithmus ist endlich.
Sei nun K:EA ein Algorithmus, der eine Eingabemenge E auf eine
Ausgabemenge A semantisch korrekt abbildet. Sei eE eine Eingabe, auf die K
angewendet wird. Weiter sei t:eN eine Abbildung der Eingabe e in die Menge
der natürlichen Zahlen N, welche die Anzahl der elementaren Operationen, die von
bei der Anwendung von K ausgeführt werden, ermittelt. t(e) heißt dann die totale
Kostenfunktion von K bezüglich e. Bestimmen Sie die totale Kostenfunktion t(n)
des folgenden Algorithmus für die Fälle
a) n ist Primzahl:
b) n ist Quadrat einer Primzahl
c) n ist gerade:
Function PrimeCheck(n As Integer)
Dim p As Integer
Dim b As Boolean
p = 2
b = True
Do While p * p <= n And b
If n Mod p = 0 Then b = False
p = p + 1
Loop
PrimeCheck = b
2. Übung Software-Analyse
Zur Schulung des Abstraktionsvermögens wollen wir folgende Überlegungen durchführen:
Im 3-D-Raum gibt es nun verschiedene Möglichkeiten für (unendlich ausgedehnte) Ebene
sich zu schneiden:
Eigenschaft
Ebenen sind parallel
Ebenen sind nicht parallel
Ebenen sind identisch
Schnittmengen
Keine
Gerade
Unendlich (Alle Punkte der Ebenen)
Verallgemeinern wir das auf den 4-D-Raum. Es seien also 2 (unendlich) ausgedehnte
(zweidimensionale) Ebenen gegeben. Überlegen Sie sich eine entsprechende Tabelle wie oben
für die Möglichkeiten.
Hinweis
Versuchen Sie z.B. die Schnittmenge der folgenden Ebenen im 4-D-Raum zu bestimmen:
3. Übung Software-Analyse
1.
Ein Konzern hat folgende Hierarchie:
Eine Holding wacht über Geschäftsbereiche. Jeder Geschäftsbereich ist in
Hauptabteilungen und diese sind jeweils in Abteilungen unterteilt. Jede Abteilung
beschäftigt Mitarbeiter. Davon gibt es Außendienstmitarbeiter und welche im
Innendienst. Sowohl im Außen- als auch im Innendienst gibt es freie und feste
Mitarbeiter. Innerhalb der Mitarbeiter gibt es Vorgesetzte und Untergebene.
a)
b)
c)
Erstellen Sie als Softwarehersteller ein Angebot für die Entwicklung einer
Verwaltungssoftware des Personals des Konzerns, welche die obigen
Hierarchien berücksichtigt.
Entwickeln Sie ein semantisches Datenmodell und ein Pflichtenheft
(„erfinden“ Sie ggf. sinnvolle Annahmen)
Wählen Sie ein Phasenmodell und geben Sie kurz die jeweiligen Inhalte
jeder Phase bezogen auf das obige Projekt wieder.
4. Übung Software- Analyse
Wie wir in der Vorlesung hörten, sind Pflichtenhefte meistens nicht widerspruchsfrei. Um
solche logischen Probleme frühzeitig zu erkennen, bedarf es einer gewissen Praxis im
Umgang mit „verbalen“ logischen Aussagen. Nachfolgend einige Beispiele, die die
Erkenntnis logischer Inkonsistenzen einüben sollen:
1.
Zeigen Sie, warum folgende Aussagen logische Probleme machen und worin diese
Probleme bestehen:
a) Alles ist relativ (d.h. es gibt keine absolute Wahrheit)
b) Manche Philosophen (wie z.B. Schmidt-Salomon) machen die „Erfindung“ (von
machthungrigen Individuen) der Kategorien „Gut und Böse“ für das Unheil in der
Welt verantwortlich und fordern die Abschaffung dieser Kategorien.
c) In Wikipedia ist der philosophische Begriff des Nihilismus so definiert:
„Der Begriff Nihilismus (lat. nihil „nichts“) bezeichnet allgemein eine Orientierung,
die auf der Verneinung jeglicher Seins-, Erkenntnis-, Wert- und Gesellschaftsordnung
basiert.“
2.
Zeigen Sie, dass folgende Aussage eine Kontradiktion darstellt:
„Weil es keine absoluten moralischen Gesetze gibt, soll man die (relativen) moralischen
Gesetze anderer Kulturen tolerieren.“
3.
In der Philosophie gibt es das sog. „Theodizee-Problem“. Hierbei geht es um die logische
Vereinbarkeit folgender zweier Aussagen:
a) Es gibt einen allmächtigen und allgütigen Gott
b) Es gibt (moralisch) Böses in der Welt
Für manche Atheisten sind diese beiden Aussagen widersprüchlich, denn sie argumentieren, dass ein allmächtiger Gott in der Lage sein müsste, das Böse in der Welt
abzuschaffen, und dass er es wegen seiner unendlichen Güte auch tun müsste. Da aber
Böses in der Welt existiert, sehen solche Atheisten darin den Beweis, dass es so einen
Gott nicht geben kann.
Zeigen Sie, dass diese beiden Aussagen in Wirklichkeit keinen logischen Widerspruch
darstellen, denn es ist möglich, diese beiden Aussagen logisch zu „harmonisieren“, in dem
weitere Annahmen, die keiner der beiden Aussagen widersprechen, hinzugenommen
werden können und damit das ganze logisch konsistent bleibt.
(Hinweis: Die beiden zunächst widersprüchlich erscheinenden Aussagen
a) Es gibt keine Strafen
b) Es kommen keine Diebstähle vor
kann man z.B. dadurch harmonisieren, in dem man eine weitere Annahme trifft, nämlich:
c) Alle haben genug und sind anständige Menschen
Leider leben wir nicht in dieser Welt, doch sie ist logisch möglich.)
5. Übung Software- Analyse
1.
An einem Belüftungssystem einer Industrieanlage soll eine Warnleuchte angebracht
werden, die rot aufleuchtet, wenn die Räume mangelhaft belüftet sind, ansonsten leuchtet
sie grün. Zur Belüftung stehen vier unabhängige, jedoch in der Kapazität verschiedene
Gebläse zur Verfügung, die im Verbundsystem arbeiten (d.h. jedes System ist mit einem
Raum verbunden). Über die Kapazität der Größen ist folgendes bekannt:
a) Es müssen mindestens zwei Gebläse arbeiten
b) Sobald Gebläse A ausfällt, muss Gebläse B arbeiten, ansonsten reicht die Belüftung
nicht aus.
Konstruieren Sie eine möglichst einfache Schaltung, die die Warnleuchte auf „rot“
umschaltet, wenn der verbotene Zustand eintritt
2.
Zur Bergung des Wracks "Charles the Lion" werden drei Hebewerke eingesetzt, ein
viertes und fünftes dient dazu, extreme Belastungen auszugleichen. Hierbei soll
folgendermaßen vorgegangen werden:
- Überschreitet die Belastung einen gewissen Wert (Sollwert) an mindestens einem
Hebewerk, so wird das vierte Hebewerk hinzugeschaltet.
- Wird der Sollwert an genau zwei Hebewerken überschritten, so wird auch noch das
fünfte Hebewerk hinzugeschaltet.
- Sind alle drei Ausgangshebewerke überlastet, so ist die Bergung abzubrechen.
Entwickeln Sie für das vierte und fünfte Hebewerk eine geeignete Schaltung.
3. Von zwei Krankheiten C und D und zwei Krankheitssymptomen S und T ist folgendes
bekannt:
a) Wenn der Patient an Krankheit C leidet und nicht an D, so muss er Symptom T
aufweisen.
b) Wenn mindestens eines der beiden Symptome auftritt, so leidet der Patient an
mindestens einer der beiden Krankheiten.
c) Tritt Symptom S nicht auf, so kann die Krankheit D nicht vorliegen.
d) Leidet der Patient an Krankheit D, aber nicht an C, so kann das Symptom T nicht
auftreten.
Welche Diagnose kann aufgrund dieser medizinischen Kenntnisse gegeben werden, wenn
der Patient (i) beide Symptome, (ii) nur Symptom S, (iii) nur Symptom T, (iv) keines der
beiden Symptome aufweist?
6. Übung Software- Analyse
Bilden Sie für nachfolgende Formeln jeweils (i) die bereinigte Pränexform und (ii) die
Skolemform und (iii) eine universell quantifizierte unvollständige minimale konjunktive
Normalform:
7. Übung Software- Analyse
1. Eine Behörde besitzt mehrere Abteilungen. In einer Abteilung arbeiten ggf. mehrere
Mitarbeiter. Diese Mitarbeiter unterliegen einer Hierarchie. Es gibt Vorgesetzte und
Untergebene in (theoretisch) beliebige vielen Hierarchiestufen. Ein Vorgesetzter eines
Vorgesetzten eines Mitarbeiters ist gleichzeitig auch Vorgesetzter des Mitarbeiters. Für
Untergebene gilt analoges. Ein Mitarbeiter betreut u.U. mehrere Kunden, und ein Kunde
wird ggf. von mehreren Mitarbeitern betreut. Folgende Tabelle stellt einen Ausschnitt
dieses Sachverhalts dar:
Abt.
Finanzen
Mitarbeiter
Karl Nimmersatt
Finanzen
Finanzen
Forschung
Forschung
Peter Haifisch
Trudel Beiszang
Kurt Schleuder
Sonja Besserwiss
a)
b)
c)
d)
Vorgesetzter
Ernst Grimmig
Untergebene
Egon Steinbeiss,
Trudel Beiszang
Ernst Grimmig
Karl Nimmersatt
Karl Nimmersatt Herta Maul
Sonja Besserwiss Felix Horch
Fritz Allwissend Kurt Schleuder,
Hugo Prasser
Kunde des Mitarb.
Hartmut Schlucker,
Dietmar Bettelstab
Boris Metzger
Berta Nixmoos
Gebhardt Schroeder
Boris Metzger
Welche Anomalien weist diese Tabelle auf?
In welcher Normalform befindet sich die Tabelle
Bringen Sie die Tabelle in die nächste Normalform ohne sie zu zerlegen
Durch welchen (zusammengesetzten) Schlüssel wird jeder Satz des Resultats von c)
eindeutig identifiziert?
e) Wie lautet die dritte Normalform der Ausgangstabelle? Bitte angeben!
f) Zeichnen Sie ein ERD der Tabellen der dritten Normalformen
8. Übung Software- Analyse
1.
Erstellen Sie für folgende Beschreibung ein Zustandsdiagramm:
2.
Es sei folgendes Sequenzdiagramm gegeben:
Erklären Sie mit Worten, was hier dargestellt ist.
3.
Ein Sportverein veranstaltet des öfteren Wettkämpfe aller Art. Zur Durchführung und
Bewertung der Wettkämpfe soll eine computergestützte Anwendung entwickelt
werden. Dort soll folgendes festgehalten werden:
Jede Saison beginnt und endet zu einem festgelegten Datum. Pro Saison finden
mehrere Wettkämpfe statt, jeder an einem bestimmten Ort zu einem bestimmten
Datum. Dort müssen Teilnehmer angemeldet und Durchgänge geplant werden können.
Ein Wettkampf findet in einem oder auch mehreren Stadien statt. Die Stadien haben
(zum Teil die gleichen) Punktrichter und es gibt auch noch Kampfrichter.
Ein Wettkampf besitzt in der Regel mehrere Durchgänge (ein Durchgang findet aber
immer nur in einem Stadion statt). Ein Durchgang beginnt zu einem festen Zeitpunkt,
und es müssen in jedem Durchgang die Teilnehmer überprüft werden können. In den
Durchgängen werden bestimmte Figuren verlangt, wobei eine Figur u.U. in mehreren
Durchgängen vorgeführt wird. Jede Figur hat einen Namen, einen
Schwierigkeitsfaktor sowie eine Beschreibung.
Jeder Start eines Durchgangs (wobei ein Durchgang mehrmals gestartet werden kann)
ist durch einen „Endpunktestand“ gekennzeichnet, welche für jeden Start berechnet
werden müssen. Die Punkte müssen auch gespeichert und zurückgeholt werden
können. Ein Kampfrichter ermittelt dafür für jeden Start eine vorläufige Punktzahl, die
ebenfalls gespeichert und zurückgeholt werden kann.
An den Start gehen Teilnehmer (Name, Alter, Adresse, Telefonnummer etc. werden
gespeichert) eines Teams. Ein Team ist Teil einer Liga. Für jeden Teilnehmer soll es
möglich sein, die Wettkampfpunkte zu drucken, Den Wettkampfpunktedurchschnitt zu
berechnen, den Saisondurchschnitt zu ermitteln sowie die An- und Abmeldung an
einem Wettkampf durchzuführen. Auch für ein ganzes Team soll es möglich sein, den
Wettkampf- und Saisondurchschnitt zu berechnen.
a)
Entwickeln Sie ein Datenmodell als UML-Klassendiagramm, welches alle
beschriebenen Klassen nebst ihren Attributen und den beschriebenen Methoden
ausweist
b)
Erklären Sie, wie Sie die Endpunkte eines Teilnehmers für eine gegebene Figur in
einem gegebenen Wettkampf ermitteln
c)
Erklären Sie, wie Sie den Punktedurchschnitt eines Teilnehmers für alle Figuren eines
gegebenen Wettbewerbs ermitteln
d)
Erklären Sie, wie Sie die Menge aller Einzelpersonen ermitteln, die an mindestens
einem der Durchgänge an einer gegebenen Saison teilgenommen haben
9. Übung Software- Analyse
1.
Was ist der Unterschied zwischen der Exemplarmenge einer Klasse und der Klasse
selbst?
2.
Assoziationen sind bekanntlich als eine Gruppe von Links definiert. Ein Link ist
dabei die Verbindung von je genau einem Objekt (Instanz) jeder beteiligten
Klasse, also z.B. bei einer Assoziation mit 2 Klassen eine Verbindung auf
Instanzenebene von immer genau 2 Objekten (aus jeder beteiligten Klasse eines).
Andererseits kann man in UML auch Assoziationen mit abstrakten Klassen haben.
Wie ist dieser formale Widerspruch gelöst?
3.
Wie könnte man die 4 möglichen Fälle einer Vererbungsstruktur {complete,
overlapping}, {complete, disjoint}, {incomplete, overlapping} und {incomplete,
disjoint} relational noch schärfer umsetzen (z.B. durch Einführen eines
Diskriminatorattributs)?
4.
Modellieren Sie die Anforderung eines Konzerns mittels UML, bei der die
Firmenhierarchie aller beteiligten Tochter- und Mutterfirmen in beliebiger
Detaillierungstiefe (Mütter können Mütter haben und selbst Töchter von Töchtern
etc. sein) gefunden werden kann. Jede beteiligte Firma sei der Einfachheit halber
nur über den Firmennamen, den Sitz (PLZ, ORT) und eine eindeutige
Firmennummer identifiziert. Geben Sie neben dem UML-Diagramm die
relationale Umsetzung in Form der beteiligten Tabellen an.
10. Übung Software- Analyse
In der Vorlesung haben wir folgendes Diagramm betrachtet:
Wie könnte eine weitere Zerlegung des Realzeit-Fahrstuhlsystems des System-KontextDiagramms aussehen, insbesondere mit Hinblick auf die Fahrstuhlkontrolle?
11. Übung Software- Analyse
Nach einer ersten Analyse sei folgender Entwurf für eine Bank gegeben:
Dieser erste Ansatz ist nicht optimal. Erstellen Sie daraus einen „besseren“ Entwurf, in dem
Sie z.B. Vererbungstechniken einsetzen.
12. Übung Software- Analyse
1. Es sei das nachfolgende RDF-Modell gegeben. Dort sehen wir u.a. einen
Namensraum, der foaf genannt wird. Dabei handelt es sich um die Abkürzung für
„Friend-Of-A-Friend“. Das FOAF-Projekt, wie es in der RDF-Community manchmal
genannt wird, stellt ein Vokabular für „Soziale RDFs“ dar, denn es kommen bei
Beziehungen zwischen Personen eigentlich immer wieder gleiche oder ähnliche
Prädikate vor, die in diesem Projekt gesammelt und auch online verfügbar gemacht
sind. Dies braucht uns allerdings in nachfolgendem Beispiel nicht näher zu
interessieren, wir betrachten einfach diesen Namensraum als gegeben.
Erstellen Sie eine Serialisierung des RDF-Modells mit Hilfe von RDF/XML.
2. Stellen Sie die Tatsache, dass
(ProfessorَFakultätsmitglied) ِ (FakultätsmitgliedَPerson)
in OWL als OWL-Dokument dar und erklären Sie, warum die Inferenz folgt, dass
jeder Professor eine Person ist.
3. Modellieren Sie die folgenden Sätze in OWL DL indem Sie Ausschnitte aus
entsprechenden OWL-Dokumenten in RDF/XML oder Turtle-Syntax angeben:
• Die Klasse Gemüse ist eine Unterklasse von PizzaBelag.
• Die Klasse PizzaBelag hat keine gemeinsamen Elemente mit der Klasse Pizza.
• Das Individuum Aubergine ist ein Element der Klasse Gemüse.
• Die abstrakte Rolle hatBelag besteht ausschließlich zwischen Elementen der Klasse
Pizza und der Klasse PizzaBelag.
• Pizzen haben immer mindestens zwei Beläge.
• Jede Pizza der Klasse PizzaMargarita hat Tomate als Belag.
• Die Klasse Vegetarische Pizza besteht aus den Elementen, die sowohl in der Klasse
PizzaOhneFleisch als auch in der Klasse PizzaOhneFisch sind.
• Keine Pizza der Klasse PizzaMargarita hat Belag aus der Klasse Fleisch.