226 28 502KB
German Pages [11] Year 2014
Hessisches Kultusministerium
Landesabitur 2014
Datenverarbeitungstechnik Leistungskurs
Thema und Aufgabenstellung Vorschlag B
Hinweise für den Prüfling
Auswahlzeit: Bearbeitungszeit:
30 Minuten 240 Minuten
Auswahlverfahren Wählen Sie von den zwei vorliegenden Vorschlägen einen zur Bearbeitung aus. Der nicht ausgewählte Vorschlag muss am Ende der Auswahlzeit der Aufsicht führenden Lehrkraft zurückgegeben werden.
Erlaubte Hilfsmittel 1. ein Wörterbuch zur deutschen Rechtschreibung 2. ein eingeführter Taschenrechner (Bei grafikfähigen Rechnern und Computeralgebrasystemen ist ein Reset durchzuführen.) 3. eine Liste der fachspezifischen Operatoren Fachbereich III
Sonstige Hinweise keine
In jedem Fall vom Prüfling auszufüllen
Name:
Vorname:
Prüferin/Prüfer:
Datum:
Seite 1 von 11
Hessisches Kultusministerium Datenverarbeitungstechnik Leistungskurs
Landesabitur 2014 Thema und Aufgabenstellung Vorschlag B
Vermietung von Baumaschinen
Aufgaben Eine Firma vermietet Bagger, Kräne und andere Typen von Baumaschinen an ihre Kunden. Ein Kunde erteilt einen Auftrag und kann damit mehrere Baumaschinen buchen. 1.
Entwickeln eines objektorientierten Software-Systems zur Buchungsverwaltung Einem Sachbearbeiter, als Nutzer des Systems, sollen folgende Anwendungsfälle zur Verfügung stehen: – suchen einer freien Baumaschine eines bestimmten Typs für einen Zeitraum: Die Liste der Baumaschinen wird nach einer freien Maschine des Typs durchsucht. – suchen eines Auftrags zu einer Auftragsnummer – einen neuen Auftrag für einen Kunden erstellen: Der Kunde wird aufgrund seines Namens gesucht. Wenn es keinen Kunden mit dem angegebenen Namen gibt, wird ein neuer Kunde mit diesem Namen angelegt. – eine Baumaschine zu einem Auftrag buchen: Wenn die Baumaschine in dem Zeitraum frei ist, wird sie gebucht und die neue Buchung dem Auftrag hinzugefügt. – einen Neukunden anlegen: Ein neuer Kunde mit dem angegebenen Namen wird angelegt. Sie finden ein UML-Klassendiagramm des Buchungssystems in Material 1.
1.1
Entwickeln und zeichnen Sie ein UML-Anwendungsfalldiagramm für das Buchungssystem. (6 BE)
1.2
Zeichnen Sie ein Objektdiagramm der Baumaschine „Komatsu PW1“ mit ihren Buchungen auf Basis des Klassendiagramms in Material 1. Die Maschine ist vom Typ „Bagger“, hat die Maschinen-Nummer 6677 und einen Tagespreis von 440 Euro. Die Maschine ist vom 1.2. bis zum 5.2.2014, vom 10.2. bis zum 13.2.2014 und vom 23.2. bis zum 28.2.2014 gebucht. Erläutern Sie, die Fälle, die beim Einfügen einer neuen Buchung in die Liste unterschieden werden müssen, ohne auf die Implementierung einzugehen. Hinweise: Die Buchungen einer Baumaschine werden in einer einfach verketteten Liste gespeichert. Eine Referenz zeigt von der Baumaschine auf die erste Buchung. Die Klasse Buchung modelliert einen Listen-Knoten. Die Buchungen sind nach dem Beginn des Mietzeitraums (von-Datum) aufsteigend sortiert. Bei den Objekten der Klasse Buchung sind nur die Attribute von, bis und naechste zu berücksichtigen. (6 BE)
1.3
Überführen Sie die Klassen Auftrag und Buchung in entsprechende Anweisungen einer objektorientierten Programmiersprache und implementieren Sie die aufgeführten Methoden. Hinweis: Verwenden Sie die Klassen Datum und List aus Material 2. (8 BE) Seite 2 von 11
Hessisches Kultusministerium Datenverarbeitungstechnik Leistungskurs 1.4
Landesabitur 2014 Thema und Aufgabenstellung Vorschlag B
Im Anwendungsfall „Eine Baumaschine zu einem Auftrag buchen“ wird zunächst die Methode buche() der Klasse Baumaschine aufgerufen. Diese Methode prüft, ob die Baumaschine im gewünschten Zeitraum frei ist. Ist sie frei (Rückgabewert von istFrei() = true), wird eine neue Buchung für die Maschine angelegt und dem Auftrag hinzugefügt. Die neue Buchung wird in die Buchungsliste der Baumaschine eingegliedert und zurückgegeben. Ist die Baumaschine nicht mehr frei, wird null zurückgegeben.
1.4.1 Entwickeln und zeichnen Sie ein UML-Sequenzdiagramm für die Methode bucheBaumaschine(a: Auftrag, bm: Baumaschine, von: Datum, bis Datum): Buchung der Klasse Buchungsverwaltung, die den Anwendungsfall „Eine Baumaschine zu einem Auftrag buchen“ abbildet. Hinweise: Das Einfügen der neuen Buchung in die Buchungsliste der Baumaschine muss im Sequenzdiagramm nicht berücksichtigt werden. In Material 3 finden Sie eine Vorlage für das Sequenzdiagramm. (10 BE) 1.4.2 Entwickeln und zeichnen Sie ein Struktogramm für die Methode istFrei(von: Datum, bis: Datum): boolean der Klasse Baumaschine. (10 BE) 1.4.3 Implementieren Sie die Methode buche(a: Auftrag, von: Datum, bis: Datum): Buchung der Klasse Baumaschine unter Verwendung der Klasse Datum in Material 2. (10 BE) 1.5
Im bisherigen Modell sind der Typ und der Preis einer Baumaschine Attribute der Klasse Baumaschine. Der Preis einer Maschine wird jedoch durch den Typ bestimmt und nicht durch die einzelne Baumaschine. Das folgende UML-Klassendiagramm enthält die neue Klasse MaschinenTyp.
Seite 3 von 11
Hessisches Kultusministerium Datenverarbeitungstechnik Leistungskurs
Landesabitur 2014 Thema und Aufgabenstellung Vorschlag B
Hinweis: Die Klasse Buchungsverwaltung enthält alle bisherigen Methoden und zusätzlich die Methode sucheMaschinenTyp(typ: String): MaschinenTyp. Das abgebildete Klassendiagramm ist nur für die Aufgaben 1.5.1 und 1.5.2 relevant. 1.5.1 Vergleichen Sie beide Modelle im Hinblick auf die Suche nach einer freien Baumaschine und einer Preisänderung für einen bestimmten Typ von Maschine. (6 BE) 1.5.2 Implementieren Sie die Methode sucheBaumaschine(typ: String, von: Datum, bis: Datum): Baumaschine der Klasse Buchungsverwaltung auf Basis dieses Klassendiagramms. (4 BE)
2.
Datenbank für den Baumaschinenverleih
2.1
Zur Verwaltung der Mitarbeiterdaten bestehen bereits entsprechende Tabellen in Material 4. Einige Inhalte sollen geändert bzw. ausgewertet werden.
2.1.1 Frau Birgit Scholz (MaID = 812) arbeitet ab sofort 7 Stunden pro Tag und hat einen Urlaubsanspruch von 26 Tagen. Geben Sie eine SQL-Anweisung an, mit der die Änderung in der Datenbank vorgenommen wird. (2 BE) 2.1.2 Entwickeln Sie eine SQL-Abfrage, welche die Mitarbeiternummer, den Namen und den Vornamen sowie die Anzahl der Abwesenheitstage nach Grund zusammengefasst aus der Mitarbeitertabelle ermittelt; das Ergebnis soll nur die Mitarbeiter mit mehr als 5 Abwesenheitstagen, nach Tagen absteigend sortiert, enthalten. (5 BE) 2.1.3 Bestimmen Sie das Ergebnis der folgenden SQL-Anweisung auf Basis der in Material 4 dargestellten Mitarbeiterdaten und geben Sie es in Form einer Tabelle an: SELECT Mitarbeiter.MaID, Mitarbeiter.Name, Mitarbeiter.Vorname, Urlaubsanspruch – (SELECT SUM(AnzahlTage) FROM Abwesenheit WHERE Abwesenheit.MaID = Mitarbeiter.MaID AND Grund="Urlaub" AND YEAR(vonDatum)=2014) AS Resturlaub FROM Mitarbeiter; (5 BE) 2.1.4 Entwickeln Sie eine SQL-Abfrage, welche für alle Mitarbeiter und Mitarbeiterinnen die Mitarbeiternummer, den Namen und Vornamen sowie die Einsatzzeiten im Januar 2014 (in Stunden) ermittelt. Hinweis: Die Funktion Time_to_Hour(zeit2 – zeit1) liefert die Zeitdifferenz in Stunden. (4 BE)
Seite 4 von 11
Hessisches Kultusministerium Datenverarbeitungstechnik Leistungskurs
Landesabitur 2014 Thema und Aufgabenstellung Vorschlag B
2.2
Die Einsatzplanung für die Baumaschinen soll verbessert werden. Es soll zum Beispiel möglich sein, für einen ausgefallenen Fahrer schnell Ersatz zu finden. In Material 5 finden Sie eine Tabelle zum Einsatz der Baumaschinen mit der Maschinen-Nummer als eindeutigem Schlüssel und zusätzlichen Informationen. Analysieren Sie diese Tabelle im Hinblick auf Redundanzen und Anomalien. Geben Sie für jede Anomalie ein Beispiel an. (6 BE)
2.3
Die Verleihfirma möchte die Tabellen zur Verwaltung der Mitarbeiterdaten auf einem Server lagern. Die zwei Personengruppen Mitarbeiter und Personalverwaltung sollen darauf zugreifen können, unter der Wahrung von Datenschutz und Datensicherheit.
2.3.1 Beschreiben Sie einen Weg, wie die Zugangsberechtigungen zu den Tabellen und die Rechte für Lesen, Schreiben, Ändern und Löschen der Daten den beiden Personengruppen zugeordnet werden sollen. (2 BE) 2.3.2 Untersuchen Sie die Auslagerung der Daten in eine sogenannte Cloud und erläutern Sie, welche Gesichtspunkte des Datenschutzes und der Datensicherheit zu berücksichtigen sind. (4 BE) 2.4
Die Verleihfirma hat eine eigene Werkstatt. Zur Reparatur einer Baumaschine wird ein Ersatzteileauftrag erstellt, der einem Mitarbeiter zugeordnet wird; Sie finden ein Beispiel in Material 6.
2.4.1 Entwickeln Sie ein ER-Modell, das den Inhalt eines Ersatzteileauftrags abbildet. Zeichnen Sie das ER-Diagramm bestehend aus Entitätstypen und Beziehungen mit allen Attributen. Geben Sie die Kardinalitäten der Beziehungen in der Form „[min, max]“ an. Hinweis: In Material 7 finden Sie eine Vorlage für das Diagramm. (6 BE) 2.4.2 Überführen Sie Ihr ER-Modell in das relationale Modell in der 3. Normalform. Hinweis: Geben Sie alle Relationen in der folgenden Schreibweise an: Relation (PK, Attribut, … , FK#) (6 BE)
Seite 5 von 11
Hessisches Kultusministerium Datenverarbeitungstechnik Leistungskurs
Landesabitur 2014 Thema und Aufgabenstellung Vorschlag B
Material 1
Klassendiagramm
Hinweise: Die Auftragsnummer der Klasse Auftrag ist eine fortlaufende Nummer, bei eins beginnend. Die Buchungen werden dem Auftrag in der Reihenfolge ihrer Erstellung hinzugefügt, d.h. die Liste buchungen ist unsortiert. Get- und set-Methoden sind nicht dargestellt und müssen auch nicht implementiert werden. Die Dokumentation der Klasse Datum befindet sich in Material 2.
Seite 6 von 11
Hessisches Kultusministerium Datenverarbeitungstechnik Leistungskurs
Landesabitur 2014 Thema und Aufgabenstellung Vorschlag B
Material 2
Die Klasse Datum Ein Objekt der Klasse Datum repräsentiert ein bestimmtes Datum. Kurzbeschreibung der Klasse Datum: Datum()
erzeugt ein Datum-Objekt mit dem aktuellen Systemdatum
Datum – tag: int – monat: int – jahr: int + Datum() + Datum(tag: int, monat: int, jahr: int) + vergleicheMit(d: Datum): int + toString(): String
Datum(tag: int, monat: int, jahr: int)
erzeugt ein Datum-Objekt mit den Werten von tag, monat und jahr vergleicheMit(d: Datum): int
Vergleicht das aktuelle Datum-Objekt mit dem des Parameters d und liefert einen int-Wert 0 wenn das Datum des Datum-Objekts nach dem von d liegt toString() liefert eine String-Repräsentanz des Datum-Objekts in der Form tt.mm.jjjj
Die Container-Klasse List Mithilfe der Klasse List können Objekte im Arbeitsspeicher in einer linearen Liste verwaltet werden. List repräsentiert eine generische Liste mit Elementen des Typs T in festgelegter Reihenfolge, auf die sowohl wahlfrei über einen Index als auch sequenziell zugegriffen werden kann.
List + List( ) + add(obj: T): boolean + get(index: int): T + remove(index: int): T + size( ): int
Kurzbeschreibung der Klasse List: add(obj: T)
Hängt das Objekt obj vom Typ T am Ende der Liste an. Der Rückgabewert ist grundsätzlich true. get(index: int)
Liefert das Listenelement an der Position index zurück bzw. null, falls index negativ oder größer gleich der Anzahl der momentan enthaltenen Elemente ist. remove(index: int): T
Entfernt das Listenelement an der Position index. Liefert das entfernte Element zurück bzw. null, falls index negativ oder größer gleich der Anzahl der momentan enthaltenen Elemente ist. size(): int
Liefert die Anzahl der Elemente in der Liste zurück.
Seite 7 von 11
Hessisches Kultusministerium Datenverarbeitungstechnik Leistungskurs
Landesabitur 2014 Thema und Aufgabenstellung Vorschlag B
Material 3
Vorlage Sequenzdiagramm für den Anwendungsfall „Eine Baumaschine zu einem Auftrag buchen“
Hinweis: Die neue Buchung für die Baumaschine (Objekt der Klasse Buchung) muss im Diagramm ergänzt werden.
Seite 8 von 11
Hessisches Kultusministerium
Landesabitur 2014
Datenverarbeitungstechnik Leistungskurs
Thema und Aufgabenstellung Vorschlag B
Material 4
Mitarbeiterdaten Mitarbeiter MaID Name
Einsatz
811 812 815 817 841
Müller Scholz Storck Ullmann Hohmann
EID 1 2 3 4 5 6 7
MaID 811 811 811 812 812 817 817
Abwesenheit AbwID MaID 1 2 3 4
811 811 815 817
Vorname Jens Birgit Hans Sven Julia
Geburtsdatum 05.04.1982 21.03.1980 07.09.1972 27.09.1971 02.07.1978
Tagesarbeitszeit Urlaubsanspruch 8 26 4 24 6 26 4 27 8 24
Datum vonUhrzeit bisUhrzeit 10.01.2014 07:00 11:45 11.01.2014 07:00 16:00 12.01.2014 09:00 15:30 10.01.2014 08:00 12:00 11.01.2014 07:00 13:00 10.01.2014 07:15 15:30 11.01.2014 07:20 17:30
vonDatum 02.01.2014 09.01.2014 02.01.2014 05.01.2014
bisDatum 06.01.2014 09.01.2014 10.01.2014 08.01.2014
Grund Urlaub Krankheit Urlaub Krankheit
Anzahl Tage 5 1 7 4
Seite 9 von 11
Hessisches Kultusministerium
Landesabitur 2014
Datenverarbeitungstechnik Leistungskurs
Thema und Aufgabenstellung Vorschlag B
Material 5
Baumaschineneinsatz Masch Nr.
Maschinen Bezeichnung
Masch. typ
Führerschein typ
Bagger
Erdbaumaschinenschein
Aktueller Kunde
Kundenkontakt mit Telnr.
Aktueller Fahrer mit Telnr.
Tiefbau AG
Hr. Bauer, 069/5647
J. Müller, 0123/56789 0171/92936
A. Sand 0123/9999 0171/9999
6677
Komatsu PW1
8866
Minikran MC 168
Kran
Kranschein
Hoch AG
Hr. Tief 069/7564
8899
Raupenkran RC 98
Kran
Kranschein
BauMax KG
Fr. Hoch, 0123/4567
P. Schnell 0160/6666
9955
Gabelstapler FS 13
Stapler
Flurförderschein
BauMax KG
Fr. Hoch, 0123/4567
B. Lager 0151/5555
…
…
Alternative Fahrer mit Telnr. H. Storck, 089/12345 0160/456 P. Stein 0123/8888 0171/5678 P. Stein 0123/8888 0171/5678 P. Schnell 0160/6666 A. Sand 0123/9999 0171/9999 P. Stein 0123/8888 0171/5678 C. Adam 0124/7777 0161/8877 P. Schnell 0160/6666
…
Seite 10 von 11
Hessisches Kultusministerium
Landesabitur 2014
Datenverarbeitungstechnik Leistungskurs
Thema und Aufgabenstellung Vorschlag B
Material 6
Ersatzteileauftrag
227342
Auftrag Nr.
vom: 12.02.2014
Von Mitarbeiter
Hr. Schrauber
TeileNr. 123 234 345
Bezeichnung Felge Befestigungsmaterial Radkappe Zwischensumme Ersatzteile:
Menge 2 1 1
Einzelpreis Gesamtpreis 64,95 129,90 66,95 66,95 48,17 48,17 245,02
MwSt. 19%:
46,55
Gesamtsumme:
291,57
Material 7
Vorlage ER-Diagramm Mitarbeiter
Auftrag
Ersatzteil
Seite 11 von 11