Klausur Softwaretechnologie WS 2014/15



Ähnliche Dokumente
Klausur Softwaretechnologie SS 2017

Klausur Softwaretechnologie WS 2010/11

Klausur Softwaretechnologie WS 2008/09

Klausur Softwaretechnologie SS 2012

Klausur Softwaretechnologie SS 2009

Klausur Softwaretechnologie SS 2016

Klausur. Softwareentwurf. 14. Februar 2011 Bearbeitungszeit: 120 Minuten

Klausur Softwaretechnologie WS 2011/12

Klausur. Softwareentwurf. 04. Februar 2013 Bearbeitungszeit: 120 Minuten

Klausur. Softwareentwurf. 13. März 2013 Bearbeitungszeit: 120 Minuten

Grundlagen der Softwaretechnik

Informatik IIa: Modellierung. Frühlingssemester Assessment Prüfung 5. Juni 2009

Klausur. Softwareentwurf. 22. März 2011 Bearbeitungszeit: 120 Minuten

Probeklausur: Programmierung WS04/05

Klausur: Java (Liste P)

Languages and Tools for Object-Oriented Development Klausur Wintersemester 2007/2008

Informatik für Ingenieure (InfIng)

Allgemeine Hinweise:

Universität Augsburg, Institut für Informatik Sommersemester 2001 Prof. Dr. Martin Ester 16. Juli Klausur

Name:... Matr.-Nr... Bearbeitungszeit: 120 Minuten. Lesen Sie die Aufgaben jeweils bis zum Ende durch; oft gibt es hilfreiche Hinweise!

Einführung in die Programmierung. (K-)II/Wb17

Dies ist eine Probeklausur, die keine formalen Schlüsse auf die Form, die Struktur oder den Inhalt der endgültigen Klausur zulässt.

OOSE 01 JAVA MIT BLUEJ UND UML-BY-EXAMPLE

VORDIPLOMSPRÜFUNG FÜR ELEKTROINGENIEURE. Einführung in die Informatik III

Probeklausur Informatik 2 Sommersemester 2013

Semestrale Softwaretechnik: Software-Engineering

Klausur zur Vorlesung Informatik 1 im Wintersemester 2014/2015 am 18. Februar Bearbeitungszeit: 90 Minuten Gesamtpunktezahl: 90 Punkte

Objekt-Orientierte Programmierung. II/Wb17

Nachholklausur zur Vorlesung: Einführung in die objektorientierte Programmierung mit Java WS1415

Probeklausur zur Vorlesung

124 Kompetenzorientierte Aufgaben im Informatikunterricht

2. Schriftliche Leistungskontrolle (EK)

MPGI 3 Muster-Klausur A

Matrikelnummer: 1 Aufgabe 1: Quickies (30 Punkte) a) Wird das folgende Programm von einem Java-Übersetzer ohne Beanstandungen übersetzt? Falls nicht,

Beispielklausur A MPGI 3

Wuerfel - augenzahl: int + Wuerfel() + wuerfeln() + gibaugenzahl(): int

Übungsaufgaben Softwaretechnologie

Klausur Formale Systeme Fakultät für Informatik WS 2009/2010. Prof. Dr. Bernhard Beckert. 18. Februar 2010

Fakultät IV Elektrotechnik/Informatik. Klausur Einführung in die Informatik I (Technikorientierung) 28. März Bearbeitungszeit: 120 Minuten

UML -Klassendiagramme

Übungsklausur Programmieren / Algorithmen und Datenstrukturen 1

Unified Modelling Language

Aufgabe 1: Quer durch Java (4 Punkte) super abstract abstract protected

Klausur Softwaretechnik

Abiturprüfung Informatik, Grundkurs

Universität Augsburg, Institut für Informatik Sommersemester 2001 Prof. Dr. Martin Ester 08. Oktober Klausur II

Sachinformation. TButton. TLabel. TMemo

Prof. Dr. Peter Knauber. Name:... Vorname:... Unterschrift:...

Klausur Einführung in die Informatik I für Elektrotechniker 16. Juli 2003

UNIVERSITÄT SIEGEN Fachbereich 12, Elektrotechnik und Informatik Fachgruppe Betriebssysteme / verteilte Systeme

Klausur Informatik 1 WS 07/08. Aufgabe Max. Punkte Punkte. Gesamtpunkte:

Geoinformatik und Vermessung Prüfung 502 : Informatik (JAVA)

Technische Universität Braunschweig

Institut für Informatik

2. Klausur zur Vorlesung Informatik 1 im Wintersemester 2014/2015 am 30. März Bearbeitungszeit: 90 Minuten Gesamtpunktezahl: 90 Punkte

Einführung in die Programmierung

15 Unified Modeling Language (UML) 7 UML und Java Informatik 2 (SS 07) 595

Listen. M. Jakob. Gymnasium Pegnitz. 20. September Hinführung: Wartenschlangen. Grundprinzip von Listen Rekursion

Arbeitsblätter zu Teil I des Praktikums

Informatik II. Semesterklausur

Klausur Grundlagen der Programmierung

Einführung in die Programmierung Vorlesungsprüfung

Klausur zur Vorlesung: Einführung in die objektorientierte Programmierung mit Java im Wintersemester 2015/16

MPGI 3 SLK B. Wintersemester 2011/ Februar 2012

Name:... Matr.-Nr... Bearbeitungszeit: 120 Minuten

PRÜFUNG. Grundlagen der Softwaretechnik

Prof. Dr. Uwe Schmidt. 30. Januar 2017

Klausur - Informatik I SS 05. Note: Bearbeitungszeit 120 Minuten Keine Hilfsmittel

Listen. M. Jakob. 20. September Gymnasium Pegnitz

Klausur Informatik 1 SS 08. Aufgabe Max. Punkte Punkte. Gesamtpunkte:

Wie entwerfe ich ein Programm?

Beispielklausur Parallele und Funktionale Programmierung XXX 200X

UNIVERSITÄT SIEGEN Fachbereich 12, Elektrotechnik und Informatik Fachgruppe Betriebssysteme / verteilte Systeme

Informatik II. Übungsstunde 6. Distributed Systems Group, ETH Zürich

Einführung in die Programmierung und Programmiersprachen (OOP)

Heute. Nachbetrachtung Wissensüberprüfung. Sortieren Interface Comparable TreeSet Sortieren von Arrays: Arrays.sort() 3.12.

Klausur Einführung in die Informatik II für Elektrotechniker 16. Juli 2003

Probeklausur zur Vorlesung: Einführung in die objektorientierte Programmierung mit Java im Wintersemester 2017/18

Prüfung Software Engineering I (IB)

Technische Universität München WS 2004/2005 Fakultät für Informatik 11. Dezember 2004 Prof. Dr. Seidl

Modellierungstipps für die Anwendungsfallmodellierung

Informatik II: Algorithmen & Datenstrukturen. Blättern Sie nicht um bevor Sie dazu aufgefordert werden!

Kurs 1793 Software Engineering I - Grundkonzepte der OOSE Klausur am

Lehrstuhl für Angewandte Informatik I SS 2003 Prof. Dr. Andreas Henrich 23. September Konzepte der Programmierung. Klausur

Bachelorprüfung: Objektorientierte Softwareentwicklung

Interface. So werden Interfaces gemacht

Prüfung Softwareentwicklung II (IB)

Algorithmen und Datenstrukturen

Universität Augsburg, Institut für Informatik Sommersemester 2005 Prof. Dr. Werner Kießling 15. Oktober 2005 Dr. Alfons Huhn, Timotheus Preisinger

Klausur zur Vorlesung Algorithmen und Datenstrukturen

Prüfung Softwareentwicklung II (IB)

Institut für Informatik. Endterm Klausur zu Informatik I 20. Februar 2010

Kapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen

Programmieren in Java -Eingangstest-

Vorname: Nachname: Matrikelnummer: Klausur. Betriebssysteme

Allgemeine Informatik II

Vorlesung Datenbank-Entwurf Klausur

Prüfung Informatik D-MATH/D-PHYS :00 11:00

IT I: Heute. abstrakte Methoden und Klassen. Interfaces. Interfaces List, Set und Collection IT I - VO 7 1

Transkript:

Fakultät Informatik Institut für Software- und Multimediatechnik, Professur Softwaretechnologie Technische Universität Dresden, 01062 Dresden Klausur Softwaretechnologie WS 2014/15 Prof. Dr.rer.nat.habil. Uwe Aßmann Name: Vorname: Immatrikulationsnummer: Aufgabe Maximale Punktanzahl Erreichte Punktanzahl 1 33 2 7 3 12 4 38 Gesamt 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 heißt: Hier ist Java-Text einzufügen!

2 Aufgabe 1: E-Assessment (33 Punkte) Eine Fakultät möchte elektronische Klausuren einführen. Dazu wird ein Konzept ausgearbeitet. Begonnen wird mit der Modellierung der Domäne. In der ersten Runde entsteht das folgende Analyseklassendiagramm. Class runs is enrolled is assigned for Teacher creates Test is based on Assessment delivers Student Answer delivers creates reviews «enumeration» TestStatus enumeration literals DRAFT COMPLETE DEPRECATED SelectionAnswer answers to Question selectedoptions AnswerOption «enumeration» QuestionStatus enumeration literals Draft REVIEWED ACCEPTED REJECTED is relevant for ClosedQuestion is an instance of Course OpenQuestion belongs to InputAnswer

3 Es werden (elektronische) Klausuren (Test) und Prüfungen (Assessment) modelliert. Unter einer Prüfung wird die Prüfung eines Studenten (Student) einschließlich der Bewertung der Prüfung verstanden, die der Student in einer (is based on) Klausur geliefert (delivers) hat. Ein Student nimmt in der Regel an mehreren Klausuren teil. Ein Student kann mehrere Lehrveranstaltungen (Course) besuchen. Zu jeder Lehrveranstaltung gibt es mindestens eine Seminargruppe (Class), in die sich ein Student einschreiben kann (is enrolled). Eine Seminargruppe wird von mindestens zwei und maximal 30 Studenten besucht. In der Regel betreut (runs) ein Lehrbeauftragter (Teacher) mehrere Seminargruppen. Jede Seminargruppe wird von genau einem Lehrbeauftragten betreut. Der Prozess des Entwurfs einer Klausur ist aufwendig. Es werden zunächst Fragen (Question) als DRAFT entwickelt. Jede Frage ist für mindestens eine Lehrveranstaltung relevant (is relevant for) und wird von genau einem Lehrbeauftragten geschrieben (creates). Typischerweise sind verschiedene Lehrbeauftragte daran beteiligt und jeder dieser Lehrbeauftragten kann sich mehrere Fragen überlegen. In einem nächsten Schritt wird jede Frage von oft mehreren Kollegen (Teacher) begutachtet (reviews). Eine begutachtete (REVIEWED) Frage wird nach einer Diskussion unter den Lehrbeauftragten akzeptiert (ACCEPTED) oder abgelehnt (REJECTED). Da jede Klausur aus Rechnerkapazitätsgründen für jede Seminargruppe neu organisiert werden muss, stellt (creates) ein Lehrbeauftragter eine Klausur, bestehend aus mindestens einer Frage, zusammen und weist diese Klausur genau einer Seminargruppe zu (is assigned for). Es werden offene (OpenQuestion) und geschlossene (ClosedQuestion) Fragen unterschieden. Die Beantwortung einer offenen Frage erfordert die Eingabe eines Textes. Eine geschlossene Frage dagegen ist eine Multiple-Choice- Aufgabe, für die in der Aufgabenstellung insgesamt mindestens fünf Antwortoptionen (AnswerOption) vorgegeben werden. Die Prüfung eines Studenten (Assessment, siehe oben) besteht aus den Antworten (Answer) des Studenten, die er auf die Fragen der Klausur liefert (delivers). Eine Antwort wird auch als eine Antwort gewertet, wenn diese vom Studenten nicht bearbeitet wurde. Jeder Student kann nur eine Antwort (Answer) auf eine Frage geben. Die Antwort, die zu einer offene Frage gehört (belongs to), heißt InputAnswer. Im Fall der Antwort (SelectionAnswer) auf eine geschlossene Frage wählt der Student die aus seiner Sicht richtigen Antwortoptionen (selectedoptions) aus. Teilaufgabe 1.1: Ergänzen Sie entsprechend der oben gegebenen Beschreibung im Analyseklassendiagramm alle Klassenbeziehungen um die richtigen Multiplizitäten! Falls eine Multiplizität direkt oder indirekt nicht aus dem Text ableitbar ist, kann sie weggelassen werden. Teilaufgabe 1.2: Ergänzen Sie das Analyseklassendiagramm auf Seite 2 um weitere domänenspezifische Informationen: Einer Seminargruppe einer Lehrveranstaltung werden genau eine Zeit und ein Raum zugeordnet. Für jede Klausur müssen ein Titel, eine erlaubte Bearbeitungszeit sowie eine Instruktion zur Durchführung der Klausur angegeben werden. Jede Frage braucht eine Beschreibung sowie die maximale Anzahl von erreichbaren Punkten. Für eine offene Frage wird die erwartete Antwort angegeben. Im Fall einer geschlossenen Frage wird für jede ihrer Antwortoptionen ein Antworttext, und es wird zusätzlich angegeben, ob der Antworttext richtig ist. Die Note der Prüfung (Assessment) eines Studenten berechnet sich aus den Punkten, die er durch seine Antworten erzielen konnte. Jeder Student wird durch seine Matrikelnummer identifiziert. Zusätzlich werden sowohl der Student als auch der Lehrbeauftragte durch Namen und Emailadresse erfasst.

4 Teilaufgabe 1.3: In einer zweiten Runde der Begutachtung des obigen Analyse-Klassendiagramms wird festgestellt, dass die Semantik einiger Klassen besser durch Assoziationsklassen modelliert werden kann. Modellieren Sie für ein Beispiel den entsprechenden Ausschnitt aus dem Analyseklassendiagramm neu: Teilaufgabe 1.4: Die Lehrbeauftragte Birgit hat die offene Frage OQ1 für die Lehrveranstaltung SWT geschrieben. Eine weitere Frage (die geschlossene Frage CQ1) wurde vom Lehrbeauftragten Max geschrieben. Der Lehrbeauftragte Georg hat beide Fragen begutachtet. Die geschlossene Frage CQ1 wurde zusätzlich von Birgit begutachtet. Bislang wurde aber nur die Frage OQ1 für die Verwendung in einer Klausur akzeptiert. Birgit erstellt eine Klausur K2015 und weist dieser als erste Frage OQ1 zu. Erstellen Sie ein Objektdiagramm, welches oben beschriebenes Objektnetz beschreibt! Beachten Sie, jedes Objekt durch seinen Objekt- und Klassennamen und jeden Link mit seinem zugehörigen Assoziationsnamen zu beschriften (sofern dieser im Ausgangsmodell vorhanden ist).

5 Aufgabe 2: Abstraktes Zustandsmodell (7 Punkte) Gegeben ist das folgende (abstrakte) Zustandsmodell. Bedingungen (Guards) und Aktionen sind in Java-Syntax spezifiziert. Füllen Sie die folgende Tabelle aus, in dem Sie das Zustandsmodell in der Reihenfolge der gegebenen Ereignisse abarbeiten und jeweils den neuen Zustand und die Belegung der Variablen angeben! Ereignis- Ereignis Neuer Variablenwerte Nr. Zustand x y z 1 start a 2 2 2 2 e1 3 e1 4 e3 5 e2 6 e2 7 e4 8 e4

6 Aufgabe 3: UML-Diagramme (12 Punkte) Die Qualität und Nützlichkeit von Modellen und UML-Diagrammen hängt entscheidend von deren Einsatz in den Phasen im Softwarelebenszyklus sowie der Charakteristik der Projekte ab. Beschreiben Sie in der folgenden Tabelle, wofür die Modellierung mit den folgenden UML-Diagrammarten geeignet ist und kreuzen Sie an, in welchen Phasen des Software-Lebenszyklus (Analyse (OOA) und/oder Entwurf (OOD)) die Diagramme zum Einsatz kommen! UML-Diagramm Beschreibung Phase OOA OOD Analyseklassendiagramm Entwurfsklassendiagramm Objektdiagramm Protokollmaschine Anwendungsfalldiagramm Verhaltenszustandsmaschine Aktivitätsdiagramm Sequenzdiagramm

7 Aufgabe 4: ToDo-Listen (38 Punkte) Eine ToDo-Liste beinhaltet in geordneter Reihenfolge todos. Die ToDo-Listen einer Person werden in einer Kollektion verwaltet. Der Entwurf für die Implementierung von ToDo-Listen sieht vor, dass es ein Interface für eine ToDo-Liste (ToDoList) und ein Interface für eine Kollektion von ToDo-Listen (ToDoListCollection) gibt. Die Interfaces und deren Implementationen sind im folgenden Entwurfsklassendiagramm beschrieben. Eine ToDoListImpl hat eine Bezeichnung (listname) und besteht aus den eigentlichen todos (angeordnet in einer Liste: List<E>). Eine Kollektion von ToDoListen (ToDoListCollectionImpl) soll als eine Menge von ToDoListen implementiert werden, wobei diese Menge nach der Bezeichnung der ToDo-Listen sortiert ist. Einer ToDoList kann ein neues todo am Ende der Liste (addtodo(todo)) oder an einer bestimmten Position (addtodo(todo,position)) hinzugefügt werden - aber nur dann, wenn es das todo in der Liste noch nicht gibt. ToDo-Listen mit dem gleichen Namen kann es dagegen geben. Wenn ein todo einer ToDoList erfolgreich hinzugefügt wurde, wird true zurückgegeben, anderenfalls false. Das Entfernen eines todos (remove(todo)) gibt die Position des entfernten todos zurück. Im Fall, dass es das todo in der Liste nicht gibt, wird -1 zurückgegeben. Die Methode getnumberoftodos() gibt die Anzahl von todos in der Liste zurück. Die Klasse ToDoListImpl hat zusätzlich einen Konstruktor, der eine leere Liste mit einer Bezeichnung (name) anlegt. Des Weiteren hat diese Klasse einen getter und setter. Eine ToDoListCollection kann eine neue ToDoList aufnehmen (add(list)) und zwar in sortierter Reihenfolge nach der Bezeichnung der ToDoList. Die Methode remove(list) entfernt eine ToDoList aus der Kollektion. Für beide Methoden add()und remove()gilt: wenn die Methode erfolgreich ausgeführt wurde, gibt sie true zurück, anderenfalls false. Die Methode getnumberoftodolists() gibt die Anzahl von ToDoLists in der Liste zurück.

8 Teilaufgabe 4.1: Implementieren Sie die beiden Klassen des Entwurfsklassendiagramms in Java! Achten Sie im Code darauf, die gleichen Namen zu verwenden (Konsistenz von Diagramm und Code)! Die Interfaces sind gegeben. public interface ToDoListCollection{ public boolean add(todolist list); public boolean remove(todolist list); public int getnumberoftodolists(); } public interface ToDoList{ public boolean addtodo(string todo); public boolean addtodo(string todo, int position); public int remove(string todo); public int getnumberoftodos(); } import java.util.*; ToDoListCollectionImpl

9 import java.util.*; ToDoListImpl

10 Teilaufgabe 4.2: Um welches Interface muss das Entwurfsklassendiagramm ergänzt werden, damit die ToDo-Listen in ToDoListCollectionImpl nach der Bezeichnung (listname) der ToDo-Listen (ToDoListImpl) sortiert werden können? Zeichnen Sie das notwendige Interface und die entsprechende Methode in das Diagramm ein! Tipp: Denken Sie auch in Ihrer Implementierung an diese Ergänzungen! Teilaufgabe 4.3: Welche(s) Entwurfsmuster sind (ist) im Entwurf enthalten? Zeichnen Sie diese(s) als Kollaboration (UML-Notation) in das Diagramm ein!