モダン・ソフトウェアエンジニアリングのエッセンス / Essence of Modern Software Engineering

モダン・ソフトウェアエンジニアリングのエッセンス / Essence of Modern Software Engineering

70b07e6b7fe7d921d7ac542d0ccb3b2c?s=128

Masanori Kado

July 21, 2020
Tweet

Transcript

  1. Ϟμϯɾιϑτ΢ΣΞΤϯδχΞϦϯά ͷΤοηϯε ೥݄೔ ϫΠΫϧגࣜձࣾ ֯੐యʢ!LENTOSʣ

  2. 

  3. .BSUJO'PXMFSTBZTʢʣ w ݫ֨͗ͯ͢ɺՁ஋͕ݶΒΕΔ w "MJTUBJS$PDLCVSO͕ɺιϑτ΢ΣΞ։ൃͰ͸ਓ͕த৺తͳཁ ૉͰ͋Γɺਓ͸ຊ࣭తʹඇઢܗతͰ༧ଌෆೳͳ΋ͷͰ͋Δͱ આ໌ͯ͘͠Εͨ  https://bliki-ja.github.io/Semat/

  4. .BSUJO'PXMFSTBZTʢʣ w ݫ֨͗ͯ͢ɺՁ஋͕ݶΒΕΔ w "MJTUBJS$PDLCVSO͕ɺιϑτ΢ΣΞ։ൃͰ͸ਓ͕த৺తͳཁ ૉͰ͋Γɺਓ͸ຊ࣭తʹඇઢܗతͰ༧ଌෆೳͳ΋ͷͰ͋Δͱ આ໌ͯ͘͠Εͨ w ਓ͕ѻ͍΍͍͢ܭࢉࣜͰهड़Ͱ͖Δ༧ଌՄೳͳΤʔδΣϯτʹ ͳΕ͹Մೳੑ͸͋Δ͔΋͠Εͳ͍

     https://bliki-ja.github.io/Semat/
  5. ཧ࿦ͷ࢖༻ w ཧ࿦ͱ͸ʁ w J ݱ৅Λʮهड़ʯ͢Δ΋ͷ w JJ ݱ৅Λʮ༧ଌʯ͢Δ΋ͷ w

    ʮ༧ଌʯ͢ΔͨΊʹ͸ʮهड़ʯ͕ඞཁͰ͋Γɺ ʮهड़ʯ͢ΔͨΊʹ͸ʮݴޠʯ͕ඞཁͰ͋Δ 
  6. ཧ࿦ͷ࢖༻ w ཧ࿦ͱ͸ʁ w J ݱ৅Λʮهड़ʯ͢Δ΋ͷ w JJ ݱ৅Λʮ༧ଌʯ͢Δ΋ͷ w

    ʮ༧ଌʯ͢ΔͨΊʹ͸ʮهड़ʯ͕ඞཁͰ͋Γɺ ʮهड़ʯ͢ΔͨΊʹ͸ʮݴޠʯ͕ඞཁͰ͋Δ w কདྷΛ༧ଌ͍͕ͨ͠ɺ·ͣ͸ͦͷͨΊͷݴޠ͕ඞཁ 
  7. &TTFODFͷΞʔΩςΫνϟ 

  8. &TTFODFͷΞʔΩςΫνϟ  ᶃ ᶄ ᶅ

  9. ᶃΤοηϯγϟϧԽ͞Εͨख๏ 

  10. ͬ͘͟Γͱʮख๏ʯͱ͸Կ͔ w ʮιϑτ΢ΣΞΛ։ൃɾҡ࣋͢Δͱ͖ʹඞཁͱͳΔ͢΂ͯͷ͜ͱʹରͯ͠ɺ ΞυόΠεΛఏڙ͢Δ΋ͷʯ w ʮ͢΂ͯͷ͜ͱʯ͸΢ΥʔλʔϑΥʔϧख๏͕ཧղ͠΍͍͢ w ͏·͍͔͘ͳ͍͜ͱΛআ͚͹ʢʂʣͦΜͳʹѱ͘͸ͳ͍ w ݱ࣮తʹ͸ɺΞδϟΠϧΛؚΉ൓෮తख๏Ͱ΍Δ΂͖

    w ͱ͸͍͑ɺࣗݾ૊৫Խ͕લఏͩͱʮ͢΂ͯͷ͜ͱʯΛݟಀ͠΍͍͢ w 㱤શମͷݟऔΓਤΛผ్༻ҙ͓ͯ͘͠ͱΑ͍ 
  11. ख๏ͷ໰୊͸େ͖ͭ͋͘Δ w ཚཱʹΑΔ଍ͷҾͬுΓ߹͍ʢख๏ͷઓ૪ʣ w ࣅͨΑ͏ͳ͜ͱΛ΍ͬͯΔͷʹ໊લ͕ҧ͏ w ෦඼ʢϓϥΫςΟεʣ͕ϞδϡʔϧԽ͞Ε͍ͯͨΒ࠶ར༻Մೳͳͷʹʂ w ख๏ͷ࡞ऀ͕ܾΊΔઈରతͳϧʔϧ͕͋Δʢख๏ͷ؂ࠈʣ w

    ʮͦΜͳ΋ͷͰ͸ࢭΊΛࢗͤΜʯ w ॻ੶Ͱ͸৮Ε͍ͯͳ͍͕ɺೝఆࢿ੍֨౓ͷ໰୊΋͋Γͦ͏ 
  12. ʮιϑτ΢ΣΞ͕ੈքΛ৯΂Δʯ࣌୅ʢʣ  ιϑτ΢ΣΞͷख๏͚ͩΛޠͬͯΔ৔߹͡ΌͶ͑

  13. ৯ޙͷख๏͸͜͏͋Γ͍ͨ wط੡඼Λ࢖͏ͷͰ͸ͳ͘ɺঢ়گʹ͋Θͤͯࣗ෼ͨͪͰख๏Λ࡞Γ͍ͨ w ͨͩ͠ɺθϩ͔Βख๏Λ࡞Δͷ͸େม͗͢Δ w 㱤طଘͷϓϥΫςΟεΛʮ߹੒ʯ͢Ε͹͍͍ʢʮख๏͸ϓϥΫςΟεͷ߹੒ʣ w ͦΕʹɺࣗ෼ͨͪͰख๏Λ࡞ͬͯ΋୭΋ཧղͯ͘͠Εͳ͍ w 㱤ʮهड़͢ΔݴޠʯΛ౷Ұͯ͠୭Ͱ΋ಡΊΔΑ͏ʹ͢Ε͹͍͍

    w ϓϩμΫτͷ6.-ʹର͢Δϓϩηεͷ&TTFODFͱ͍͏Ґஔ͚ͮͬΆ͍ʁ ʢ6.-ͱಉ͘͡Β͍ͷر๬ͱઈ๬Λ࣋ͭͱ͍͍ͱࢥ͏ʜʜʣ 
  14. ᶄΤοηϯγϟϧԽ͞Εͨ ϓϥΫςΟε 

  15. ϓϥΫςΟεͱ͸Կ͔ w ख๏Λߏ੒͢Δ۩ମతͳ࡞ۀํ๏ͷ͜ͱ w ख๏ͱҧͬͯʮ͜ΜͳΜͳΜ΅͋ͬͯ΋͍͍Ͱ͔͢ΒͶʯ w ͭͷྖҬʹӨڹΛ༩͑ΔʢΞϧϑΝͷঢ়ଶΛมԽͤ͞Δʣɿ w ސ٬ w

    ιϦϡʔγϣϯʢٕज़ʣ w ׆ಈʢϓϩδΣΫτʣ 
  16. ϓϥΫςΟεΛهड़͢Δݴޠ 

  17. ϓϥΫςΟεΛهड़͢Δݴޠ  ࢖͏΂͖ʮ΋ͷʯ ΍Δ΂͖ʮ͜ͱʯ ඞཁͳʮೳྗʯ ʢѻ͏ͷ΄͏͕Α͔ͬͨʁʣ

  18. ʮϖΞϓϩάϥϛϯάʯΛهड़ͯ͠Έͨ 

  19. ʮϖΞϓϩάϥϛϯάʯΛهड़ͯ͠Έͨ  ΍Δ΂͖ʮ͜ͱʯ ඞཁͳʮೳྗʯ ࢖͏΂͖ʮ΋ͷʯ

  20. ૉ௚ͳײ૝ w ͜Εͬͯɺຊ౰ʹΘ͔Γ΍͍͢ʜʜͷ͔ʁ w 6.-ͱಉ͘͡Β͍ͷر๬ͱઈ๬Λ࣋ͭͱ͍͍ͱࢥ͏ʢճ໨ʣ w ΋͏ͪΐͬͱઆ໌Λଓ͚·͢ 

  21. ΍Δ΂͖ʮ͜ͱʯ͕ϓϥΫςΟεͷத৺  ΍Δ΂͖ʮ͜ͱʯ

  22. ʮ͜ͱʯͷৄࡉΛΧʔυʹهड़͢Δ 

  23. ʮ͜ͱʯ͸ʮ΋ͷʯͷঢ়ଶΛม͑Δ 

  24. ༻ҙ͞ΕͨछྨͷΞϧϑΝʢ΋ͷʣ 

  25. ΞϧϑΝ͸ΧʔυԽ͞Ε͍ͯΔ 

  26. ΞϧϑΝ͸ෳ਺ͷঢ়ଶΛ࣋ͭ 

  27. ૉ௚ͳײ૝ w ϓϥΫςΟεʹΑͬͯঢ়ଶΛมԽͤ͞Δͷ͸Θ͔Γ΍͍͢ w ঢ়ଶͳͲΛΧʔυʹ͢Δͷ͸͍͍ΞΠσΞͩͱࢥ͏ʂ w ్த͔Β&TTFODFͷઆ໌ʹ౿ΈࠐΜͰ͠·ͬͯͨʜʜɻ 

  28. ᶅ&TTFODF ʢΧʔωϧ ݴޠʣ 

  29. &TTFODFͱ͸ʁ  &TTFODF Χʔωϧ ݴޠ ʮख๏ͷج൫ʯͱͳΔ΋ͷ

  30. &TTFODFݴޠ 

  31. &TTFODFΧʔωϧ  ͍ͭ͜Β͸۩ମత͗͢ΔͷͰ Χʔωϧʹೖ͍ͬͯͳ͍ ʢදݱܕ͚ͩఆٛ͞Ε͍ͯΔʣ ͕͜͜Χʔωϧ ɾ΋ͷ ɾ͜ͱ ɾೳྗ

  32. Χʔωϧͷ ΞϧϑΝʢ΋ͷʣ 

  33. ΧʔωϧͷΞϧϑΝʢ΋ͷʣ 

  34. ΞϧϑΝ͸ෳ਺ͷঢ়ଶΛ࣋ͭ 

  35. ঢ়ଶΛਐḿͤ͞ΔͨΊʹߟ͑Δ  ʮεςʔΫϗϧμʔΛר͖ࠐΉͨΊͷϛʔςΟϯάΛ։࠵ͯ͠ΈΔʁʯ

  36. ʮঢ়ଶΛ௥͑ʯήʔϜ 

  37. ʮঢ়ଶΛ௥͑ʯήʔϜ 

  38. ঢ়ଶͷਐḿͷՄࢹԽ 

  39. ʢิ଍ʣ೔ຊޠͷΞϧϑΝঢ়ଶΧʔυͭ͘Γ·ͨ͠  IUUQTHJUIVCDPNLENTOSFTTFODFBMQIBTUBUFDBSETKB

  40. Χʔωϧͷ ΞΫςΟϏςΟεϖʔεʢ͜ͱʣ 

  41. ΞΫςΟϏςΟεϖʔεʢ͜ͱʣ  ਖ਼֬ʹ͸ϓϥΫςΟεͷΞΫςΟϏςΟʢ͜ͱʣΛೖΕΔʮ͜ͱͷೖΕ෺ʯ

  42. ϓϥΫςΟε͕଍Γͳ͍ͱ͜Ζ͕Θ͔Δ 

  43. ʢิ଍ʣΧʔωϧͰ͸଍Γͳ͍ͱ͖ w Χʔωϧʹ͋ΔΞϧϑΝʢ΋ͷʣ΍ΞΫςΟϏςΟεϖʔεʢ͜ ͱʣͰ͸ෆे෼ͳ͜ͱ͕͋Δ w ϓϥΫςΟεͷ࡞੒࣌ʹΧʔωϧΛܧঝ֦ͯ͠ு͢Ε͹͍͍ w FHʦཁٻʧΛܧঝͨ͠ʦϓϩμΫτόοΫϩάΞΠςϜʧ w FHʦ࡞ۀΛ४උ͢ΔʧΛܧঝͨ͠ʦνʔϜͷΩοΫΦϑʧ

    
  44. εΫϥϜͱ&TTFODF 

  45. εΫϥϜͷશମ૾ 

  46. &TTFODFݴޠʹϚοϐϯά 

  47. &TTFODFݴޠͰදݱͨ͠΋ͷ 

  48. ૉ௚ͳײ૝ w ͑ͬɺΊͬͪΌΘ͔Γʹ͘͘ͳͬͯʜʜͳ͍ʁ w 6.-ͱಉ͘͡Β͍ͷر๬ͱઈ๬Λ࣋ͭͱ͍͍ͱࢥ͏ʢճ໨ʣ w ΋͏ͪΐͬͱઆ໌Λଓ͚·͢ 

  49. ΧʔυԽ͞Εͨͷ͸ 

  50. ঢ়ଶ͕໌ࣔతʹͳͬͨͷ͸ 

  51. εΫϥϜ͚ͩ͡Όෆे෼ͳ͜ͱ΋Θ͔Δ  ʢʦ׆ಈʧྖҬ͚ͩ͡Όͳ͍ؾ΋͢Δ͚Ͳɺෆे෼ͳͷ͸ಉҙʣ

  52. εΫϥϜͷ͸ࣦഊͯ͠Δ w &TTFODFͷΧʔυΛ࢖͑͹ɺͲ͜Ͱࣦഊ͍ͯ͠Δ͔͕Θ͔Δ w ࣍ͷʮঢ়ଶʯʹਐΉͨΊʹ͸ԿΛ͢΂͖͔ʁΛߟ͑ΒΕΔ  IUUQTQBHFTTFSWJDFTTTJWBSKBDPCTPODPNFTTFOUJBMTDSVN

  53. ʢิ଍ʣ"HJMF&TTFOUJBMT΋͋Δ  IUUQTQSBDUJDFMJCSBSZJWBSKBDPCTPODPN

  54. શମతͳҹ৅ w ΞδϟΠϧ։ൃͷʮָ͠͞ʯ͸େ෯μ΢ϯͯ͠Δؾ͕͢ΔͶ w ʮ͢ͰʹྲྀߦͬͯΔʯͦ͏͕ͩɺશવͦΜͳؾ͕͠ͳ͍ w ͋Ε΄Ͳආ͚͍ͯͨʮख๏ͷ؂ࠈʯײ͕ग़ͯͳ͍ʂʁ w 6.-ͱಉ͘͡Β͍ͷر๬ͱઈ๬Λ࣋ͭͱ͍͍ͱࢥ͏ʢճ໨ʣ w

    Ͱ΋ɺ։ൃ͕͏·͍ͬͯ͘ͳ͍ͱ͖ʹ࢖͏ͷ͸Αͦ͞͏ w ʮख๏ͷج൫ʯͱͳΔ҆ఆײ͸ͳΜͱͳ͘ײ͡ΒΕΔ w Ϡίϒιϯ͕ݩؾͦ͏ͰΑ͔ͬͨͰ͢ 
  55. ։ൃ͕͏·͍ͬͯ͘ͳ͍ํ͸ੋඇͲ͏ͧʂ