Gibt es eine Software-Engineering-Methode für die funktionale Programmierung?

Software-Engineering, wie es heute gelehrt konzentriert sich ganz auf das Objekt-orientierte Programmierung und die 'Natürliche' Objekt-orientierte Sicht auf die Welt. Es ist eine detaillierte Methode, die beschreibt, wie die Transformation eines domain model in einem Klasse-Modell mit mehreren Schritten und eine Menge von (UML -) Artefakten wie use-case-Diagramme oder class-Diagramme. Viele Programmierer haben diesen Ansatz verinnerlicht und haben eine gute Vorstellung darüber, wie der Entwurf einer Objekt-orientierten Anwendung von Grund auf neu.

Den neuen hype der funktionalen Programmierung, die gelehrt wird in vielen Büchern und tutorials. Aber was ist mit funktionalen software-engineering?
Beim Lesen über Lisp und Clojure, kam ich über zwei interessante Aussagen:

  1. Funktionale Programme werden oft entwickelt, bottom-up statt top-down ("Auf Lisp', Paul Graham)

  2. Funktionale Programmierer verwenden Karten, wo OO-Programmierer verwenden Objekte/Klassen ('Clojure für Java-Programmierer', Vortrag von Rich Hickley).

Also, was ist die Methodik für eine systematische (Modell-basiert ?) design eines funktionalen Anwendung, d.h. in Lisp oder Clojure? Was sind die häufigsten Schritte, welche Artefakte kann ich verwenden, wie kann ich die Karte Sie aus dem problem Platz, um die Lösung Raum?

InformationsquelleAutor der Frage Thorsten | 2011-01-31

Schreibe einen Kommentar