資源評価事業DDD
資源評価事業を web アプリケーション化する実験をしている。 資源計算部分だけでなく、計算・執筆・提案・議論・合意形成の流れからなる資源評価「事業」全体の話だ。
この事業の難しさは、科学的・政治的要求にもとづく課題を解決する数値計算方法を開発するところにあるのはもちろんだが、そもそもコミュニケーションの難しさのほうがより重要なのではないか: 立場や知識背景がまったく異なるステークホルダーが、資源評価という関心領域(ドメイン)の下に集まって、漁獲可能量という一つの数値について議論し・意思決定しないといけない。
ソフトウェア設計者たちは、これと同じ問題が(広義の)ビジネスがある場所には必ず潜んでいることに気づいており、その解決のために「ドメイン駆動設計(Domain-Driven Development. DDD)」を 2000 年代前半に確立した。 ドメイン駆動設計では、開発過程における思考資源の投資先を、プログラミングのような技術的詳細ではなく、ビジネスの営みを抽出した「ドメインモデル」をつくることに集中する。 ドメインモデルは一度作って終わりではなく、ステークホルダー間で認識の齟齬が見つかるたびに、その新たな知識はモデルに反映される。 このようにして磨き上げたドメインモデルを中心としてアプリケーションを開発するこの手法は、資源評価事業においてもヒントになると考えている。
資源評価事業をデータフローダイアグラムで眺める
資源評価を学び直そうかと言ってから 1 年経った。 ちょうど最近、データフローダイアグラム(DFD)に関する本を読んだので、実践を兼ねて資源評価事業を DFD 図示してみようと思う。
ABC 計算のモデル化
以前の記事で資源評価事業の DFD をいくつか描いてみたので、今回は実際に事業の一部をモデル化してみた。
認証・認可の追加
前記事の予告通り、認証・認可機能を追加した。 本記事ではこの機能に関連する要点をメモしておく。
資源計算機能の追加
前記事で認証・認可を追加したことで準備が整ったので、こちらのPRで資源計算機能を追加した。 本機能は現時点ではまだダミー版だが、資源タイプに応じた計算方法が使われるように動いており、業務ロジックのエッセンスは押さえている。
モデリングに日本語を使うようにしてみた
業務フローを通したいので、資源評価の状態遷移をはやくモデリングしないとと思いつつも、リファクタリングに時間を使ってしまった。 とはいえ内容は日本語でのモデリングで、自分としては初めての試みで勉強になった。 コードベースも、ドメインエキスパートにとっての読みやすさが劇的に改善したと思う。
ステータスおよびバージョンの管理
前記事から少し間が空いたが、業務の重要な部分をモデル化できたのでメモしておく。