Recentemente sono stato assegnato a lavorare su un piccolo progetto che viene implementato in Haskell. Provenendo da uno sfondo OO / imperativo, sono abituato a convertire requisiti / storie utente in casi d'uso e diagrammi di sequenza prima della codifica.
Tuttavia, il progetto Haskell a cui sono stato assegnato, il team preferisce trasformare i requisiti degli utenti in proposizioni / dichiarazioni di logica predicata. Sapevo che la logica veniva utilizzata nei sistemi critici per la sicurezza e nei metodi formali per l'ingegneria del software, ma non tanto nella programmazione quotidiana. È questa pratica comune nel regno FP? Dove posso saperne di più su questo?
Sembra un modo naturale di "modellare" i requisiti e derivare le "funzioni" dai predicati insieme a scrivere le specifiche del tipo necessarie per le funzioni su cui operare. Ma è così che viene fatto / consigliato nella pratica o è qualcosa di peculiare alla mia squadra?
(Ho provato a effettuare ricerche approfondite prima di porre questa domanda qui. Cercare "specifiche dei requisiti nella programmazione funzionale" (e sinonimi e combinazioni di parole chiave diverse) non porta a nulla di significativo.)