Grundlagen der Informatik I “Programmierung”
Grundlagen der Informatik I “Programmierung”
Grundlagen der Informatik I “Programmierung”
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Mit einer wichtigen strategischen Anmerkung wollen wir das Thema <strong>der</strong> systematischen Implementierung von<br />
Routinen abschließen. In allen Beispielen haben wir unsere Algorithmen zunächst auf einer mathematischen<br />
Ebene entwickelt und erst zum Schluß in konkrete Programme umgesetzt. Diese Vorgehensweise verhin<strong>der</strong>t,<br />
daß man sich zu früh an die speziellen Eigenschaften einer Programmiersprache und die darin vorgegebenen<br />
Operationen auf einer Datenstruktur (wie ARRAY, LINKED LIST etc.) bindet und dadurch den Blick für effizientere<br />
und elegantere Lösungen verliert. Meist ergibt sich die sinnvollste Datenstruktur erst nachdem das<br />
Problem bereits gelöst ist.<br />
Entwurfsprinzip 4.5.20<br />
Programmiere nicht innerhalb einer Programmiersprache son<strong>der</strong>n in die Sprache hinein.<br />
Dies entspricht auch <strong>der</strong> grundlegenden Philosophie von Eiffel. Was zählt, ist <strong>der</strong> zu erfüllenden Vertrag und<br />
die darin versprochenen Dienstleistungen. Wie diese Dienstleistungen realisiert werden, ist erst von nachrangiger<br />
Bedeutung. Deshalb stelle man bei <strong>der</strong> Entwicklung des Algorithmus erst eine Wunschliste auf, welche<br />
“abstrakten” Dienstleistungen gebraucht werden, und entscheide sich erst im Nachhinein für die konkrete<br />
Realisierung – am besten dadurch, daß man die gewünschte Datenstruktur samt ihrer Dienstleistungen in<br />
einer separaten Klasse realisiert.<br />
4.6 Ethik und Verantwortung<br />
In <strong>der</strong> bisherigen Vorlesung haben wir uns – bis auf wenige Anmerkungen – im wesentlichen mit technischen<br />
und methodischen Fragen <strong>der</strong> Programmierung befaßt und uns beson<strong>der</strong>s mit Qualitätskriterien wie<br />
Strukturierung, Wie<strong>der</strong>verwendbarkeit, Zuverlässigkeit und Effizienz auseinan<strong>der</strong>gesetzt. Entwicklung guter<br />
Softwaresysteme bedeutet aber weit mehr als eine Berücksichtigung solcher “technischer” Kriterien, da Softwareprodukte<br />
die Umgebung, in <strong>der</strong> sie eingesetzt werden, zuweilen drastisch verän<strong>der</strong>n kann.<br />
Innerhalb eines Betriebes können sich manche Arbeitsabläufe verän<strong>der</strong>n und Angestellte zu einer vollständigen<br />
Umstellung ihrer gewohnten Arbeitsweise zwingen, was beson<strong>der</strong>s (aber nicht nur) für ältere Menschen eine<br />
unzumutbare Belastung mit sich bringt.<br />
Rechner werden in sicherheitsrelevanten Bereichen wie in Flugzeugen (Autopilot), Autos (ABS Systeme),<br />
Kraftwerken (automatische Abschaltung) o<strong>der</strong> medizinischen Geräten eingesetzt, in denen sie weitgehend<br />
autonom und ohne Kontrolle durch den Menschen arbeiten und durch unerwünschtes Verhalten o<strong>der</strong> Fehlfunktionen<br />
Menschen verletzen o<strong>der</strong> gar töten können.<br />
Rechner verarbeiten in immer größerer Menge personenbezogene Daten und können leicht dazu mißbraucht<br />
werden, über das unbedingt notwendige Maß in die Privatsphäre von Menschen einzudringen. Der zunehmende<br />
Einsatz von Rechnern in allen Bereichen des Alltagslebens hat dazu geführt, daß “Computerexperten” anfällig<br />
sind für neue Formen krimineller Handlungen, <strong>der</strong>en Tragweite sie sich meistens gar nicht bewußt sind. Es<br />
ist möglich, Menschen zu belästigen (Erzeugung unerwünschter Bil<strong>der</strong> auf dem Bildschirm o<strong>der</strong> ähnliche<br />
Störungen), ihr (geistiges) Eigentum zu stehlen (unerlaubtes Kopieren von Software), ihnen Schaden zuzufügen<br />
(Viren), o<strong>der</strong> auch größere Katastrophen auszulösen (Eindringen in militärische Rechnersysteme).<br />
Man könnte die Liste <strong>der</strong> Auswirkungen des Computereinsatzes beliebig weiterführen. Schon diese wenigen<br />
Beispiele zeigen jedoch, daß <strong>Informatik</strong>er sich mit mehr beschäftigen müssen als mit den rein fachliches<br />
Aspekten ihres Berufes. Die Frage nach <strong>der</strong> Verantwortung des eigenen Handelns muß frühzeitig gestellt und<br />
so gut wie möglich beantwortet werden. Dabei kann man verschiedene Arten von Verantwortung unterscheiden,<br />
<strong>der</strong>en Be- o<strong>der</strong> Mißachtung unterschiedliche Konsequenzen haben wird.<br />
Es gibt Dinge, für die Sie vom Gesetz her verantwortlich sind, sowohl als Privatperson als auch im Rahmen<br />
<strong>der</strong> Ausübung ihres Berufes. Gesetze regeln, wofür Sie haftbar gemacht werden können, sei es nun, weil Sie<br />
etwas getan haben, für dessen Folgen Sie Verantwortung tragen, o<strong>der</strong> weil Sie etwas unterlassen haben, was Sie<br />
eigentlich hätten tun müssen. So müssen Sie damit rechnen, bestraft zu werden, wenn Sie von einem Freund