これは漠然と次のように関連しています:
アプリケーションまたはモデル (データベース) を最初に設計する必要がありますか?
最初にデータベースから UI まで設計するか、それとも逆に設計するか?
しかし、私の質問はモデリングとアーティファクトに関するものであり、デザインの正しい方法に関するものではありません。機能 (ユース ケース)、画面、データベース要素 (特にテーブルと列) の間のリンクを最も明確に表現するのに最適な設計成果物を見つけようとしています。UML は非常にコード中心です。データベース モデルは非常にデータベース中心です。そして画面デザインはUI中心!
これが取引です...私のチームは製品の最初のリリースに取り組んでいます。ユースケースを使用し、次に画面設計を行い、データベース設計はこの 2 つから多少分離されました。バグの重大な領域は、ユースケースとそれに付随する画面およびデータベース間のトレーサビリティの欠如でした。私たちの製品では、ユースケースとデータベース要素の間に非常に高度な重複があります。多くのユース ケースは、データベース インフラストラクチャの 75% 以上に関係しています。そのため、データベースの設計領域で競合が多く、データベースの小さな変更が下位レベルのビジネス ロジックを混乱させるのは簡単です。
次のリリースでは、開発者と DBA に、各機能がデータベースのどの部分に影響を与えるかについて明確な洞察を得てもらいたいと思っています。ユースケース/画面設計のアプローチはうまく機能したので、そのままにしておきます...秘訣は、各ユースケースと画面をデータベースモデルにリンクすることです。これにより、関係が非常に明確になり、忘れにくくなります。
小規模なプロジェクト (私たちは 10 人しかいませんが、3 人以下のチームで作業することがよくあります) では、設計のこの部分を示すために独自のカスタム図を作成しました。実際のコードや SQL へのリンクなしで Visio で行われる、画面、UML、およびデータベース テーブルの一種の融合。最新の状態に保つには非常に手作業が必要であり、データベース モデリング ツールのようにコードを自動生成しないため、大規模なチームで機能するかどうかはわかりません。
推奨事項はありますか?これに対して一般的に受け入れられているメカニズムはありますか?
参考までに - 私たちはかなりのウォーターフォールであり、それはすぐに変わることはありません. そして、私たちはアーティファクトが大好きです... 「アジャイルへの切り替え」と言うのは、私たちのグループにとって実行可能な解決策ではありません。