ebook img

Objektorientierte Programmierung: Ein einführendes Lehrbuch mit Beispielen in Modula-2 PDF

235 Pages·1992·11.888 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 Objektorientierte Programmierung: Ein einführendes Lehrbuch mit Beispielen in Modula-2

Dieter Monjau S6ren Schulze Objektorientierte Programmierung .-- Programmierung Assemblerprogrammierung mit dem PC von J. Erdweg Einfuhrung in die Programmiersprache Modula-2 von H. Pudlatz Parallele Programmierung mit Modula-2 von E. A. Heinz Programmieren in Pascal von H. Feldmann Programmieren mit Ada von H. Feldmann Strukturiertes Programmieren in C von H. Feldmann Objektorientierte Programmierung von D. Monjau und S. Schulze Programmieren in PUI von E. Sturm Einfuhrung in die Programmiersprache SIMULA von G. Lamprecht Programmieren in COBOL 85 von W.-M. Kahler JSP - Einfuhrung in die Methode des Jackson Structured Programming von K. Kilberth Prolog -Eine methodische EinfUhrung von R. Cordes, R. Kruse, H. Langenderfer, H. Rust Vieweg Dieter Monjau Soren Schulze Objektorientierte Programmierung Ein einfOhrendes Lehrbuch mit Beispielen in Modula-2 I I Vleweg Die 'Deutsche Bibliothek -CIP-Einheitsaufuahme Monjau, Dieter: Objektorientierte Programrnierung : ein einfiihrendes Lehrbuch mit Beispielen in Modula-2 / Dieter Monjau ; Soren Schulze. - Braunschweig; Wiesbaden: Vieweg, 1992 ISBN 3-528-05195-7 NE: Schulze, Soren: Das in diesem Buch enthaltene Programm-Material ist mit keiner Verpflichtung oder Garantie irgendeiner Art verbunden. Die Autoren und der Verlag iibernehmen infolgedessen keine Verantwortung und werden keine daraus folgende oder sonstige Haftung iibernehmen, die auf irgendeine Art aus der Benutzung dieses Programm-Materials oder Teilen davon entsteht. AIle Rechte vorbehalten © Friedr. Vieweg & Sohn Verlagsgesellschaft mbH, BraunschweigIWiesbaden, 1992 Der Verlag Vieweg ist ein Unternehmen der Verlagsgruppe Bertelsmann International. Das Werk einschlieBlich aller seiner Teile ist urheberrechtlich geschiitzt. Jede Verwertung auBerhalb der engen Grenzen des Urheberrechtsgesetzes ist ohne Zustimmungen des Verlags unzulassig und strafbar. Das gilt insbesondere fUr Vervielfaltigungen, Ubersetzungen, Mikroverfilmungen und die Einspeicherung und Verarbeitung in elektronischen Systemen. Gedruckt auf saurefreiem Papier ISBN-13: 978-3-528-05195-2 e-ISBN-13: 978-3-322-84060-8 DOl: 10.1007/ 978-3-322-84060-8 v Vorwort Dieses Buch bietet eine Einfiihrung in den objektorientierten Entwurf und die objektorientierte Implementierung von Programmen. Die objektorieptierten Kon zepte sowie die Methoden ihrer Anwendung werden an bekannten und' haufig ver wendeten Algorithmen und Datenstrukturen erHiutert. Ais Implementierungswerk zeug wird TopSpeed Modula-2 verwendet. Viele Beispielprogramme demonstrieren die Anwendung der objektorientierten Vorgehensweise. Die vollstiindigen Quell texte aller Programme sind auf einer Programmdiskette enthalten. Die entscheidenden Faktoren zur Produktivitiits- und Qualitiitssteigerung bei der Entwicklung groBer Softwaresysteme sind Wiederverwendbarkeit, Erweiterbarkeit und Wartbarkeit bewiihrter und korrekt arbeitender Programmbausteine. Die beste bekannte Moglichkeit, das zu erreichen, ist die objektorientierte Vorgehensweise. Sie bezieht sich auf alle Phasen des Softwarelebenszyklus, das heiBt, auf die Anfor derungsanalyse, den Entwurf und die Implementierung. 1m ersten Kapitel wird eine Einordnung der objektorientierten Konzepte in die Pha sen und Methoden der Softwareentwicklung vorgenommen. Die Modellierung des zu lOsenden Problems erfolgt durch Einflihrung von Objekten; jedes Objekt stellt die Zusammenfassung einer Datenstruktur zur Beschreibung von Merkmalen und Ope rationen (Methoden) iiber dieser Struktur dar. Objekte sind Exemplare von Klassen. Die objektorientierte Methodik enthiilt dariiber hinaus als Konzepte den Nachrich tenaustausch zwischen Objekten, die Vererbung in Klassenhierarchien und den Polymorphismus. 1m zweiten Kapitel werden die Methoden der modularen Pro grammierung, die von konventionellen, prozeduralen Programrniersprachen bekannt sind, behandelt. Sie stellen bereits einen Schritt in Richtung des objektorientierten Entwurfs und der objektorientierten Programmierung dar; man spricht von objekt basierter Vorgehensweise. Objekte bzw. Klassen konnen dabei auf der Grundlage von abstrakten Datentypen implementiert werden. Typische Anwendungen dieser Methode wie Listen, Keller und die Modellierung von Daten in Datenbanken wer den an Beispielen demonstriert. Bine Einfiihrung in die wesentlichen Konzepte der objektorientierten Programmierung erfolgt im dritten Kapitel. Dabei werden geo metrische Figuren als Objekte und Operationen zum Manipulieren der Objekte als Methoden zugrundegelegt. Durch die behandelten Programmbeispiele werden die Konzepte der Objekte, Klassen, des Polymorphismus, der virtuellen Methoden sowie der Klassenhierarchie verstiindlich gemacht. 1m vierten bzw. fiinften Kapitel wird die Anwendung der objektorientierten Konzepte flir den Entwurf und die VI Implementierqng komplexer Datenstrukturen wie homogene bzw. heterogene Kel ler, Listen, Verzeichnisse und Mengen dargestellt. Gleichzeitig werden die fUr ver schiedene Anwendungen ntitzlichen dynamischen Objekte eingeftihrt. Sie finden beim Entwurf von Klassenhierarchien Verwendung; ihre Spezifikation erfolgt selbst im Rahmen einer Klassenhierarchie. Als kO,mplexe Anwendung der objektorientier ten Methoden wird im sechsten Kapitel der- Entwurf und die Implementierung einer Fensterverwaltting zur Gestaltung des Dialogs zwischen Nutzer und Programm tiber den Bildschirm beschrieben. SchlieBlich wird im siebenten Kapitel eine Einfiihrung in Smalltalk gegeben. 1m Gegensatz zu den Programmiersprachen C++, Pascal (ab Version 5.5) bzw. TopSpeed Modula-2, die aus konventionellen Sprachen durch Erweiterung urn objektorientierte Konstrukte hervorgegangen sind, wurde Smalltalk von vornherein als objektorientierte Sprache entwickelt. Die Konzepte von Small talk haben wesentlichen EinfluB auf die Weiterentwicklung konventioneller Pro grammiersprachen und Entwurfswerkzeuge gehabt. Dieses Buch stellt ein Lehrbuch fUr objektorientierten Entwurf und Implementie rung dar. Es setzt Kenntnisse zu den Konzepten und der Anwendung hOherer Pro grammiersprachen bzw. praktische Erfahrungen mit einer dieser Sprachen voraUSJ Das Buch wendet sich an Studenten der Informatik und anderer technischer Stu dienrichtungen, die sich mit der Entwicklung von Software befassen. Es ist glei chermaBen ntitzlich ftir Praktiker, die ihre Kenntnisse zu konventionellen Sprachen urn eine moderne Softwareentwicklungsmethode erweitern wollen. Die im Buch bzw. auf der Programmdiskette enthaltenen Programmbeispiele wur den mit dem Programmiersystem TopSpeed Modula-2, Version 2, der Firma Jensen & Partners International getestet. Wir mochten Herm Jonas Lange fUr die anregenden Diskussionen und Hinweise sowie Jacqueline Lindner fUr ihre Untersttitzung bei der Textgestaltung danken. Unser Dank gilt auch den Mitarbeitern des Verlages fUr eine gute Zusammenarbeit und Betreuung. Chemnitz, April 1992 Dieter Monjau Soren Schulze VII InhaItsverzeichnis 1 Objektorientierte Softwareentwicklung. .......................................•................... 1 1.1 Methoden der Softwareentwicklung. ............................................................. 1 1.2 Prozedurale und modulare Programmierung ................................................. 3 1.3 Objektorientierter Entwurf. ........................................................................... 6 1.4 Objekte, Klassen und Vererbung .................................................................. 9 1.5 Objektorientierte Programmierung ............................................................. 15 1.6 Objektorientiertheit und Softwarelebenszyklus ........................................... 16 1.7 Zusammenfassung ...................................................................................... 17 2 Modulare Programmierung ............................................................................ 19 2.1 Datenkapseln .............................................................................................. 19 2.2 Abstrakte Datentypen ................................................................................. 29 2.3 Objektbasierte Programmierung ................................................................. 43 2.4 Zusammenfassung ...................................................................................... 66 2.5 Ubungsaufgaben ......................................................................................... 68 3 Grundlagen der objektorientierten Programmierung ................................... 71 3.1 Objekte ....................................................................................................... 71 3.2 Klassen ....................................................................................................... 72 3.3 Vererbung .................................................................................................. 75 3.4 Polymorphismus und virtuelle Methoden .................................................... 78 3.5 Ein einfaches Anwendungsbeispiel.. ........................................................... 79 3.6 Eine Klassenhierarchie fUr geometrische Figuren ....................................... 82 3.7 Abstrakte Klassen ....................................................................................... 88 3.8 Zusammenfassung ...................................................................................... 91 3.9 Ubungsaufgaben ......................................................................................... 94 4 Dynamische Objekte ........................................................................................ 97 4.1 Vorbetrachtungen zu Kellerspeichern ......................................................... 97 4.2 Objektorientierter Entwurf von homogenen Kellerspeichern ....................... 98 4.3 Keller mit dynarnischen Objekten ............................................................. 11 0 4.4 Ein heterogener Keller .............................................................................. 117 4.5 Zusammenfassung .................................................................................... 125 4.6 Ubungsaufgaben ....................................................................................... 127 5 Objektorientierter Entwurf von Datenstrukturen ....................................... 131 5.1 Lineare Listen ........................................................................................... 131 VIII 5.2 Mengen .................................................................................................... 154 5.3 Ubungsaufgaben ....................................................................................... 169 6 Der Entwurf komplexer Systeme .................................................................. 171 6.1 Konstruktionsprinzipien ............................................................................ 171 6.2 Eine Klassenhierarchie fUr Dialogelemente. .............................................. 174 6.2.1 Zielstellung ..................................................................................... 174 6.2.2 Nachrichtenaustausch ...................................................................... 174 6.2.3 Klassenhierarchie ............................................................................ 180 6.2.4 Prototyp einer Applikationen .......................................................... 189 7 Smalltalk ........................................................................................................ 191 7.1 Sprachelemente ........................................................................................ 192 7.1.1 Literale und Variablen .................................................................... 192 7.1.2 Botschaften ..................................................................................... 195 7.1.3 Blocke und Kontrollstrukturen ........................................................ 196 ~ 7.2 Objekte ..................................................................................................... 199 7.2.1 Klassenbildung und Vererbung ................................................... :~ .. 199, 7.2.2 Die Erzeugung von Objekten .......................................................... 203 7.2.3 Metaklassen .................................................................................... 206 7.2.4 Vordefinierte Objekte ..................................................................... 209 7.3 Die virtuelle Maschine .............................................................................. 210 7.4 Zusammenfassung .................................................................................... 212 7.5 Ubungsaufgaben ....................................................................................... 214 Anhang ............................................................................................................... 215 A Syntax der objektorientierten Erweiterungen .......................... _. ................ 215 A.l Klassendeklarationen ............................................................................... 215 A.2 Objektdeklarationen ................................................................................. 217 A.3 Ausfiihren von Methoden ......................................................................... 217 A.4 Vererbung ................................................................................................ 217 A.5 Kompatibilitatsregeln ............................................................................... 218 B Inhalt der Programmdiskette ....................................................................... 219 Literaturhinweise ............................................................................................... 220 Bildverzeichnis ................................................................................................... 2~1 Sachwortverzeichnis .......................................................................................... 223 1 1 Objektorientierte Softwareentwicklung 1.1 Methoden der Softwareentwicklung Das grundsiitzliche Ziel der Softwaretechnik besteht in der Bereitstellung von Me thoden und Werkzeugen, die dazu beitragen sollen, groBe und komplexe Software systeme mit hoher Qualitiit kostengiinstig herzustellen und anzuwenden. Die Qualitiit von Software wird durch verschiedene Faktoren bestimmt. FUr den Nutzer der Software sind folgende Faktoren von groBer Bedeutung: • Korrektheit als Eigenschaft von Software, ihre durch Anforderungen und Spezi flkationen definierten Aufgaben exakt zu erfUllen • Robustheit als Eigenschaft von Software, auch unter auBergewohnlichen Bedin gungen zu funktionieren • Erweiterbarkeit als Fiihigkeit, Software an Speziflkationsiinderungen anzupassen • Wiederverwendbarkeit als Fiihigkeit von Software, ganz oder teilweise flir neue Anwendungen verwendet zu werden • Kompatibilitiit als Fiihigkeit von Software, sie mit anderer Software zu verbinden Daneben spielen weitere Faktoren wie Effizienz, Portabilitiit, Verifizierbarkeit, In tegritiit und Benutzerfreundlichkeit fUr die Qualitiit von Software eine Rolle. Die ersten flinf genannten Qualitiitsfaktoren spielen in der heutigen Praxis der Soft wareentwicklung eine SchlUsselrolle. Die entscheidenden Faktoren zur Produktivi tiits- und Qualitiitssteigerung bei der Entwicklung groBer Softwaresysteme sind die Wiederverwendbarkeit, Erweiterbarkeit und Kompatibilitiit bewiihrter und korrekt arbeitender Prograrnmbausteine. Die beste bekannte Moglichkeit zur Entwicklung von wiederverwendbarer, erweiterbarer bzw. kompatibler Software ist die objekt- 2 1 Objektorientierte Softwareentwicklung orientierte Vorgehensweise. Methoden zur Sicherung von Korrektheit und Robust heit konnen organisch mit dem objektorientierten Ansatz verbunden werden. Urn die Qualitatsanforderungen zu erfiillen, stehen dem Softwareentwickler eine Reihe von Methoden und Werkzeugen zur Verfiigung. Die systematische Vorge hensweise bei der Softwareentwicklung und -nutzung wird grundlegend durch die Anwendung des Phasenmodells (auch Softwarelebenszyklus genannt) gesichert. Dieses Modell unterscheidet bei der Softwareentwicklung zwischen den folgenden charakteristischen Phasen, die nacheinander bzw. gegebenenfalls auch wiederholt durchlaufen werden miissen: Phase 1: Analyse und Spezifizieren der Anforderungen Phase 2: Entwurf Phase 3: Implementation Phase 4: .T est Die im Rahmen dieser Phasen entwickelte Software wird anschlieBend in die Nut zung, die meist auch mit einer Wartung verbunden ist, iiberfiihrt. Folgende Entwurfsmethoden bzw. Gliederungsstrukturen wendet der Softwareent wickler im Rahmen des Phasenmodells an, urn die geforderten Qualitatsmerkmale zu erreichen: • Hierarchisches Gliedern • Schrittweises Verfeinern • Top-down- bzw. bottom-up-Vorgehensweise • Strukturiertes Prograrnmieren • Blockstruktur • ProzedurenlFunktionen • Module • Kapselung • Funktionale bzw. Datenabstraktion • Validation • Dokumentation Die objektorientierte Vorgehensweise ist die logische Weiterentwicklung der mo dulorientierten Vorgehensweise. Das Objektmodell ist eine Anwendung der Kon zepte Abstraktion, Kapselung, Modularitat und Hierarchie.

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.