GithubHelp home page GithubHelp logo

isabella232 / vorlesung-gui-2016 Goto Github PK

View Code? Open in Web Editor NEW

This project forked from qaware/vorlesung-gui-2016

0.0 0.0 0.0 88.77 MB

Vorlesung Grafische Benutzeroberflächen 2016

Java 46.42% CSS 1.29% HTML 52.29%

vorlesung-gui-2016's Introduction

Vorlesung-GUI-2016

Vorlesung Grafische Benutzeroberflächen 2016

Empfohlene Voraussetzungen

Solide Kenntnisse der objektorientierten Programmierung in Java

Lernziele und Inhalt

Modulziele/Angestrebte Lernergebnisse

Die Studierenden erlernen die ergonomische Gestaltung, den Entwurf und die Programmierung grafischer Oberflächen. Sie können eine Oberfläche so gestalten, dass ein Benutzer damit effektiv und effizient arbeiten kann. Sie können Desktop-Technologien wie JavaFX sachgerecht anwenden. Die Studierenden verstehen die zugrunde liegenden Architekturkonzepte und können diese Technologien einordnen und bewerten. Weiter erhalten sie einen tiefen Einblick in die Grundlagen der Software-Architektur von Systemen mit graphischen Oberflächen.

Inhaltsübersicht

Die Veranstaltung hat drei Schwerpunkte: Entwurf und Architektur von Anwendungen mit grafischer Benutzeroberfläche. Überblick über aktuelle Technologien, Werkzeuge und Methoden für den Bau von Anwendungen mit umfangreichen Anforderungen an die Bedienbarkeit und Interaktion. Praktisches Anwenden der erlernten Techniken im Rahmen von Übungen. Der größte Teil der Veranstaltung verwendet JavaFX. Der Schwerpunkt liegt nicht im Erlernen des eher zufälligen JavaFX-APIs, sondern in der Vermittlung der grundsätzlichen Ideen und Entwurfsmuster. Besonderes Gewicht liegt auf Standardfragen der täglichen Praxis (z.B. Bestätigen/Verwerfen, Data-Binding, Internationalisierung, Nebenläufigkeit und Anwendungsarchitektur). Im Rahmen von Studienarbeiten werden weitere moderne Technologie wie beispielweise .NET/WPF, Android oder HTML5 betrachtet.

Begleitend zur Vorlesung finden Übungen zur Vertiefung der erlernten Konzepte statt.

Inhalt

  • Ablauf von Vorlesung und Übung
  • Themen und Termine
  • Hinweise zur verwendeten Software
  • Literatur
  • Historischer Überblick
  • Typen grafischer Oberflächen (Terminal, Mobil, Web, Rich-Client)
  • Standardprobleme beim Entwurf und der Programmierung
  • Ergonomie und Angemessenheit
  • Programmierte und deklarierte Oberflächen

Übungsblatt 1

  • Gestaltungsregeln
  • Grafischer Entwurf - Methoden und Werkzeuge (Styleguides, Mockups)
  • Dynamisches Layout – Konzepte und Grundlagen
  • Einführung in JavaFX
  • Komponenten und Container - Exkurs Composite-Muster
  • Layout-Management

Übungsblatt 2

Musterlösung 2Musterloesung mit Black CSS Theme

  • Kontrollfluss in grafischen Oberflächen
  • Begriffe der Eventverarbeitung
  • Eventverarbeitung in hierarchischen Oberflächen (Bubbling und Capturing)
  • Technische Umsetzung
  • Ereignisse als Objekte
  • Zustellung von Ereignissen
  • Behandlung von Ereignissen (Handler, Event-Hierarchie)
  • Datenhaltung, Benachrichtigung und Binding

Übungsblatt 3

Musterlösung 3

  • Das Observer-Muster
  • Model-View-Controller – das klassische Modell
  • Model-View-Presenter
  • Technische Umsetzung
  • JavaFX Properties
  • JavaFX Binding

Übungsblatt 4

Musterlösung 4

  • Grundprinzipien und Architektur
  • Eigenschaften von Komponenten
  • MV* im Großen
  • Presentation-Model vs. Business-Model
  • Technische Umsetzung
  • Bau von GUI Komponenten mit JavaFX
  • Wiederverwendung und Schachtelung

Übungsblatt 5

Musterlösung 5Musterloesung mit Black CSS Theme

  • Motivation – Warum ist parallele Verarbeitung notwendig?
  • Umgang mit lang laufenden Aktionen (asynchrone Verarbeitung)
  • Technische Umsetzung
  • Die Worker Schnittstelle in JavaFX
  • Die Klassen Task und Service

Übungsblatt 6

Musterlösung 6

  • Manuelles Testen und Test-Driven-Development
  • Behavior-Driven-Test-Development
  • Das Page-Objekt-Muster
  • Testautomation bei JavaFX Oberflächen

Übungsblatt 7

  • Motivation
  • Das Publish-Subscriber Muster
  • Technische Umsetzung
  • Ein minimaler Eventbus
  • Subscription als Annotation

Übungsblatt 8

Musterlösung 8

  • 2-Tier und 3-Tier Architekturen
  • Thin-, FAT- und Smart/Rich-Clients
  • Schichten-, Säulen und Komponentenarchitekturen
  • Technische Umsetzung
  • Trennung von Businesslogik und Oberflächenlogik
  • Umsetzung einer Kundensuche mit JavaFX

Übungsblatt 9

Musterlösung 9

  • Typen von Weboberflächen (Web 1.0, 2.0, 3.0)
  • Vor- und Nachteile der heute gängigen Architekturen
  • Technische Umsetzung
  • CRUD Anwendung mit HTML5 und AngularJS

Demo

Code

Beschreibung

  • Migration vs Neubau
  • Von Swing nach JavaFX
  • VUI - Das virtuelle User Interface

Übungsblatt 11

Literatur

Besonders empfohlen

  1. Tidwell, J.: Designing Interfaces, O’Reilly, (2005)
  2. http://docs.oracle.com/javase/8/javase-clienttechnologies.htm: Online Dokumentation und Tutorials zu JavaFX (2015)
  3. Gamma, E., et al.: Design Patterns. Addison-Wesley (1995)

Zusätzlich empfohlen

  1. Siedersleben, J.: Moderne Software-Architektur, dpunkt (2004)
  2. Fowler, M.: Patterns of Enterprise Application Architecture. Addison-Wesley (2002)
  3. Fowler, M.: http://martinfowler.com/eaaDev/uiArchs.html (2006)

vorlesung-gui-2016's People

Contributors

jweigend avatar lreimer avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.