Einführung in die Programmierung: Tutorium

Ähnliche Dokumente
Einführung in die Programmierung

Abschnitt 20: Ein Grundprinzip der Software-Architektur

MVC Ein wichtiges Konzept der Software-Architektur

Abschnitt 12: Strukturierung von Java-Programmen: Packages

Abschnitt 16: Objektorientiertes Design

4.5 Reihungen und Zeichenketten Reihungen (Arrays)

Ein wichtiges Konzept der Software-Architektur

Überblick. Peer Kröger (LMU München) Einführung in die Programmierung WS 14/ / 399

Überblick. Peer Kröger (LMU München) Einführung in die Programmierung WS 16/ / 759

Pakete Software Entwicklung 1

Modularisierung in Java: Pakete Software Entwicklung 1

10. Pakete. Ein Paket (package) bündelt thematisch zusammengehörige Klassen und Schnittstellen zu einer Klassenbibliothek.

Wiederholung. Klassenhierarchie:

Algorithmen und Datenstrukturen 06

Pakete. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java

Java Einführung Packages

Einführung in die Programmierung

Software Entwicklung 1

Zugriffsrechte und Packages

Beispiel: Zwischen der Oberklasse und der abgeleiteten Klasse besteht eine ist ein Beziehung. Eine abgeleitete Klasse stellt eine Spezialisierung der

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter

Software Engineering. 5. Architektur

Einführung in die Programmierung

Einführung in die Programmierung

Grundlagen der Informatik für Ingenieure I

Software- und Systementwicklung

15 Unified Modeling Language (UML) 7 UML und Java Informatik 2 (SS 07) 595

Klassen und Konstruktoren in Java

Objektdiagramm Komponentendiagramm Paketdiagramm. 6. Weitere Strukturdiagramme

10. Pakete Einführung in die Programmierung (fbw) Sommersemester 2007 Prof. Dr. Bernhard Humm Hochschule Darmstadt, fbi

Vgl. Oestereich Kap 2.4 Seiten

Grundlagen der Programmierung Prof. H. Mössenböck. 15. Pakete

Dokumentationskonzept

Überblick. Peer Kröger (LMU München) Einführung in die Programmierung WS 14/ / 492

TIAI1004: Programmierung

Repetitorium Informatik (Java)

TIAI1004: Programmierung

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Wiederholung: Gerüstbeispiel. Vererbungshierarchie: Typ 0

Autoboxing - Nachtrag

Kapitel 1. Softwaretechnik: Überblick

Einführung in die Programmierung

Einführung in die Programmierung Blockkurs Java

Methoden und Klassen. Silke Trißl Wissensmanagement in der Bioinformatik

Java: Der Einstieg. Algorithmen und Datenstrukturen II 1

Objekt-Orientierte Programmierung

Silke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik. Jede Applikation braucht eine Klasse mit einer main-methode

Kapitel 5: Das Design

Objektorientierte und Funktionale Programmierung SS 2014

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

7. Pakete Grundlagen der Programmierung 1 (Java)

Vererbung, Polymorphie

Creational Patterns. Seminar Software-Entwurf. Thomas Liro WS 2004/05.

Einstieg in die Informatik mit Java

Vererbung P rogram m ieren 2 F örster/r iedham m er K apitel 11: V ererbung 1

Programmieren in Java

VHDL Grundelemente. Dr.-Ing. Matthias Sand. Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg

Objektorientierung. Klassen und Objekte. Dr. Beatrice Amrhein

Abschnitt 15: Unified Modeling Language (UML)

Programmieren in Java

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 2. Teil

Silke Trißl Wissensmanagement in der Bioinformatik. Objektorientierte Programmierung (OOP) Vorstellung wie in der realen Welt: Farbe Hubraum Tank...

Abschnitt 14: Schnittstellen: Interfaces

Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich

wenige Konzepte, keine Adressen, Anlehnung an C++ -Syntax Vererbung, Polymorphie/dynamisches Binden, umfangreiche Klassenbibliotheken

Algorithmen und Datenstrukturen 07

UML -Klassendiagramme

Vorlesung Programmieren

Einstieg in die Informatik mit Java

Dabei sollen die Nutzern nach einer Authentifizierung entsprechend ihren Rechten Begriffe ändern, anlegen und kommentieren können.

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

Tag 7 Repetitorium Informatik (Java)

Wirtschaftsinformatik 6a: Modellierung. Hochschule für Wirtschaft und Recht SS 16 Dozent: R. Witte

Objektorientierte Programmierung (OOP)

Lehrstuhl für Datenverarbeitung. Technische Universität München. Grundkurs C++ Objektmodellierung. Grundkurs C++

Aufgabe 1: Quer durch Java (4 Punkte) super abstract abstract protected

Einstieg in die Informatik mit Java

Vererbung. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java 23.5.

Kapitel 4 - Die Implementierungsphase

UML (Unified Modelling Language) von Christian Bartl

Model-View-Controller

Arten von Klassen-Beziehungen

Javakurs für Anfänger

Abschnitt 10: Datenstrukturen

Objektorientierte Programmierung

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

Objektorientierte Programmierung OOP

Objekte und Klassen. INE2 M. Thaler, Office TG ZHAW, M. Thaler, K. Rege, G. Burkert, E.

Web Engineering-Seminar Methoden zur Web Modellierung: Object-oriented Hypermedia Method (OO-H)

Inhaltsverzeichnis 1. Objektorientierung: Ein Einstieg 2. Objekte, Klassen, Kapselung

STRUKTURIERUNG VON PROGRAMMEN

Objektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types)

Anwendungsentwicklung mit Java. Grundlagen der OOP, Vererbung, Schnittstellen, Polymorphie

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung

Objektorientierte Programmierung Studiengang Medieninformatik

Datenbankanwendungen werden oft über einen sehr langen Zeitraum (z.b. Jahrzehnte) eingesetzt

Ziele. Kapitel 15: Systemarchitektur und Packages. Grundprinzipien der Systemarchitektur. Grundprinzipien der Systemarchitektur (2)

Transkript:

Einführung in die Programmierung: Tutorium Dr. Peer Kröger, Andreas Züfle, Johannes Niedermayer Ludwig-Maximilians-Universität München, Institut für Informatik, LFE Datenbanksysteme Wintersemester 2012/2013 Einf. Progr. (WS 12/13) 1

Abschnitt 1: Strukturierung von Java-Programmen: Packages 1. Strukturierung von Java-Programmen: Packages 1.1 Strukturierung durch Packages 1.2 Zugriffsspezifikationen 1 Strukturierung von Java-Programmen: Packages Einf. Progr. (WS 12/13) 2

Überblick 1. Strukturierung von Java-Programmen: Packages 1.1 Strukturierung durch Packages 1.2 Zugriffsspezifikationen 1 Strukturierung von Java-Programmen: Packages 1 Strukturierung durch Packages Einf. Progr. (WS 12/13) 3

Pakete in der Software-Entwicklung Bei großen Programmen entstehen viele Klassen und Schnittstellen. Um einen Überblick über diese Menge zu bewahren, wird ein Strukturierungskonzept benötigt, das von den Details abstrahiert und die übergeordnete Struktur verdeutlicht. Ein solches Strukturierungskonzept stellen die Pakete (packages) dar. Packages erlauben es, Komponenten zu größeren Einheiten zusammenzufassen. Die meisten Programmiersprachen bieten dieses Strukturierungskonzept (teilweise unter anderen Namen) an. 1 Strukturierung von Java-Programmen: Packages 1 Strukturierung durch Packages Einf. Progr. (WS 12/13) 4

Packages in UML Packages gruppieren Klassen, die einen gemeinsamen Aufgabenbereich haben. In einem UML Klassendiagramm kann dies folgendermaßen notiert werden: PaketName1 PaketName2 Klassendiagramm für die Klassen in diesem Paket Klassendiagramm für die Klassen in diesem Paket Bemerkung: Es kann Beziehungen zwischen Klassen unterschiedlicher Pakete geben. Welche grundlegenden oo Modellierungsaspekte werden durch das Konzept der Pakete realisiert? 1 Strukturierung von Java-Programmen: Packages 1 Strukturierung durch Packages Einf. Progr. (WS 12/13) 5

Packages in Java In Java können Klassen zu Packages zusammengefasst werden. Packages dienen in Java dazu, große Gruppen von Klassen, die zu einem gemeinsamen Aufgabenbereich gehören, zu bündeln, potentielle Namenskonflikte zu vermeiden, Zugriffe und Sichtbarkeit zu definieren und kontrollieren, eine Hierarchie von verfügbaren Komponenten aufzustellen. 1 Strukturierung von Java-Programmen: Packages 1 Strukturierung durch Packages Einf. Progr. (WS 12/13) 6

Packages in Java Jede Klasse in Java ist Bestandteil von genau einem Package. Ist eine Klasse nicht explizit einem Package zugeordnet, dann gehört es implizit zu einem Default-Package. Packages sind hierarchisch gegliedert, können also Unterpackages enthalten, die selbst wieder Unterpackages enthalten, usw. Die Package-Hierarchie wird durch Punktnotation ausgedrückt: package.unterpackage1.unterpackage2.....klasse 1 Strukturierung von Java-Programmen: Packages 1 Strukturierung durch Packages Einf. Progr. (WS 12/13) 7

Import von Packages Der vollständige Name einer Klasse besteht aus dem Klassen-Namen und dem Package-Namen: packagename.klassenname Package-Namen bestehen nach Konvention immer aus Kleinbuchstaben. Um eine Klasse verwenden zu können, muss angegeben werden, in welchem Package sie sich befindet. Dies kann auf zwei Arten geschehen: 1 Die Klasse wird an der entsprechenden Stelle im Programmtext über den vollen Namen angesprochen: java.util.random einzufall = new java.util.random(); 2 Am Anfang des Programms werden die gewünschten Klassen mit Hilfe einer import-anweisung eingebunden: import java.util.random;... Random einzufall = new Random(); Achtung: werden zwei Klassen gleichen Namens aus unterschiedlichen Packages importiert, müssen die Klassen trotz import-anweisung mit vollem Namen aufgerufen werden! 1 Strukturierung von Java-Programmen: Packages 1 Strukturierung durch Packages Einf. Progr. (WS 12/13) 8

Import von Packages Klassen des Default-Packages können ohne explizite import-anweisung bzw. ohne vollen Namen verwendet werden. Wird in der import-anweisung eine Klasse angegeben, wird genau diese Klasse importiert. Alle anderen Klassen des entsprechenden Packages bleiben unsichtbar. Will man alle Klassen eines Packages auf einmal importieren, kann man dies mit der folgenden import-anweisung: import packagename.*; Achtung: es werden dabei wirklich nur die Klassen aus dem Package packagename eingebunden und nicht etwa auch die Klassen aus Unter-Packages von packagename. 1 Strukturierung von Java-Programmen: Packages 1 Strukturierung durch Packages Einf. Progr. (WS 12/13) 9

Packages aus der Java-Klassenbibliothek Die Java-Klassenbibliothek bietet bereits eine Vielzahl von Klassen an, die alle in Packages gegliedert sind. Beispiele für vordefinierte Packages: java.io Ein- und Ausgabe java.util nützliche Sprach-Werkzeuge java.awt Abstract Window Toolkit java.lang Elementare Sprachunterstützung usw. Die Klassen im Package java.lang sind so elementar (z.b. enthält java.lang die Klasse Object, die implizite Vaterklasse aller Java-Klassen), dass sie von jeder Klasse automatisch importiert werden. Ein expliziter Import mit import java.lang.*; ist also nicht erforderlich. 1 Strukturierung von Java-Programmen: Packages 1 Strukturierung durch Packages Einf. Progr. (WS 12/13) 10

Deklaration eigener Packages Ein eigenes Package mypackage wird angelegt, indem man vor eine Klassendeklaration und vor den import-anweisungen die Anweisung package mypackage; platziert. Es können beliebig viele Klassen (jeweils aber mit unterschiedlichen Namen) mit der Anweisung package mypackage; im selben Package gruppiert werden. Um Namenskollisionen bei der Verwendung von Klassenbibliotheken unterschiedlicher Hersteller zu vermeiden, ist es Konvention, für Packages die URL-Domain der Hersteller in umgekehrter Reihenfolge zu verwenden, z.b. com.sun.... für die Firma Sun, de.lmu.ifi.dbs.... für den DBS-Lehrstuhl an der LMU. 1 Strukturierung von Java-Programmen: Packages 1 Strukturierung durch Packages Einf. Progr. (WS 12/13) 11

Deklaration eigener Packages Wie bereits erwähnt, muss die Deklaration einer Klasse X in eine Datei X.java geschrieben werden. Darüberhinaus müssen alle Klassendeklarationen (also die entsprechenden.java-dateien) eines Packages p in einem Verzeichnis p liegen. Beispiel: Die Datei Klasse1.java mit der Deklaration der Klasse package1.klasse1 liegt im Verzeichnis package1. Die Datei Klasse2.java mit der Deklaration der Klasse package1.unterpackage1.klasse2 liegt im Verzeichnis package1/unterpackage1. 1 Strukturierung von Java-Programmen: Packages 1 Strukturierung durch Packages Einf. Progr. (WS 12/13) 12

Überblick 1. Strukturierung von Java-Programmen: Packages 1.1 Strukturierung durch Packages 1.2 Zugriffsspezifikationen 1 Strukturierung von Java-Programmen: Packages 2 Zugriffsspezifikationen Einf. Progr. (WS 12/13) 13

Zugriffsrechte und Sichtbarkeit Wir hatten bereits verschiedene Schlüsselwörter zur Spezifikation der Sichtbarkeit von Klassen und Klassen-Elementen (Attributen/Methoden) kennengelernt und teilweise erweitert. Erst jetzt mit dem Konzept der Packages können wir allerdings alle Möglichkeiten kennenlernen. Im folgenden also nocheinmal die (nun endgültige) Möglichkeit, die Sichtbarkeit von Klassen und Elementen einer Klasse zu spezifizieren. 1 Strukturierung von Java-Programmen: Packages 2 Zugriffsspezifikationen Einf. Progr. (WS 12/13) 14

Zugriffsrechte und Sichtbarkeit Klassen und Elemente mit der Sichtbarkeit public sind von allen anderen Klassen (insbesondere auch Klassen anderer Packages) sichtbar und zugreifbar. Klassen und Elemente mit der Sichtbarkeit private sind nur innerhalb der eigenen Klasse (also auch nicht innerhalb möglicher Unterklassen oder Klassen des selben Packages) sichtbar und zugreifbar. Klassen und Elemente mit der Sichtbarkeit protected sind innerhalb des gesamten Packages und aller Unterklassen (auch außerhalb des Packages) sichtbar und zugreifbar. Klassen und Elemente, deren Sichtbarkeit nicht durch ein entsprechendes Schlüsselwort spezifiziert ist, erhalten per Default die sogenannte package scoped (friendly) Sichtbarkeit: diese Elemente sind nur für Klassen innerhalb des selben Packages sichtbar und zugreifbar. 1 Strukturierung von Java-Programmen: Packages 2 Zugriffsspezifikationen Einf. Progr. (WS 12/13) 15

Zugriffsrechte und Sichtbarkeit sichtbar in Spezifikation allen allen Unterklassen Klassen im selber Klassen unabh. vom Package selben Package Klasse public protected private 1 Strukturierung von Java-Programmen: Packages 2 Zugriffsspezifikationen Einf. Progr. (WS 12/13) 16

Abschnitt 2: Objektorientiertes Design 2. Objektorientiertes Design 2 Objektorientiertes Design Einf. Progr. (WS 12/13) 17

Software-Entwicklung Zur Software-Entwicklung existiert eine Vielfalt von Vorgehensweisen und Modellen. Hier betrachten wir nur das sogenannte Wasserfallmodell, das den Prozess der Software-Entwicklung in fünf Phasen aufgliedert. 2 Objektorientiertes Design Einf. Progr. (WS 12/13) 18

Das Wasserfallmodell Klare Trennung der verschiedenen Phasen. Schwierigkeiten in einer Phase verzögern das Gesamtprojekt. Streng sequentielles Vorgehen ist in der Praxis kaum möglich. 2 Objektorientiertes Design Einf. Progr. (WS 12/13) 19

Wasserfallmodell: Anforderungsanalyse (requirements analysis) Analyse des Problembereichs Festlegung der (funktionalen und nicht funktionalen) Anforderungen an das Programm: Was soll das Programm/System leisten? Festlegung von organisatorischen Richtlinien (Aufwandsabschätzung, Terminplanung... ) und Rahmenbedingungen (z.b. vorhandene Softund Hardware) Skizze der Systemarchitektur Ergebnis der Anforderungsanalyse ist ein Anforderungskatalog (Anforderungsspezifikation). 2 Objektorientiertes Design Einf. Progr. (WS 12/13) 20

Wasserfallmodell: Entwurf (design) Beschreibt die Art und Weise, in der die gestellten Aufgaben gelöst werden sollen: Wie lösen wir das Problem? Festlegung der Systemarchitektur. Entwurf der einzelnen Systemkomponenten (Wahl von Datenrepräsentationen und Algorithmen). Objektorientierter Entwurf: Festlegung der Klassen und Methoden. Ergebnis der Entwurfsphase ist eine Entwurfsbeschreibung (z.b. mittels eines UML-Diagramms). 2 Objektorientiertes Design Einf. Progr. (WS 12/13) 21

Wasserfallmodell: Entwurf (design) Identifizierung von Klassen, Methoden und Assoziationen: Kandidaten für Klassen sind: Personen bzw. Rollen (z.b. Student, Angestellter, Kunde,...) Organisationen (z.b. Firma, Abteilung, Uni,...) Gegenstände (z.b. Artikel, Flugzeug, Immobilien,...) begriffliche Konzepte (z.b. Bestellung, Vertrag, Vorlesung,...) Möglichkeit: Durchsuchen des Anforderungskatalogs nach Substantiven, die Mengen bezeichnen Heuristik zum Auffinden von Methoden: Suche nach Verben Kandidaten für Assoziationen sind physische oder logische Verbindungen mit einer bestimmten Dauer, wie konzeptionelle Verbindungen (arbeitet für, ist Kunde von,...) Besitz (hat, ist Teil von,...) (häufige) Zusammenarbeit von Objekten zur Lösung einer Aufgabe 2 Objektorientiertes Design Einf. Progr. (WS 12/13) 22

Wasserfallmodell: Entwurf (design) Beispiel: Identifizierung von Klassen, Methoden und Assoziationen Geg: Programm, welches Rechnungen für Kunden ausdruckt. Die Rechnungen sollen die Einzelposten sowie jeweils den Gesamtpreis enthalten. Klassen: Rechnung, Kunden, Einzelposten Methoden: ausdrucken, Gesamtpreis berechnen Assoziationen: Rechnungen enthalten Einzelposten, Rechnungen für Kunden 2 Objektorientiertes Design Einf. Progr. (WS 12/13) 23

Wasserfallmodell: Entwurf (design) Entwurf-Optimierung: Je weniger Beziehungen zwischen Klassen, desto unabhängiger kann man sie implementieren (hilft bei der Verteilung der Arbeit). Mögliche Schritte zur Optimierung: 1 Reduziere Beziehungen 2 Fasse gemeinsame Aspekte von Klassen zu Oberklassen zusammen 3 Finde isolierte Inseln im UML-Diagramm Arbeit organisieren, aufteilen 2 Objektorientiertes Design Einf. Progr. (WS 12/13) 24

Wasserfallmodell: Implementierung, Test und Installation Implementierung: Codierung des Entwurfs in einer Programmiersprache, ggf. unter Wiederverwendung vorhandener Komponenten. Test: Test der einzelnen Komponenten Schrittweises Zusammenfügen einzelner Komponenten mit jeweiligem Integrationstest Systemtest Abnahmetest (mit echten Daten) Installation (und Wartung): Installation des Systems Fehlerbeseitigung nach Inbetriebnahme Änderung und Erweiterung des Systems 2 Objektorientiertes Design Einf. Progr. (WS 12/13) 25

Abschnitt 3: Ein Grundprinzip der Software-Architektur 3. Ein Grundprinzip der Software-Architektur 3 Ein Grundprinzip der Software-Architektur Einf. Progr. (WS 12/13) 26

Modelle und Anwendungen Unsere Programme waren bisher oft eine Mischung aus Modellen und Anwendungen. Ein Modell stellt einen Ausschnitt der Welt in vereinfachter, schematisierter Form dar (z.b. die Klasse Konto). Eine Anwendung verwendet ein Modell um z.b. etwas zu berechnen, oft abhängig von Eingaben des Benutzers (z.b. eine Geschäftsabwicklung, bei der Konten angelegt und ihr Inhalt verändert wird). 3 Ein Grundprinzip der Software-Architektur Einf. Progr. (WS 12/13) 27

Modelle und Anwendungen Als Anwendungen haben wir bisher main-methoden kennengelernt. Modelle wurden bei uns bisher auf der Konsole dargestellt (System.out.print-Ausgaben). Interaktion war durch Eingabe auf die Konsole möglich (z.b. durch Start-Parameter). Die Konsole stellt damit eine bedeutende Schnittstelle zum Benutzer dar (Command-Line-Interface, CLI). Jede Klasse, die eine main-methode zu Verfügung stellt, ist damit eine Anwendung (Applikation). Ein einziges Modell kann in sehr unterschiedlichen Anwendungen verwendet werden. 3 Ein Grundprinzip der Software-Architektur Einf. Progr. (WS 12/13) 28

Verschiedene Arten von Anwendungen Eine Anwendung kann auf verschiedene Arten mit einem Benutzer interagieren. Neben CLI ist die bedeutenste Schnittstelle die GUI (Graphical User Interface). GUIs können eigenständige Programme sein oder auch auf Interaktionsmöglichkeiten über Web-Oberflächen z.b. als Applets oder als Java-Server-Pages (JSP) basieren. Wir werden im Softwareentwicklungspraktikum GUIs als sehr zentrale und Applets als java-typische, sehr schlanke Anwendungen kennenlernen. 3 Ein Grundprinzip der Software-Architektur Einf. Progr. (WS 12/13) 29

Trennung von Modell und Benutzer-Interaktion Es ist eine wichtige Design-Hilfe für gute Programme, die Modellierung eines Ausschnitts der Wirklichkeit (das Modell) von den Möglichkeiten der Benutzer-Interaktion getrennt zu halten. In der Software-Entwicklung hat man für diese grundlegende Trennung das Model-View-Controller (MVC) Konzept geprägt. 3 Ein Grundprinzip der Software-Architektur Einf. Progr. (WS 12/13) 30

Model-View-Controller Drei getrennte Programm-Komponenten sind für das Modell (Model), die Darstellung des Modells (View) und die Beeinflussung des Modells (Controller) zuständig. View und Controller hängen meist enger zusammen, da beide für eine bestimmte Art der Applikation (CLI, GUI, Applet, JSP,...) bestimmt sind. Aber auch innerhalb des Anwendungsszenarios GUI ist es sinnvoll, View und Controller getrennt zu halten. Das Design der Darstellung ( Look-And-Feel ) kann dadurch leicht ausgetauscht werden, ohne die Kontroll-Ebene zu beeinflussen. 3 Ein Grundprinzip der Software-Architektur Einf. Progr. (WS 12/13) 31

Model-View-Controller Model Hält die Daten Informiert über Änderungen holt Daten ändert View Zeigt eine Darstellung der Daten Informiert über Benutzereingaben Controller Definiert das Verhalten der Applikation 3 Ein Grundprinzip der Software-Architektur Einf. Progr. (WS 12/13) 32

Model-View-Controller Das Modell steht dem View-Controller-Paar eher unabhängig gegenüber und könnte auch von einem ganz anderen View-Controller-Paar verwendet werden. GUI View GUI andere View CLI Controll/View Applet Controll/View... GUI Controll Model 3 Ein Grundprinzip der Software-Architektur Einf. Progr. (WS 12/13) 33

Applikationen In unseren bisherigen Programmen haben wir implizit eine CLI-View-Controll verwendet. Um das MVC-Prinzip bei einfachen Aufgaben mit CLI einzuhalten, achtet man z.b. darauf, dass die Programmlogik (Methoden, die etwas berechnen) getrennt ist von der View (Methoden, die etwas ausgeben). Auf diese Weise könnte die Programmlogik auch von anderen View-Controller-Paaren verwendet werden. 3 Ein Grundprinzip der Software-Architektur Einf. Progr. (WS 12/13) 34