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
130
組み込みソフトウェア基礎_【連続講座 #1】要求仕様を正しく理解するには?
要求仕様の理解で苦しんだ経験から要求仕様を理解するためのヒントを共有させてください。
k-abe
May 17, 2022
Tweet
Share
More Decks by k-abe
See All by k-abe
【連続講座1】デザインパターンを学び、ソフトウェア設計に生かそう(Adapter・Factory Method・Singleton)
kabe
0
23
猫の日開催!ねこIoTLT vol.9(Spresense猫モーラー)
kabe
0
46
ソフトウェア設計原則【SOLID】を学ぶ #5 リスコフの置換原則
kabe
0
300
ソフトウェア設計原則【SOLID】を学ぶ #4 開放閉鎖の原則
kabe
0
430
ソフトウェア設計原則【SOLID】を学ぶ #3 依存性逆転の原則
kabe
0
310
SWEST25_EmbLT_NervesとSpresenseをHostIFで通信してみた
kabe
0
60
テストからより良い組込みソフトウェア開発を考える
kabe
0
73
ソフトウェア設計原則【SOLID】を学ぶ #2 インターフェイス分離の原則
kabe
1
400
ソフトウェア設計原則【SOLID】を学ぶ #1 単一責務の原則(single-responsibility principle)
kabe
0
260
Other Decks in Technology
See All in Technology
隣接領域をBeyondするFinatextのエンジニア組織設計 / beyond-engineering-areas
stajima
1
270
SREによる隣接領域への越境とその先の信頼性
shonansurvivors
2
520
Evangelismo técnico: ¿qué, cómo y por qué?
trishagee
0
360
The Role of Developer Relations in AI Product Success.
giftojabu1
0
120
フルカイテン株式会社 採用資料
fullkaiten
0
40k
rootlessコンテナのすゝめ - 研究室サーバーでもできる安全なコンテナ管理
kitsuya0828
3
380
SREが投資するAIOps ~ペアーズにおけるLLM for Developerへの取り組み~
takumiogawa
1
220
Making your applications cross-environment - OSCG 2024 NA
salaboy
0
190
オープンソースAIとは何か? --「オープンソースAIの定義 v1.0」詳細解説
shujisado
9
870
OCI Network Firewall 概要
oracle4engineer
PRO
0
4.1k
The Rise of LLMOps
asei
7
1.5k
いざ、BSC討伐の旅
nikinusu
2
780
Featured
See All Featured
Rebuilding a faster, lazier Slack
samanthasiow
79
8.7k
Automating Front-end Workflow
addyosmani
1366
200k
Making the Leap to Tech Lead
cromwellryan
133
8.9k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.1k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
6.9k
Ruby is Unlike a Banana
tanoku
97
11k
jQuery: Nuts, Bolts and Bling
dougneiner
61
7.5k
Put a Button on it: Removing Barriers to Going Fast.
kastner
59
3.5k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
159
15k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.4k
Done Done
chrislema
181
16k
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