Skip to main content
Top

2009 | Book

Grundkurs Smalltalk — Objektorientierung von Anfang an

Eine Einführung in die Programmierung

insite
SEARCH

Table of Contents

Frontmatter
1. Einige Grundbegriffe der Informatik
Auszug
Da für viele Leser der Einstieg in die Programmierung von Computern der erste intensive Kontakt mit der Informatik darstellt, werden hier zunächst einige wenige grundlegende Begriffe erläutert, soweit sie zur Abgrenzung der Programmiertechnik von anderen Teilgebieten der Informatik von Bedeutung sind. Eine umfassende Einführung in die Informatik ist z.B. in Ernst (2008) zu finden.
2. Konstruktion von Algorithmen
Auszug
In diesem Kapitel nähern wir uns der Beantwortung der Frage an, wie man für ein gegebenes Problem einen Algorithmus findet. Leider gibt es auf diese Frage keine einfache Antwort, schon gar nicht können irgendwelche „Kochrezepte“ angegeben werden, die es ermöglichten, zielsicher vom Problem zum Programm zu gelangen. Es gibt in der Software-Technik bis heute auch keine wohl definierte Konstruktionslehre, wie das in reiferen Ingenieurwissenschaften eine Selbstverständlichkeit ist. Vielmehr gibt es verschiedene Formen von Handlungsanleitungen, die den Programmierer bei seiner Tätigkeit unterstützen und die Wahrscheinlichkeit erhöhen sollen, dass die entstehenden Programme bestimmte Qualitätskriterien, wie z. B. Korrektheit und Lesbarkeit, erfüllen. Nähere Hinweise dazu werden im Abschnitt 2.4 gegeben.
3. Grundzüge der objektorientierten Programmierung mit Smalltalk
Auszug
Die hervorstechendste Eigenschaft der Sprache Smalltalk könnte in dem Satz zusammengefasst werden: Programme bestehen ausschließlich aus Nachrichten, die an Objekte gesandt werden. Damit sind zwei elementare Begriffe der objektorientierten Programmierung benannt, deren Bedeutung für die Programmiersprache Smalltalk in Abschnitt 3.1 detailliert behandelt wird. Hier werden zunächst einige einführende Betrachtungen in die Motivation, den objektorientierten Programmierstil zu benutzen, angestellt.
4. Wiederholungen
Auszug
In Kapitel 2 wurde in die Konstruktion von Algorithmen eingeführt, wobei der Schwerpunkt der Betrachtung auf der systematischen Entwicklung der bezüglich der Lösung eines gegebenen Problems zu berücksichtigenden Fallunterscheidungen lag. Daraus ergaben sich für die Beschreibung des Algorithmus zwei Grundelemente für die Anordnung von Anweisungen:
  • • die Sequenz, d. h. die einfache Hintereinanderausführung von Anweisungen
  • • die Fallunterscheidung1, d. h. die Ausführung von Anweisungen in Abhängigkeit von der Gültigkeit einer Bedingung
5. Die Entwicklungsumgebung VisualWorks
Auszug
Bereits in Abschnitt 2.2 wurde darauf hingewiesen, dass die Entwicklung von Smalltalk-Programmen von Anfang an unter Verwendung einer Entwicklungsumgebung vorgenommen wurde. Eine solche Entwicklungsumgebung besteht aus folgenden Komponenten:
  • • eine graphische Benutzungsoberfläche, durch die dem Programmierer verschiedene Werkzeuge, die für die Programmentwicklung benötigt werden, zur Verfügung gestellt werden. Dazu gehören u. a. Workspace, Inspector und Debugger;
  • • eine virtuelle Maschine (von uns bisher Sma ViM getauft), die für die Ausführung der Smalltalk-Programme zuständig ist;
  • • ein Objektspeicher, der alle Objekte einschließlich der Klassen und ihrer Methoden enthält, die von der virtuellen Maschine verarbeitet werden. Dieser Objektspeicher wird als Image bezeichnet.
6. Betrachten einer Beispielklasse: Circle
Auszug
Nachdem in Kapitel 3 im Zusammenhang mit der Erzeugung von Objekten über die Rolle der Klassen erste Aussagen getroffen wurden und im Kapitel 5 mithilfe des System-Browsers ein erster Einblick in die Struktur einer Smalltalk-Klasse und ihre Einbettung in die Klassenbibliothek genommen wurde, werden nun einige der in diesen Kapiteln offen gebliebenen Fragen beantwortet. Dazu ziehen wir die Klasse Circle als Beispiel heran. Dabei werden aber wiederum neue Fragen auftauchen, deren Beantwortung den nachfolgenden Kapiteln vorbehalten bleibt.
7. Definition neuer Klassen
Auszug
Eine der Kernaufgaben bei der Entwicklung eines objektorientierten Anwendungs-programms besteht in der Definition geeigneter Klassen und ihrer Methoden, deren Objekte in ihrem Verhalten die Gegenstände der realen Welt in geeigneter Weise nachbilden. In einer kaufmännischen Anwendung könnte es sich bei solchen Gegenständen z. B. um Produkte, Verträge, Angebote und Kunden handeln, bei einer geometrischen Anwendung z. B. um Geraden, Kreise, Rechtecke, bei einem CAD-System1 für den Maschinenbau z. B. um Schrauben, Muttern, Zahnräder aber auch komplexe Objekte wie Getriebe und Motoren.
8. Klassenhierarchien — Vererbung — Polymorphie
Auszug
Der Umfang der Programmiersprache Smalltalk ist — verglichen mit anderen, auch objektorientierten Sprachen — sehr klein, wenn man die dem Programmierer durch die Syntax der Sprache zur Verfügung gestellten Ausdrucksmittel als Maßstab heranzieht. Es gibt im Wesentlichen drei Arten von Nachrichten und einige wenige reservierte Wörter wie z. B. nil, self, true und false. Zu einem leistungsfähigen Werkzeug für den Programmierer wird die Sprache erst zusammen mit der Klassenbibliothek, also sozusagen mit der Menge an Programmcode, die schon existiert und für die eigenen Zwecke auf geeignete Weise wieder zu verwenden ist.
9. Fehlersuche in Smalltalk-Programmen
Auszug
Bei der Auswertung von Smalltalk-Ausdrücken erhält man Fehlermeldungen, falls die äußere Form des Ausdrucks oder die Art seiner Anwendung nicht korrekt ist. Die Art der Fehlermeldung hängt davon ab, in welchem Stadium der Abarbeitung des Ausdrucks der Fehler gefunden wird. Wir können grob zwischen Fehlern, die vom Compiler entdeckt werden, wenn er versucht, den Smalltalk-Ausdruck in den internen Byte-Code zu übersetzen, und Laufzeitfehlern unterscheiden, die auf fehlerhafte Anwendung von Methoden zurückgehen.
10. Objektbehälter
Auszug
In der Programmierung tritt häufig das Problem auf, dass man Mengen oder Ansammlungen von Objekten verwalten muss. Man hat es in einer Unternehmensanwendung mit vielen Kunden, Lieferanten, Mitarbeitern oder Produkten zu tun. Die Menge aller Produkte, den Produktkatalog, muss man als Einheit ansprechen können. In objektorientierter Sprechweise bedeutet das, dass es z. B. ein Objekt produkt Katalog gibt, das die einzelnen Produkt-Objekte als Komponenten enthält.
11. Weitere Smalltalk-Grundlagen
Auszug
Dieses Kapitel greift einige Aspekte von Smalltalk bzw. der Klassenhierarchie auf, die zwar keinen direkten thematischen Zusammenhang aufweisen, denen aber gemeinsam ist, dass sie in den vorangegangenen Kapiteln schon gestreift wurden. In diesem Kapitel werden sie eingehender beleuchtet. Lediglich der letzte Abschnitt greift mit Objektidentität ein bisher nicht betrachtetes Thema auf.
12. Algorithmischer Exkurs: Rekursion
Auszug
In diesem Kapitel nehmen wir einen Faden wieder auf, der sich insbesondere durch die Kapitel 2 und 4 zog. Dort betrachteten wir grundlegende Prinzipien und Mittel für die Konstruktion von Algorithmen. Außerdem wurde in Abschnitt 11.1.3 bereits angedeutet, wie die Implementierung der Nachrichten für Wiederholungen durch Rekursion erfolgt.
13. Datenströme und Dateien
Auszug
Die in Kapitel 10 behandelten Nachrichten für das Durchlaufen geordneter Behälter verlangen, dass die Elemente eines Behälters ohne Unterbrechung abgrearbeitet werden. Alle Operationen, die auf den Elementen ausgeführt werden sollen, müssen in einem Block zusammengefasst werden, der der jeweiligen Nachricht an das Behälterobjekt als Parameter mitgegeben wird. Gelegentlich ist es aber praktischer, die Abarbeitung der Behälterelemente unterbrechen und zu einem späteren Zeitpunkt — an anderer Stelle im Programm — wieder aufnehmen zu können.
14. Gestaltung von Smalltalk-Programmen
Auszug
In diesem Kapitel werden wir auf einige ausgewählte, grundlegende Prinzipien eingehen, die einerseits die objektorientierte Programmierung im Allgemeinen aber auch die Gestaltung von Smalltalk-Programmen im Besonderen betreffen.
15. Systematisches Testen
Auszug
Die sorgfältige Durchführung von Tests ist heutzutage in der Praxis der Software-Entwicklung die wichtigste Qualitätssicherungsmaßnahme, die der Prüfung dient, ob die Software die an sie gestellten funktionalen Anforderungen erfüllt. Dabei versteht man unter einem Test die Ausführung eines Programms, wobei die Resultate der Programmausführung mit den erwarteten Ergebnissen verglichen werden. Streng genommen ist ein Test dann erfolgreich, wenn bei einem Test die tatsächlichen mit den erwarteten Ergebnissen nicht übereinstimmen. Da man davon ausgehen kann, dass komplexe Programme immer Fehler enthalten, ist ein Test, der keinen dieser Fehler zutage fördert, nutzlos. Nur, wenn ein Fehler aufgedeckt und anschließend beseitigt werden kann, ist eine Steigerung der Qualität des Programms möglich. Die Qualitäts-steigerung ist aber auch in diesem Fall nicht gewährleistet, da eine Änderung an einem Programm zwecks Fehlerbeseitigung auch selbst wieder neue Fehler hervorrufen kann.
16. Wie geht es weiter?
Auszug
In diesem Buch konnten nur wichtige Grundbegriffe der objektorientierten Programmierung und elementare Techniken in der Erstellung von Smalltalk-Programmen vermittelt werden. Es gibt daher eine Reihe von Themen, mit denen man sich zusätzlich auseinander setzen muss, um objektorientierte Anwendungen gut entwickeln zu können. Es werden hier einige Hinweise gegeben, wo man Informationen zu diesen Themen bekommen kann. Es bleibt aber generell festzuhalten, dass Programmieren nicht aus Büchern gelernt werden kann. Diese können nur eine Hilfestellung sein, die die praktische Erfahrung aber nicht ersetzen kann.
Backmatter
Metadata
Title
Grundkurs Smalltalk — Objektorientierung von Anfang an
Author
Johannes Brauer
Copyright Year
2009
Publisher
Vieweg+Teubner
Electronic ISBN
978-3-8348-9315-4
Print ISBN
978-3-8348-0712-0
DOI
https://doi.org/10.1007/978-3-8348-9315-4

Premium Partner