最近、Haskellで実装されている小さなプロジェクトに取り組むよう割り当てられました。オブジェクト指向/命令的な背景から来て、コーディングの前に要件/ユーザーストーリーをユースケースとシーケンス図に変換することに慣れています。
しかし、私が割り当てられているHaskellプロジェクトでは、チームはユーザーの要件を述語論理命題/ステートメントに変換することを好みます。セーフティクリティカルなシステムやソフトウェアエンジニアリングの正式な方法でロジックが使用されていることは知っていましたが、日常のプログラミングではそれほどではありませんでした。これはFPレルムで一般的な方法ですか?これについてどこでもっと知ることができますか?
要件を「モデル化」し、述語から「関数」を導き、関数が操作するために必要な型仕様を書き留めるのは自然な方法のようです。しかし、それは実際にどのように行われる/推奨されるのですか、それとも私のチームに固有のものですか?
(ここでこの質問をする前に徹底的に検索してみました。「関数型プログラミングの要件仕様」(および異なるキーワードの同義語と組み合わせ)を検索しても、意味のあるものは何もありません。)