Softwaretechnik. M. Jakob. 15. März Gymnasium Pegnitz

Ähnliche Dokumente
Softwaretechnik. Inhaltsverzeichnis. M. Jakob. 15. März Grundlagen der Projektorganisation

Einführung in die Programmierung für NF. Grafische Benutzeroberflächen

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 15/16. Kapitel 7. Grafische Benutzeroberflächen 1

MVC-Architektur am Beispiel von OLAT

Model-View-Controller

Kapitel 8: Grafische Benutzerschnittstellen

Einführung in die Programmierung für NF. Übung

Ziele. Kapitel 8: Grafische Benutzerschnittstellen. AWT und Swing. Ziele (2)

Grafische Benutzeroberflächen

EAD II Übung 5. Graphische Benutzungsoberfläche mit BlueJ

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12. Kapitel 7. Grafische Benutzeroberflächen

JLabel. dient zur Textanzeige. können auch Bilder anzeigen: mylabel.seticon( new ImageIcon( C:/Pfad/zum/Bild.jpg )

Programmieren II. Java im Vergleich zu anderen Sprachen. Einführung: GUI. Einführung: Grafische Benutzeroberflächen. Dr.

Objektorientierte und Funktionale Programmierung SS 2014

Grafische Benutzeroberflächen

Rückblick Themen Erste GUI-Anwendung Praktikum. Rückblick Themen Erste GUI-Anwendung Praktikum. Rückblick Themen Erste GUI-Anwendung Praktikum

Einführung in GUI-Programmierung. javax.swing

Rückblick Themen Erste GUI-Anwendung Praktikum. Rückblick Themen Erste GUI-Anwendung Praktikum. Rückblick Themen Erste GUI-Anwendung Praktikum

Java für Computerlinguisten

Einführung in die Programmierung für NF. Übung 08

Javakurs für Fortgeschrittene

Grafische Benutzeroberflächen mit Swing

Grafische Benutzeroberflächen

Institut für Programmierung und Reaktive Systeme. GUIs mit Swing. Markus Reschke

Swing : Komponeneten I (Teil 1) Was ist Swing?

Java GUI Entwicklung mit Swing

Informatik 11 Kapitel 3 - Softwareentwicklung

Heute. Grafische Benutzeroberflächen (Anonyme) innere Klassen Einfache Simulationen main / ausführbare jar-files IT I - VO 11 1

Einführung in GUI-Programmierung. javax.swing

Programmieren II. Events (Ereignisse) Heusch 16.6 (2. Bd) Ratz 15. Institut für Angewandte Informatik

Sommersemester Implementierung III: GUI und Verhalten (Teil 2)

Komponenten & Frameworks Seite 1

Graphische Benutzungsoberflächen mit Java. Einführung in NetBeans

Einführung in die Programmierung für Nebenfach Medieninformatik. Beat Rossmy, Michael Kirsch

Einführung in die Programmierung für NF. Übung

Einführung in die Programmierung für Nebenfach Medieninformatik. Beat Rossmy, Michael Kirsch

Programmieren II. Events (Ereignisse) Heusch 16.6 (2. Bd) Ratz 15. Institut für Angewandte Informatik

Programmieren II. Events (Ereignisse) Heusch 16.6 (2. Bd) Ratz 15. Institut für Angewandte Informatik

Einführung: Grafische Benutzeroberflächen. Programmieren II. Dr. Klaus Höppner. Hochschule Darmstadt Sommersemester / 22

Software- /Systemarchitektur

Programmiertechnik GUI Programmierung mit Java Swing

GRAFISCHE BENUTZERSCHNITTSTELLEN

Abschnitt 20: Ein Grundprinzip der Software-Architektur

Objektorientierte Programmierung

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik GUI-Programmierung mit Swing

/** Main-Methode erzeugt einen neuen Editor zum Testen */ public static void main(string[] args) { new Editor();

Objektorientierte Software-Entwicklung

Einführung in die Programmierung für NF. Übung

Graphical User Interfaces

Projektarbeit Java. 4-Gewinnt. Berner Fachhochschule. 2004, Labor für Technische Informatik

7. Architektur interaktiver Systeme

Ziel dieses Kapitels: Einführung in die Grundzüge der Programmierung graphischer Benutzeroberflächen (engl.: "graphical user interface", GUI) in Java

Fachhochschule Stuttgart Prof. Uwe Schulz 5. Juli 2006 Hochschule der Medien Klausur Informatik, EDV-Nr (42021) Seite 1 von 4

Objektorientierteund FunktionaleProgrammierung

Drucken, GUI, Design Pattern,... PDF, Usability, Observer Pattern, MVC

7. GUI Grundlagen der Programmierung II (Java) Prof. Dr. Bernhard Humm Hochschule Darmstadt University of Applied Sciences Sommersemester 2006

6. Objektorientiertes Design

Funktionale und Objekt-Orientierte Programmierkonzepte

Objektorientierte Softwareentwicklung

Objektorientierte und Funktionale Programmierung

Medientechnik. Übung 3 MVC & Observer

Ereignisse (Events) in Java

Felder. M. Jakob. 28. April Gymnasium Pegnitz

MVC Ein wichtiges Konzept der Software-Architektur

Benutzeroberflächen. Java Teil 4

Beziehungen zwischen Objekten

Einführung in Swing. Graphical User Interface

Model-View-Controller. Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 1

Einführung in die Programmierung für NF MI. Übung 11

11. GUI-Programmierung mit SWING Überblick

Softwaretechnik (Medieninformatik): GUIs mit Swing Überblick

Punkte. Teil 1. Teil 2. Summe. 1. Zeigen Sie, dass der untenstehende Suchbaum die AVL-Bedingung verletzt und überführen Sie ihn in einen AVL-Baum.

Javakurs für Fortgeschrittene

Praktikum 4: Grafiken und Ereignisse

Java Lab 2006/12/13 Client

Fachhochschule Stuttgart Prof. Uwe Schulz 14. Juli 2005 Hochschule der Medien Klausur Informatik, EDV-Nr (42021) Seite 1 von 4

Automaten und das State Pattern

Ho Ngoc Duc IFIS - Universität zu Lübeck

Kap. 35 Swing: Grundlagen Kap Swing: Hauptfenster

Einführung in die Informatik II

Ereignisbehandlung 21

Grafische Benutzeroberflächen mit Swing (2)

Zentrale Objekte zur Programmierung graphischer Benutzeroberflächen (GUI)

Übungen zu Computergrafik

Ereignisbasierte WebGUIs

Grundlagen der Programmierung APPLETS

Einführung in die OOP mit Java

1. Konventionelle Ein-/Ausgabebetonte Programmierung

Hochschule der Medien Prof. Uwe Schulz 13. Juli 2009 Klausur Informatik, EDV-Nr Seite 1 von 6. Teil 2: Aufgaben

Verhaltensmuster. Entwurfsmuster - Design Patterns. HAW Hamburg Fakultät Technik und Informatik Department Informations- und Elektrotechnik

Beziehungen zwischen Objekten

Felder. Inhaltsverzeichnis. M. Jakob. 28. April Begriffsbildung. Verwendung von Feldern. Gymnasium Pegnitz

GUI Programmierung mit JAVA Swing

J.1. J.1 GUI-Programmierung in in Java Prof. Dr. Rainer Manthey Informatik II 1

Transkript:

Softwaretechnik M. Jakob Gymnasium Pegnitz 15. März 2016

Inhaltsverzeichnis 1 Grundlagen der Projektorganisation 2 Entwurfsmuster Allgemeines Adaptermuster Kompositum Beobachtermuster model-view-controller-muster 3 Praktische Softwareentwicklung Profi GUI für Graphen Simulation eines Rangierbahnhofes

Grundlagen der Projektorganisation Gründe der Projektorganisation Große Projekte müssen perfekt organisiert sein. Gründe: Die Anforderungen des Auftraggebers müssen erfüllt werden, die Ressourcen (Geld, Zeit, Material... ) müssen eingeteilt werden, es sind viele Personen beteiligt, die nicht ständig zur Verfügung stehen, das Projekt dauert Jahre und muss gewartet werden. M. Jakob (Gymnasium Pegnitz) Softwaretechnik 15. März 2016 3 / 44

Grundlagen der Projektorganisation Strategien der Projektorganisation Um komplexe Projekte durchführen zu können, benötigt man eine passende Strategie. Man unterscheidet je nachdem ob die Anforderungen bekannt und stabil sind oder nicht statische und dynamsiche Strategien. M. Jakob (Gymnasium Pegnitz) Softwaretechnik 15. März 2016 4 / 44

Grundlagen der Projektorganisation Beispiel: Statische Strategie Der Auftraggeber stellt die Anforderungen in einem Lastenheft dar. Der Auftragnehmer beschreibt im Pflichtenheft, wie er die Anforderungen erfüllen will. Akzeptiert der Auftragnehmer das Pflichtenheft wir das Projekt umgesetzt, und zwar nach einem standardisierten Ablauf (z.b. Wasserfallmodell) durch Zerteilen des Projektes in Teilprojekte mit klarer Schnittstellendefinition, durch Festlegung von Meilensteinen, M. Jakob (Gymnasium Pegnitz) Softwaretechnik 15. März 2016 5 / 44

Grundlagen der Projektorganisation Beispiel: Statische Strategie Das Wasserfallmodell Das Wasserfallmodell hilft bei der Umsetzung größerer Projekte. Die Produktentwicklung wird in mehrere Phasen unterteilt. Jede Phase muss abgeschlossen sein, bevor die nächste begonnen wird. Der Projektleiter koordiniert den gesamten Arbeitsablauf. Teamsprecher organisieren die Arbeit in den einzelnen Gruppen. M. Jakob (Gymnasium Pegnitz) Softwaretechnik 15. März 2016 6 / 44

Grundlagen der Projektorganisation Zentrale Nachteile statischer Strategien Das Ergebnis entspricht möglicherweise nicht den tatsächlichen Erfordernissen weil im Lastenheft Anforderungen übersehen wurden, oder sich die Anforderungen geändert haben. Möglicherweise unnötiger und sehr großer Planungsaufwand. M. Jakob (Gymnasium Pegnitz) Softwaretechnik 15. März 2016 7 / 44

Grundlagen der Projektorganisation Dynamische Strategien Sie begegnen dem Nachteil der statischen Strategien, indem sie versuchen, die reine Entwurfsphase auf ein Mindestmaß zu reduzieren und im Entwicklungsprozess so früh wie möglich zu ausführbarer Software zu gelangen, die dann in regelmäßigen, kurzen Abständen dem Kunden zur gemeinsamen Abstimmung vorgelegt werden kann. Auf diese Weise soll es jederzeit möglich sein, flexibel auf Kundenwünsche einzugehen, um so die Kundenzufriedenheit insgesamt zu erhöhen. M. Jakob (Gymnasium Pegnitz) Softwaretechnik 15. März 2016 8 / 44

Grundlagen der Projektorganisation Zentraler Nachteil dynamsicher Strategien Ein planvolles Handeln findet kaumt statt, es werden nur halbwegs taugliche Lösungen geliefert (Gefahr der Flickschusterei ) M. Jakob (Gymnasium Pegnitz) Softwaretechnik 15. März 2016 9 / 44

Grundlagen der Projektorganisation Übungen Ü 1.1: Projektstrategien im Alltag Nachfolgende sind mehrere Projekte des Alltags angegeben. Strukturiere jedes der Projekte mit einer statischen und eine dynamischen Strategie, erläutere die Vor- und Nachteile und beurteile, welche Strategie geeigneter ist. 1 Herstellen einer Sitzgelegenheit für 10 Personen 2 Bestehen des Schuljahres 3 Sicherung der familiären Ernährungslage für einen Monat M. Jakob (Gymnasium Pegnitz) Softwaretechnik 15. März 2016 10 / 44

In diesem Abschnitt 2 Entwurfsmuster Allgemeines Adaptermuster Kompositum Beobachtermuster model-view-controller-muster

Entwurfsmuster Allgemeines Entwurfsmuster Alltagsbeispiele Essens-Schema: Vorspeise - Hauptspeise - Nachtisch Witze-Schema: zuerst-dann-als letztes -Aufbau Werbe-Schema: Aufmerksamkeit erwecken - Bedürfnis schaffen - Lösung anbieten Kompositions-Schema: Tonika - Subdominante - Dominante Schema-Schema: 1-2-3-Schema Entwurfsmuster helfen bei der Strukturierung der Klassen in der Entwurfsphase, weil sie gut durchdachte Lösungsschemata für immer wieder vorkommende Standardsituationen anbieten. Dadurch wird die Übersicht verbessert und Entwicklungsfehler vermieden. M. Jakob (Gymnasium Pegnitz) Softwaretechnik 15. März 2016 12 / 44

In diesem Abschnitt 2 Entwurfsmuster Allgemeines Adaptermuster Kompositum Beobachtermuster model-view-controller-muster

Adaptermuster Entwurfsmuster Adaptermuster Alltagsbeispiele: Adapterstecker, Geld Adaptermuster... nutzen und ergänzen vorhandene Klassen und bieten der darüber liegenden Ebene eine einheitliche Schnittstelle. So kann flexibel auf spätere Erweiterungen und Korrekturen reagiert werden. M. Jakob (Gymnasium Pegnitz) Softwaretechnik 15. März 2016 14 / 44

In diesem Abschnitt 2 Entwurfsmuster Allgemeines Adaptermuster Kompositum Beobachtermuster model-view-controller-muster

Kompositum Entwurfsmuster Kompositum Das Kompositum... wird verwendet, wenn Gruppen von Objekten das gleiche Verhalten zeigen sollen wie einzelne Objekte. M. Jakob (Gymnasium Pegnitz) Softwaretechnik 15. März 2016 16 / 44

Entwurfsmuster Kompositum Beispiel 1 Baumstruktur als Kompositum M. Jakob (Gymnasium Pegnitz) Softwaretechnik 15. März 2016 17 / 44

Entwurfsmuster Kompositum Beispiel 2 Grafische Oberfläche bei Java Swing M. Jakob (Gymnasium Pegnitz) Softwaretechnik 15. März 2016 18 / 44

Entwurfsmuster Kompositum Beispiel 2 Grafische Oberfläche bei Java Swing M. Jakob (Gymnasium Pegnitz) Softwaretechnik 15. März 2016 19 / 44

Entwurfsmuster Beispiel 2 Implementation Kompositum 1 // Blatt - Objekte erzeugen 2 JTable tabelle = new JTable(); 3 JTextField textfeld = new JTextField(" Textfeld"); 4 JButton button1 = new JButton(" Knopf 1"); 5 JButton button2 = new JButton(" Knopf 2"); 6 JButton button3 = new JButton(" Knopf 3"); 7 8 // Kompositum - Objekte erzeugen 9 JPanel containerrechts = new JPanel(); 10 JPanel containerunten = new JPanel(); M. Jakob (Gymnasium Pegnitz) Softwaretechnik 15. März 2016 20 / 44

Entwurfsmuster Beispiel 2 Implementation Kompositum 1 // Struktur aufbauen 2 containerrechts.add ( textfeld ); 3 containerrechts.add ( containerunten ); 4 conatinerunten.add ( button1 ); 5 conatinerunten.add ( button2 ); 6 conatinerunten.add ( button3 ); 7 8 // in das Fenster einhängen 9 JFrame zeichenfenster = new JFrame ( " Zeichenfenster" ); 10 frame.add ( tabelle ); 11 frame.add ( containerrechts ); M. Jakob (Gymnasium Pegnitz) Softwaretechnik 15. März 2016 21 / 44

Entwurfsmuster Kompositum Übersicht Swing-Komponenten M. Jakob (Gymnasium Pegnitz) Softwaretechnik 15. März 2016 22 / 44

Übung Entwurfsmuster Kompositum Ü 2.1: Java.swing inspizieren Ü 2.2: ProfiGUI_1 Ü 2.3: ProfiGUI_2 M. Jakob (Gymnasium Pegnitz) Softwaretechnik 15. März 2016 23 / 44

In diesem Abschnitt 2 Entwurfsmuster Allgemeines Adaptermuster Kompositum Beobachtermuster model-view-controller-muster

Entwurfsmuster Beobachtermuster Beobachtermuster Grundprinzip Einem Informanten stellt registrierten Nutzern einheitliche Informationen zur Verfügung. Die Nutzer werden benachrichtigt, wenn neue Informationen vorhanden sind. Im pull-verfahren holen die Nutzer die Informationen selbstständig beim Informanten ab, im push-verfahren werden alle Informationen vom Informanten an alle Nutzer weitergegeben. M. Jakob (Gymnasium Pegnitz) Softwaretechnik 15. März 2016 25 / 44

Entwurfsmuster Beobachtermuster Alltagsbeispiele Zeitungsabonnement push-verfahren Unterrichtsstunde push-verfahren (bei Lehrer J.) Newsletter pull- und push-verfahren M. Jakob (Gymnasium Pegnitz) Softwaretechnik 15. März 2016 26 / 44

Entwurfsmuster Beobachtermuster Beobachtermuster (Grundprinzip) Beobachtungsmuster...... halten, die Kommunikation zwischen einem Erzeuger von Information (Informaten) und den Interessenten an dieser Information (Beobachter) offen und flexibel. Der Informant bietet ein Interface an, das Interessenten nutzen können. Dazu müssen sich die Beobachter beim Informanten registrieren lassen. Die Beobachter müssen ihrerseits garantieren, dass sie alle Botschaften des Informanten verstehen. M. Jakob (Gymnasium Pegnitz) Softwaretechnik 15. März 2016 27 / 44

Beobachtermuster Entwurfsmuster Beobachtermuster Beispiel Unterricht M. Jakob (Gymnasium Pegnitz) Softwaretechnik 15. März 2016 28 / 44

Beispiel 1: Newsletter Entwurfsmuster Beobachtermuster M. Jakob (Gymnasium Pegnitz) Softwaretechnik 15. März 2016 29 / 44

Entwurfsmuster Beobachtermuster Vorteile von Beobachtermustern Neue Beobachter können jederzeit hinzugefügt werden, ohne dass der Informant geändert werden muss. Beobachter und Informant können unabhängig voneinander wiederverwendet werden. Informant und Beobachter können beliebig geändert werden, so lange ihr Interface gleich bleibt. M. Jakob (Gymnasium Pegnitz) Softwaretechnik 15. März 2016 30 / 44

Entwurfsmuster Beobachtermuster Nachteile von Beobachtermustern Gibt es viele Beobachter, kann die Benachrichtigung durch den Informanten sehr zeitaufwändig werden. Jeder Beobachter wird mit der gleichen Information versorgt auch wenn er gar nichts oder nur Teile davon benötigt. (Beispiele: Newsletter, Werbung) M. Jakob (Gymnasium Pegnitz) Softwaretechnik 15. März 2016 31 / 44

Entwurfsmuster Beobachtermuster Beispiel 2: Eventhandling in Java Informant: Swing-Komponenten (Schaltflächen, Buttons, etc.) Beobachter: Sie werden Listener genannt, können sich bei den Swing-Kompnenten registrieren (Jeder Swing-Button erbt von AbstractButton Methoden zum An- und Abmelden von Listenern). Findet ein Event an einer Swing-Komponente statt (z.b. ein Mausklick), so werden alle registrierten Listener von dieser Swing-Komponenten über das Ereignis benachrichtigt. Die Listener müssen die Methode actionperformed(actionevent) implementieren, in der festgelegt wird, wie auf das Ereignis reagiert werden soll. M. Jakob (Gymnasium Pegnitz) Softwaretechnik 15. März 2016 32 / 44

Entwurfsmuster Beobachtermuster Beispiel 2: Eventhandling in Java 1... 2 // Button erzeugen 3 JButton knopf = new JButton(" Klick mich"); 4 fenster.add(knopf); 5 6 // Listener registrieren 7 knopf. addactionlistener( 8 new ActionListener() { 9 public void actionperformed ( ActionEvent e ){ 10 System.out. println(" geklickt: " + e. getactioncommand()); 11 } 12 } 13 ); M. Jakob (Gymnasium Pegnitz) Softwaretechnik 15. März 2016 33 / 44

Entwurfsmuster Beobachtermuster Beispiel 2: Eventhandling in Java Beachte Die runde Klammer in Zeile 6 wird erst in Zeile 12 geschlossen. D.h. der Methode addactionlisterer wird eine Klasse übergeben, die hier erst definiert wird. Alternativ könnte für die Zeile 7 11 eine eigene Klasse erstellt werden. Aber wer will schon für 50 oder 100 Events eigene Klassen erstellen. M. Jakob (Gymnasium Pegnitz) Softwaretechnik 15. März 2016 34 / 44

Entwurfsmuster Beobachtermuster Ü 2.4: ProfiGUI_3 M. Jakob (Gymnasium Pegnitz) Softwaretechnik 15. März 2016 35 / 44

In diesem Abschnitt 2 Entwurfsmuster Allgemeines Adaptermuster Kompositum Beobachtermuster model-view-controller-muster

Entwurfsmuster model-view-controller-muster model-view-controller-muster (MVC) Das model-view-controller-muster (MVC) basiert auf der klaren Trennung von Modell funktionalem Kern des Systems View Darstellung der Daten einschließlich Ein- und Ausgabefelder sowie Buttons Controller Entgegennahme und Verarbeitung der Benutzereingaben View und Controller bilden zusammen das Benutzerinterface (UserInterface) und sind wechselseitig voneinander abhängig. View und Modell werden oft nach dem Beobachtungsmuster entwickelt wobei der View als Beobachter agiert. M. Jakob (Gymnasium Pegnitz) Softwaretechnik 15. März 2016 37 / 44

Entwurfsmuster model-view-controller-muster Zusammenspiel der Komponenten M. Jakob (Gymnasium Pegnitz) Softwaretechnik 15. März 2016 38 / 44

Entwurfsmuster MVC-Klassendiagramm model-view-controller-muster M. Jakob (Gymnasium Pegnitz) Softwaretechnik 15. März 2016 39 / 44

Entwurfsmuster model-view-controller-muster Anwendungen Graphical-User-Interface (GUI)-Programmierung (Verwendung von MVC-Muster war der entscheidende Schritt) Verschiedene Endgeräte (Computer, Handy, ipad) nutzen gleiches Programm (E-Mail) Nutzung verschiedener Web-Browser M. Jakob (Gymnasium Pegnitz) Softwaretechnik 15. März 2016 40 / 44

Entwurfsmuster model-view-controller-muster Vorteil des MVC-Musters Vorteil des MVC-Musters spätere Änderungen oder Erweiterungen werden erleichtert, die Wiederverwendbarkeit der einzelnen Komponenten wird ermöglicht. M. Jakob (Gymnasium Pegnitz) Softwaretechnik 15. März 2016 41 / 44

In diesem Abschnitt 3 Praktische Softwareentwicklung Profi GUI für Graphen Simulation eines Rangierbahnhofes

In diesem Abschnitt 3 Praktische Softwareentwicklung Profi GUI für Graphen Simulation eines Rangierbahnhofes