ebook img

Module, Klassen, Verträge: Ein Lehrbuch zur komponentenorientierten Softwarekonstruktion mit Component Pascal PDF

463 Pages·2001·12.804 MB·German
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Module, Klassen, Verträge: Ein Lehrbuch zur komponentenorientierten Softwarekonstruktion mit Component Pascal

Karlheinz Hug Module, Klassen, Vertrige Aushildung unci Studium Die Blicher der Reihe .Ausbildung und Studium" bieten praxisorientierte EinfUh rungen fUr die Aus-und Weiterbildung sowie Bausteine fUr ein erfolgreiches berufs qualifizierendes Studium. Unter anderem sind erschienen: Turbo Pascal Wegwelser fur Grundkurs JAVA Ausblldung und Studlum von Dietmar Abts von Ekkehard Kaier PL/ I fur Workstations Delphi Essentials von Eberhard Sturm von Ekkehard Kaier Aufbaukurs Wlrtschafts Programmleren mit Fortran 90 Informatlk von Hans-Peter Baumer von Dietmar Abts und Wilhelm Mulder Wlrtschaftsmathematlk mit Online-Publishing fur Studenten dem Computer und Wissenschaftler von Hans Benker von Michael BeiBwenger Datenbank-Englneerlng Visual Basic fur von Alfred Moos und Gerhard Daues technische Anwendungen von Ilirgen Radel Visual Basic Essentials von Ekkehard Kaier Grundkurs Algorithmen und Datenstrukturen Excel fur Betrlebswirte von Andreas Solymosi von Robert Horvat und Ulrich Grude und Kambiz Koochaki Theorle und Praxis Praktlsche relatlonaler Datenbanken Systemprogrammierung von Rene Steiner von Helmut Weber Objektorlentlerte Ingenieurmathematlk mit Programmierung In JAVA Computeralgebra-Systemen von Otto Rauh von Hans Benker Grundkurs Wlrtschafts Excel fur Techniker Informatlk und Ingenieure von Dietmar Abts und Wilhelm MUlder von Hans-Jurgen Hoiland und Uwe Bernhardt Management von Geschiftsprozessen Kostenstellenrechnung von Andreas Gadatsch mit SAP" R/3e von Franz Klenger und Ellen Falk Kalms Effektlv Programmieren InCundC++ OBERON von Dietmar Herrmann von B. Marincek, J.L. Marais und E. Zeller SQL mit Oracle von Wolf-Michael Kahler Studienfuhrer Wirtschaftslnformatlk Module, Klassen, Vertrige von Peter Mertens, Peter Chamoni, von Karlheinz Hug Dieter Ehrenberg, Joachim Griese, Lutz J. Heinrich und Karl Kurbel (Hrsg.) Einfuhrung In UNIX von Werner Brecht Vieweg Karlheinz Hug Module, Klassen, Vertrage Ein Lehrbuch zur komponentenorientierten Softwarekonstruktion mit Component Pascal 2., aktualisierte Auflage I I vleweg Die Deutsche Bibliothek - CIP-Einheitsaufnahme Ein Titeldatensatz fiir diese Publikation ist bei Der Deutschen Bibliothek erhliltlich. Mac OS® ist ein eingetragenes Warenzeichen von Apple Computer. Design by Contract® ist ein eingetragenes Warenzeichen von Interactive Software Engineering, Inc., Santa Barbara, USA. Microsoft®, WINDOWS®, WINDOWS 2000®, WINDOWS NT® sind eingetragene Warenzeichen von Microsoft Corporation. BlackBox® und Component Pascal® sind eingetragene Warenzeichen von Oberon microsystems. Java® ist ein eingetragenes Warenzeichen von Sun Microsystems. AIle in diesem Buch enthaltenen Informationen wie Text, Abbildungen, Programme und Verfahren wurden nach bestem Wissen erstellt und mit groBter Sorgfalt gepriift. Da Fehler trotzdem nicht ganz auszuschlieBen sind, ist der Inhalt des Buches mit keiner Verpflichtung oder Garantie irgend einer Art verbunden. Autor und Verlag iibernehmen fiir eventuell verbliebene fehlerhafte Angaben und deren Folgen weder eine juristische noch irgendeine Haftung fiir Schliden, die in Zusammen hang mit der Verwendung dieses Buches, der darin dargestellten Methoden und Programme, oder Teilen davon entstehen. 1. Auflage 2000 2., aktualisierte Auflage Mai 2001 Aile Rechte vorbehalten © Friedr. Vieweg & Sohn Verlagsgesellschaft mbH, BraunschweiglWiesbaden, 2001 Der Verlag Vieweg ist ein Unternehmen der Fachverlagsgruppe BertelsmannSpringer. Das Werk einschlieBlich aller seiner Teile ist urheberrechtlich geschiitzt. Jede Verwertung auBerhalb der engen Grenzen des Urheberrechtsgesetzes ist ohne Zustimmung des Verlags unzulassig und strafuar. Das gilt insbesondere fiir Vervielfaltigungen, Ubersetzungen, Mikroverfilmungen und die Ein speicherung und Verarbeitung in elektronischen Systemen. www.vieweg.de Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in dies em Werk berechtigt auch ohne besondere Kennzeichnung nicht zu der Annahme, dass solche Namen im Sinne der Warenzeichen-und Markenschutz-Gesetzgebung als frei zu betrachten waren und daher von jedermann benutzt werden diirften. Konzeption und Layout des Umschlags: Ulrike Weigel, www.CorporateDesignGroup.de Gedruckt auf saurefreiem Papier ISBN-13: 978-3-528-15681-7 e-ISBN-13: 978-3-322-86866-4 DOl: 10.1007/978-3-322-86866-4 Vorwort Hintergrund Die Softwareindustrie setzt seit den BOer Jahren zunehmend Objekttechnologien ein, jetzt gewinnen Komponententechnolo gien an Bedeutung. Die Informatik-Ausbildung an Hochschulen soIl die Studierenden auf professionelles Entwickeln qualitatvol ler Software vorbereiten. Deshalb sollte die Lehre technologi sche Innovationen rechtzeitig aufnehmen, damit sie langfristig praxisrelevant bleibt. Dazu sind neue Konzepte und Methoden didaktisch aufzubereiten, urn sie Einsteigern in die Informatik zu erschlie15en. Zielgruppe Solche Argumente erwagend richtet sich dieses Lehrbuch an Studierende mit Informatik als Haupt- oder Nebenfach. Es ver mittelt Grundlagen, die zu einer Einfuhrung in die Informatik gehoren. Meinem Arbeitsplatz entsprechend orientiert es sich an der Ausbildung an Fachhochschulen, doch auch Studierende anderer Hochschulen und Lehrende an Schulen konnen es nut zen. Das Buch eignet sich zur Vorlesungsbegleitung und zum Selbststudium. Maskulin -Feminin Bei allen Berufs- und Personenbezeichnungen wie Leser, Benut zer, Entwickler meine ich stets Menschen beiderlei Geschlechts. Ziele und Methoden Das Buch fuhrt den Leser uber modulare und objektorientierte Softwaretechniken an die Komponententechnologie heran. Module, Klassen und Komponenten folgen dem Prinzip der Trennung von Schnittstelle und Implementation. Deshalb beginne ich mit dem Entwerfen und Spezifizieren von Schnitt stellen; das Implementieren dieser Schnittstellen schlie15t sich daran an. Wie in Ingenieurdisziplinen ublich steht damit das Was, das Beschreiben der Funktion, vor dem Wie, dem Realisie ren der Funktion durch eine Struktur. Die Methode des Spezifi zierens und Programmierens durch Vertrag setze ich konse quent ein, urn zu zeigen, wie man systematisch zuverlassige, korrekte und robuste Software konstruieren kann. Software erscheint als Architektur - als strukturierte Ansamm lung von Einheiten, die uber definierte Schnittstellen zusam menwirken. Die Lehrinhalte entwickle ich anhand aufeinander aufbauender Beispielkomponenten, wobei ich Softwarequali tatsmerkmale wie Wartbarkeit und Wiederverwendbarkeit beachte. Der Leser lernt nach dem Ansatz des schrittweisen Off- v Vorwort nens von Blackboxes zunachst, Module und Klassen zu benut zen, bevor er sie implementiert und erweitert. Dabei ergibt sich das Entwickeln von Software als Prozess des Beschreibens und Transformierens von Strukturen. Unterschiede zu Der Lehrstoff beschrankt sich nicht auf das Thema Implementa anderen Lehransatzen tion und vernachlassigt nicht Themen wie Spezifikation und Test. Programmiersprachliche Konstrukte behandle ich nicht entlang der Struktur einer Sprache mit kleinen Einzelbeispielen, sondern meist dort, wo ich sie zum Losen einer Teilaufgabe brauche. Damit stelle ich das Programmieren im Kleinen, AIgo rithmen und Datenstrukturen, in einen softwaretechnisch defi nierten Zusammenhang. Voraussetzungen Das Buch richtet sich vor allem an Informatik-Anfanger. Trotz seines unkonventionellen Ansatzes fordert es vom Leser nur etwas Vertrautheit mit einigen Grundbegriffen der Mathematik: • Arithmetik: natiirliche und ganze Zahlen; • Mengenlehre: Mengen, Relationen, Abbildungen; • Logik: boolesche Algebra, Aussagenlogik und Pradikatenlo- gik erster Stufe. Vorkenntnisse im Programmieren oder einer Programmierspra che sind nicht notig. Ich nehme aber an, dass der Leser mit einem PC - einer Tastatur, einer Maus, einem Bildschirm, einer meniiorientierten grafischen Benutzungsoberflache und einem Texteditor -vertraut ist. Niitzlich sind Grundkenntnisse in Eng lisch und die Bereitschaft, sich Fachbegriffe anzueignen. Programmiersprache Die softwaretechnischen Konzepte beschreibe ich mittels grafi scher Notationen und der objekt-und komponentenorientierten Programmiersprache Component Pascal, die die Entwicklungs linie Pascal - Modula - Oberon weiterfiihrt. Die ausfiihrbaren Programmbeispiele des Buchs sind in Component Pascal mit einer der ersten komponentenorientierten Entwicklungsumge bungen, dem BlackBox Component Builder der Firma Oberon microsystems erstellt; sie sind ausgehend von der Homepage der Fachhochschule Reutlingen mit der Webadresse Bezugsquelle der http://www-el.fh-reutlingen.de Beispielprogramme offentlich zuganglich. Dem Leser empfehle ich, begleitend zur Lektiire des Buchs mit BlackBox zu arbeiten. Bezugsquelle fUr Oberon microsystems stellt eine kostenlose Ausbildungsversion Component Pascal und des BlackBox Component Builder zur Verfiigung. Man kann sie BlackBox von der Homepage der Firma mit der Webadresse vi Vorwort http://www.oberon.ch auf den eigenen Rechner herunterladen. Die Postanschrift der Firma lautet Oberon microsystems Inc. Technopark Technoparkstrasse 1 8005 Ztirich CH -Schweiz Bezugsquellen fOr Informationen tiber andere Sprachumgebungen zu Oberon und Oberon ihren N achfolgern erhalt man tiber die Webadresse http://www.factorial.com/hostedlwebrings/oberon Gliederung des Buchs Die ersten beiden Kapitel umreiBen die Themen des Buchtitels exemplarisch und stellen die Methode der Spezifikation durch Vertrag vor. Das Beispiel des Kaffeeautomaten dient auch in spateren Kapiteln der Anschauung. Wahrend Kapitel 3 einen Uberblick tiber den Softwareentwick lungsprozess liefert, auf den die Inhalte des Buchs sich letztlich beziehen, ftihrt Kapitel 4 den Leser in die Begriffswelt der Pro grammiersprachen ein. Nach diesen allgemein gehaltenen Kapi teln wendet sich Kapitel5 einem Produkt zu, der Entwicklungs umgebung BlackBox. Sie dient im Folgenden als Werkzeug zum praktischen Erproben erarbeiteter Aufgabenlosungen. Kapitel 6 zeigt einen systematischen Weg von der Spezifikation zur Implementation einer Softwareeinheit. Kapitel 7 befasst sich mit der Ein- und Ausgabe von Programmen und dem Gestalten interaktiver Benutzungsoberflachen. Die Kapitel 8 und 9 ftihren in strukturiertes, modulares und objektorientiertes Programmieren ein. KapitellO bis 12 vertiefen die Themen von statischen Klassenstrukturen tiber dynamische Objektstrukturen bis zu Entwurfsmustern. Gleichzeitig weiten sie den Blick auf den Softwareentwicklungsprozess vom grafi schen Entwerfen tiber das methodische Spezifizieren bis zum systematischen Testen. Kapitelenden Die Kapitel enden meist mit drei Abschnitten derselben Art: Eine Zusammenfassung liefert dem schnellen Leser einen Uber blick, der intensive Leser mag an dieser Stelle tiber den Inhalt des Kapitels nachdenken. Literaturhinweise verbanne ich aus dem laufenden Text, urn sie kapitelweise zusammenzustellen. Anhand von Ubungsaufgaben (ohne Losungen) kann sich der Leser den Stoff erarbeiten. vii Vorwort Anhiinge Da die vollstandige offizielle Sprachbeschreibung von Compo nent Pascal im Anhang abgedruckt ist, kann ich mich im Haupt text mehr auf Programmiertechniken konzentrieren als auf Ein zelheiten der Programmiersprache. Das Literaturverzeichnis enthalt vor allem Verweise auf Lehrbucher und Ubersichtsarti kel. Literaturhinweise gebe ich im Text durch Nummern des Literaturverzeichnisses wie [30] an. Neben zahlreichen Querver weisen solI das ausfuhrliche Sachwortverzeichnis dem Leser helfen, sich schnell uber gesuchte Begriffe zu informieren. Darstellung des Textes Bezeichnungen besonders wichtiger Begriffe und neu einge fiihrte Bezeichnungen hebe ich bei ihrem ersten Auftreten bzw. am Ort ihrer Definition durch Fettdruck hervor. Andere wich tige, aber anderswo definierte Bezeichnungen, in der Literatur verwendete Synonyme und englische Bezeichnungen erschei nen kursiv. Die Arialschrift verwende ich fur Worter formaler Spra chen, z.B. fur Programmfragmente, formale Spezifikationen oder Kommando-Ein-/ Ausgaben an einer Benutzungsoberfla che. Einzelne Zeilen markiere ich mit speziellen Symbolen: weist auf etwas Wichtiges oder nachfolgend Erlautertes hin. argert sich uber eine mangelhafte Programmstelle oder etwas Nachteiliges, © erfreut sich an der korrigierten Programmstelle oder etwas Vor teilhaftem. warnt vor einer fehlerhaften Programmstelle oder einem gefahr lichen Konstrukt. Neue deutsche Der Text folgt der neuen deutschen Rechtschreibung. Modelle, Rechtschreibung Spezifikationen und Programme formuliere ich englisch. Die Griinde dafur sind vielschichtig: Programmiersprachen orientie Dokumentations ren sich am Englischen. Englisch ist international verbreitet, in sprache englisch vielen Firmen Dokumentationssprache und wird durch die Glo balisierung in der Praxis von Softwareentwicklern immer wich tiger. Wiederverwendbare Softwarekomponenten mussen eng lisch dokumentiert sein, urn einen Markt zu finden. BlackBox ist englisch dokumentiert. AuBerdem sind englische Worter oft kurzer als entsprechende deutsche. Keine Regel ohne Aus nahme! Ausgenommen ist der. Kaffeeautomat, den ich durch gangig deutsch modelliere. Zweite Auflage Fur die Neuauflage habe ich Fehler korrigiert, Programme opti miert und Angaben aktualisiert. Der Component Pascal Lan guage Report im Anhang entspricht der Version yom Marz 2001. viii Vorwort Danksagungen Ich danke allen, die mir bei der Arbeit an diesem Buch geholfen haben, vor aHem meinem Kollegen Prof. Helmut Ketz vom Fachbereich Management und Automation der Fachhochschule Reutlingen. Er hat das ganze Buchprojekt von der Idee bis zum Druck mitgestaltet, ich habe seine Lehrmaterialien und zahlrei chen Kommentare zum Manuskript geplundert. Nur wegen sei ner Bescheidenheit erscheint er nicht als Koautor des Buchs. Mein Dank kann seinen Beitrag nicht ausgleichen. Markus Hirt danke ich fur sein Engagement und seine Rat schUige, den Kollegen der Firmen Oberon microsystems und Esmertec fUr die anregenden Diskussionen uber Komponenten technologien. Besonderer Dank gebuhrt Dr. Dominik Gruntz, der das ganze Manuskript durchgearbeitet und mit seinen kon struktiven Vorschlagen wesentlich zur Verbesserung beigetra gen hat. Ganz herzlich gedankt sei auch Friederike Gottschalk, die nicht nur unzahlige Versionen des Manuskripts kommen tiert, sondern das Projekt nachhaltig unterstutzt hat. Fur die Erlaubnis zum Abdruck des Component Pascal Language Report danke ich Prof. Niklaus Wirth und Prof. Hanspeter M6s senb6ck sowie Oberon microsystems. Dem Verlag, insbesondere meinen Lektorinnen Frau Dr. Ulrike Walter und Frau Nadine Vogler-Boecker, danke ich fUr ihre hilfsbereite, geduldige Zusammenarbeit. Nun wiinsche ich dem Leser viel SpaB beim Lesen. Hinweise auf Fehler, Kritik und Zustimmung nehme ich gerne entgegen; meine E-Mail-Adresse lautet: [email protected] Reutlingen, den 23. Marz 2001 Karlheinz Hug ix Vorwort x

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.