Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
組み込みソフトウェア基礎_【連続講座 #2】要求仕様を定義する
Search
k-abe
September 01, 2022
Technology
0
120
組み込みソフトウェア基礎_【連続講座 #2】要求仕様を定義する
自社勉強会の資料です。
要求をUSDMで仕様定義する際に感じたことを書きました。
k-abe
September 01, 2022
Tweet
Share
More Decks by k-abe
See All by k-abe
μT-Kernel×AIの学習環境
kabe
0
12
【連続講座3】デザインパターンを学び、ソフトウェア設計に生かそう(Facade・Observer・State)
kabe
0
120
【連続講座2】デザインパターンを学び、ソフトウェア設計に生かそう(Builder・Strategy・Composite)
kabe
0
70
【連続講座1】デザインパターンを学び、ソフトウェア設計に生かそう(Adapter・Factory Method・Singleton)
kabe
0
71
猫の日開催!ねこIoTLT vol.9(Spresense猫モーラー)
kabe
0
110
ソフトウェア設計原則【SOLID】を学ぶ #5 リスコフの置換原則
kabe
0
480
ソフトウェア設計原則【SOLID】を学ぶ #4 開放閉鎖の原則
kabe
0
840
ソフトウェア設計原則【SOLID】を学ぶ #3 依存性逆転の原則
kabe
0
480
SWEST25_EmbLT_NervesとSpresenseをHostIFで通信してみた
kabe
0
110
Other Decks in Technology
See All in Technology
Kiro を用いたペアプロのススメ
taikis
2
630
AI 駆動開発勉強会 フロントエンド支部 #1 w/あずもば
1ftseabass
PRO
0
410
SQLだけでマイグレーションしたい!
makki_d
0
1.1k
Identity Management for Agentic AI 解説
fujie
0
120
文字列の並び順 / Unicode Collation
tmtms
3
620
寫了幾年 Code,然後呢?軟體工程師必須重新認識的 DevOps
cheng_wei_chen
1
1.5k
MLflowダイエット大作戦
lycorptech_jp
PRO
1
140
日本Rubyの会: これまでとこれから
snoozer05
PRO
4
170
S3を正しく理解するための内部構造の読解
nrinetcom
PRO
3
190
1人1サービス開発しているチームでのClaudeCodeの使い方
noayaoshiro
2
470
まだ間に合う! Agentic AI on AWSの現在地をやさしく一挙おさらい
minorun365
13
1.2k
regrowth_tokyo_2025_securityagent
hiashisan
0
260
Featured
See All Featured
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.8k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
60
37k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.5k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
0
840
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
0
83
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.5k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.1k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
60
Git: the NoSQL Database
bkeepers
PRO
432
66k
The untapped power of vector embeddings
frankvandijk
1
1.5k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.1k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
22k
Transcript
ʲ࿈ଓߨ࠲ #2ʳཁٻ༷Λఆٛ͢Δ 2022/6/16 ύʔιϧςΫϊϩδʔελοϑגࣜձࣾ Ѩ෦ߞೋ
[email protected]
ΈࠐΈιϑτΣΞجૅ
• ࣗݾհ • ࢀՃऀҰݴίϝϯτ • ߨ࠲։࠵ͷഎܠɾత • ຊͷςʔϚʲཁٻ༷Λఆٛ͢Δʳ • ࢀՃऀײ
• ࣍ճ༧ࠂ ࣍ 2
• Ѩ෦ɹߞೋʢ͋ɹ͜͏͡ʣ • ٕज़ຊ෦ɹػిٕज़෦ɹटݍ2G •
[email protected]
• ҩྍػث։ൃ • ࠐΈιϑτΣΞ։ൃɻCݴޠɺϕΞϝλϧͷ։ൃۀܦݧ͕΄ͱΜ
Ͳɻ ࣗݾհ 3
ࣗ͝༝ʹҰݴίϝϯτ͍͚ͨͩ·͢ͱ͋Γ͕͍ͨͰ͢ɻ ྫ) ໊͓લ ྫ) ࠓճͷߨ࠲ʹظ͢Δ͜ͱ ྫ) ͓ࣄ༰(ͤΔൣғͰ) ྫ) ιϑτΣΞ։ൃ୲ఔ(ཁٻ༷ͷఆٛ?ઃܭ?࣮?ςετ?) ࢀՃऀҰݴίϝϯτ
4
• ͳʹ͔ςʔϚΛܾΊͯɺιϑτΣΞ։ൃͷ্ྲྀఔ͔ΒԼྲྀఔ·Ͱઆ໌ ͢Δߨ࠲Λ։࠵͠ɺεΩϧΞοϓΛਤΔɻ ɹ˙ཁٻ༷ͷཧղɹࢿྉɾهࣄ ɹ˙ཁٻ༷ͷ༷Խɹ˒͍·͜͜ ɹ˙ઃܭ ɹ˙ςετ ɹ˙࣮ ߨ࠲։࠵ͷഎܠɾత 5
ςʔϚɿ ʲطଘࠐΈ(CQ EVΧʔτ)ͷ ϚΠίϯΛҠ২͢Δʳ ߨ࠲։࠵ͷഎܠɾత 6
ςʔϚɿʲطଘࠐΈͷϚΠίϯΛҠ২͢Δʳ ରஔɿCQ EVΧʔτ എܠɿ ɾߨࢣ͕͓࣋ͬͯΓɺରஔͷυϝΠϯࣝΛཧղ͍ͯ͠Δɻ ɾιϑτΣΞͷߏΛཧղ͍ͯ͠Δɻ ɾରஔͷϚΠίϯ͕৽ن࠾༻ඇਪʹͳͬͨɻ ɹ⇛ֶशɾεΩϧΞοϓͷͨΊผϚΠίϯʹҠ২ͯ͠ΈΑ͏!!!ɹ ߨ࠲։࠵ͷഎܠɾత 7
• ·ͣ༻ޠͷఆ͔ٛΒɻ ɾʲཁٻ༷ʳ ɾʲ༷ʳ ͜ͷ༻ޠΛͲ͏ೝ͍ࣝͯ͠·͔͢? ຊͷςʔϚ ʲཁٻ༷Λఆٛ͢Δʳ 8
͜ͷߨ࠲Ͱ࣍ͷఆٛΛ͠·͢ɻ ▪ʲཁٻ༷ʳɿஔɾγεςϜ͕࣮ݱ͍ͨ͠త ɹ˔ɹʙ͍ͨ͠ɺͳͲཁٻΛࣔ͢ݴ༿Ͱදݱ͢Δɻ ▪ʲ༷ʳɿཁٻ༷Λ࣮ݱ͢ΔͨΊͷ۩ମతखஈ ɹ⇛༷͕ιʔείʔυʹͳΔɻ ຊͷςʔϚ ʲཁٻ༷Λఆٛ͢Δʳ 9
• ςʔϚͷલఏઆ໌ • ཁٻҰཡ • ཁٻΛ༷Խ͢Δ४උ • ཁٻͷ༷Խ ຊͷςʔϚ ʲཁٻ༷Λఆٛ͢Δʳ
10
• ςʔϚͷલఏઆ໌ • ཁٻҰཡ • ཁٻΛ༷Խ͢Δ४උ • ཁٻͷ༷Խ ຊͷςʔϚ ʲཁٻ༷Λఆٛ͢Δʳ
11
• ςʔϚͷલఏઆ໌ ʲCQ EVΧʔτʳͱ??? ɾಈը1: ߦத ɾಈը2: ج൘Λ֦େ աڈʹॻ͍ٕͨज़ॻ(EV Χʔτ
で ࢝ΊΔϞ デ ϧ ベ ʔε։ൃ)Λϕʔεʹઆ໌͠·͢ɻ هࡌՕॴɿʲୈ1ষ EVΧʔτͱԿ͔ʳ ຊͷςʔϚ ʲཁٻ༷Λఆٛ͢Δʳ 12
• ςʔϚͷલఏઆ໌ ςʔϚɿʲطଘࠐΈͷϚΠίϯΛҠ২͢Δʳ࣍ͷલఏͱ͢Δɻ ɾੜ։ൃ(طʹ͋ΔஔͰϚΠίϯͷΈมߋ) ɾϋʔυΣΞ͋Γɻిؾత༷֬ೝOKɻ ɾچϚΠίϯͰͷιϑτΣΞࢿ࢈͋Γɻ˞GitHub, ࢿྉ ͷ֤ϦϯΫ ɾݸਓ։ൃ(͓ࣄʹద༻Ͱ͖ΔΤοηϯε͋Δ͔ͱࢥ͍·͢) ຊͷςʔϚ
ʲཁٻ༷Λఆٛ͢Δʳ 13
• ςʔϚͷલఏઆ໌ • ཁٻҰཡ • ཁٻΛ༷Խ͢Δ४උ • ཁٻͷ༷Խ ຊͷςʔϚ ʲཁٻ༷Λఆٛ͢Δʳ
14
• ཁٻҰཡ • ϚΠίϯΛҠ২͍ͨ͠ɻ • ϋʔυΣΞͷ֦ுʹରԠͰ͖ΔιϑτΣΞߏʹ͍ͨ͠ɻ • TDD(ςετۦಈ։ൃ)͍ͨ͠ɻ ຊͷςʔϚ ʲཁٻ༷Λఆٛ͢Δʳ
15
• ςʔϚͷલఏઆ໌ • ཁٻҰཡ • ཁٻΛ༷Խ͢Δ४උ • ཁٻͷ༷Խ ຊͷςʔϚ ʲཁٻ༷Λఆٛ͢Δʳ
16
• ཁٻΛ༷Խ͢Δ४උ ɹཁٻ͕໌֬ʹͳ͔ͬͨΒͱ͍͙ͬͯ͢ʹ༷Խ͢Δ͜ͱ͍͠ɻ ɹ࣍ͷ͕ࣝඞཁͩͱࢥ͏ɻ 1) ։ൃରͷߏɾؔ 2) ༻ޠ 3) ཁٻͷతɾഎܠ
4) ͦͷଞ ຊͷςʔϚ ʲཁٻ༷Λఆٛ͢Δʳ 17
• ཁٻΛ༷Խ͢Δ४උ 1) ։ൃରͷߏɾؔ ɹɾϝΧͱిؾͷؔ࿈ ɹɾిؾͱιϑτΣΞͷؔ࿈ ɹɹιϑτΣΞͰిؾత༷ͷxx݅ʹͳΔΑ͏ϓϩάϥϜ͢Δͱɺϝ Χ͕Ͳ͏ಈ͔͘ɺͷࣝɻ ɹɹ˞͜ͷߨ࠲͜Ε͕໌֬ʹͳ͍ͬͯΔલఏͱ͠·͢ɻ ຊͷςʔϚ
ʲཁٻ༷Λఆٛ͢Δʳ 18
• ཁٻΛ༷Խ͢Δ४උ 2) ༻ޠ ɹ։ൃରͰ͏ઐ༻ޠɾઐࣝΛ·ͱΊͨ༻ޠू༗༻ͱײ͍ͯ͡Δɻ ɹ։ൃऀಉ͕࢜ίϛϡέʔγϣϯ͠(ձ͕Ͱ͖Δ)ɺԁʹ։ൃͰ͖ΔϙΠϯτͱߟ͑Δɻ ɹ༻ޠू͕͋ΔϝϦοτ ɹɾ։ൃνʔϜʹ৽نࢀՃ͢Δϝϯόʔ͕ૣ͘ೃછΊΔɻ ɹɾ༻ޠूࣗମ͕ձࣾͷࢿ࢈ʹͳΔ͔͠Εͳ͍ɻ ɹ˞ࠓճ࡞ͬͯΈͨ༻ޠूͷྫ
ɹɹWebͰݕࡧ͢ΕΘ͔Δ༻ޠ(ྫ.CppUTest)ॻ͔ͣɺϓϩδΣΫτϝϯόʔͰڞ௨ೝࣝΛ͍࣋ͪͨ༻ ޠ(ྫ. چϚΠίϯ)Λॻ͍͍ͯΔɻ ຊͷςʔϚ ʲཁٻ༷Λఆٛ͢Δʳ 19
• ཁٻΛ༷Խ͢Δ४උ 3) ཁٻͷతɾഎܠ ɹʲཁٻʳʹతɾഎܠ͕͋Δɻ ɹͦ͜Λཧղ͍ͯ͠Δ͔ɾ൱͔͕ॏཁͱࢥ͏ɻ ▪ཁٻͷతɾഎܠΛཧղ͍ͯ͠ΔϝϦοτ 1) ͓٬༷͕ຊʹٻΊΔͷ͕ͭ͘ΕΔɻ 2)
ઃܭͷߟྀ࿙Ε͕ͳ͘ͳΔɻ 3) ॏతʹςετ͖͢ϙΠϯτ͕Θ͔Δɻ 4) 2, 3ͷ݁Ռɺ։ൃͷग़Γ͕গͳ͘ͳΔɻ ຊͷςʔϚ ʲཁٻ༷Λఆٛ͢Δʳ 20
• ཁٻΛ༷Խ͢Δ४උ 3) ཁٻͷతɾഎܠ ɹཁٻͷతɾഎܠΛཧղ͢Δ͠͞ʹ͍ͭͯߟ͑ͯΈΔɻ ɹɾཁٻͷతɾഎܠΛਂ΅Δ͕ͳ͍ɻ ɹɾཁٻͷతɾഎܠΛཧղ͢Δͷʹ͕͔͔࣌ؒΔɻ ɹɾཁٻͷతɾഎܠΛ͓٬༷͔ΒҾ͖ग़͢ͷʹεΩϧ(※)͕ඞཁɻ ɹɹ˞ରஔͷࣝɾώΞϦϯάɾίϛϡέʔγϣϯೳྗ ຊͷςʔϚ
ʲཁٻ༷Λఆٛ͢Δʳ 21
• ςʔϚͷલఏઆ໌ • ཁٻҰཡ • ཁٻΛ༷Խ͢Δ४උ • ཁٻͷ༷Խ ຊͷςʔϚ ʲཁٻ༷Λఆٛ͢Δʳ
22
• ཁٻͷ༷Խ ɹ࣍ͷཁٻΛUSDMͰ༷Խ͍ͯ͘͠ɻ 1. ϚΠίϯΛҠ২͍ͨ͠ɻ 2. ϋʔυΣΞͷ֦ுʹରԠͰ͖ΔιϑτΣΞߏʹ͍ͨ͠ɻ 3. TDD(ςετۦಈ։ൃ)͍ͨ͠ɻ ຊͷςʔϚ
ʲཁٻ༷Λఆٛ͢Δʳ 23
• ཁٻͷ༷Խ ɹUSDMͷهࡌखॱͰಛతͩͱࢥ͏ͱ͜Ζ ▪ཁٻʹ໊લΛ͚ͭΔ ▪ཁٻΛ֊Խ͢Δ ▪ཁٻʹཧ༝Λॻ͘ ຊͷςʔϚ ʲཁٻ༷Λఆٛ͢Δʳ 24
• ཁٻͷ༷Խ ▪ཁٻʹ໊শΛ͚ͭΔ ɹ- ໊લΛ͚ͭΔ͜ͱͰ༷Λಛఆ͍͢͠(։ൃϝϯόʔͰձ͍͢͠ɻڞ௨ೝ͍ࣝ࣋ͪ͢)ɻ ɹ- ༷ͱݕূͷඥ͚͕Ͱ͖Δ(͜ͷςετ͜ͷཁٻ͔Βಋ͔Εͨͷͱ͍͏͕ؔΘ͔Δ)ɻ 1. ϚΠίϯΛҠ২͍ͨ͠ɻ⇛ʲPORTING01ʳ 2.
ϋʔυΣΞͷ֦ுʹରԠͰ͖ΔιϑτΣΞߏʹ͍ͨ͠ɻ ɹ⇛ʲSCALABLE01ʳ 3. TDD(ςετۦಈ։ൃ)͍ͨ͠ɻ⇛ʲTDD01ʳ ຊͷςʔϚ ʲཁٻ༷Λఆٛ͢Δʳ 25
• ཁٻͷ༷ ▪ཁٻΛ֊Խ͢Δ ▪ཁٻʹཧ༝Λॻ͘ ຊͷςʔϚ ʲཁٻ༷Λఆٛ͢Δʳ 26
• ཁٻͷ༷ ɹ࣍ͷཁٻΛ༷Խ͍ͯ͘͠ɻ ɹ※ࠓճॻ͍ͨUSDMͷϦϯΫ 1. ϚΠίϯΛҠ২͍ͨ͠ɻ 2. ϋʔυΣΞͷ֦ுʹରԠͰ͖ΔιϑτΣΞߏʹ͍ͨ͠ɻ 3. TDD(ςετۦಈ։ൃ)͍ͨ͠ɻ
ຊͷςʔϚ ʲཁٻ༷Λఆٛ͢Δʳ 27
• ੋඇͱߨ࠲ͷײΛҰݴ͓ئ͍͠·͢ɻ ࢀՃऀײ 28
࣍ճʲ7/21() 19:30ʙ20:30ʳͰ։࠵༧ఆͰ͢ɻ ʲ࿈ଓߨ࠲ #3ʳ༷͔Β֓ཁઃܭ͢Δ ࠓճఆ༷͔ٛͨ͠ΒιϑτΣΞͷੳɾ֓ཁઃܭ͠·͢ɻ֓ཁઃܭͰ ۩ମతͳ࣮ݱํ๏ΛҙࣝͤͣʹରγεςϜͷຊ࣭Λද͢Α͏ʹؾΛ͚ͭͯ ઃܭ͍ͨ͠ͱࢥ͍·͢ɻ ࢀՃͷํɺੋඇͱΑΖ͓͘͠Ͷ͕͍͠·͢ɻ ࣍ճ༧ࠂ 29
▪USDMͷೖ ɹAFFORDDɹੜ։ൃਪਐڠٞձ ɹT02ɿʮUSDMʯͷೖ ▪USDMͷ༷ॻͷྫ ɹUSDMͰ༷ॻΛॻ͍ͯΈͨ ɹϖʔδ಄ͷLEDΩϡʔϒγεςϜUSDM༷ॻݸਓతʹࢀߟʹͳΓͦ͏Ͱ͢ɻ ࢀߟ 30
͝੩ௌ͋Γ͕ͱ͏ ͍͟͝·ͨ͠ɻ ऴΘΓ 31