PlantUML:要求図
https://plantuml-proxy.vercel.app/svg/https://scrapbox.io/api/code/suto3/PlantUML:要求図/rq.pu#.svg
code:rq.pu
@startuml
hide circle
hide empty members
hide method
!define REQ1 "主要求"
!define REQ2 "実現可能性"
!define REQ3 "コスト"
!define REQ4 "利用部品"
!define REQ5 "利用部品"
!define REQ6 "利用部品"
!define REQ7 "手段"
!definelong req(name,txt,label)
class "name" as label <<requirement>> {
Text=txt
}
!enddefinelong
!definelong freq(name,txt,label)
class "name" as label <<functionalRequirement>> {
Text=txt
}
!enddefinelong
!definelong dcnstr(name,txt,label)
class "name" as label <<designConstraint>> {
Text=txt
}
!enddefinelong
!define nest(x,y) x +-- y
!define derive(x,y) x <.. y : <<deriveReqt>>
!define refine(x,y) x <.. y : <<refine>>
!define derivel(x,y) x <.. y : <<deriveReqt>> link
title 図5 サービスレベル要求図
package "req サービス要求" <<Frame>> {
req(REQ1,システムエンジニアリングを経験する,A1)
freq(REQ2,ハードウェアを含めて実現可能である,A2)
dcnstr(REQ3,なるべくコストをかけない,A3)
dcnstr(REQ4,使える既存システムは流用する,A4)
dcnstr(REQ5,CPLDを利用する,A5)
dcnstr(REQ6,既存の電光掲示板システムを流用する,A6)
req(REQ7,電光掲示板をCPLD駆動に変更する,A7)
note "allocatedFrom\n<<useCase>>システムエンジニアリングを経験する" as N2
}
nest(A1,A2)
nest(A1,A3)
nest(A1,A4)
derive(A2,A5)
note top on link : <<rationale>>\nCPLDならハードウェア\n回路の変更が容易
derive(A3,A5)
derive(A3,A6)
derive(A4,A6)
derive(A5,A7)
derive(A6,A7)
refine(A1,A7)
N2 .. A1
@enduml