Klausur Softwaretechnik

Ähnliche Dokumente
Klausur Softwaretechnik Prof. Dr. Walter F. Tichy Dipl.-Inform. T. Gelhausen Dipl.-Inform. G. Malpohl. Musterlösung

Klausur Softwaretechnik

KLAUSUR SOFTWARETECHNIK

Klausur Softwaretechnik

Klausur Softwaretechnik I

KLAUSUR SOFTWARETECHNIK

KLAUSUR SOFTWARETECHNIK I

MUSTERLÖSUNG Softwaretechnik

Klausur Softwaretechnik

Klausur Softwaretechnik

5. Tutorium zu Softwaretechnik I

Aufgabenblatt 4. Aufgabe 3. Aufgabe 1. Aufgabe 2. Prof. Dr. Th. Letschert Algorithmen und Datenstrukturen

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

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

Klausur Softwaretechnik I

Objektorientierte Programmierung

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

Vorkurs Informatik WiSe 15/16

Einstieg in die Informatik mit Java

Theorie zu Übung 8 Implementierung in Java

Semestrale Softwaretechnik: Software-Engineering

Sommersemester Implementierung I: Struktur

UML -Klassendiagramme

Probeklausur: Programmierung WS04/05

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

Institut für Programmierung und Reaktive Systeme. Java 7. Markus Reschke

Einstieg in die Informatik mit Java

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter

Klausur Softwaretechnologie SS 2017

Klausur Grundlagen der Programmierung

Universität zu Lübeck Institut für Telematik. Prof. Dr. Stefan Fischer

Test-Klausuraufgaben Softwaretechnik Fachbereich BW, für WINFO

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

Probeklausur Java Einführung in die Informatik. Wintersemester 2016/2017

Informatik II. Semesterklausur

Programmieren in Java

Probeklausur Java Einführung in die Informatik. Wintersemester 2017/2018

Objektorientiertes Programmieren (Java)

Vorlesung Programmieren

Klausur "ADP" SS 2016

1. Teilklausur Gruppe A. Bitte in Druckschrift leserlich ausfüllen!

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

Algorithmen und Datenstrukturen 07

Probeklausur zur Vorlesung

Einschub - Die Object Constraint Language in UML Oder: Wie man Zusicherungen in UML angibt

Aufgaben Objektentwurf

Klausur: Java (Liste P)

Programmierung Nachklausurtutorium

Kapitel 5: Interfaces

! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete. II.4.2 Abstrakte Klassen und Interfaces - 1 -

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung

Algorithmen und Datenstrukturen 06

Polymorphie/Späte Bindung Abstrakte Klassen Interfaces. Polymorphie/Späte Bindung Abstrakte Klassen Interfaces

12 Abstrakte Klassen, finale Klassen und Interfaces

00-Wiederholung WIEDERHOLUNG. Programmierkonzepte und Java-Grundlagen. Peter Vischer Schule Nürnberg

Arten von Klassen-Beziehungen

Programmieren 2 Java Überblick

Objektorientierte Programmierung

Tag 8 Repetitorium Informatik (Java)

7. Objektorientierung. Informatik II für Verkehrsingenieure

Javakurs für Anfänger

II.4.2 Abstrakte Klassen und Interfaces - 1 -

Programmieren in Java

14 Abstrakte Klassen, finale Klassen, Interfaces

Prüfung Software Engineering I (IB)

Übungsblatt 13. Abgabe / Besprechung in Absprache mit dem Tutor

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Wiederholung: Interfaces

14 Abstrakte Klassen, finale Klassen, Interfaces. Auswertung von Ausdrücken. Beispiel. Abstrakte Methoden und Klassen

Algorithmen und Datenstrukturen

Einführung in die Informatik

14 Abstrakte Klassen, finale Klassen, Interfaces

Kapitel 13. Abstrakte Methoden und Interfaces. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz

Philipp Güttler Objektorientierung und komplexe Datentypen

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

Programmieren in Java -Eingangstest-

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

Grundelemente objektorientierter Sprachen (1)

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005

Übungen zur Vorlesung Softwaretechnologie - Wintersemester 2018/19 - Dr. Günter Kniesel. Übungsblatt 10 Lösungen

Transkript:

Klausur Softwaretechnik 15.03.2007 Prof. Dr. Walter F. Tichy Dipl.-Inform. T. Gelhausen Dipl.-Inform. G. Malpohl Hier das Namensschild aufkleben. Zur Klausur sind keine Hilfsmittel und kein eigenes Papier zugelassen. Die Bearbeitungszeit beträgt 60 Minuten. Die Klausur ist vollständig und geheftet abzugeben. Mit Bleistift oder roter Farbe geschriebene Angaben werden nicht bewertet. Aufgabe 1 2 3 4 5 Maximal 18 12 13 10 7 60 K1 K2 K3

Aufgabe 1: Aufwärmen (18P) a.) Kreuzen Sie an, ob die Aussage wahr oder falsch ist. (8P) Hinweis: Jedes korrekte Kreuz zählt 0,5 Punkte, jedes falsche Kreuz bewirkt 0,5 Punkte Abzug! Die Teilaufgabe wird mit mindestens 0 Punkten bewertet. Wahr Falsch Aussage Software ist leichter zu ändern als ein physikalisches Produkt vergleichbarer Komplexität. Das Lastenheft beschreibt die Eigenschaften, die das Produkt aus Sicht des Kunden erfüllen soll, während das Pflichtenheft zusätzlich die genauen Vorschriften für den Entwickler enthält. Bei der Anforderungsvalidierung in der Planungsphase wird nicht überprüft, ob die Anforderungen erfüllt werden können. Eine vollständige Methodensignatur in UML besteht aus dem Rückgabetyp und der Parameterliste einer Funktion. Klassendiagramme sind Multi-Hyper-Graphen. Wird das Attribut Multiplizität einer Assoziation in einem UML- Klassendiagramm nicht angegeben, bedeutet dies nicht spezifiziert und damit spezifikationsgemäß beliebig viele, aber mindestens 1. In Java muss eine Klasse, die eine Schnittstelle implementiert, alle in der Schnittstelle vorgegebenen Methoden implementieren. Auf ein private-attribut eines Exemplars einer Klasse kann nur das Exemplar selber zugreifen. In UML-Aktivitätsdiagrammen unterscheidet man zwischen Objektund Kontrollflüssen. Die Diagramme Kollaborationsdiagramm, Zeitdiagramm, Zustandsdiagramm und Sequenzdiagramm zählen zur Gruppe der Interaktionsdiagramme. Bei Modulen gibt es zu jeder Definitionseinheit nicht mehr als eine Implementierungseinheit. Das Entwurfsmuster Iterator ermöglicht polymorphe Iteration. Kombiniert man das Entwurfsmuster Befehl mit dem Entwurfsmuster Stellvertreter, erhält man einen Makrobefehl. Die Hauptaufgaben der Implementierungsphase des Wasserfallmodells sind die Umsetzung der Spezifikation in korrekte, ablauffähige Programme, die Dokumentation und das Testen der Komponenten. Bei der Feinoptimierung ändern sich lediglich Konstanten des Laufzeitverhaltens, die asymptotische Laufzeit des Algorithmus bleibt unverändert. Beim Planungsspiel im XP gilt: Das Entwicklungsteam trifft die geschäftsrelevanten Entscheidungen. Klausur Softwaretechnik Wintersemester 2006/2007 Seite 2 von 13

b.) Definieren Sie die Begriffe Signaturvererbung und Implementierungsvererbung aus der objektorientierten Programmierung. In welchem Zusammenhang stehen diese beiden Eigenschaften? (3P) c.) Was ist der Nachteil von Zyklen in der Benutzt-Relation zwischen Modulen? (1P) d.) Definieren Sie die zwei Begriffe Wartung und Pflege von Softwareprodukten. (1P) Klausur Softwaretechnik Wintersemester 2006/2007 Seite 3 von 13

e.) Nennen sie jeweils zwei Qualitätssicherungsverfahren aus der Kategorie der dynamischen und der statischen Verfahren. (2P) Dynamische Verfahren: 1.. 2.. Statische Verfahren: 1.. 2.. f.) In der objektorientierten Analyse und in UML gibt es das Konzept der Assoziation. (i.) Was bietet dieses Konzept für einen semantischen Mehrwert gegenüber den einfachen Referenzen, wie sie z.b. in Java zu finden sind? (ii.) Welche Probleme hat man ohne dieses Konzept der Assoziation? (iii.) Java kennt keine Assoziationen. Wie setzt man also Assoziationen in Java um? (3P) Klausur Softwaretechnik Wintersemester 2006/2007 Seite 4 von 13

Aufgabe 2: Anforderungserhebung (12P) Ihr Chef hat beim Golf spielen einen Auftrag an Land gezogen: Ihre Firma (insges. 15 Mitarbeiter) soll den Webauftritt eines mittelständigen Reiseunternehmens komplett neu gestalten. Das Unternehmen hat bisher nur einige wenige statische Seiten und möchte gerne einen komfortablen, interaktiven Reisekatalog anbieten. Für den Vertragsabschluss sollen Sie nun die Anforderungen erheben. Ihr Chef gibt Ihnen eine Woche Zeit. a) Welche Erhebungstechniken haben wir in der Vorlesung kennen gelernt? (4P) b) Diskutieren Sie für jede einzelne Technik, ob und warum (oder warum nicht) sie sich im beschriebenen Szenario anbietet. (8P) Klausur Softwaretechnik Wintersemester 2006/2007 Seite 5 von 13

Klausur Softwaretechnik Wintersemester 2006/2007 Seite 6 von 13

Aufgabe 3: Kontrollflussorientierter Strukturtest (13P) Gegeben ist die folgende Java-Funktion: int zaehlezeichen(string text, char zeichen) { int zaehler = 0; if (text!= null) { for (int i=text.length()-1; i>=0; i--) { if (text.charat(i) == zeichen) { zaehler++; return zaehler; a.) Wandeln Sie obiges Programm mit einer strukturerhaltenden Transformation in eine der Definition der Vorlesung entsprechenden Zwischensprache um. (3P) Eingabeparameter: text, zeichen Klausur Softwaretechnik Wintersemester 2006/2007 Seite 7 von 13

b.) Erstellen Sie den Kontrollflussgraphen der Funktion zaehlezeichen(). Wenden Sie dabei das aus der Vorlesung bekannte Verfahren an. (4P) n start Eingabe: text, zeichen n stopp return zaehler; Klausur Softwaretechnik Wintersemester 2006/2007 Seite 8 von 13

c.) Nennen Sie eine minimale Testfall-Menge für die Anweisungsüberdeckung und geben Sie zu jedem Testfall den durchlaufenen Pfad an. (1P) d.) Nennen Sie eine minimale Testfall-Menge für die Zweigüberdeckung des obigen Programms. Geben Sie zu jedem Testfall den durchlaufenen Pfad an. (2P) e.) Nennen Sie die Teilpfade der Schleifenquerer (Boundary-Interior-Test). (1P) f.) Geben Sie eine Testfallmenge für den Grenztest (Boundary-Interior-Test) an. (1P) g.) Geben Sie eine Testfallmenge für den Interieurtest (Boundary-Interior-Test). (1P) Klausur Softwaretechnik Wintersemester 2006/2007 Seite 9 von 13

Aufgabe 4: Entwurfsmuster (10P) Gegeben sei folgendes Programm (S.o.p steht für System.out.println): import java.util.*; abstract class Tee { protected boolean gezogen = false; public abstract void ziehen(); // Ende der Klasse Tee class Schwarztee extends Tee { public void ziehen() { S.o.p("Der Schwarztee zieht."); gezogen = true; // Ende der Klasse Schwarztee class GruenerTee extends Tee { public void ziehen() { S.o.p("Der grüne Tee zieht."); gezogen = true; // Ende der Klasse GruenerTee class Chai extends Tee { private Tee basistee; private List<String> zutaten = new ArrayList<String>(); public Chai(Tee grundlage) { if (grundlage==null) throw new IllegalArgumentException(); basistee = grundlage; zutaten.add("lorbeerblatt"); zutaten.add("zimtstange"); zutaten.add("ingwer"); zutaten.add("honig"); zutaten.add("milch"); zutaten.add("vanilleschote"); public void ziehen() { basistee.ziehen(); for (String z : zutaten) { S.o.p(z + " zieht"); S.o.p("Chai zieht"); S.o.p("Tee zieht mit Chai"); gezogen = true; // Ende der Klasse Chai class Test { public static void main (String[] a) { Tee t = new Schwarztee(); Tee chai = new Chai(t); chai.ziehen(); // Ende der Klasse Test a.) Welches Entwurfsmuster wird hier verwendet? ( Oberklasse ist nicht gemeint!) Begründen Sie Ihre Antwort. (2P) b.) Geben Sie an, welche Klasse welche Rolle des Entwurfsmusters einnimmt. (1P) Klausur Softwaretechnik Wintersemester 2006/2007 Seite 10 von 13

c.) Geben Sie das UML-Klassendiagramm des hinter dem Code stehenden Modells an. Ihr Diagramm soll alle Klassen (außer der Klasse Test ) mit allen Attributen, Methoden (incl. Sichtbarkeit etc.) und Assoziationen enthalten. (3P) Hinweis: Achten Sie darauf, Attribute und Assoziationen nicht zu verwechseln! Klausur Softwaretechnik Wintersemester 2006/2007 Seite 11 von 13

d.) Wie heißt (i.) das übergeordnete Entwurfsmuster zu dem im angegebenen Programm implementierten? Was ist (ii.) der Unterschied? ( Oberklasse ist nicht gemeint!) (2P) e.) Was haben (i.) das im angegebenen Programm implementierte Entwurfsmuster und der Adapter gemeinsam? Und (ii.) wie unterscheiden sich die beiden? (2P) Klausur Softwaretechnik Wintersemester 2006/2007 Seite 12 von 13

Aufgabe 5: OCL (7P) Gegeben seien das nebenstehende UML-Klassendiagramm und der folgende OCL-Ausdruck. In der Vorlesung wurde gezeigt, wie Klassendiagramme in Java umgesetzt werden. Was ist hingegen bei der Umsetzung des gegebenen OCL-Ausdrucks in Java zu tun? name: String alter: Integer gehalt: Real arbeitetan Hinweise: Nennen Sie alle Stellen, an denen Maßnahmen zu treffen sind. Beachten Sie, dass sich die Zusicherung auch auf etwaige Verwaltungsmethoden der Assoziationen auswirken könnte. Sie brauchen in dieser Aufgabe keinen konkreten Code anzugeben, beschreiben Sie die Maßnahmen abstrakt. context Abteilung inv: self.mitarbeiter->forall(a1, a2 a1.projekt->size() > a2.projekt->size() implies a1.gehalt > a2.gehalt) * Angestellter erhöhegehalt(betrag:real): Real Mitarbeiter * Projekt * Mitarbeiter Projekt name: String budget: Real arbeitetin Projekt * 1..* Abteilung Abteilung name: String ort: String budget: Real Abteilung 1 kontrolliert Klausur Softwaretechnik Wintersemester 2006/2007 Seite 13 von 13