Génie logiciel qu'elle est enseignée aujourd'hui est entièrement axé sur la programmation orientée objet et le "naturel" orientée objet, vue sur le monde. Il y a une méthodologie détaillée qui décrit comment transformer un modèle de domaine dans un modèle de classe avec plusieurs étapes et beaucoup de (UML) des artefacts comme des cas d'utilisation diagrammes de classe ou de diagrammes. Beaucoup de programmeurs ont intériorisé cette approche et ont une bonne idée sur la façon de la conception orientée objet application à partir de zéro.
La nouvelle vague est la programmation fonctionnelle, qui est enseigné dans de nombreux livres et des tutoriels. Mais qu'en est fonctionnelle génie logiciel? Lors de la lecture sur Lisp et Clojure, je suis tombé sur deux états:
Les programmes fonctionnels sont souvent mis en place de bas en haut plutôt que de haut en bas ("Sur Lisp', Paul Graham)
Fonctionnelle Programmeurs utilisent des Cartes où OO-Programmeurs utilisent des objets/classes ('Clojure pour les Programmeurs Java', parler par de Riches Hickley).
Alors, quelle est la méthodologie pour une systématique (modèle ?) conception d'une application fonctionnelle, c'est à dire en Lisp ou Clojure? Quelles sont les étapes communes, ce qui artefacts dois-je utiliser, comment faire une carte de l'espace du problème à la solution de l'espace?