Grundlagen der Informatik I “Programmierung”
Grundlagen der Informatik I “Programmierung”
Grundlagen der Informatik I “Programmierung”
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
jedoch trügerisch, diese Vorkenntnisse mit <strong>der</strong> Berufsqualifikation eines <strong>Informatik</strong>ers gleichzusetzen. Das Erlernen<br />
einer konkreten Programmiersprache ist einer <strong>der</strong> unbedeutendsten Aspekte des <strong>Informatik</strong>studiums. 1<br />
Viel bedeuten<strong>der</strong> ist das Erlernen neuer Denkweisen und systematischer Vorgehensweisen. Das <strong>Informatik</strong>studium<br />
soll Sie darauf vorbereiten, sehr komplexe Informationssysteme für fremde Anwen<strong>der</strong> zu entwerfen<br />
wie zum Beispiel die Steuerungsprogramme für ein Verkehrsflugzeug. Dabei stehen ganz an<strong>der</strong>e Fragen im<br />
Vor<strong>der</strong>grund als bei <strong>der</strong> Programmierung von kleinen Programmen (in <strong>der</strong> Größenordnung von 500 bis 5000<br />
Zeilen Programmtext) für einen PC, den nur Sie selbst benutzen.<br />
Schon wegen <strong>der</strong> Größe <strong>der</strong> Aufgabenstellung müssen solche Systeme in Projekten entwickelt werden, in denen<br />
mehrere Mitarbeiter verschiedene Teilkomponenten erstellen, die später dann richtig zusammenpassen müssen.<br />
Niemand wird mehr in <strong>der</strong> Lage sein, alle Details des Gesamtprogramms zu überschauen. Aus diesem Grunde<br />
ist es wichtig, daß sich alle Beteiligten an gewisse – gemeinsam vereinbarte – Rahmenbedingungen halten und<br />
allzu geniale Tricks vermeiden.<br />
Ihre zukünftige Aufgabe wird daher zum großen Teil gestalterischer Natur sein. Sie müssen komplexe Informationssysteme<br />
entwerfen und die für die Realisierung notwendigen Werkzeuge (wie z.B. spezialisierte Programmiersprachen)<br />
entwickeln. Durch Ihr <strong>Informatik</strong>studium sollen Sie in die Lage versetzt werden, qualitativ<br />
hochwertige Systeme zu entwickeln. Was das bedeutet, kann man am besten an einer Reihe von For<strong>der</strong>ungen<br />
festmachen, die an Softwareprodukte gestellt werden:<br />
1. Wichtigstes Qualitätskriterium ist die Korrektheit, also die Fähigkeit eines Programms, seine Aufgaben<br />
exakt zu erfüllen. Es mag vielleicht noch erträglich sein, daß ein Programmfehler auf Ihrem PC<br />
die Löschung <strong>der</strong> gesamten Harddisk auslöst. Auf keinen Fall aber darf es vorkommen, daß kleine Vorzeichenfehler<br />
in einem unbedeutenden Unterprogramm eines Flugzeugsteuerungsprogramms mitten im<br />
Flug plötzlich einen Umkehrschub auslöst. Wenn die Sicherung <strong>der</strong> Korrektheit von Programmen nicht<br />
oberste Priorität hat, können kleine Nachlässigkeiten bereits katastrophale Folgen haben.<br />
Um Korrektheit sicherzustellen, muß man natürlich eine genaue Formulierung <strong>der</strong> Anfor<strong>der</strong>ungen und<br />
Spezifikationen erstellen und dann nachweisen, daß diese auch erfüllt werden. In <strong>der</strong> Praxis ist dies nur<br />
schwer zu erreichen, da zu wenige Leute darin geschult sind, Systemanfor<strong>der</strong>ungen exakt zu formulieren<br />
und die Korrektheit zu verifizieren.<br />
2. Robustheit, d.h. die Fähigkeit eines Programms, auch unter außergewöhnlichen Bedingungen zu funktionieren,<br />
ist ebenfalls sehr wichtig. Hierdurch wird z.B. vermieden, daß Fehlbedienungen durch ungeübte<br />
Anwen<strong>der</strong> zu katastrophalen Ereignissen führen können.<br />
3. Ein Softwareprodukt ist eigentlich niemals fertig, da sich im Laufe <strong>der</strong> Zeit die Ansprüche <strong>der</strong> Benutzer<br />
wandeln können. Deshalb sollten Programme erweiterbar sein, d.h. so geschrieben sein, daß sie leicht<br />
an geän<strong>der</strong>te Anfor<strong>der</strong>ungen angepaßt werden können. Dies ist bei kleinen Programmen normalerweise<br />
keine Schwierigkeit, wohl aber bei großen Softwaresystemen, die oft zusammenbrechen, wenn man nur<br />
eine kleine Komponente austauscht. Die Erfahrung zeigt, daß die einfach strukturierte Programme, die<br />
dezentral aufgebaut sind (also aus vielen unabhängigen Komponenten bestehen), erheblich leichter zu<br />
erweitern sind, als eng verzahnte, auf Effizienz getrimmte Programme.<br />
4. In vielen verschiedenen Softwaresystemen werden Sie Elemente vorfinden, die immer nach dem gleichen<br />
Muster gebaut sind. So gibt es zum Beispiel unzählige Sortierprogramme in den verschiedensten Anwendungsprogrammen,<br />
die aber jedes Mal von Grund auf neu programmiert wurden. Viel sinnvoller wäre es,<br />
Programme so zu entwickeln, daß sie ganz, o<strong>der</strong> zumindest zum Teil für neue Anwendungen wie<strong>der</strong>verwendet<br />
werden können. Das ist nicht nur effizienter und spart Entwicklungskosten, son<strong>der</strong>n verbessert<br />
auch die Zuverlässigkeit, da Fehler bei <strong>der</strong> Programmierung von Routineprogrammen vermieden werden<br />
können.<br />
1 Wenn Sie die Denkformen <strong>der</strong> <strong>Informatik</strong> erst einmal erfaßt haben, werden Sie eine neue Programmiersprache in 2–3 Tagen<br />
erlernen können.