en

Willkommen Gast


  • Login
Full load

Sommersemester 2017
Praktikum Datenbanken und verteilte Systeme
Allgemeine Information
Veranstaltungs-Nr. 64-144
Veranstaltungs-Type Praktikum
Veranstalter Prof. Dr. -Ing Norbert Ritter, Felix Gessert
Periodizität unregelmäßig
Inhalt
Wichtig: Website zur Veranstaltung mit aktuellen Informationen
Termine der Blockveranstaltung: 07.08.2017 bis 25.08.2017

Aufgrund der stetig fortschreitenden Allgegenwärtigkeit und Vernetzung von Rechensystemen, die sich beispielsweise im Trend zum Cloud Computing zeigt, werden immer mehr softwaretechnische Anwendungen auf und für verteilte Rechensysteme entwickelt. Auch die rasante Entwicklung nicht-relationaler, verteilter NoSQL-Datenbanksysteme hat in den letzten Jahren einen beispiellosen Aufschwung erlebt. Zwei zentrale Probleme haben diesen Prozess angestoßen: die gewaltigen Mengen von „User-generated-Content“ in modernen Anwendungen und die damit einhergehenden Anfragelasten und Datenvolumnia sowie der Ruf von Entwicklern nach problemspezifischen Datenmodellen und Schemaflexibilität. Deshalb soll in diesem Praktikum die systematische Entwicklung verteilter Systeme vermittelt und zentrale Aspekte im Entwurf verteilter Lösungsansätze für Applikationslogik und Datenhaltung vertieft werden.

Am Beispiel eines überschaubaren Softwareprojekts wird unter Anleitung in Kleingruppen eine datenbankbasierte, verteilte Anwendung mit aktuellen Technologien entwickelt. Im Rahmen dieser Beispielanwendung werden die notwendigen Techniken vermittelt, die im wirtschaftlichen Kontext für die Entwicklung heutiger verteilter Anwendungen eingesetzt werden. Dieses ermöglicht den Teilnehmer(innen) Einblicke in die Besonderheiten verteilter Anwendungen, die Integration von Datenbankdiensten in verteilte Anwendungen, sowie den praktischen Umgang mit entsprechenden Entwicklungswerkzeugen.

Beispielhafte Technologien deren Einsatz im Praktikum erlernt und vertieft wird sind:


  • Grundlagen: JavaScript/ES6, HTML5, CSS3
  • Frontend MVC Frameworks: Angular.js, Angular2, React, Aurelia, Ember, Knockout
  • Templating Engines: Handlebars, Lodash, Underscore and Mustache
  • Hybrid Apps: Ionic, Framework7, Onsen UI, React Native
  • Build Tools: Webpack, Gulp, Grunt
  • Moderne IDEs: WebStorm, Netbeans, Sublime, Visual Studio Code, Atom
  • NoSQL-Systeme: z.B. MongoDB
  • Cloud Services: Backend- und Database-as-a-Service-Ansatz

Vorerfahrung in der Web- und Appentwicklung sind von Vorteil aber nicht Voraussetzung.
Vorgehen
Nach einer Einführung durch die Veranstalter wird in Kleingruppen ein Konzept zur Umsetzung der gestellten Aufgabe selbstständig erarbeitet und praktisch realisiert. Der Entwicklungsprozess wird durch bekannte Vorgehensmodelle der Softwareentwicklung strukturiert, wobei jede(r) Teilnehmer(in) an allen Phasen der Anwendungsentwicklung beteiligt sein soll. Begleitend zu dieser betreuten Arbeit im Team werden die Ergebnisse der einzelnen Kleingruppen im Plenum vorgestellt, um den Teilnehmern Verbesserungsvorschläge und Feedback zur entwickelten Software sowie zur wissenschaftlichen Präsentation zu geben.
Lernziel
Das Praktikum bietet die Möglichkeit in einer Kleingruppe praktische Entwurfs- und Implementierungserfahrungen in der Realisierung von verteilten Softwaresystemen zu erlangen. Dabei wird Detailwissen zu aktuellen Technologien im Bereich verteilter Applikationen, relationaler Datenbanksysteme und NoSQL-Datenbanken vermittelt, ebenso wie anwendungsorientiertes Wissen zur Web- und Appentwicklung. Weiterhin wird die Umsetzung eines Softwareprojekts praktisch realisiert und die Kenntnisse der Teilnehmer(innen) bezüglich strukturierter Softwareentwicklung, Projektmanagement und Teamarbeit weiter vertieft.
Literatur
Wird zu Beginn und während des Praktikums bekannt gegeben.