• Keine Ergebnisse gefunden

Klausur Softwaretechnologie WS 2010/11

N/A
N/A
Protected

Academic year: 2021

Aktie "Klausur Softwaretechnologie WS 2010/11"

Copied!
12
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Technische Universität Dresden, 01062 Dresden

Fakultät Informatik Institut für Software- und Multimediatechnik, Professur Softwaretechnologie

Klausur

Softwaretechnologie WS 2010/11

Name:

Vorname:

Immatrikulationsnummer:

Aufgabe Maximale

Punktanzahl

Erreichte Punktanzahl Teil I 45

Teil II 45

Gesamt 90

Zum Bestehen der Klausur müssen mindestens 20 Punkte im Teil I (Analyse) und ebenfalls 20 Punkte im Teil II (Entwurf und Implementierung) erreicht werden.

Hinweise:

In der Klausur ist als Hilfsmittel lediglich ein A4-Blatt, beidseitig beschrieben, zugelassen.

Die Klammerung der Aufgabenblätter darf nicht entfernt werden.

Tragen Sie bitte die Lösungen auf den Aufgabenblättern ein!

Verwenden Sie keine roten, grünen Stifte oder Bleistifte!

Es ist kein eigenes Papier zu verwenden! Bei Bedarf ist zusätzliches Papier bei der Aufsicht erhältlich. Bitte jedes zusätzliche Blatt mit Name, Vorname und

Immatrikulationsnummer beschriften.

Es sind alle Aufgabenblätter abzugeben!

Ergänzen Sie das Deckblatt mit Name, Vorname und Immatrikulationsnummer!

Halten Sie Ihren Studentenausweis und einen Lichtbildausweis zur Identitätsprüfung bereit.

Achtung! Das Zeichen am linken Seitenrand heißt: Java-Text ist einzufügen!

Prof. Dr.rer.nat.habil.

Uwe Aßmann

(2)

(3)

Teil I (Analyse)

Aufgabe I-1: Das EPost-Brief-Konzept und seine Anwendungsfälle (7 Punkte)

Das Konzept des EPost-Briefes überträgt die Vorteile des klassischen Briefes in das Internet und bietet damit auch in der elektronischen Welt eine verbindliche, vertrauliche und verlässliche Schriftkommunikation. EPost-Briefe werden vom EPost-Kunden an einem Computer geschrieben, versendet und empfangen. Darüber hinaus kann der EPost-Kunde seine EPost-Briefe in einem elektronischen Briefkasten verwalten. Das Besondere ist, dass dem Empfänger der EPost-Brief nicht nur elektronisch, sondern auch klassisch per Postbote zugestellt werden kann. Empfänger von EPost- Briefen können Personen mit beliebiger Email- oder Postadresse sein. Jede Person kann EPost-Kunde werden, indem sie sich vor der ersten Nutzung eines EPost-Services registriert.

Modellieren Sie die Anwendungsfälle des EPostbrief-Konzeptes in einem UML- Anwendungsfalldiagramm!

(4)

Aufgabe I-2: Das vereinfachte Domänenmodell des EPost-Brief-Konzeptes (22 Punkte)

Jede Person kann sich als EPost-Kunde registrieren. Zunächst hat dabei jede Person einen Namen, in den meisten Fällen einen Vornamen sowie genau eine oder mehrere Anreden („Herr“, „Frau“, „Dr.“,

„Prof.“ und/oder „Firma“). Nach der erfolgreichen Registrierung (Vertragsabschluss) einer Person als EPost-Kunde bekommt der EPost-Kunde neben einer Vertragsnummer auch eine Identifikationsnummer. Zusätzlich wird ein Guthaben zur Inanspruchnahme von EPost-Leistungen vermerkt. Der EPost-Kunde kann sein Guthaben aufladen, seine Daten konfigurieren und seinen Vertrag kündigen.

Jeder EPost-Kunde besitzt genau eine EPost-Adresse, die durch seinen Benutzernamen beschrieben wird. Diese EPost-Adresse existiert während der Vertragslaufzeit (d.h. solange der EPost-Kunde existiert). Die EPost-Adresse ist eine Email-Adresse (beschrieben durch die Email-Adresse selber).

Sie besitzt darüber hinaus genau eine zugeordnete (und überprüfte) Postadresse. Eine Postadresse ist mindestens durch eine Postleitzahl (PLZ) und einen Ort beschrieben. Zusätzlich können (optional) ein Land, eine Straße, eine Hausnummer und ein Postfach angegeben werden. Der EPost-Kunde kann neben der EPost-Adresse eine Faxnummer erhalten.

Der EPost-Kunde bekommt genau einen elektronischen Briefkasten zugeordnet, in dem alle seine EPost-Briefe liegen. Ein elektronischer Briefkasten kann verwaltet werden (sortieren, EPost-Brief verschieben). Jeder EPost-Brief hat genau ein Subject, einen Text sowie ein Absende- und ein Zustellungsdatum. Darüber hinaus kann der EPost-Brief Anhänge besitzen. Ein EPost-Brief kann gelesen, geschrieben, exportiert, beantwortet (antworten an Absender oder an alle Adressaten), weitergeleitet, gedruckt, gelöscht oder (durch den Postboten) zugestellt werden. Eine Rechtschreibprüfung ist ebenso möglich.

Jeder EPost-Brief wird an mindestens eine Person adressiert (Empfänger). Jeder Empfänger eines EPost-Briefes bekommt ein Tag zugeordnet. Mögliche Tags sind „An“, „CC“, „BCC“ oder im Fall des klassischen Briefes „KLASSISCH“. Die Adresse einer Person (siehe Klasse Adresse im UML- Klassendiagramm auf der nächsten Seite) besteht aus einer Email- und/oder herkömmlichen Postadresse. Adressen werden in Adressverzeichnissen (Klasse Adressverzeichnis) verwaltet (suchen, eintragen und löschen). Dabei werden persönliche Adressverzeichnisse (Klasse PersönlichesAV) und das öffentliche Adressverzeichnis (Klasse ÖffentlichesAV) unterschieden.

Ein persönliches Adressverzeichnis ist immer genau einem EPost-Kunden zugeordnet. Ein EPost- Kunde besitzt wiederum genau ein persönliches Adressverzeichnis, in dem er Adressen von beliebigen Personen eintragen kann. Dabei kann eine Adresse in verschiedenen persönlichen Adressverzeichnissen enthalten sein.

Im Gegensatz dazu enthält das öffentliche Adressverzeichnis ausschließlich Adressen von EPost- Kunden. Allerdings muss das öffentliche Adressverzeichnis nicht alle EPost-Adressen enthalten, weil jeder EPost-Kunde entscheiden kann, ob seine EPost-Adresse eingetragen wird.

Ergänzen Sie das neben stehende UML-Analyse-Klassendiagramm um die oben beschriebenen und noch nicht modellierten Sachverhalte!

(5)

(6)

Aufgabe I-3: Registrierung als EPost-Kunde (16 Punkte)

Um die versprochene Sicherheit des EPost-Briefes zu garantieren, muss sich der spätere EPost-Kunde zunächst einem sicheren Registrierungsverfahren unterziehen. Dieses Verfahren ist in dem folgenden UML-Aktivitätsdiagramm vereinfacht dargestellt. Grundsätzlich gibt es vier Schritte:

1. Zunächst wird ein (Benutzer-)Name ausgewählt. Falls der Name bereits vergeben ist, werden vom EPost-Provider alternative Namen vorgeschlagen, von denen einer ausgewählt werden kann. Der ausgewählte Name wird dann für den späteren EPost-Kunden reserviert.

2. Der EPost-Provider versendet einen Registrierungscode. Damit ist der spätere EPost-Kunde im System registriert, aber noch nicht freigeschalten. Mit dem Registrierungscode muss er jetzt persönliche Daten und ein Passwort festgelegen. Im Ergebnis dessen kann sich der spätere EPost- Kunde einen Coupon für ein Identifizierungsverfahren beim EPost-Provider ausdrucken.

3. Unter Vorlage des Coupons und des Personalausweises identifiziert sich der spätere EPost-Kunde in einer Postfiliale. Damit wird sichergestellt, dass die Person sich wirklich unter ihrem eigenen Namen und der richtigen Postadresse registriert.

4. Nach erfolgreicher Identifikation wird der EPost-Provider den EPost-Kunden freischalten und diesen zum Abschluss des Registrierungsverfahrens mit einer SMS an das Handy des EPost- Kunden benachrichtigen.

(7)

Modellieren Sie auf Basis der obigen Beschreibung und des zugehörigen Aktivitätsdiagramms eine UML-Verhaltenszustandsmaschine für den Anwendungsfall der Registrierung als EPost- Kunde! Geben Sie dazu ein UML-Zustandsdiagramm an.

Hinweise:

Überlegen Sie sich zunächst, welche Zustände eine Person in dem Registrierungsverfahren als EPost-Kunde besitzt. Tragen Sie diese Zustände mit passenden Zustandsnamen in das Diagramm ein.

Modellieren Sie in einem zweiten Schritt Anfangs- und Endzustände sowie alle Transistionen einschließlich Ereignissen, Guards und Aktionen (sofern vorhanden). Verwenden Sie dazu die im Aktivitätsdiagramm aufgeführten Aktionen und Objekte!

.

(8)

Teil II (Entwurf und Implementierung)

Aufgabe II-1: Implementierung von Adressverzeichnissen (38 Punkte)

Ein Softwareentwickler hat begonnen, das Analysemodell aus Aufgabe I-1 zum Entwurfsmodell zu verfeinern. Im Folgenden ist ein noch unvollständiges Entwurfsmodell dargestellt. Jedes Adressverzeichnis hat drei Methoden zur Verwaltung eines Adressverzeichnisses: Eintragen einer Adresse (adresseEintragen()), Suchen einer Adresse (adresseSuchen()) und Löschen einer Adresse (adresseLoeschen()). Eine erste Anwendung (Klasse Anwendung) soll das Suchen nach Adressen von Personen (gegeben durch den Namen name der Person) in einem Adressverzeichnis av ermöglichen.

Implementieren Sie in Java die Klassen Adressverzeichnis, PersoenlichesAV, OeffentlichesAV und Anwendung. Achten Sie dabei auf Konsistenz zum gegebenen Ausschnitt des Entwurfsmodells. Gehen Sie wie folgt vor:

a) Ein Adressverzeichnis (Attribut verzeichnis) soll als generische Map-Datenstruktur implementiert werden. In dieser Map sollen jedem Namen einer Person die zugehörigen Adressen zugeordnet werden. Überlegen Sie sich deshalb zunächst die Variablendefinition für das Attribut verzeichnis und geben Sie diese in Java an:

(9)

b) Implementieren Sie im Folgenden vollständig die vier oben genannten Klassen! Beachten Sie dabei folgende Semantik der Methoden:

Die Methode adresseEintragen() gibt false zurück, wenn die Adresse der Person bereits im Adressverzeichnis enthalten ist.

Die Methode adresseSuchen() gibt null zurück, wenn die Adresse im Adressverzeichnis nicht existiert.

Die Methode adresseLoeschen() gibt false zurück, wenn die Adresse im Adressverzeichnis nicht existierte.

Die Methode suchen() in der Klasse Anwendung gibt null zurück, wenn die Adresse im Adressverzeichnis nicht existiert.

import java.util.*

// Implementierung der Klasse Adressverzeichnis

(10)

// Implementierung der Klasse Anwendung

(11)

// Implementierung der Klasse PersoenlichesAV

// Implementierung der Klasse OeffentlichesAV

(12)

Aufgabe II-2: Prüfen der Emailadresse und Entwurfsmuster (7 Punkte)

Wie in Aufgabe I-2 erklärt, enthält das öffentliche Adressverzeichnis ausschließlich Adressen (Emailadressen und Postadresse) von EPost-Kunden. Private Adressverzeichnisse können darüber hinaus beliebige Adressen enthalten. Wir müssen also in unsere Implementierung das Prüfen der Adressen einfügen. Nehmen Sie an, dass dies mit der Methode

<Zugriffbeschränkung> boolean pruefeAdresse(Adresse adr)

geschehen soll.

a) Beschreiben Sie kurz, wie das Prüfen von Adressen in den Entwurf (siehe Entwurfsklassendiagramm S. 8) eingebaut werden kann.

b) Tragen Sie die Methode pruefeAdresse() mit vollständiger Beschreibung in das Entwurfsklassendiagramm ein!

c) Welches Entwurfsmuster kommt dabei zur Anwendung? Schreiben Sie das

Entwurfsmuster einschließlich der beteiligten Rollen in das

Entwurfsklassendiagramm in UML-Notation ein.

Referenzen

ÄHNLICHE DOKUMENTE

– Mobile Node (MN) globally addressable: fixed Home Address (HoA) – Home Agent (HA) to permanently represent MN at home network – Mobile Node locally addressable: changing Care

verwendet je nach Aufruf auch gemusterte (gestrichelte) Linienzüge. schließt den Linien-Umriß genau dann, wenn der erste Punkt auch als letzter angegeben wird.. e) Das

verwendet je nach Aufruf auch gemusterte (gestrichelte) Linienzüge. schließt den Linien-Umriß genau dann, wenn der erste Punkt auch als letzter angegeben wird.. e) Das

(a) Zeichnen Sie mit MatLab ein Quadrat ABCD wobei die gegebene Strecke eine Seite des Quadrates sein muß. (b) Zeichnen Sie Mittelpunkt und Umkreis des