next up previous contents
Nächste Seite: Inhalt Aufwärts: hamster5 Vorherige Seite: Lizenzbedingungen   Inhalt

Vorwort

Ursprünglich war das Java-Hamster-Modell dazu gedacht, Programmieranfänger auf spielerische Art und Weise in die (imperative) Programmierung einzuführen. Es sollten nicht so sehr - wie in vielen existierenden Lehrbüchern der Fall - technische Feinheiten der Programmentwicklung, sondern vielmehr das Lösen von Problemen durch Computerprogramme im Vordergrund stehen. Der erste Band des Java-Hamster-Buches mit dem Titel ,,Programmieren spielend gelernt mit dem Java-Hamster-Modell``, der 1999 in der ersten Auflage im Teubner-Verlag erschienen ist, verfolgt genau dieses Ziel.

Heutzutage kommt jedoch sowohl in der Ausbildung als auch in der Industrie der objektorientierten Programmierung eine hohe Bedeutung zu, da sie eine Menge von Vorteilen gegenüber anderen Programmierparadigmen verspricht. Daher habe ich das Java-Hamster-Modell dahingehend erweitert, dass es auch in die objektorientierte Programmierung mit der Programmiersprache Java einführt. Das entsprechende Buch, der zweite Band des Java-Hamster-Buches, mit dem Titel ,,Objektorientierte Programmierung spielend gelernt mit dem Java-Hamster-Modell`` ist im September 2004 in der ersten Auflage ebenfalls im Teubner-Verlag erschienen.

In Band 2 wird im Vorwort angekündigt, dass es noch einen dritten Band geben wird, der in die parallele Programmierung einführt und dabei das Thread-Konzept von Java nutzt. Aktuell arbeite ich an diesem Buch, das den Titel ,,Parallele Programmierung spielend gelernt mit dem Java-Hamster-Modell`` haben wird und das aller Voraussicht nach Ende 2006 im Teubner-Verlag erscheinen wird.

In letzter Zeit habe ich mich im Rahmen meiner Lehrtätigkeit an der Universität Oldenburg viel mit grundlegenden Algorithmen der Informatik beschäftigt. Dabei ist mir aufgefallen, dass das Hamster-Modell auf hervorragende Art und Weise dazu benutzt werden kann, die Ideen und Konzepte derartiger Algorithmen zu veranschaulichen, man spricht auch von ,,Algorithmenvisualisierung`` oder ,,Algorithmenanimation``. Das Problem ist nämlich, dass sich die Dynamik des Verhaltens von Algorithmen in der traditionellen Darstellung als statischer Text unterstützt durch wenige Bildern nur schwer vermitteln lässt. Genau hier helfen das Java-Hamster-Modell und der Hamster-Simulator. Durch die Aktionen der Hamster lassen sich bestimmte Vorgänge im Territorium demonstrieren und in Kombination mit dem Debugger des Hamster-Simulators kann eine Zuordnung der Aktionen zu Funktionen bzw. Methoden erfolgen.

Diese zusätzliche Eigenschaft des Java-Hamster-Modells, ein hervorragende Hilfsmittel zur Algorithmenvisualisierung darzustellen, möchte ich natürlich nicht ungenutzt lassen. Deshalb arbeite ich mit Unterstützung von Informatik-Studierenden parallel zum dritten Band des Java-Hamster-Buches an einem vierten Band, der den Titel ,,Algorithmen und Datenstrukturen spielend gelernt mit dem Java-Hamster-Modell`` tragen wird. Dieser vierte Band wird voraussichtlich nie in Buchform erscheinen, sondern frei verfügbar im WWW zugänglich sein. Er wird auch nie ,,fertig`` sein, sondern stetig fortgeschrieben werden. Aktuell existiert eine Version 1.0, die sich mit Sortieralgorithmen auseinandersetzt.

Im ersten Band des Java-Hamster-Buches werden die grundlegenden Konzepte der imperativen Programmierung vermittelt. Weiterhin wird in Kapitel 12 (Programmentwurf) mit der Schrittweisen Verfeinerung ein einfaches Verfahren eingeführt, das vorgibt, wann und wie man die Konzepte einsetzt, um damit für gegebene kleine Probleme Lösungsprogramme zu entwickeln. In zweiten Band des Java-Hamster-Buches werden aufbauend auf dem in Band 1 Gelernten die wesentlichen Konzepte der objektorientierten Programmierung vorgestellt. Objektorientierte Programmiersprachen werden dabei im Allgemeinen eingesetzt, um große Probleme zu lösen. Die Probleme sind dabei unter Umständen so komplex, dass die Entwicklung der Programme mehrere Jahre dauert und ein ganzes Team von Fachleuten - nicht nur Informatiker - daran beteiligt ist. Was in diesem zweiten Band fehlt, ist ein zum Kapitel ,,Programmentwurf`` des ersten Bandes analoges Kapitel, in dem beschrieben wird, wie objektorientierte Konzepte eingesetzt werden können, um Probleme zu lösen. Grund hierfür ist, dass diese Thematik sehr umfangreich ist und daher in einem separaten fünften Band behandelt wird, den Sie in Version 1.0 gerade in Händen halten. Man spricht hier auch von ,,objektorientierter Softwareentwicklung``, von der die ,,objektorientierte Programmierung`` nur ein Teilgebiet darstellt.

Ich möchte jedoch nicht verschweigen, dass das Hamster-Modell bei der Vermittlung der Konzepte der objektorientierten Softwareentwicklung an seine Grenzen stößt. Hamster-Probleme sind nicht wirklich komplex genug sind, um die entsprechenden Vorgehensweisen und Konzepte an geeigneten Beispielen demonstrieren zu können. Nichtsdestotrotz haben wir ein paar Beispiele identitifizieren können, die helfen, einen kleinen Einblick in die objektorientierte Softwareentwicklung zu geben, wie bspw. das in Band 2 bereits eingeführte Beispiel der Entwicklung von Spieleprogrammen.

Generelles Ziel der Softwareentwicklung ist die Erstellung eines Softwaresystems zur Lösung eines gegebenen Problems. Softwareentwicklung kann dabei als ein Prozess angesehen werden, bei dem die Elemente des Problem- bzw. Anwendungsbereichs in Elemente des Lösungsraumes abgebildet werden. Bei der objektorientierten Softwareentwicklung wird diese Abbildung dadurch realisiert, dass zunächst das Anwendungsgebiet analysiert und modelliert wird. Dazu werden die charakteristischen Elemente des Anwendungsgebietes sowie ihre Eigenschaften, Verhaltensweisen und Beziehungen untereinander identifiziert. Das so entstandene Modell des Anwendungsgebietes wird dann gemäß vorgegebener Regeln in ein Modell des Lösungsraums - letztendlich ein Programm - überführt. Das Programm kann als Abstraktion des Anwendungsgebietes betrachtet werden, dessen Elemente weitgehend den Elementen des Anwendungsgebietes entsprechen.

Ausgesprochen wichtig bei der objektorientierten Softwareentwicklung sind so genannte Entwurfsmuster. Ein Entwurfsmuster beschreibt eine in der Praxis bewährte, generische Lösung für ein häufig wiederkehrendes Entwurfsproblem und stellt damit eine wiederverwendbare Vorlage zur Problemlösung dar. Der Einsatz und Nutzen der gängigsten Entwurfsmuster (Abstrakte Fabrik, Beobachter, ...) wird in diesem fünften Band des Java-Hamster-Buches an vielen kleineren Hamster-Beispielen demonstriert und motiviert.

Genauso wie der vierte wird auch der fünfte Band des Java-Hamster-Buches nicht im Buchhandel erscheinen, sondern in einer Online-Version auf der Java-Hamster-Website www.java-hamster-modell.de kostenlos zur Verfügung gestellt. Und auch der fünfte Band wird nie ,,fertig`` sein, sondern - unter anderem mit Hilfe von Studierenden - stetig fortgeschrieben werden. Der fünfte Band des Java-Hamster-Buches trägt den Titel ,,Objektorientierte Softwareentwicklung spielend gelernt mit dem Java-Hamster-Modell`` Aktuell existiert die Version 1.0

Wenn Sie selber Ideen haben, wie man mit Hilfe des Java-Hamster-Modells Konzepte der objektorientierten Softwareentwicklung vorstellen und demonstrieren kann, scheuen Sie sich nicht, diese umzusetzen. Ich würde mich freuen, wenn Sie mir Ihre Arbeiten zukommen lassen würden und ich sie anderen ,,Hamster-Fans`` zur Verfügung stellen könnte.
Meine EMail-Adresse lautet: boles@informatik.uni-oldenburg.de.

Nun wünsche ich allen Leserinnen und Lesern viel Spaß beim Kennenlernen der grundlegenden Konzepte der objektorientieren Softwareentwicklung. Die Hamster freuen sich schon darauf, sie Ihnen näher zu bringen!

Oldenburg, im September 2005 Dietrich Boles


next up previous contents
Nächste Seite: Inhalt Aufwärts: hamster5 Vorherige Seite: Lizenzbedingungen   Inhalt
Ditrich Boles 2005-09-09