Java開発 虎の巻

UML Webシステムの例

基本設計

画面遷移図

@startuml
title 画面遷移
[*]->商品一覧
商品一覧-->削除:削除リンク
商品一覧-->変更:変更リンク
商品一覧-->売上:売上リンク
@enduml
@startuml
title 削除の画面遷移
[*]->商品一覧
商品一覧->削除確認:削除リンク
削除確認->削除実行:削除ボタン
削除実行->商品一覧:自動遷移
@enduml

クラス図

@startuml
class 商品{
	-商品ID
	-商品名
	-単価
}
class 商品DB{
	+商品全検索():商品リスト
	+商品検索(商品ID):商品
	+追加(商品)
	+変更(商品)
	+削除(商品ID)
}

class 売上{
	-売上
	-商品ID
	-個数
	-売上日付
}
class 売上DB{
	+売上検索(商品ID):売上のリスト
	+追加(売上)
}

売上 -> 商品
商品DB "1" *-- "0..*" 商品
売上DB "1" *-- "0..*" 売上
@enduml

詳細設計

画面遷移図

@startuml
title ページ遷移図
slist : 商品一覧
del:GET 削除確認\nPOST 削除
update:GET 編集\nPOST 更新
uriage:GET 売上一覧\nPOST 追加

[*]->slist
slist-->del:リンク\nsid
del-->del:POST\nsid
slist-->update:リンク\nsid
update-->update:POST\nsid\nsname\ntanka
slist-->uriage:リンク\nsid
uriage-->uriage:POST\nsid\nkosu
@enduml

シーケンス図

@startuml
title 商品の削除

autonumber "#."

actor ユーザ
participant slist
participant del
database ShouhinRepository
participant Shouhin

ユーザ -[#green]> slist:削除リンク
slist -[#blue]> del:GET(sid)
del -> ShouhinRepository:findById(sid)
ShouhinRepository -> Shouhin:生成
ShouhinRepository --> del:List
del --[#green]> ユーザ:確認画面
ユーザ -[#green]> del:削除ボタン
del -> del:POST(sid)
del -> ShouhinRepository:delete(sid)
del -[#blue]> slist:リダイレクト
slist --[#green]> ユーザ:表示
@enduml

クラス図

@startuml
package model.entity{
	class Shouhin{
		-sid : int
		-sname : String
		-tanka : int
	}
	class Uriage{
		-uid : int
		-sid : int
		-kosu : int
		-hi : Date
	}
}
package model.repository{
	class ShouhinRepository{
		+findAll():List
		+findBySid(int sid):Shouhin
		+save(Shouhin s)
		+delete(int sid)
	}
	class UriageRepository{
		+findBySid(int sid):List
		+save(Uriage u)
	}

}

Uriage->Shouhin
ShouhinRepository ..> Shouhin
UriageRepository ..> Uriage

@enduml