Vorlesung Informatik II



Ähnliche Dokumente
Vorlesung Informatik II

Lehrbuch der Objektmodellierung

Software- /Systemarchitektur

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

Datenbanken 1 Datenbanken SPO 2014 SPO 2007 Belegnummer Belegnummer

Daten aus MS Project in einer Datenbank ablegen

Objektorientierter Entwurf (OOD) Übersicht

Datenbanken Datenbanken 1 Belegnummer Belegnummer

Vorlesung Informatik II

Basisinformationstechnologie I

Software Engineering. 5. Architektur

NoSQL Datenbanken EIN ÜBERBLICK ÜBER NICHT-RELATIONALE DATENBANKEN UND DEREN POTENTIALE IM ALLGEMEINEN UND IN DER INDUSTRIE

3-Tier-Architecture und J2EE

Kapitel 5: Das Design

Informatik B. Vorlesung 14 Serialisierung, Autoboxing. Dr. Ralf Kunze

Grundkurs C++ Einführung

Aus Sicht der funktionalen Anforderungen ist der Entwurf eines Systems beliebig wählbar

Die OSGi Service Plattform

Vorlesung Informatik II

Themenfeld Datenbanken

Datenbanken. Seminararbeit. Einführung in das wissenschaftliche Arbeiten

Grundkurs C++ Einführung

Vorlesung Informatik II

Objektorientierter Entwurf. Grundlagen des Software Engineerings

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 17: 3-Schichten-Architektur 2

Eclipse und EclipseLink

Sicherheit für Windows Vista Teil 6: Windows Defender (Software-Explorer konfigurieren)

Kapitel 1 Grundlagen. Skript zur Vorlesung: Datenbanksysteme II Sommersemester Vorlesung: PD Dr. Peer Kröger

Archivierung in DBMS

Inhaltsverzeichnis Einleitung Imperative Sprachkonzepte Objektorientierte Sprachkonzepte

Vorlesung Informatik II

Algorithmen & Datenstrukturen 2 Praktikum 1

Systeme 1. Kapitel 3 Dateisysteme WS 2009/10 1

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI

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

DATENSERIALISIERUNG & INTERNETZUGRIFF. Am Beispiel einer RSS-Reader-App

LASTENHEFT. Copyright Michael Rattun 1

Praktische Informatik 1

Tag 8 Repetitorium Informatik (Java)

Ein Entwurfsmuster der GoF. vorgestellt von. Sigrid Weil 16. Januar 2008

OOSE 13 Objektorientierter Entwurf (OOD) (Hörsaalübung)

Unterschiede in der Implementierung einer Software mit Datenbankanbindung in Java bzw. PHP am Beispiel einer Zeiterfassungssoftware

Schaltungssimulator Lastenheft

10. Datenbank Design 1

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

Probeklausur Datenbanken und Informationssysteme II

Einstellungen Berechtigungsterminal

OOSE 01 JAVA MIT BLUEJ UND UML-BY-EXAMPLE

Dineso Software - Technische Daten

Auf einen Blick. 1 Einleitung Die Basis der Objektorientierung Die Prinzipien des objektorientierten Entwurfs...

Bäume, Suchbäume und Hash-Tabellen

Repetitorium Informatik (Java)

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

Selbstverwaltung von Subversion Repositories

Zahlreiche Möglichkeiten zum dauerhaften Speichern und Laden von Daten Meist: Speichern in verschiedenen Dateiformaten Anwendungen:

Entwurfsmuster. Marc Monecke

Objektorientierte und Funktionale Programmierung SS 2014

Webbasierte Informationssysteme

Entwurfsmuster. Tao Zhang Technische Universität München Lehrstuhl für Angewandete Softwaretechnik

Problem: Was ist, wenn der Stapel voll ist? Idee: Erzeuge dynamisch ein grösseres Array und kopiere um. Dynamische Anpassung der Größe

Lehrplan IFE. Mediamatiker_ab_2011. Allgemeine Bildungsziele In eigener Regie Arbeitsplatzsysteme aufsetzen

Sommersemester Vorlesung: Dr. Matthias Schubert

Gregor Kuhlmann Friedrich Müllmerstadt. MySQL. Der Schlüssel zu Datenbanken-Design und -Programmierung. c 3 E. i- O Rowohlt Taschenbuch Verlag

IT > Anleitungen > Windows, Outlook Verteilerlisten erstellen (vor 2010) Verteilerliste erstellen

Klassen mit Instanzmethoden

Dateieigenschaften anzeigen und editieren

10 Erstellen eines Entwurfsmodells mittels Drei-Schichten-Architektur (Teil 1)

Angewandte Informatik Datenbank/Datenmodell 1

Einführung in die Programmiersprache Java II

USB I2C Spy V1.0 Manual

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen

Kapitel 1: Wiederholungsfragen Grundlagen DBS

Begriffe 1 (Wiederholung)

Java, OO und UML Fortsetzung

7. Dynamische Datenstrukturen Bäume. Informatik II für Verkehrsingenieure

Übungen zur Softwaretechnik

Arbeitsblätter zu Teil I des Praktikums

Übungsblatt Programmierung und Software-Entwicklung Generizität, Interfaces, Listen, Sortieralgorithmen & JUnit

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

9. Dateisysteme. Betriebssysteme Harald Kosch Seite 164

Neu: Toshiba LifeSpace

Transkript:

Vorlesung Informatik II Universität Augsburg Wintersemester 2011/2012 Prof. Dr. Bernhard Bauer Folien von: Prof. Dr. Robert Lorenz Lehrprofessur für Informatik 9. Schichtenarchtitektur: Teil 1 (Datenhaltung) 1

Entwurfsprozess Der (Architektur-) Entwurf beinhaltet Grundlegende Entwurfsentscheidungen (Teil 1) Schichtenarchitektur (Teil 1: Datenhaltung und Teil 2:GUI) Entwurfsmuster (verstreut) Standardisierung erhöht die Qualität und Wartbarkeit des Entwurfs und der Software 2

Entwurfsprozess Grundlegende Entwurfsentscheidungen Plattform Programmiersprache GUI-System Art der Datenhaltung 3

Entwurfsprozess Schichtenarchitektu r GUI-Schicht Benutzeroberfläche mit Dialogführung und Darstellung der Daten der Fachkonzeptschicht Fachkonzeptschicht Funktionaler Kern der Anwendung mit Zugriff auf Datenhaltungsschicht Manipulation der fachlichen Daten Datenhaltungschicht Realisierung der Datenspeicherung mit Zugriff auf gespeicherte Daten 4

Entwurfsprozess Schichtenarchitektur Objekte einer Schicht können jeweils nur auf Objekte der direkt unter ihr liegenden Schicht zugreifen Jede Schicht wird durch ein Paket modelliert

Entwurfsprozess Schichtenarchitektur: GUI-Schicht Sichtbarmachen von fachlichen Daten an der Oberfläche durch Polling: Regelmäßiges Abfragen von Änderungen der fachlichen Daten durch die GUI-Schicht Beobachtermuster: Signalisieren von Änderungen der fachlichen Daten durch die Fachkonzeptschicht (Details später)

Entwurfsprozess Vorteile Wiederverwendbarkeit: jede Schicht besitzt eine präzise definierte Aufgabe und Schnittstelle Änderbarkeit/Wartbarkeit: Interne Organisation einer Schicht kann bei gleicher Schnittstelle beliebig verändert werden Portabilität: Hardwareabhängigkeiten können in einer Schicht isoliert werden

Zur Laufzeit des Programms werden die Daten nur im Arbeitsspeicher gehalten Bei Beendigung des Programms gehen die Daten verloren Zur Vermeidung von Datenverlusten müssen die Daten dauerhaft (man sagt persistent) auf der Festplatte gespeichert werden

Möglichkeiten der persistenten Datenspeicherung: (relationale) Datenbank Objektserialisierung Textdateien (z.b. Im XML-Format)

Kriterien für die Wahl der Datenhaltung Mehrbenutzersystem? Mehr schreibende/lesende Zugriffe? Größe der Datenmengen (passen in Arbeitsspeicher)? Datenverlust bei Systemausfall akzeptabel? Performance-Anforderungen? Zugriffsverwaltung erforderlich? Portabilität der Daten?

Objektserialisierung: Speicherung der Gesamtheit aller Objekte als Byte-Strom mit Informationen zur Klassen, Objektbeziehungen und Attributen Mehrbenutzersystem? Mehr schreibende/lesende Zugriffe? Größe der Datenmengen (passen in Arbeitsspeicher)? Datenverlust bei Systemausfall akzeptabel? Performance-Anforderungen? Zugriffsverwaltung erforderlich? Portabilität der Daten?

Textdateien: Speicherung in Textdatei als Zeichenkette in einem Format, aus dem Objekte und Objektbeziehungen rekonstruierbar sind Mehrbenutzersystem? Mehr schreibende/lesende Zugriffe? Größe der Datenmengen (passen in Arbeitsspeicher)? Datenverlust bei Systemausfall akzeptabel? Performance-Anforderungen? Zugriffsverwaltung erforderlich? Portabilität der Daten?

Textdateien im XML-Format: Schnittstellen mit Datenbank- Funktionalitäten Mehrbenutzersystem? Mehr schreibende/lesende Zugriffe? Größe der Datenmengen (passen in Arbeitsspeicher)? Datenverlust bei Systemausfall akzeptabel? Performance-Anforderungen? Zugriffsverwaltung erforderlich? Portabilität der Daten?

Datenbank: wie im Exkurs zu Datenbanken beschrieben, viele verschiedene Produkte, Zugriff über standardisierte Schnittstellen (ODBC, JDBC) Mehrbenutzersystem? Mehr schreibende/lesende Zugriffe? Größe der Datenmengen (passen in Arbeitsspeicher)? Datenverlust bei Systemausfall akzeptabel? Performance-Anforderungen? Zugriffsverwaltung erforderlich? Portabilität der Daten?

Klassendiagramm mit Datenhaltungsschicht: Anbindung an Containerklassen der Fachkonzeptschicht <Container> -daten<container>... -root DatenContainer -root -store <<interface>> Datenhaltung <Container> -daten<container> Datei Fachkonzeptschicht Datenhaltungsschicht

Implementiere Wurzel-Container für alle verwalteten Daten im Singletonmuster DatenContainer - uniqueinstance: DatenContainer = null - DatenContainer() + instance :DatenContainer...

Schnittstellenoperationen zum Laden und Speichern von Daten <<interface>> Datenhaltung + load + save + add + delete + modify Laden und Speichern aller Objekte Speichern, Löschen und Modifizieren einzelner Objekte Müssen von jeder Daten-Speicherungs-Klasse implementiert werden Gewährleistet Austauschbarkeit der Speicherungs-Methode

Implementierung der Schnittstelle bei Objektserialisierung und Abspeicherung als Text (ausser XML-Format) <<interface>> Datenhaltung + load + save + add + delete + modify Laden und Speichern aller Objekte Speichern, Löschen und Modifizieren einzelner Objekte add, delete und modify werden leer implementiert oder rufen save auf

Implementierung der Schnittstelle bei Abspeicherung in einer Datenbank <<interface>> Datenhaltung + load + save + add + delete + modify Laden und Speichern aller Objekte Speichern, Löschen und Modifizieren einzelner Objekte save wird leer implementiert

Gesamtimplementierung des Ladevorgangs: Bei Start des Programms: Erzeugung eines DatenContainer-Objekts Bei Erzeugung des DatenContainer-Objekts (im Konstruktor): Erzeugung der anderen Container-Objekte und eines Datenhaltungs-Objekts Laden der Daten und Erzeugung der Objekte über das Datenhaltungs-Objekt

Gesamtimplementierung des Speichervorgangs: Serialisierung oder Text Bei Programmende/Benutzerbefehl/Datenänderung: Speichern aller Daten über das Datenhaltungs-Objekt (Überschreiben aller Daten) Datenbank Speichern/Modifizieren/Löschen der Daten des betreffenden Objekts über das Datenhaltungs-Objekt (Aktualisieren eines Teils der Daten)