Vorlesungsskript - Hochschule Emden/Leer
Vorlesungsskript - Hochschule Emden/Leer
Vorlesungsskript - Hochschule Emden/Leer
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
c○ Prof. Dr. B. Bartning, HS <strong>Emden</strong>/<strong>Leer</strong> Rumpfskript ” Informatik I/II“ (WS/SS 2010/11) 91<br />
• Oft ist ein geschachtelter (kaskadierter) Entwurf nützlich:<br />
◦ Funktionen für die grundlegenden Arbeiten,<br />
◦ Funktionen für komplexere Tätigkeiten, die die grundlegenden Funktionen aufrufen,<br />
◦ Funktionen, die die komplexeren und vielleicht auch die grundlegenden Funktionen<br />
aufrufen.<br />
Vorteil: wenn Sie eine Funktion erstellen (den Funktionsprogrammtext schreiben),<br />
müssen Sie nur über einen kleinen Problembereich nachdenken.<br />
• Es sollten verschiedene Arten von Funktionen unterschieden werden:<br />
◦ Funktionen mit Benutzerinteraktion oder Ein-/Ausgabe; dabei wenn möglich Lesen<br />
und Schreiben in getrennten Funktionen (z. B. Lesefunktionen, Schreibfunktionen),<br />
◦ Funktionen zur Durchführung von Berechnungen – diese Funktionen sollten keine<br />
Benutzerinteraktion/Eingabe/Ausgabe haben! Sonst sind diese Funktionen nicht<br />
allgemein nutzbar, z. B. bei Berechnungen mit einem woanders berechneten Wert<br />
anstatt mit einem eingegebenen.<br />
◦ manchmal (selten!) ist eine Mischung nötig.<br />
Allgemeine Regel: entweder Benutzerinteraktion oder Berechnungen!<br />
• Eine Funktion sollte mit dem Rest des Programms nur über die Parameterliste und den<br />
Rückgabewert der Funktion kommunizieren – sehr wichtig: nicht über globale Variablen.<br />
Dagegen sind globale Konstanten (und globale Typen) sinnvoll, vgl. auch (7.53).<br />
• Keine Benutzung der exit-Funktion ( (12.82c), beendet das Programm sofort),<br />
insbesondere nicht in Berechnungsfunktionen. Grund: manchmal läuft eine Funktion in<br />
einen Fehler hinein, es kann jedoch nicht hier entschieden werden, wie zu reagieren<br />
ist. Anstatt das ganze Programm (z. B. eine CAD-Programm) zu beenden, sollte ein<br />
Fehlerindikator gesetzt werden, so dass die aufrufende Stelle entscheiden kann, was zu<br />
tun ist.<br />
7.9 Agile Methoden in der Softwareentwicklung<br />
(7.90) Übb Moderne Softwareentwicklungsmethoden, die unter dem Oberbegriff ” Agile Methoden“<br />
zusammengefasst werden, versuchen, Software größerer Qualität schneller dem Kunden<br />
liefern zu können. In diesem Kurs werden zwei Aspekte näher erläutert und teilweise auch<br />
in der Praxis gezeigt.<br />
(7.91) Teilweise im Gegensatz zu den Ausführungen in (Kap. 6.4) wird seit mehreren Jahren in der<br />
Softwareindustrie versucht, Programme für Kunden schneller, genauer, kundenorientierter<br />
zu entwickeln ohne großen Dokumenationsüberbau. Diese Methoden fasst man unter Agile<br />
Methoden zusammen. Im sog. ” Extreme Programming“ (Kent Beck) gibt es u. a. zwei<br />
Praktiken, die in diesem Kurs näher erläutert werden:<br />
• Pair Programming, das Programmieren zu zweit vor einem Rechner; dieses wird auch<br />
in den Übungen zu diesem Kurs als Option angeboten.<br />
• Test Driven Development (TDD), das Schreiben von Test-Programmcode vor dem<br />
Schreiben des zugehörigen produktiven Programmcodes. In der Praxis wird dieses durch<br />
Werkzeugunterstützung erleichtert.<br />
Im Kurs wird auf die beiden genannten Aspekte näher eingegangen; hier sollen sie nur kurz<br />
als Erinnerung erwähnt werden.