「.NET 開発基盤部会 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
ココでは、SQL Server付属のNorthWind? DBをベースに要件定義 ~ 詳細設計までを実施。
※ なぜ、LLMに、こんなことができるのか?についてはコチラ
端的に、意図しない設計ディシジョンの先に進むことが問題
簡単に使った感じでは「たたき台作成」程度の使用感
| 項目 | 方針 |
| 要件定義 | △(レビュー用途) |
| 基本設計 | △(叩き台の作成) |
| 詳細設計 | ◯(限定的な使用) |
| 実装 | ◎(行間のない詳細設計通りに動作) |
| 設計ディシジョン | ×(人間主導)→ △(AIエージェントによる仕様確認) |
(以下は)SQLServer付属のNorthWind DBを使用したサンプルアプリの ~
SQL Server付属のNorthWind DBを使用したサンプルアプリの機能要件を提案して下さい。
| モジュール | 主要テーブル |
| 受注管理 | Orders / Order Details |
| 顧客管理 | Customers / Contacts |
| 商品管理 | Products / Categories |
| 仕入先管理 | Suppliers |
| 担当者管理 | Employees |
| 配送管理 | Shippers |
| 売上分析 | Sales Dashboard |
| 在庫分析 | Inventory Alerts |
| パフォーマンス分析 | Employee Performance |
| 受注管理(Orders / Order Details ・受注一覧・検索・絞り込み ・受注詳細 (明細・小計・送料) ・ステータス管理 (出荷・配送) ・帳票出力 (納品書・請求書) | 顧客管理(Customers / Contacts ・顧客一覧・検索 (国・地域別) ・顧客詳細・連絡先管理 ・購買履歴・取引サマリ ・顧客ランキング分析 | 商品管理(Products / Categories ・商品一覧・カテゴリ絞り込み ・商品詳細・仕入先情報 ・在庫数・発注点アラート ・廃番 (Discontinued) 管理 |
| 仕入先管理(Suppliers ・仕入先一覧・国別フィルタ ・担当者・連絡先管理 ・取扱商品一覧 ・発注書の生成 | 担当者管理(Employees ・社員一覧・上司/部下ツリー ・担当受注・売上実績 ・地域テリトリー管理 ・個人別パフォーマンス | 配送管理(Shippers ・運送会社一覧・実績比較 ・配送コスト・遅延率分析 ・出荷ステータス追跡 ・配送先国別の実績集計 ・分析・ダッシュボード |
| 売上分析(Sales Dashboard ・月次・四半期・年次売上推移 ・商品カテゴリ別売上比率 ・国別・地域別売上マップ ・前年同期比・成長率 | 在庫分析(Inventory Alerts ・在庫切れ・低在庫アラート一覧 ・カテゴリ別在庫金額 ・回転率・滞留在庫の可視化 ・自動発注トリガー候補 | パフォーマンス分析(Employee Performance ・担当者別売上ランキング ・受注件数・客単価の比較 ・テリトリー別達成率 ・目標設定・進捗トラッキング |
受注管理にフォーカス
以下はSQLServer付属のNorthWind DBを使用したサンプルアプリの提案された機能要件です。
{モジュール一覧}
このうち、受注管理の機能一覧・画面遷移を教えてください。(前述のチャットの会話履歴をそのまま利用し)画面のイベント一覧を作成してください。
以下はSQLServer付属のNorthWind DBを使用したサンプルアプリの受注管理です
{機能一覧・画面遷移、イベント一覧}
各画面の画面項目一覧を作成してください。※ 基本的に照会モードと同じだが、顧客名、従業員名、商品名、配送業者は、選択ドロップダウンになる。
※ 基本的に照会モードと同じだが、顧客名、商品名は、選択ドロップダウンになる。
instnwnd.sqlのCREATE TABLEパートを使用して作成。
注文の情報を格納するテーブル。
| 列名 | 解説 | 型 | キー | 他 |
| OrderID | 注文の一意識別子 | 整数 | 主キー | 自動増分 |
| CustomerID | 顧客ID | 固定長文字列 | 外部キー | 任意 |
| EmployeeID | 従業員ID | 整数 | 外部キー | 任意 |
| OrderDate? | 注文日 | 日時 | 任意 | |
| RequiredDate? | 必要日 | 日時 | 任意 | |
| ShippedDate? | 出荷日 | 日時 | 任意 | |
| ShipVia? | 配送業者ID | 整数 | 外部キー | 任意 |
| Freight | 運送料 | 通貨 | デフォルト0 | |
| ShipName? | 配送先名 | 文字列 | 任意 | |
| ShipAddress? | 配送先住所 | 文字列 | 任意 | |
| ShipCity? | 配送先市 | 文字列 | 任意 | |
| ShipRegion? | 配送先地域 | 文字列 | 任意 | |
| ShipPostalCode? | 配送先郵便番号 | 文字列 | 任意 | |
| ShipCountry? | 配送先国 | 文字列 | 任意 |
説明: 注文の詳細情報を格納するテーブル。
| 列名 | 解説 | 型 | キー | 他 |
| OrderID | 注文ID | 整数 | 主キー1、外部キー | 必須 |
| ProductID | 商品ID | 整数 | 主キー2、外部キー | 必須 |
| UnitPrice? | 単価 | 通貨 | 必須、デフォルト0 | |
| Quantity | 数量 | 小整数 | 必須、デフォルト1 | |
| Discount | 割引 | 実数 | 必須、デフォルト0 |
説明: 商品の情報を格納するテーブル。
| 列名 | 解説 | 型 | キー | 他 |
| ProductID | 商品の一意識別子 | 整数 | 主キー | 自動増分 |
| ProductName? | 商品名 | 文字列 | 必須 | |
| SupplierID | 供給業者ID | 整数 | 外部キー | 任意 |
| CategoryID | カテゴリID | 整数 | 外部キー | 任意 |
| QuantityPerUnit? | 単位あたりの数量 | 文字列 | 任意 | |
| UnitPrice? | 単価 | 通貨 | デフォルト0 | |
| UnitsInStock? | 在庫数量 | 小整数 | デフォルト0 | |
| UnitsOnOrder? | 注文中数量 | 小整数 | デフォルト0 | |
| ReorderLevel? | 再注文レベル | 小整数 | デフォルト0 | |
| Discontinued | 廃止フラグ | ビット | 必須、デフォルト0 |
説明: 顧客の情報を格納するテーブル。
| 列名 | 解説 | 型 | キー | 他 |
| CustomerID | 顧客の一意識別子 | 固定長文字列 | 主キー | 必須 |
| CompanyName? | 会社名 | 文字列 | 必須 | |
| ContactName? | 担当者名 | 文字列 | 任意 | |
| ContactTitle? | 担当者の職位 | 文字列 | 任意 | |
| Address | 住所 | 文字列 | 任意 | |
| City | 市 | 文字列 | 任意 | |
| Region | 地域 | 文字列 | 任意 | |
| PostalCode? | 郵便番号 | 文字列 | 任意 | |
| Country | 国名 | 文字列 | 任意 | |
| Phone | 電話番号 | 文字列 | 任意 | |
| Fax | FAX番号 | 文字列 | 任意 |
説明: 商品カテゴリの情報を格納するテーブル。
| 列名 | 解説 | 型 | キー | 他 |
| CategoryID | カテゴリの一意識別子 | 整数 | 主キー | 自動増分 |
| CategoryName? | カテゴリ名 | 文字列 | 必須 | |
| Description | 説明 | テキスト | 任意 | |
| Picture | カテゴリの画像 | 画像 | 任意 |
説明: 供給業者の情報を格納するテーブル。
| 列名 | 解説 | 型 | キー | 他 |
| SupplierID | 供給業者の一意識別子 | 整数 | 主キー | 自動増分 |
| CompanyName? | 会社名 | 文字列 | 必須 | |
| ContactName? | 担当者名 | 文字列 | 任意 | |
| ContactTitle? | 担当者の職位 | 文字列 | 任意 | |
| Address | 住所 | 文字列 | 任意 | |
| City | 市 | 文字列 | 任意 | |
| Region | 地域 | 文字列 | 任意 | |
| PostalCode? | 郵便番号 | 文字列 | 任意 | |
| Country | 国名 | 文字列 | 任意 | |
| Phone | 電話番号 | 文字列 | 任意 | |
| Fax | FAX番号 | 文字列 | 任意 | |
| HomePage? | ホームページ | テキスト | 任意 |
説明: 配送業者の情報を格納するテーブル。
| 列名 | 解説 | 型 | キー | 他 |
| ShipperID | 配送業者の一意識別子 | 整数 | 主キー | 自動増分 |
| CompanyName? | 会社名 | 文字列 | 必須 | |
| Phone | 電話番号 | 文字列 | 任意 |
説明: 従業員の情報を格納するテーブル。
| 列名 | 解説 | 型 | キー | 他 |
| EmployeeID | 従業員の一意識別子 | 整数 | 主キー | 自動増分 |
| LastName? | 従業員の姓 | 文字列 | 必須 | |
| FirstName? | 従業員の名 | 文字列 | 必須 | |
| Title | 職位 | 文字列 | 任意 | |
| TitleOfCourtesy? | 敬称 | 文字列 | 任意 | |
| BirthDate? | 生年月日 | 日時 | 任意 | |
| HireDate? | 雇用日 | 日時 | 任意 | |
| Address | 住所 | 文字列 | 任意 | |
| City | 市 | 文字列 | 任意 | |
| Region | 地域 | 文字列 | 任意 | |
| PostalCode? | 郵便番号 | 文字列 | 任意 | |
| Country | 国 | 文字列 | 任意 | |
| HomePhone? | 自宅電話番号 | 文字列 | 任意 | |
| Extension | 内線番号 | 文字列 | 任意 | |
| Photo | 写真 | 画像 | 任意 | |
| Notes | メモ | テキスト | 任意 | |
| ReportsTo? | 上司の従業員ID | 整数 | 外部キー | 任意 |
| PhotoPath? | 写真のパス | 文字列 | 任意 |
以下はSQLServer付属のNorthWind DBを使用したサンプルアプリの受注管理の受注詳細画面(編集モード)です
{画面項目定義・イベント一覧}
以下のイベント詳細定義書を作成してください(概要、トリガー条件、事前条件、入力、出力、処理内容、検証内容、エラーハンドリング、依存関係)。
{・イベント名:イベント一覧に記載のイベント名}
{・イベント概要:イベント一覧に記載の概要}概要:編集対象の受注情報を取得し、フォームに表示
概要:選択された顧客、従業員、商品、配送業者IDに基づいて、情報を表示
概要:入力された数量に基づいて合計金額を計算し表示
概要:入力内容を検証し、受注情報を更新
概要:受注詳細画面に遷移