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
組み込みソフトウェア基礎_【連続講座 #1】要求仕様を正しく理解するには?
Search
k-abe
May 17, 2022
Technology
0
150
組み込みソフトウェア基礎_【連続講座 #1】要求仕様を正しく理解するには?
要求仕様の理解で苦しんだ経験から要求仕様を理解するためのヒントを共有させてください。
k-abe
May 17, 2022
Tweet
Share
More Decks by k-abe
See All by k-abe
【連続講座3】デザインパターンを学び、ソフトウェア設計に生かそう(Facade・Observer・State)
kabe
0
29
【連続講座2】デザインパターンを学び、ソフトウェア設計に生かそう(Builder・Strategy・Composite)
kabe
0
25
【連続講座1】デザインパターンを学び、ソフトウェア設計に生かそう(Adapter・Factory Method・Singleton)
kabe
0
33
猫の日開催!ねこIoTLT vol.9(Spresense猫モーラー)
kabe
0
68
ソフトウェア設計原則【SOLID】を学ぶ #5 リスコフの置換原則
kabe
0
340
ソフトウェア設計原則【SOLID】を学ぶ #4 開放閉鎖の原則
kabe
0
580
ソフトウェア設計原則【SOLID】を学ぶ #3 依存性逆転の原則
kabe
0
360
SWEST25_EmbLT_NervesとSpresenseをHostIFで通信してみた
kabe
0
75
テストからより良い組込みソフトウェア開発を考える
kabe
0
120
Other Decks in Technology
See All in Technology
組織におけるCCoEの役割とAWS活用事例
nrinetcom
PRO
4
120
分解して理解する Aspire
nenonaninu
2
1k
実は強い 非ViTな画像認識モデル
tattaka
2
1.2k
PHPカンファレンス名古屋-テックリードの経験から学んだ設計の教訓
hayatokudou
2
540
OSS構成管理ツールCMDBuildを使ったAWSリソース管理の自動化
satorufunai
0
630
Snowflakeの開発・運用コストをApache Icebergで効率化しよう!~機能と活用例のご紹介~
sagara
1
420
ExaDB-XSで利用されているExadata Exascaleについて
oracle4engineer
PRO
3
240
あなたが人生で成功するための5つの普遍的法則 #jawsug #jawsdays2025 / 20250301 HEROZ
yoshidashingo
2
270
わたしがEMとして入社した「最初の100日」の過ごし方 / EMConfJp2025
daiksy
14
4.9k
入門 PEAK Threat Hunting @SECCON
odorusatoshi
0
150
EDRの検知の仕組みと検知回避について
chayakonanaika
11
4.7k
Active Directory攻防
cryptopeg
PRO
8
5.4k
Featured
See All Featured
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
4
370
GraphQLの誤解/rethinking-graphql
sonatard
68
10k
Building an army of robots
kneath
303
45k
Agile that works and the tools we love
rasmusluckow
328
21k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
21
2.5k
RailsConf 2023
tenderlove
29
1k
Measuring & Analyzing Core Web Vitals
bluesmoon
6
250
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
A better future with KSS
kneath
238
17k
Scaling GitHub
holman
459
140k
Designing for humans not robots
tammielis
250
25k
Transcript
ʲ࿈ଓߨ࠲ #1ʳཁٻ༷Λਖ਼͘͠ཧղ͢ Δʹʁ 2022/5/17 ύʔιϧςΫϊϩδʔελοϑגࣜձࣾ Ѩ෦ߞೋ
[email protected]
ΈࠐΈιϑτΣΞجૅ 1
• ࣗݾհ • ࢀՃऀҰݴίϝϯτ • ߨ࠲։࠵ͷഎܠɾత • ຊͷςʔϚʲཁٻ༷Λਖ਼͘͠ཧղ͢Δʹ?ʳ • ࢀՃऀײ
• ࣍ճ༧ࠂ ࣍ 2
• Ѩ෦ɹߞೋʢ͋ɹ͜͏͡ʣ • ٕज़ຊ෦ɹػిٕज़෦ɹटݍ2G •
[email protected]
• ҩྍػث։ൃ • ࠐΈιϑτΣΞ։ൃɻCݴޠɺϕΞϝλϧͷ։ൃۀܦݧ͕΄ͱΜ
Ͳɻ ࣗݾհ 3
ࣗ͝༝ʹҰݴίϝϯτ͍͚ͨͩ·͢ͱ͋Γ͕͍ͨͰ͢ɻ ྫ) ໊͓લ ྫ) ࠓճͷߨ࠲ʹظ͢Δ͜ͱ ྫ) ͓ࣄ༰(ͤΔൣғͰ) ྫ) ιϑτΣΞ։ൃ୲ఔ(ཁٻ༷ͷఆٛ?ઃܭ?࣮?ςετ?) ࢀՃऀҰݴίϝϯτ
4
• ͳʹ͔ςʔϚΛܾΊͯɺιϑτΣΞ։ൃͷ্ྲྀఔ͔ΒԼྲྀఔ·Ͱઆ໌ ͢Δߨ࠲Λ։࠵͠ɺεΩϧΞοϓΛਤΔɻ ɹ˙ཁٻ༷ͷཧղɹ˒͍·͜͜ ɹ˙ཁٻ༷ͷ༷Խ ɹ˙ઃܭ ɹ˙ςετ ɹ˙࣮ ߨ࠲։࠵ͷഎܠɾత 5
ςʔϚɿ ʲطଘࠐΈͷϚΠίϯΛҠ২͢ Δʳ ※ࠓճςʔϚʹґଘ͠ͳ͍༰Ͱ͢ɻ ߨ࠲։࠵ͷഎܠɾత 6
ςʔϚɿʲطଘࠐΈͷϚΠίϯΛҠ২͢Δʳ ରஔɿCQ EVΧʔτ എܠɿ ɾߨࢣ͕͓࣋ͬͯΓɺରஔͷυϝΠϯࣝΛཧղ͍ͯ͠Δɻ ɾιϑτΣΞͷߏΛཧղ͍ͯ͠Δɻ ɾରஔͷϚΠίϯ͕ੜ࢈தࢭʹͳͬͨɻ ɹ⇛ֶशɾεΩϧΞοϓͷͨΊผϚΠίϯʹҠ২ͯ͠ΈΑ͏!!!ɹ ߨ࠲։࠵ͷഎܠɾత 7
• ·ͣ༻ޠͷఆ͔ٛΒɻ ɾʲཁٻ༷ʳ ɾʲ༷ʳ ͜ͷ༻ޠΛͲ͏ೝ͍ࣝͯ͠·͔͢? ຊͷςʔϚ ʲཁٻ༷Λਖ਼͘͠ཧղ͢Δʹ?ʳ 8
͜ͷߨ࠲Ͱ࣍ͷఆٛΛ͠·͢ɻ ▪ʲཁٻ༷ʳɿஔɾγεςϜ͕࣮ݱ͍ͨ͠త ɹ˔ɹʙ͍ͨ͠ɺͳͲཁٻΛࣔ͢ݴ༿Ͱදݱ͢Δɻ ▪ʲ༷ʳɿཁٻ༷Λ࣮ݱ͢ΔͨΊͷ۩ମతखஈ ɹ ຊͷςʔϚ ʲཁٻ༷Λਖ਼͘͠ཧղ͢Δʹ?ʳ 9
▪ཁٻ༷Λਖ਼͘͠ཧղ͠ͳ͍͜ͱͰى͖Δฐ •ཁٻ༷Λཧղ͢ΔͨΊʹ࣌ؒΛ͏ɿͷ૿Ճ •࡞ۀͷग़Γɿͷ૿Ճ •ཁٻ༷ఆٛଆ-ཁٻ༷ಡΈखͷؔੑѱԽɿ࣭ͷԼ ɹྑ͍ͷΛ࡞Δͱ͍͏ࢥ͍྆ऀͰҰக͍ͯ͠Δͣͳͷʹɾɾɾ ຊͷςʔϚ ʲཁٻ༷Λਖ਼͘͠ཧղ͢Δʹ?ʳ 10
▪͜Μͳཁٻ༷ͷఆٛݏͩ ɹཁٻ༷ͷཧղͰۤ͠Μͩܦݧ͔ΒղܾҊΛڞ༗͍ͤͯͩ͘͞͞ɻ ຊͷςʔϚ ʲཁٻ༷Λਖ਼͘͠ཧղ͢Δʹ?ʳ 11
▪͜Μͳཁٻ༷ͷఆٛݏͩ 1) ཁٻ༷ͷॏෳهࡌ 2) υϝΠϯࣝͷଐਓԽ 3) ใෆ 4) هࡌͷཻ 5)
දهͷ༳Ε 6) తͰͳ͘खஈ͕هࡌ 7) ༷ॻͷମࡋ ຊͷςʔϚ ʲཁٻ༷Λਖ਼͘͠ཧղ͢Δʹ?ʳ 12
▪͜Μͳཁٻ༷ͷఆٛݏͩ 1) ཁٻ༷ͷॏෳهࡌ 2) υϝΠϯࣝͷଐਓԽ 3) ใෆ 4) هࡌͷཻ 5)
දهͷ༳Ε 6) తͰͳ͘खஈ͕هࡌ 7) ༷ॻͷମࡋ ຊͷςʔϚ ʲཁٻ༷Λਖ਼͘͠ཧղ͢Δʹ?ʳ 13
▪͜Μͳཁٻ༷ͷఆٛݏͩ 1) ཁٻ༷ͷॏෳهࡌ ▪ݱ •ཁٻ༷ͷهࡌ͕ෳͷ༷ॻʹॏෳͯ͠هࡌ͞Ε͍ͯΔɻ ɾ༷ॻͷϝϯςΕʹΑΓཁٻ༷ʹໃ६͕ੜ͡Δɻ ɾෳ༷ॻͷϝϯς͕େมɻ ▪ղܾࡦ ɹཁٻ༷ॏෳ͠ͳ͍Α͏ʹهࡌ͢Δɻ ɹɹ⇛DRYݪଇͱಉ͡Ͱ͢Ͷɻ
ɹ༷ॻͷߏΛͲ͏͢Δ͔?։ൃνʔϜͷϧʔϧܾΊ͕ඞཁ͔ͱࢥ͏ɻ ຊͷςʔϚ ʲཁٻ༷Λਖ਼͘͠ཧղ͢Δʹ?ʳ 14
▪͜Μͳཁٻ༷ͷఆٛݏͩ 1) ཁٻ༷ͷॏෳهࡌ 2) υϝΠϯࣝͷଐਓԽ 3) ใෆ 4) هࡌͷཻ 5)
දهͷ༳Ε 6) తͰͳ͘खஈ͕هࡌ 7) ༷ॻͷମࡋ ຊͷςʔϚ ʲཁٻ༷Λਖ਼͘͠ཧղ͢Δʹ?ʳ 15
▪͜Μͳཁٻ༷ͷఆٛݏͩ 2) υϝΠϯࣝͷଐਓԽ ▪ݱ ɹରιϑτΣΞͷυϝΠϯࣝɾཁٻ༷͕νʔϜʹڞ༗͞Ε͓ͯΒͣɺಛఆͷਓͷ಄ͷதʹ͔͠ͳ ͍ɻ ▪ղܾࡦ •ଐਓԽ͍ͯ͠Δཧ༝(※)Λ໌֬ʹͨ͠ޙɺಛఆͷਓͷυϝΠϯࣝΛڞ༗͢ΔΛઃ͚Δɻ ɹ˞ಛఆͷਓ͕ۀաଟͰ͋ΕۀͷௐΛߦ͏ͳͲ ɹؔऀ͕υϝΠϯࣝΛڞ༗Ͱ͖ΔφϨοδɾwikiͳͲΛඋ͢Δɻ
ຊͷςʔϚ ʲཁٻ༷Λਖ਼͘͠ཧղ͢Δʹ?ʳ 16
▪͜Μͳཁٻ༷ͷఆٛݏͩ 1) ཁٻ༷ͷॏෳهࡌ 2) υϝΠϯࣝͷଐਓԽ 3) ใෆ 4) هࡌͷཻ 5)
දهͷ༳Ε 6) తͰͳ͘खஈ͕هࡌ 7) ༷ॻͷମࡋ ຊͷςʔϚ ʲཁٻ༷Λਖ਼͘͠ཧղ͢Δʹ?ʳ 17
▪͜Μͳཁٻ༷ͷఆٛݏͩ 3) ใෆ ▪ݱ ɹཁٻͷཧ༝ɾഎܠ͕Θ͔Βͳ͍ͨΊ༷ԽͰ͖ͳ͍ɻ ▪ղܾࡦ ɹ༷Խɺઃܭ͕ਐΊΒΕΔཻͰཁٻ༷Λཧɾهࡌ͢Δɻ ຊͷςʔϚ ʲཁٻ༷Λਖ਼͘͠ཧղ͢Δʹ?ʳ 18
▪͜Μͳཁٻ༷ͷఆٛݏͩ 3) ใෆ ▪ࣄྫ •ཁٻ༷ͷهࡌྫɿxx௨৴ͷσʔλΛ1ඵؒૹ৴͍ͯͩ͘͠͞(※)ɻ ɹલఏͱͯ͠xx௨৴ͷσʔλͷૹ৴पظ400msɻ •ࣄྫͷղܾࡦ ɹ1ඵؒաͰྑ͍ͷ͔ɺա͍͚ͯ͠ͳ͍ͷ͔ɺ1ඵؒͷൣғΛ໌֬ʹ͢Δɻ ɹ(800msͰྑ͍ͷ͔?ͦΕͱ1.2sͰྑ͍ͷ͔?ͦΕͱ1sec±xx msec͡Όͳ͍ͱବͳͷ͔
) ※ཁٻ༷ͷஈ֊Ͱ௨৴σʔλͷपظ·Ͱఆٛ͢Δ͜ͱ۩ମత͗ͯ͢;͞Θ͘͠ͳ͍ؾ͕͢Δ͕ࣄྫ ͷઆ໌ͱ͍͏͜ͱͰɻཁٻͷ༷ԽͷϑΣʔζͰ্هͷૹ৴࣌ؒͷ༷Λ໌֬ʹ͢Δͷ͕ଥ͔͠Ε ͳ͍ɻ ຊͷςʔϚ ʲཁٻ༷Λਖ਼͘͠ཧղ͢Δʹ?ʳ 19
▪͜Μͳཁٻ༷ͷఆٛݏͩ 1) ཁٻ༷ͷॏෳهࡌ 2) υϝΠϯࣝͷଐਓԽ 3) ใෆ 4) هࡌͷཻ 5)
දهͷ༳Ε 6) తͰͳ͘खஈ͕هࡌ 7) ༷ॻͷମࡋ ຊͷςʔϚ ʲཁٻ༷Λਖ਼͘͠ཧղ͢Δʹ?ʳ 20
▪͜Μͳཁٻ༷ͷఆٛݏͩ 4) هࡌͷཻ ▪ݱ ɹهड़ͷཻɾந͕౷Ұ͞Ε͍ͯͳ͍ɻ ▪ղܾࡦ ɹهड़ͷཻɾநΛཁٻ༷ॻΛهࡌ͢ΔલʹܾΊ͓ͯ͘ɻ ຊͷςʔϚ ʲཁٻ༷Λਖ਼͘͠ཧղ͢Δʹ?ʳ 21
▪͜Μͳཁٻ༷ͷఆٛݏͩ 1) ཁٻ༷ͷॏෳهࡌ 2) υϝΠϯࣝͷଐਓԽ 3) ใෆ 4) هࡌͷཻ 5)
දهͷ༳Ε 6) తͰͳ͘खஈ͕هࡌ 7) ༷ॻͷମࡋ ຊͷςʔϚ ʲཁٻ༷Λਖ਼͘͠ཧղ͢Δʹ?ʳ 22
▪͜Μͳཁٻ༷ͷఆٛݏͩ 5) දهͷ༳Ε ▪ݱ ɹྨࣅͷཁٻ༷ͷهࡌ͕౷Ұ͞Ε͍ͯͳ͍ɻͦͷͨΊʹཁٻ༷ͷղऍɾ֬ೝ ʹ͕͔͔࣌ؒΔɻ ▪ղܾࡦ ɹཁٻ༷ͷղऍ͕ҰҙʹͳΔΑ͏هࡌ͢Δɻ ຊͷςʔϚ ʲཁٻ༷Λਖ਼͘͠ཧղ͢Δʹ?ʳ
23
▪͜Μͳཁٻ༷ͷఆٛݏͩ 5) දهͷ༳Ε ▪ࣄྫ •ෆ߸ ɾxx-1 ཁٻ༷: 100Ҏ্Ͱxx͕ൃੜɻ ɾxx-2 ཁٻ༷:
200ະຬͰxx͕ൃੜɻ ɹxx-1ͱxx-2ͷཁٻ༷Ͱ݅ͷ͖͍͕͠ҟͳ͍ͬͯΔɻ ɹҙਤ͍ͯ͠Δͷ͔?ͦΕͱޡهͳͷ͔? ɹରࡦͱ༷ͯ͠ॻͷ಄Ͱཁٻ༷ܾఆͷཧ༝ɾϙϦγʔΛ໌ه͢Δɺෆ߸Ͱཁٻ༷Λهࡌ͢ΔͳͲɻ ຊͷςʔϚ ʲཁٻ༷Λਖ਼͘͠ཧղ͢Δʹ?ʳ 24
▪͜Μͳཁٻ༷ͷఆٛݏͩ 5) දهͷ༳Ε ▪ෆ߸ͷࣄྫ ɹҎ্ɺະຬɺաͰಈ͖ʹͳ͍͜ͱ༧͍͕ͯͨ͠ɺݕূ͢Δଆ ༷͕༳Ε͍ͯͨΒݕূͰ͖ͳ͍ɻ ຊͷςʔϚ ʲཁٻ༷Λਖ਼͘͠ཧղ͢Δʹ?ʳ 25
▪͜Μͳཁٻ༷ͷఆٛݏͩ 1) ཁٻ༷ͷॏෳهࡌ 2) υϝΠϯࣝͷଐਓԽ 3) ใෆ 4) هࡌͷཻ 5)
දهͷ༳Ε 6) తͰͳ͘खஈ͕هࡌ 7) ༷ॻͷମࡋ ຊͷςʔϚ ʲཁٻ༷Λਖ਼͘͠ཧղ͢Δʹ?ʳ 26
▪͜Μͳཁٻ༷ͷఆٛݏͩ 6) తͰͳ͘खஈ͕هࡌ ▪ݱ ɹཁٻ༷͕ʲతʳͰͳ͘ʲ࣮ݱखஈʳ͕ॻ͔Ε͍ͯΔɻ ▪ղܾࡦ ɹతϕʔεͷදݱ(ʙ͍ͨ͠)Ͱཁٻ༷ॻΛهࡌ͢Δɻ ຊͷςʔϚ ʲཁٻ༷Λਖ਼͘͠ཧղ͢Δʹ?ʳ 27
▪͜Μͳཁٻ༷ͷఆٛݏͩ 6) తͰͳ͘खஈ͕هࡌ ▪ࣄྫ ɹ2(ͨͱ͑εΠονͷONɾOFF)ͷใΛཁٻ༷ॻʹදݱ͢Δࡍʹʲxxxϑϥάʳͱه ࡌ͍ͯ͠Δɻ ʲxxxϑϥάʳతͰͳ͘ɺϓϩάϥϜͷ࣮ʹϑΥʔΧεͨ͠දݱɻ ཁٻ༷ॻͷهࡌΛͦͷ··࣮ͰҾ༻͠ϑϥάʹ͢Δɺͱ͍͏͜ͱى͜Δ͔͠Εͳ ͍(ઃܭɾ࣮ఔͰݕ౼ͨ݁͠Ռɺϑϥάʹ͢Δͷ͕࠷దͰ͋ΕͦΕͰྑ͍ͱࢥ͏)ɻ ϑϥάʹ͢Δ͔ɾ൱͔࠷దͳ࣮ݱखஈཁٻ༷ͷఆٛΑΓޙͷఔͰٞ͢Δ͜ͱɻ
ຊͷςʔϚ ʲཁٻ༷Λਖ਼͘͠ཧղ͢Δʹ?ʳ 28
▪͜Μͳཁٻ༷ͷఆٛݏͩ 1) ཁٻ༷ͷॏෳهࡌ 2) υϝΠϯࣝͷଐਓԽ 3) ใෆ 4) هࡌͷཻ 5)
දهͷ༳Ε 6) తͰͳ͘खஈ͕هࡌ 7) ༷ॻͷମࡋ ຊͷςʔϚ ʲཁٻ༷Λਖ਼͘͠ཧղ͢Δʹ?ʳ 29
▪͜Μͳཁٻ༷ͷఆٛݏͩ 7) ༷ॻͷମࡋ ▪ݱ ɹཁٻ༷ॻͷهࡌͷɻ ɹɾͲ͜ʹԿ͕ॻ͍ͯ͋Δ͔͙͢ʹΘ͔Βͳ͍ɻ ▪ղܾํ๏ ɹ͙͢ʹཁٻ༷ΛݟΕΔΑ͏࣍ɺݟग़͠ɺϦϯΫΛ͚ͭΔͳͲͷΛ͢Δɻ ຊͷςʔϚ ʲཁٻ༷Λਖ਼͘͠ཧղ͢Δʹ?ʳ
30
• ੋඇͱߨ࠲ͷײΛҰݴ͓ئ͍͠·͢ɻ ࢀՃऀײ 31
࣍ճʲ6/16() 19:30ʙ20:30ʳͰ։࠵༧ఆͰ͢ɻ ʲ࿈ଓߨ࠲ #2ʳཁٻ༷Λఆٛ͢Δ ܾΊͨςʔϚʲطଘࠐΈͷϚΠίϯΛҠ২͢Δʳͷཁٻ༷Λ࣮ࡍ ʹ༷Խ͍ͨ͠ͱࢥ͍·͢ɻ ࢀՃͷํɺੋඇͱΑΖ͓͘͠Ͷ͕͍͠·͢ɻ ࣍ճ༧ࠂ 32
͝੩ௌ͋Γ͕ͱ͏ ͍͟͝·ͨ͠ɻ ऴΘΓ 33