@startuml state 商品追加 #ddd state 商品削除 #ddd state 商品変更 #ddd [*]->商品一覧 商品一覧-->商品追加 :追加ボタン 商品一覧-->削除確認 :削除リンク 削除確認-->商品削除 :削除ボタン 商品一覧-->変更入力 :変更リンク 変更入力-->商品変更 :変更ボタン 商品一覧-->商品別売上 :売上リンク @enduml
@startuml title 商品の追加 autonumber "#." actor ユーザ boundary 商品一覧画面 control 商品追加 database 商品管理 entity 商品 ユーザ -> 商品一覧画面 :商品名入力 ユーザ -> 商品一覧画面 :単価入力 ユーザ -> 商品一覧画面 :追加ボタン押下 商品一覧画面 -> 商品追加 :商品追加() 商品追加 -> 商品 :生成 商品追加 -> 商品管理 :追加(商品) 商品追加 -> 商品一覧画面 :遷移 商品一覧画面 -> ユーザ :表示 @enduml
@startuml title 商品の削除 autonumber "#." actor ユーザ boundary 商品一覧画面 boundary 削除確認画面 control 商品削除 database 商品管理 entity 商品 ユーザ -> 商品一覧画面:削除リンク 商品一覧画面 -> 商品削除:削除確認() 商品削除 -> 商品管理:検索(商品ID) 商品管理 -> 商品:生成 商品管理 --> 商品削除:検索結果 商品削除 --> 削除確認画面:表示 削除確認画面 --> ユーザ:表示 ユーザ -> 削除確認画面:削除ボタンをクリック 削除確認画面 -> 商品削除:商品削除() 商品削除 -> 商品管理:削除(商品ID) 商品削除 -> 商品一覧画面:遷移 商品一覧画面 --> ユーザ:表示 @enduml
※コントローラはサーブレットに対応しているので、メソッドは最大2つ(GETとPOST)しかない
@startuml left to right direction package コントローラ{ class 商品一覧{ + 一覧表示() } class 商品追加{ + 商品追加() } class 商品削除{ + 削除確認() + 商品削除() } class 商品変更{ + 変更入力() + 商品変更() } class 商品別売上{ + 商品別表示() } } package モデル { class 商品{ -商品ID -商品名 -単価 } class 商品管理{ +全検索():商品のリスト +検索(商品ID):商品 +追加(商品) +変更(商品) +削除(商品ID) } class 売上{ -売上ID -商品ID -個数 -売上日付 } class 売上管理{ +検索(商品ID):売上のリスト } } 商品管理 o-- 商品 売上管理 o-- 売上 売上->商品 商品一覧..>商品管理 商品追加..>商品管理 商品削除..>商品管理 商品変更..>商品管理 商品別売上..>商品管理 商品別売上..>売上管理 @enduml
@startuml title 削除確認画面 /del GET autonumber "#." actor ユーザ boundary "/slist" control DelServlet database ShouhinDAO entity Shouhin participant request participant del.jsp ユーザ -> "/slist":/del?sid=商品ID "/slist" -> DelServlet:doGet() DelServlet -> ShouhinDAO:findBySid(sid) ShouhinDAO -> Shouhin:生成 ShouhinDAO --> DelServlet:shouhin DelServlet -> request :shouhin DelServlet -> del.jsp:フォワード del.jsp --> ユーザ:表示 @enduml
@startuml left to right direction package servlet{ class ShouhinListServlet{ +doGet() } class DelServlet{ +doGet() +doPost() } class InsertServlet{ +doPost() } class UpdateServlet{ +doGet() +doPost() } class UriageShouhinServlet{ +doGet() } } package db{ class ShouhinDAO{ +findAll():List+findBySid(int sid):Shouhin +insert(Shouhin dto) +update(Shouhin dto) +delete(int sid) } class Shouhin{ -sid : int -sname : String -tanka : int } class UriageDAO{ +findBySid(int sid):List } class Uriage{ -uid : int -sid : int -mid : int -kosu : int -hi : Timestamp } } ShouhinListServlet..>ShouhinDAO DelServlet..>ShouhinDAO UpdateServlet..>ShouhinDAO InsertServlet..>ShouhinDAO UriageShouhinServlet..>ShouhinDAO UriageShouhinServlet..>UriageDAO ShouhinDAO o-- Shouhin UriageDAO o-- Uriage Uriage->Shouhin @enduml