Upgrade to Pro — share decks privately, control downloads, hide ads and more …

要求定義・仕様記述・設計・検証の手引き - 理論から学ぶ明確で統一された成果物定義

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.

要求定義・仕様記述・設計・検証の手引き - 理論から学ぶ明確で統一された成果物定義

Avatar for Kuniwak

Kuniwak PRO

February 10, 2026
Tweet

Resources

オブジェクト指向入門 第2版 原則・コンセプト

https://www.shoeisha.co.jp/book/detail/9784798111117

スライド内の契約による設計(DbC)の参考文献です。

トップエスイー実践講座 第6巻 並行システムの検証と実装 形式手法CSPに基づく高信頼並行システム開発入門

https://www.kindaikagaku.co.jp/book_list/detail/9784764904354/

スライド内の Communicating Sequential Process (CSP) の参考文献です。

ソフトウェア要求と仕様: 実践,原理,偏見の辞典

https://amzn.asia/d/00BmDRVt

スライド内の要求の考え方の参考文献です。

More Decks by Kuniwak

Other Decks in Programming

Transcript

  1. τοϓϨϕϧͷ࢓༷ͷྫ  WN*EMF BWBJMBCMF1SPEVDUTQSPEVDUNVMUJTFU WN$PJOT*OTFSUFE BWBJMBCMF1SPEVDUTQSPEVDUNVMUJTFU DPJOTDPJONVMUJTFU WN8BJUJOH$IPPTF BWBJMBCMF1SPEVDUTQSPEVDUNVMUJTFU DPJOTDPJONVMUJTFU

    WN%SPQQJOH BWBJMBCMF1SPEVDUTQSPEVDUNVMUJTFU QSPEVDUQSPEVDU ᶃ BWBJMBCMF1SPEVDUT͸ࣗൢػʹ࠷ॳ͔Β͋Δ੡඼ ᶄ TIPX"WBJMBCMF BWBJMBCMF1SPEVDUT  BWBJMBCMF1SPEVDUT͸ͦͷ·· ᶅ JOTFSU DPJO DPJOT͸\DPJO^Ͱ ͔ͭBWBJMBCMF1SPEVDUT͸ͦͷ·· ᶆ TIPX1VSDIBTBCMF QVSDIBTBCMF1SPEVDUT  BWBJMBCMF1SPEVDUTͱDPJOT͸ͦͷ·· ᶇ JOTFSU DPJO DPJOT͸DPJOTʹDPJOΛ ଍ͨ͠΋ͷ͔ͭBWBJMBCMF1SPEVDUT͸ͦͷ·· ᶈ DIPPTF QSPEVDU <BWBJMBCMF1SPEVDUTʹ QSPEVDUؚ͕·ΕΔ>BWBJMBCMF1SPEVDUT͸ ͦͷ··QSPEVDU͸QSPEVDU ᶉ ESPQ QSPEVDU BWBJMBCMF1SPEVDUT͸ BWBJMBCMF1SPEVDUT͔ΒQSPEVDUΛࠩ͠Ҿ͍ͨ΋ͷ ᶇ ᶄ ᶅ ᶆ ᶃ ᶈ ᶉ ۩ ମ ྫ
  2. ઃܭͷྫʢʣ  DPJOT*EMF DPJOTDPJONVMUJTFU ᶃ ᶃ DPJOT\^ ᶄ JOTFSU DPJO

     DPJOTDPJOT㱮\DPJO^ DPJOT8BJUJOH DPJOTDPJONVMUJTFU ᶄ ᶅ ᶆ DPJOT8BJUJOH DPJOTDPJONVMUJTFU ᶇ ᶅ UPUBM7BMVF WBM  DPJOTDPJOT ᶆ DIPPTF QSPEVDU USVF ᶇ SFTFUDPJOT\^ ۩ ମ ྫ
  3. ઃܭͷྫʢʣ  QSPEVDUT*EMF QSPEVDUTQSPEVDUNVMUJTFU ᶃ QSPEVDUT8BJUJOH QSPEVDUTQSPEVDUNVMUJTFU QVSDIBTBCMFTQSPEVDUTFU ᶅ ᶃ

    QSPEVDUT͸ࣗൢػʹ࠷ॳ͔Β͋Δ੡඼ ᶄ TIPX"WBJMBCMFT BWBJMBCMF1SPEVDUT  <QSPEVDUTBWBJMBCMF1SPEVDUT> QSPEVDUTQSPEVDUT ᶅ UPUBM7BMVF WBM QSPEVDUTQSPEVDUT㱸 QVSDIBTBCMFT\Q㱨QSPEVDUTWBMVF Q WBM^ ᶆ TIPX1VSDIBTBCMFT QT <QTQVSDIBTBCMFT> QSPEVDUTQSPEVDUT ᶇ DIPPTF QSPEVDU <QSPEVDU㱨QVSDIBTBCMFT> QSPEVDUTQSPEVDUT㱸DIPTFQSPEVDU ᶈ ESPQ Q <QDIPTF>QSPEVDU QSPEVDUT\QSPEVDU^ ᶉ SFTFUQSPEVDUTQSPEVDUT ᶄ ᶆ ᶇ QSPEVDUT$IPTF QSPEVDUTQSPEVDUNVMUJTFU DIPTFQSPEVDU ᶈ QSPEVDUT%SPQQFE QSPEVDUTQSPEVDUNVMUJTFU ᶉ ۩ ମ ྫ
  4. ςετέʔεͷྫ  WN*EMF BWBJMBCMF1SPEVDUTQSPEVDUNVMUJTFU WN$PJOT*OTFSUFE BWBJMBCMF1SPEVDUTQSPEVDUNVMUJTFU DPJOTDPJONVMUJTFU WN8BJUJOH$IPPTF BWBJMBCMF1SPEVDUTQSPEVDUNVMUJTFU DPJOTDPJONVMUJTFU

    WN%SPQQJOH BWBJMBCMF1SPEVDUTQSPEVDUNVMUJTFU QSPEVDUQSPEVDU ᶇ ᶄ ᶅ ᶆ ᶃ ᶈ ᶉ ςετέʔε" ᶃˠᶄˠᶅˠᶆˠᶈˠᶉˠडཧ ςετέʔε# ᶃˠᶄˠᶄˠडཧ ςετέʔε$ ᶃˠᶆˠڋ൱ ʜ ۩ ମ ྫ
  5.  τϨʔεͱ͸ॳظঢ়ଶ͔Β࿈ଓతʹભҠՄೳͳΠϕϯτͷྻͷ͏ͪНΛ औΓআ͍ͨ΋ͷͰ͢ɻ ͨͱ͑͹࣍ͷঢ়ଶػց͸࣍ͷτϨʔεΛ΋ͪ·͢ɿ τϨʔεͱ͸ 4 4 Πϕϯτ" Н τϨʔεɿ

     τϨʔεɿ "  τϨʔεɿ " "  τϨʔεɿ " " "    ঢ়ଶػց͕ ग़ͤΔ͢΂ͯͷ τϨʔεΛ ूΊͨू߹Λ τϨʔεू߹ͱ ͍͍·͢
  6. ҆ఆঢ়ଶͱ͸ͦͷঢ়ଶ͔ΒНͰભҠͰ͖ͳ͍ঢ়ଶͷ͜ͱͰ͢ɻ  ҆ఆঢ়ଶͱ͸ 4 4 4 Н 4 Πϕϯτ# 4

    Н ঢ়ଶ ҆ఆෆ҆ఆ 4 ෆ҆ఆ 4 ҆ఆ 4 ෆ҆ఆ 4 ҆ఆ 4 ҆ఆ 4 ҆ఆ 4 Πϕϯτ" Н Πϕϯτ$
  7. ࣦഊͱ͸҆ఆঢ়ଶʹࢸΔτϨʔεͱɺͦͷ҆ఆঢ়ଶͰڋ൱͞ΕΔΠϕϯτͷ ू߹ͷ૊ͷ͜ͱɻͨͱ͑͹࣍ͷঢ়ଶػց͸࣍ͷࣦഊΛ΋ͪ·͢ɿ  ࣦഊͱ͸ ࣦഊɿ \# $^  ࣦഊɿ \"

    #^  ࣦഊɿ # \" # $^  ࣦഊɿ " \" # $^  ʜ τϨʔε ڋ൱Πϕϯτू߹ 4 4 4 Н 4 Πϕϯτ# 4 Н 4 Πϕϯτ" Н Πϕϯτ$
  8. ࣦഊͱ͸҆ఆঢ়ଶʹࢸΔτϨʔεͱɺͦͷ҆ఆঢ়ଶͰڋ൱͞ΕΔΠϕϯτͷ ू߹ͷ૊ͷ͜ͱɻͨͱ͑͹࣍ͷঢ়ଶػց͸࣍ͷࣦഊΛ΋ͪ·͢ɿ  ࣦഊͱ͸ ࣦഊɿ \# $^  ࣦഊɿ \"

    #^  ࣦഊɿ # \" # $^  ࣦഊɿ " \" # $^  ʜ τϨʔε ڋ൱Πϕϯτू߹ 4 4 4 Н 4 Πϕϯτ# 4 Н 4 Πϕϯτ" Н Πϕϯτ$ ঢ়ଶػցͷ΋ͭ ͢΂ͯͷࣦഊΛ ूΊͨू߹Λ ࣦഊू߹ͱ ͍͍·͢ ͋ΔτϨʔεTͷڋ൱Πϕϯτू߹9͕ ࣦഊू߹ʹೖΔͳΒ9ͷ෦෼ू߹9ʹ ͍ͭͯ T 9 ΋ࣦഊू߹ʹೖΓ·͢
  9.  ίϯϙʔωϯτ࢓༷ ίϯϙʔωϯτ࢓༷ ίϯϙʔωϯτ࢓༷  ͢΂ͯฒߦ߹੒͞Εͨ࢓༷ ભҠʹ͔͔Δ࣌ؒ΍࢖༻ੑͳͲఆྔࢦඪͰ੍໿ ׆ੑɾ౸ୡՄೳੑɾ ҆શੑͰ੍໿ ίϯϙʔωϯτ࣮૷

    ίϯϙʔωϯτ࣮૷ ίϯϙʔωϯτ࣮૷  ͢΂ͯฒߦ߹੒͞Ε࣮ͨ૷ τϨʔεू߹ͱ ࣦഊू߹Ͱ੍໿ τϨʔεू߹ͱ ࣦഊू߹Ͱ੍໿ ػೳཁٻ τοϓϨϕϧ࢓༷ ඇػೳཁٻ
  10. ׆ੑͱ͸ ׆ੑͱ͸͍͔͍͍ͭ͜ͱ͕ى͜Δͱ͍͏ੑ࣭Ͱ͢ɻجຊܗ͸ ʮΠϕϯτ9 : ; ͕ى͜Δͱ͍͔ͭΠϕϯτ8͕ ൃੜ͢Δʯɻ  ݫີʹ͍͏ͱɺ׆ੑ͸ͲΜͳ༗ݶ઀಄ࣙЋʹରͯ͠΋1 К

    ʹ౸ୡͰ͖ΔЋͷԆ௕К͕ଘࡏ͢Δ͜ͱɻ جຊܗ͸ʮ㱼К((PPE К ʯʢͨͩ͠К͸ۃେʣɻ׆ੑͷ༗ແ͸͜ͷ࣌૬࿦ཧࣜͷਅِͰܾఆ͠·͢ɻ
  11. ౸ୡՄೳੑͱ͸ ౸ୡՄೳੑͱ͸τϨʔεू߹ͷͳ͔ʹ৚݅Λຬͨ͢τϨʔε͕ ଘࡏ͢Δͱ͍͏ੑ࣭Ͱ͢ɻ ࿦ཧֶͰ͸ɺτϨʔεू߹ʹΠϕϯτ9 : ; ͕ݱΕΔτϨʔε͕ ͭ΋ͳͯ͘΋ʮΠϕϯτ9 : ;

    ͕ى͜Δͱɺ͍͔ͭΠϕϯτ8͕ ൃੜ͢Δʯ͸ਅʢʂʣɻͦͷͨΊʮΠϕϯτ9 : ; Λى͜͢ τϨʔε͕ଘࡏ͢Δʯ͜ͱ΋ซͤͯࢦఆ͢Δඞཁ͕͋ΔͷͰ͢ɻ 
  12. ҆શੑͱ͸ ҆શੑͱ͸ɺѱ͍͜ͱ͕ܾͯ͠ى͜Βͳ͍ͱ͍͏ੑ࣭Ͱ͢ɻ جຊܗ͸ʮΠϕϯτ9 : ; ͕ى͖ͨ͋ͱΠϕϯτ8͸ ൃੜ͠ͳ͍ʯɻ  ݫີʹ͍͏ͱ҆શੑ͸͋Δ༗ݶ઀಄ࣙЋͰ™1 Ћ

    ͳΒЋͷͲͷԆ௕КͰ΋™1 К ͱ͍͏͜ͱɻ جຊܗ͸ʮ㱼К(™#BE К ʯɻ҆શੑͷ༗ແ͸͜ͷ࣌૬࿦ཧࣜͷਅِͰܾఆ͠·͢ɻ
  13. τοϓϨϕϧͷ࢓༷ͷྫ  WN*EMF BWBJMBCMF1SPEVDUTQSPEVDUNVMUJTFU WN$PJOT*OTFSUFE BWBJMBCMF1SPEVDUTQSPEVDUNVMUJTFU DPJOTDPJONVMUJTFU WN8BJUJOH$IPPTF BWBJMBCMF1SPEVDUTQSPEVDUNVMUJTFU DPJOTDPJONVMUJTFU

    WN%SPQQJOH BWBJMBCMF1SPEVDUTQSPEVDUNVMUJTFU QSPEVDUQSPEVDU ᶃ BWBJMBCMF1SPEVDUT͸ࣗൢػʹ࠷ॳ͔Β͋Δ੡඼ ᶄ TIPX"WBJMBCMF BWBJMBCMF1SPEVDUT  BWBJMBCMF1SPEVDUT͸ͦͷ·· ᶅ JOTFSU DPJO DPJOT͸\DPJO^Ͱ ͔ͭBWBJMBCMF1SPEVDUT͸ͦͷ·· ᶆ TIPX1VSDIBTBCMF QVSDIBTBCMF1SPEVDUT  BWBJMBCMF1SPEVDUTͱDPJOT͸ͦͷ·· ᶇ JOTFSU DPJO DPJOT͸DPJOTʹDPJOΛ ଍ͨ͠΋ͷ͔ͭBWBJMBCMF1SPEVDUT͸ͦͷ·· ᶈ DIPPTF QSPEVDU <BWBJMBCMF1SPEVDUTʹ QSPEVDUؚ͕·ΕΔ>BWBJMBCMF1SPEVDUT͸ ͦͷ··QSPEVDU͸QSPEVDU ᶉ ESPQ QSPEVDU BWBJMBCMF1SPEVDUT͸ BWBJMBCMF1SPEVDUT͔ΒQSPEVDUΛࠩ͠Ҿ͍ͨ΋ͷ ᶇ ᶄ ᶅ ᶆ ᶃ ᶈ ᶉ ۩ ମ ྫ
  14. ઃܭͷྫʢʣ  DPJOT*EMF DPJOTDPJONVMUJTFU ᶃ ᶃ DPJOT\^ ᶄ JOTFSU DPJO

     DPJOTDPJOT㱮\DPJO^ DPJOT8BJUJOH DPJOTDPJONVMUJTFU ᶄ ᶅ ᶆ DPJOT8BJUJOH DPJOTDPJONVMUJTFU ᶇ ᶅ UPUBM7BMVF WBM  DPJOTDPJOT ᶆ DIPPTF QSPEVDU USVF ᶇ SFTFUDPJOT\^ ۩ ମ ྫ
  15. ઃܭͷྫʢʣ  QSPEVDUT*EMF QSPEVDUTQSPEVDUNVMUJTFU ᶃ QSPEVDUT8BJUJOH QSPEVDUTQSPEVDUNVMUJTFU QVSDIBTBCMFTQSPEVDUTFU ᶅ ᶃ

    QSPEVDUT͸ࣗൢػʹ࠷ॳ͔Β͋Δ੡඼ ᶄ TIPX"WBJMBCMFT BWBJMBCMF1SPEVDUT  <QSPEVDUTBWBJMBCMF1SPEVDUT> QSPEVDUTQSPEVDUT ᶅ UPUBM7BMVF WBM QSPEVDUTQSPEVDUT㱸 QVSDIBTBCMFT\Q㱨QSPEVDUTWBMVF Q WBM^ ᶆ TIPX1VSDIBTBCMFT QT <QTQVSDIBTBCMFT> QSPEVDUTQSPEVDUT ᶇ DIPPTF QSPEVDU <QSPEVDU㱨QVSDIBTBCMFT> QSPEVDUTQSPEVDUT㱸DIPTFQSPEVDU ᶈ ESPQ Q <QDIPTF>QSPEVDU QSPEVDUT\QSPEVDU^ ᶉ SFTFUQSPEVDUTQSPEVDUT ᶄ ᶆ ᶇ QSPEVDUT$IPTF QSPEVDUTQSPEVDUNVMUJTFU DIPTFQSPEVDU ᶈ QSPEVDUT%SPQQFE QSPEVDUTQSPEVDUNVMUJTFU ᶉ ۩ ମ ྫ
  16. ςετέʔεͷྫ  WN*EMF BWBJMBCMF1SPEVDUTQSPEVDUNVMUJTFU WN$PJOT*OTFSUFE BWBJMBCMF1SPEVDUTQSPEVDUNVMUJTFU DPJOTDPJONVMUJTFU WN8BJUJOH$IPPTF BWBJMBCMF1SPEVDUTQSPEVDUNVMUJTFU DPJOTDPJONVMUJTFU

    WN%SPQQJOH BWBJMBCMF1SPEVDUTQSPEVDUNVMUJTFU QSPEVDUQSPEVDU ᶇ ᶄ ᶅ ᶆ ᶃ ᶈ ᶉ ςετέʔε" ᶃˠᶄˠᶅˠᶆˠᶈˠᶉˠडཧ ςετέʔε# ᶃˠᶄˠᶄˠडཧ ςετέʔε$ ᶃˠᶆˠڋ൱ ʜ ۩ ମ ྫ
  17. ࢀߟจݙ  .JDIBFM+BDLTPO ιϑτ΢ΣΞཁٻͱ࢓༷࣮ફ ݪཧ ภݟͷࣙయ  5SBOTMBUFECZۄҪ఩༤ ञ೏׮ ΤεΞΠϏʔɾΞΫηε

     ү෦঵ঘ ฒߦγεςϜͷݕূͱ࣮૷ɿܗࣜख๏$41ʹجͮ͘ߴ৴པ ฒߦγεςϜ։ൃೖ໳τοϓΤεΠʔ࣮ફߨ࠲ ۙ୅Պֶࣾ  #FSUSBOE.FZFS ΦϒδΣΫτࢦ޲ೖ໳ୈ൛ݪଇɾίϯηϓτ  5SBOTMBUFECZञ೏׮ ᠳӭࣾ