Ich wurde kürzlich beauftragt, an einem kleinen Projekt zu arbeiten, das in Haskell umgesetzt wird. Ich komme aus einem OO / imperativen Hintergrund und bin es gewohnt, Anforderungen / User-Storys vor dem Codieren in Anwendungsfälle und Sequenzdiagramme umzuwandeln.
Bei dem Haskell-Projekt, dem ich zugewiesen wurde, zieht das Team es jedoch vor, die Benutzeranforderungen in Prädikatenlogiksätze / -anweisungen umzuwandeln. Ich war mir bewusst, dass Logik in sicherheitskritischen Systemen und formalen Methoden für das Software-Engineering verwendet wird, aber nicht so sehr in der täglichen Programmierung. Ist dies im FP-Bereich üblich? Wo kann ich mehr darüber erfahren?
Es scheint eine natürliche Möglichkeit zu sein, die Anforderungen zu "modellieren" und die "Funktionen" aus den Prädikaten abzuleiten und die erforderlichen Typspezifikationen für die zu bearbeitenden Funktionen aufzuschreiben. Aber wird das in der Praxis so gemacht / empfohlen oder ist es etwas Besonderes für mein Team?
(Ich habe versucht, ausgiebig zu suchen, bevor ich diese Frage hier gestellt habe. Die Suche nach "Anforderungsspezifikation in der funktionalen Programmierung" (und verschiedenen Schlüsselwortsynonymen und -kombinationen) führt zu nichts Sinnvollem.)