Benutzer-Werkzeuge

Webseiten-Werkzeuge


de:lehre:programmierkonzepte:ws2013:05:lektion5

Material

Zusätzliches Material zur Lektion.

Robuster Code

Ein paar gute Hinweise, wie man Code vielleicht nicht schreiben sollte – es sei denn, man pokert darauf, einen Job auf Lebenszeit zu haben:

Das Problem des Ariane-5-Jungfernfluges

Eine, wenngleich nicht unwidersprochene, Analyse der Probleme beim Jungfernflug der Ariane-5-Rakete der ESA findet sich auf den Seiten von Eiffel, einer Firma, die die gleichnamige Software herstellt:

Wichtig anzumerken ist, dass die ESA bekannt und geachtet dafür war und ist, sehr viel Wert auf guten und robusten Code zu legen. Letztlich war der Fehlschlag eine Verkettung unglücklicher Umstände und kein Verschulden der Programmierer.

Echtzeitkritische Systeme wie der Steuercomputer einer Raumfahrtrakete erfordern gänzlich andere Herangehensweisen hinsichtlich strikter Überprüfung aller Eingaben, als man sich das als normaler Anwender mit seinen Programmen erlauben kann.

Letztlich wurde der Ariane 5 zum Verhängnis, dass ihre Trajektorie in mancher Hinsicht gänzlich anders als die der Vorgängerin, Ariane 4, ist, und Code, für den bewiesen worden war, dass er im Kontext der Ariane 4 immer korrekt funktioniert, im Kontext der Ariane 5 nicht mehr korrekt arbeitete.

Programmierkonzepte

Literatur:

  • Gerard Meszaros: xUnit Test Patterns. Refactoring Test Code, Addison-Wesley, 2007
  • Martin Fowler: Refactoring. Improving the Design of Existing Code, Addison-Wesley, 1999
  • Kent Beck: Test Driven Development. By Example, Addison-Wesley, 2002

Schneller Code

Vektorisierung

Ein guter Artikel auf den Seiten von MathWorks, der zeigt, wie man durch Vektorisierung in Matlab eine Beschleunigung um einen Faktor von ca. 50 erreichen kann:

Und natürlich die MATLAB-Hilfe:

Wrapper

undocumentedmatlab.com

Der Blog „undocumentedmatlab.com“ von Yair Altman listet eine ganze Reihe an Artikeln zum Thema:

In Kürze wird es wohl ein neues Buch von ihm zum Thema geben (CRC Press, 2014).

de/lehre/programmierkonzepte/ws2013/05/lektion5.txt · Zuletzt geändert: 2020/09/30 21:35 von 127.0.0.1