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 eE, der eine festgelegte Eingabebedingung erfüllt, wird auf eine Ausgabe aA abgebildet, die eine vorgegebene Ausgabebedingung erfüllt. (ii) Der Algorithmus ist endlich. Sei nun K:EA ein Algorithmus, der eine Eingabemenge E auf eine Ausgabemenge A semantisch korrekt abbildet. Sei eE eine Eingabe, auf die K angewendet wird. Weiter sei t:eN 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.
© Copyright 2024 ExpyDoc