Übungen zur Softwaretechnik

Ähnliche Dokumente
Übungen zur Softwaretechnik

Semestrale Softwaretechnik: Software-Engineering

Lösungen zum Aufgabenblatt Nr. 1: Konstruktion der reellen Zahlen

Übungen zur Softwaretechnik


Datenbanken. Teil 2: Informationen. Kapitel 2: Einführung. Zusammenfassung der Grundbegriffe. Übersicht über wichtige Grundbegriffe:

Informatik II Modellierung Übung 5 Petrinetze/Klassendiagramme

Geoinformation Abbildung auf Tabellen

Softwaretechnik 2015/2016

Kurzeinführung in UML

Vorlesung Software Engineering

Übung 4 " Requirements Engineering "

Software Engineering, SoSe 07, WSI, D. Huson, May 7,

Klausur mit Musterlösung

Themenfeld Datenbanken

Studien- und Prüfungsablauf im Nebenfach Kunst und Gestaltung

Übungen zur Vorlesung Funktionentheorie Sommersemester 2012

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Dr. Thomas Neumann

Übungen zu Kapitel 4: Einführung in die Spieltheorie

Verein& Protosphera :&Statuten&!

Maximaler Fluss = minimaler Schnitt

-Abwesenheitsnachricht einrichten

Probeklausur: Programmierung WS04/05

4 Gleichungen und Ungleichungen

Übungen Teil 2: Normalisierung und ER-Modell. Dozent: Stefan Maihack Dipl. Ing. (FH)

BERUFSPRAKTIKUM UND -VORBEREITUNG

10. Datenbank Design 1

Qualifizierte und Wiederholungsidentifikation

Java Einführung Objektorientierte Grundkonzepte

Grundlagen der UML-Modellierung. Modellierung. Elena Paslaru Seminar Praktische Modellierung SS

Lösung von Textaufgaben (Beispiel Adventure-Treff) mit Maxima

Fakultät Angewandte Informatik Programmierung verteilter Systeme Übungen zur Vorlesung Informatik II, Blatt 6 - Musterlösung

Nr. 1 L-Aufgabe

Vorlesung Informatik II

UE Algorithmen und Datenstrukturen 1 UE Praktische Informatik 1. Übung 5. Asymptotische Laufzeitkomplexität Definition Regeln Beispiele

Diskrete Optimierungsverfahren zur Lösung von Sudokus

Lineare Algebra 1. Detlev W. Hoffmann. WS 2013/14, TU Dortmund

Übung 3. Musterlösungen

DIPLOMHAUPTPRÜFUNG FÜR ELEKTROINGENIEURE SOFTWARETECHNIK II

Feedback der Veranstaltungsevaluation - SS Strukturaufklärung/Spektroskopie (OC03) Prof. Dr. Johann Jauch. Kontakt: qualis@mx.uni-saarland.

*Hierzu wird Microsoft Word benötigt. Mit freien Textverarbeitungen wie Open Office ist dies leider nicht möglich.

Es werden drei Datensätze vorgestellt. Die Bezeichner der Domänen sind fett dargestellt, ihre Werte erscheinen nach einem Doppelpunkt 1.

Vom 30. März Wahlbereich beträgt 90 (68-76 Semesterwochenstunden), verteilt auf drei Semester.

Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 10

Übung 3. Interaktive Abfragen auf eine SQL-Datenbank. Prof. Dr. Andreas Schmietendorf. Wirtschaftsinformatik

Ergebnisse. Kurz-Statistiken Umfrage 'ARIS Einführung' Umfrage 83198

Algorithmen und Datenstrukturen 1 VL Übungstest WS 2010/ November 2010

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

Erste Datenbereinigung

Einführung in die technische Informatik

3. Übungsblatt (Testatwoche: Mai 2010) Einführung in Datenbanksysteme Datenbanken für die Bioinformatik

Übungsaufgaben: 1. Objektorientierte Programmierung - Teil 1

Steuerung von Programmabläufen. Vorlesung Computergestützte Mathematik zur Linearen Algebra. Lehrstuhl für Angewandte Mathematik Sommersemester 2009

Das Pfandmodul. Nach der Installation des Pfandmoduls steht Ihnen unter Stammdaten Artikelbearbeitung

Access 2010 Programmierung Import und Export nach Excel

Kurs 1793 Software Engineering I Nachklausur am

Legt durch das Argument Dann bzw Sonst fest, wie nach einer Prüfung (Bedingung) verfahren werden soll.

IT-Weiterbildung an der Technischen Universität Dortmund

Arbeitshilfe für die Hinterlegung von Unterlagen der Rechnungslegung Eingabeformular

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

Digitale Schulbücher erstellen mit ibooks Author

4. Übung zu Software Engineering

Prof. Dr. Rolf Lauser

Einleitung. Funktionsübersicht: Vorteile:

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Dr. Thomas Neumann

Die Folgerungsbeziehung

a) In der Aufgabenstellung war ein möglichst einfaches Klassendiagramm gefordert. Abb. 1 zeigt eine mögliche Lösung. * * * Aufbau 1..

Das Fenster wird neu geladen. Sie sehen die Eingabemaske Helligkeit, Kontrast und Farbe anpassen.

Datenzugriffskomponente mit JPA 2.1

Mathematische Funktionen

Schaltungssimulator Lastenheft

Datenbanken II A: Datenbank-Entwurf Klausur

Universität Augsburg, Institut für Informatik WS 2014/2015 Prof. Dr. W. Kießling 28. Nov F. Wenzel, L. Rudenko Lösungsblatt 6

Vererbung und Polymorphie

Datenbanksysteme I WS 2015/16. Übungsblatt 12: Lösungsvorschlag

Theoretische Informatik 1 WS 2007/2008. Prof. Dr. Rainer Lütticke

Universität Augsburg, Institut für Informatik WS 2009/2010 Prof. Dr. W. Kießling 06. Nov Dr. A. Huhn, F. Wenzel, M. Endres Lösungsblatt 2

Klassen mit Instanzmethoden

4. Übung zu Software Engineering

Installationshilfe Behnke IP-Video Software. Anleitung. Version 1.0

Access für Windows. Andrea Weikert 1. Ausgabe, Oktober Grundlagen für Anwender

Grundlagen der Programmentwurfstechnik Fundamentals of Software Engineering 1

Adobe Acrobat Professional - Portfolio. Leibniz Universität IT Services Anja Aue

Matrix42. Use Case - Inventory. Version Dezember

Modellierung mit UML

m n 1 Kurs Fach KursNr Art Abb. 1.1: Das ER-Diagramm

Programmstart mit einem Projekt

Achtung, Speichern nicht vergessen!

Multimedia im Netz Wintersemester 2013/14. Übung 03 (Nebenfach)

Feedback der Veranstaltungsevaluation - WS 2015/16. Biochemie für Lehramtsstudierende Chemie (BCLa) Prof. Dr. Johann Jauch, Dr.

PRÜFUNG. Grundlagen der Softwaretechnik

Persistenz. Ralf Gitzel

Semantic-Web-Sprachen XML, RDF (und RDFS), OWL

Übung Statistik I Statistik mit Stata

Vorlesung Datenbank-Entwurf Klausur

Das Feld Script können Sie leer lassen. Hier könnten weitere Scripts eingebunden werden, welche Sie z.b. selbst entwickelt haben.

Geoinformation I Datenmodellierung

Diskrete Strukturen. Abgabetermin: 20. September 2011, 14 Uhr in die DS Briefkästen

Transkript:

Technische Universität München Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering Markus Pister, Dr. Bernhard Rumpe WS 2002/2003 Lösungsblatt 14 28. Januar 2003 www4.in.tum.de/~rumpe/se Übungen zur Softwaretechnik Aufgabe 30 : Persistente Objekte a) Speichern von Objekten Zu den Objekten sollte eine ObjektID gespeichert werden, um diese in den Tabellen eindeutig identifizieren zu können. Spiel Spiel_ID Ort Datum Gegner b) Assoziationen mit mindestens einem nicht-mengenwertigen Ende Assoziationen, die mindestens ein nicht-mengenwertiges Ende besitzen, können auf zwei Weisen umgesetzt werden. Einerseits kann eine eigene Tabelle eingerichtet werden, die die Assoziation als Relation speichert, also Tupel bestehend aus Spiel_ID und Liga_ID enthält. Andererseits kann die Assoziation in der Tabelle der Klasse an dem mengenwertigen Ende der Assoziation festgehalten werden. Dazu muss lediglich eine Spalte mit der ID des gegenüberliegenden Objekts eingerichtet werden. In dem gegebenen Beispiel sähen die Tabellen folgendermaßen aus: Spiel Spiel_ID Ort Datum Gegner Liga_ID Die Navigationsrichtung der Assoziationen spielt bei der Erstellung der Tabellenstruktur keine Rolle, denn diese Information ist statisch im Klassendiagramm gespeichert und kann so jederzeit rekonstruiert werden. c) Mengenwertige Assoziationen Bei rein mengenwertigen Assoziationen ist es sinnvoll, eine eigene Tabelle anzulegen, die die Assoziation als Relation speichert. Es gibt auch andere Möglichkeiten, die aber meistens wesentlich aufwändiger sind. Die Tabellenstruktur könnte folgendermaßen aussehen: Spiel Spiel_ID Ort Datum Gegner Spiel_Liga Spiel_ID Liga_ID Seite 1 von 5

d) Vererbung Bei der Assoziation im Klassendiagramm ist nicht angegeben, welche Kardinalität gültig ist. Normalerweise müsste hier eine Rücksprache mit dem Kunden stattfinden. Wir gehen hier von einer 1:1 Assoziation aus. Die Vererbung kann auf drei Weisen realisiert werden: Tabelle für jede Klasse Spieler Rolle_ID Antritt_stärke Berater Rolle_ID erfahrung Rolle Rolle_ID Einfluss Der Nachteil dieser Umsetzung liegt darin, dass es viele Tabellen gibt, und dementsprechend Zugriffe auf diese komplexer sind. Der Vorteil ist, dass Anpassungen im Klassendiagramm einfach übernommen werden können, da jedes Element explizit durch eine Tabelle repräsentiert wird. Tabelle für jede konkrete Klasse Spieler Rolle_ID Antritt_stärke Einfluss Berater Rolle_ID erfahrung Einfluss Der Vorteil dieser Methode ist, dass die Daten eines Objektes einfach ausgelesen werden können. Änderungen in der Klassendeklaration der Oberklasse müssen aber in mehreren Tabellen nachgezogen werden. Eine Tabelle für alle Klassen Rolle Rolle_ID Art Einfluss Antritt_stärke erfahrung Bei dieser Methode hat gibt es keinen Datensatz, der nicht ein Null-Feld enthält. Diese Tabellen sind schwer zu handhaben, da nur aus den Daten geschlossen werden kann, ob der Datensatz ein Objekt der Klasse Spieler oder Berater beschreibt. Aufgabe 31 : OCL a) Wertebeschränkung(1) context Student inv: self.semester <= 16 Seite 2 von 5

b) Wertbeschränkung (2) (self.bereich >= 0) && (self.bereich <= 2) c) Auflösen von qualifizierten Assoziationen context Dozent inv: (forall v in self.prüft[1000].vorlesung:!(exists w in self.prüft[500].vorlesung: v == w)) && (forall v in self.prüft[1000].vorlesung:!(exists w in self.prüft[123].vorlesung: v == w)) && (forall v in self.prüft[500].vorlesung:!(exists w in self.prüft[123].vorlesung: v == w)) Es gibt auch andere effizientere Möglichkeiten, diese Bedingung auszudrücken. Die hier gegebene Lösung ist nur ein Vorschlag. d) Einteilung context Student inv: (exists v in self.vorlesung: v.bereich == 0) && (exists v in self.vorlesung: v.bereich == 1) && (exists v in self.vorlesung: v.bereich == 2) && (self.vorlesung->size == 3) Auch diese Bedingung lässt sich auf verschiedenste und evtl. einfachere Weisen ausdrücken. e) Eindeutigkeit forall Vorlesung v: forall Vorlesung w: (( v == w) ((v!= w) && (v.titel!= w.titel))) Alternatives Constraint mit gleicher Aussage: forall Vorlesung v: forall Vorlesung w: ((w.titel == v.titel) implies (w == v)) f) Mindesangabe self.student.prüft->size > 0 Seite 3 von 5

Aufgabe 32 : Kontrollflussdiagramme a) Zeichnen des Diagramms 1 2 7 3 4 5 6 b) Anweisungsüberdeckung Um eine Anweisungsüberdeckung zu erhalten, müssen alle Anweisungen einmal aufgerufen werden, also im Kontrollflussdiagramm alle Knoten einmal besucht werden. Eine Beispieleingabe, die Anweisungsüberdeckung erreicht, wäre: Die Anweisungsfolge wäre dann: 1-2-3-4-5-6-3-7 c) Zweigüberdeckung Um eine Zweigüberdeckung zu erhalten, müssen alle Ablaufzweige einmal beschritten worden sein, also im Kontrollflussdiagramm alle Kannten einmal besucht worden sein. In Teil b) der Aufgabe wurde der Zweig 4-6 nicht besucht. Die kann erreicht werden, indem neben der Eingabe aus Teil b) zusätzlich folgende Eingabe gemacht wird: Die Anweisungsfolge ist hier: 1-2-3-4-6-3-7 Somit sind zusammen mit b) alle Zweige überdeckt. Seite 4 von 5

ANMERKUNG: For-Schleifen spalten auch neue Zweige auf. Eine for-schleife besteht aus drei Anweisungen, für die jeweils ein Knoten im Kontrollflussgraphen gemacht werden sollte:! "# $ % & ' ( ( ) $ $ * +++ Seite 5 von 5