Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
組み込みソフトウェア基礎_【連続講座 #2】要求仕様を定義する
Search
k-abe
September 01, 2022
Technology
0
130
組み込みソフトウェア基礎_【連続講座 #2】要求仕様を定義する
自社勉強会の資料です。
要求をUSDMで仕様定義する際に感じたことを書きました。
k-abe
September 01, 2022
Tweet
Share
More Decks by k-abe
See All by k-abe
μT-Kernel×AIの学習環境
kabe
0
33
【連続講座3】デザインパターンを学び、ソフトウェア設計に生かそう(Facade・Observer・State)
kabe
0
150
【連続講座2】デザインパターンを学び、ソフトウェア設計に生かそう(Builder・Strategy・Composite)
kabe
0
96
【連続講座1】デザインパターンを学び、ソフトウェア設計に生かそう(Adapter・Factory Method・Singleton)
kabe
0
87
猫の日開催!ねこIoTLT vol.9(Spresense猫モーラー)
kabe
0
120
ソフトウェア設計原則【SOLID】を学ぶ #5 リスコフの置換原則
kabe
0
550
ソフトウェア設計原則【SOLID】を学ぶ #4 開放閉鎖の原則
kabe
0
930
ソフトウェア設計原則【SOLID】を学ぶ #3 依存性逆転の原則
kabe
0
560
SWEST25_EmbLT_NervesとSpresenseをHostIFで通信してみた
kabe
0
130
Other Decks in Technology
See All in Technology
Bill One 開発エンジニア 紹介資料
sansan33
PRO
5
18k
Oracle AI Database@AWS:サービス概要のご紹介
oracle4engineer
PRO
3
2k
The essence of decision-making lies in primary data
kaminashi
0
180
GitHub Copilot CLI で Azure Portal to Bicep
tsubakimoto_s
0
290
Zephyr(RTOS)でOpenPLCを実装してみた
iotengineer22
0
160
ThetaOS - A Mythical Machine comes Alive
aslander
0
220
【社内勉強会】新年度からコーディングエージェントを使いこなす - 構造と制約で引き出すClaude Codeの実践知
nwiizo
30
14k
スケーリングを封じられたEC2を救いたい
senseofunity129
0
120
AIエージェント時代に必要な オペレーションマネージャーのロールとは
kentarofujii
0
220
CREがSLOを握ると 何が変わるのか
nekomaho
0
290
【AWS】CloudTrail LakeとCloudWatch Logs Insightsの使い分け方針
tsurunosd
0
120
MIX AUDIO EN BROADCAST
ralpherick
0
130
Featured
See All Featured
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
94
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.9k
The SEO Collaboration Effect
kristinabergwall1
0
410
WENDY [Excerpt]
tessaabrams
9
37k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
100
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
1.9k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
230
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.7k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.2k
Imperfection Machines: The Place of Print at Facebook
scottboms
269
14k
Ethics towards AI in product and experience design
skipperchong
2
240
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