Software-Entwicklung mit Delphi Eine systematische Einführung von Dieter Orlamünder, Rüdiger Liskowsky, Heinrich Hußmann 1. Auflage Software-Entwicklung mit Delphi Orlamünder / Liskowsky / Hußmann schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG Hanser München 2002 Verlag C.H. Beck im Internet: www.beck.de ISBN 978 3 446 22088 1 Inhaltsverzeichnis: Software-Entwicklung mit Delphi Orlamünder / Liskowsky / Hußmann
CARL HANSER VERLAG Dieter Orlamünder, Rüdiger Liskowsky, Heinrich Hußmann Software-Entwicklung mit Delphi Eine systematische Einführung 3-446-22088-7 www.hanser.de
Vorwort Zur Einführung in die Software-Entwicklung gehört nicht nur das Erlernen einer Programmiersprache, sondern im gleichen Umfang das Kennenlernen der softwaretechnologischen Grundlagen zur Schaffung und Pflege dieser Programme. Das Ziel dieses Delphi - Buches besteht demnach darin, das Kennenlernen der Programmiersprache Object Pascal, des Software-Entwicklungswerkzeugs Delphi mit den anzuwendenden Prinzipien und Methoden der Softwaretechnologie zu verbinden. Das Buch ist besonders zur Einarbeitung in die praktischen Grundlagen der Informatik am Beispiel der Lehr -Programmiersprache Object Pascal und der dafür existierenden Werkzeuge von Delphi geeignet. Die Programmiersprache Pascal zur Einführung in die Software-Entwicklung wurde aus didaktischen Gründen gewählt. Sie wurde 1971 von Niklaus Wirth [39] als eine auf das Wesentliche reduzierte, verallgemeinerte Sprache für die strukturierte Programmierung geschaffen, die erste Auswirkungen der Softwarekrise überwinden half. Mit ihrem klassischen syntaktischen und typorientierten Konzept hat sie zahlreiche Programmiersprachen bis heute beeinflusst. Die interpretative Implementierung von Pascal mithilfe des P- Codes war der Ausgangspunkt für die Entwicklung von Turbo-Pascal und Vorbild für die Bytecode-Implementierungen von Smalltalk und Java [14]. Die Weiterentwicklung von Turbo-Pascal zum heutigen Object Pascal hat konsequent alle modernen Bewegungen der Software-Entwicklung aufgenommen. Somit bietet Object Pascal einen guten Übergang von klassischer Lehr -Programmierung hin zu Konzepten, die einen leichten Umstieg auf moderne Sprachen wie Java oder C# ermöglichen. Die wichtigsten objektorientierten Sprachelemente wurden 1986 in den Pascal-Sprachumfang integriert und bilden seither ständig erweitert die Basis der Entwicklungsumgebung Borland Delphi. Ein Kennzeichen moderner Software-Entwicklung ist, dass neue überarbeitete Versionen von Programmpaketen mit besseren Eigenschaften ständig, mitunter auch in kürzeren Zeiträumen, auf dem Markt erscheinen. Das gilt insbesondere für die gewählte Software- Entwicklungsumgebung, kann aber auch Pascal betreffen. Das vorliegende Buch und die bereitgestellten Projekte wurden auf Basis des Standes Anfang 2002 mit Delphi 6 erarbeitet. Generell wurde von der Stoffauswahl und -darstellung her versucht, versionsunabhängig zu sein. Sicher werden im Laufe der Zeit schnell neuere Versionen erscheinen, die hier dargestellten Grundlagen sollten aber allgemein gültig bleiben bzw. die Eigenschaft der Aufwärtskompatibilität sollte die Lauffähigkeit der Beispielprojekte weiter gewährleisten. Auf den zum Buch gehörenden WWW-Seiten werden wir versuchen, die gravierendsten Merkmale neuerer Releases zu beschreiben. Das Buch ist von seinem Lehrinhalt einzuordnen in die Grundlagen der Informatik, insbesondere für Ingenieure. Es ist durch die Verquickung von Stoffinhalten der Softwaretechnik mit den Konstrukten einer Programmiersprache besonders auf ingenieurwissenschaftliches Denken ausgerichtet. Der Inhalt des Buches basiert auf langjährigen Erfahrungen mit Lehrveranstaltungen zur Einführung in die Informatik speziell für Studenten des Maschinenwesens. Die Beispiele zu den Übungsaufgaben und zu den Delphi-Projekten sind exakt mathematisch begründet und stammen meist aus dem Kontext des Maschinen-
6 Vorwort baus. Nach den aufgezeigten Lösungsmustern lassen sie sich problemlos auch auf andere Wissensgebiete übertragen. Das Buch zeichnet sich in den einzelnen Abschnitten jeweils durch eine relativ kurze theoretische Erörterung des zugrunde liegenden Lehrstoffes und durch zahlreiche eingestreute Lehrbeispiele aus. Ausgehend von der Tatsache, dass die Studenten in unterschiedlichem Umfang bereits mit Computern in Verbindung gekommen sind, wird folgende Reihenfolge der Stoffgebiete gewählt Software-Entwicklungsumgebung Delphi Strukturierte Software-Entwicklung Prozedurale Programmierung mit Object Pascal Anwendungsprogrammierung mit Object Pascal unter Delphi Objektorientierte Programmierung mit Object Pascal Datenbankprogammierung unter Delphi. Damit sollen die Voraussetzungen für die Programmierung auch anspruchsvollerer Probleme geschaffen werden. Angefangen wird mit dem Abschnitt Software-Entwicklungsumgebung Delphi, in dem die Studenten ausgehend von bekannten Werkzeugen für die Programmentwicklung exemplarisch in die Software-Entwicklungswerkzeuge von Delphi eingeführt werden, unterstützt durch ein einfaches Beispiel. Der Einstieg, beginnend mit der Behandlung von Werkzeugen, ist dem Vorgehen des Ingenieurs entlehnt, indem dieser auch erst die Handhabung eines CAD-Systems kennen muss, ehe er eine Konstruktion beginnt. Eine Übersicht über existierende Paradigmen der Programmiersprachen und damit mögliche Arten von Sprachen ist dem Abschnitt vorangestellt. Der Abschnitt strukturierte Software-Entwicklung geht auf die wissenschaftlichen Grundlagen der Softwaretechnologie ein. Es werden Angaben zum Softwarelebenszyklus, zu Prinzipien, Methoden und zu Kosten bis zur Softwarequalität gemacht. Am Beispiel des strukturierten Entwurfs von Algorithmen (SEA) wird, unterstützt durch Delphi-Werkzeuge, die planmäßige Vorgehensweise zur Programmerzeugung und letztlich Softwareherstellung anschaulich demonstriert. Dazu werden einfache Beispiele zur Algorithmierung verwendet und erläutert. Die hier zunächst intuitiv eingeführte Methodik wird im gleichen und in den folgenden Abschnitten prozedurale und objektorientierte Programmierung mit Object Pascal begründet und ausgebaut. Im Abschnitt Anwendungsprogrammierung wird eine große Palette praktischer Programmieraufgaben behandelt. Enthalten sind fortgeschrittene Pascal-Steueranweisungen, die Methoden der Grafik-Programmierung, die Unterprogrammtechnik sowie die Verwendung höherer Datentypen von Pascal. Im letzten Abschnitt werden schließlich Aufbau und Nutzung von relationalen Datenbanken unter Delphi dargestellt. Nach Durcharbeitung des Lehr- und Übungsbuches sollten die grundlegenden Fertigkeiten zum Erstellen von Object Pascal- und Datenbank-Programmen vorhanden sein. Das setzt aber die praktische Tätigkeit am Computer voraus. Es ist deshalb sehr zu empfehlen, die angebotenen Delphi-Beispielprojekte zu erproben und zu variieren. Zusammenfassend besteht das Ziel dieses Lehr- und Übungsbuches darin, anhand einer ausgewählten Programmiersprache und einer typischen Software-Entwicklungsumgebung die wichtigsten Mittel und Paradigmen zur Entwicklung eigener Programme kennen zu
Vorwort 7 lernen und praktisch zu üben. Mit diesen Kenntnissen ist es dann relativ leicht und schnell möglich, sich in andere beliebige Programmiersprachen einzuarbeiten. Anmerkungen: 1. Das vorliegende Buch enthält nur die wichtigsten Grundlagen zur Einführung in die Software-Entwicklung mit Delphi. Für vertiefende Studien sind die im Literaturverzeichnis aufgeführten Quellen und speziell für die Entwicklungsumgebung und Object Pascal die Online-Hilfe von Delphi (Abschnitt 1.2.12) zu nutzen. 2. Im Buch wird auf Delphi-Beispielprojekte Bezug genommen, die zur Veranschaulichung der Stoffkomplexe dienen, denen sie im Text zugeordnet sind. Sie sind Bestandteil der zum Buch gehörenden WWW-Seite. Sie beinhaltet für den Leser weiterhin Lösungen zu den gestellten Übungsaufgaben, Linksammlung mit weiteren Quellen zum Thema, Hinweise zu Verbesserungen in neueren Delphi- oder Pascal-Versionen. Die URL der WWW-Seite ist http://www.inf.tu-dresden.de/st2/cg/delphiprogramme Unser Dank gilt dem Fachbuchverlag Leipzig. Besonders die Zusammenarbeit mit Frau Erika Hotho gestaltete sich konstruktiv und wurde von uns als sehr angenehm empfunden. Die Übungsaufgaben und Beispielprojekte wurden in Lehrveranstaltungen mit zahlreichen Studenten sowie Fernstudenten diskutiert. In Memoriam gilt unser Dank Herrn Dr. Christian Wittetschek. Er hat als Assistent langjährig engagiert für die Lehrveranstaltungen an der TU Dresden gearbeitet und ist viel zu früh von uns gegangen. Dresden, Juni 2002 Dieter Orlamünder Rüdiger Liskowsky Heinrich Hußmann