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

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

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

Masanori Kado

July 21, 2020
Tweet

More Decks by Masanori Kado

Other Decks in Programming

Transcript

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

    View Slide


  2. View Slide

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

    https://bliki-ja.github.io/Semat/

    View Slide

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

    https://bliki-ja.github.io/Semat/

    View Slide

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

    View Slide

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

    View Slide

  7. &TTFODFͷΞʔΩςΫνϟ

    View Slide

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




    View Slide

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

    View Slide

  10. ͬ͘͟Γͱʮख๏ʯͱ͸Կ͔
    w ʮιϑτ΢ΣΞΛ։ൃɾҡ࣋͢Δͱ͖ʹඞཁͱͳΔ͢΂ͯͷ͜ͱʹରͯ͠ɺ
    ΞυόΠεΛఏڙ͢Δ΋ͷʯ
    w ʮ͢΂ͯͷ͜ͱʯ͸΢ΥʔλʔϑΥʔϧख๏͕ཧղ͠΍͍͢
    w ͏·͍͔͘ͳ͍͜ͱΛআ͚͹ʢʂʣͦΜͳʹѱ͘͸ͳ͍
    w ݱ࣮తʹ͸ɺΞδϟΠϧΛؚΉ൓෮తख๏Ͱ΍Δ΂͖
    w ͱ͸͍͑ɺࣗݾ૊৫Խ͕લఏͩͱʮ͢΂ͯͷ͜ͱʯΛݟಀ͠΍͍͢
    w 㱤શମͷݟऔΓਤΛผ్༻ҙ͓ͯ͘͠ͱΑ͍

    View Slide

  11. ख๏ͷ໰୊͸େ͖ͭ͋͘Δ
    w ཚཱʹΑΔ଍ͷҾͬுΓ߹͍ʢख๏ͷઓ૪ʣ
    w ࣅͨΑ͏ͳ͜ͱΛ΍ͬͯΔͷʹ໊લ͕ҧ͏
    w ෦඼ʢϓϥΫςΟεʣ͕ϞδϡʔϧԽ͞Ε͍ͯͨΒ࠶ར༻Մೳͳͷʹʂ
    w ख๏ͷ࡞ऀ͕ܾΊΔઈରతͳϧʔϧ͕͋Δʢख๏ͷ؂ࠈʣ
    w ʮͦΜͳ΋ͷͰ͸ࢭΊΛࢗͤΜʯ
    w ॻ੶Ͱ͸৮Ε͍ͯͳ͍͕ɺೝఆࢿ੍֨౓ͷ໰୊΋͋Γͦ͏

    View Slide

  12. ʮιϑτ΢ΣΞ͕ੈքΛ৯΂Δʯ࣌୅ʢʣ

    ιϑτ΢ΣΞͷख๏͚ͩΛޠͬͯΔ৔߹͡ΌͶ͑

    View Slide

  13. ৯ޙͷख๏͸͜͏͋Γ͍ͨ
    wط੡඼Λ࢖͏ͷͰ͸ͳ͘ɺঢ়گʹ͋Θͤͯࣗ෼ͨͪͰख๏Λ࡞Γ͍ͨ
    w ͨͩ͠ɺθϩ͔Βख๏Λ࡞Δͷ͸େม͗͢Δ
    w 㱤طଘͷϓϥΫςΟεΛʮ߹੒ʯ͢Ε͹͍͍ʢʮख๏͸ϓϥΫςΟεͷ߹੒ʣ
    w ͦΕʹɺࣗ෼ͨͪͰख๏Λ࡞ͬͯ΋୭΋ཧղͯ͘͠Εͳ͍
    w 㱤ʮهड़͢ΔݴޠʯΛ౷Ұͯ͠୭Ͱ΋ಡΊΔΑ͏ʹ͢Ε͹͍͍
    w ϓϩμΫτͷ6.-ʹର͢Δϓϩηεͷ&TTFODFͱ͍͏Ґஔ͚ͮͬΆ͍ʁ
    ʢ6.-ͱಉ͘͡Β͍ͷر๬ͱઈ๬Λ࣋ͭͱ͍͍ͱࢥ͏ʜʜʣ

    View Slide

  14. ᶄΤοηϯγϟϧԽ͞Εͨ
    ϓϥΫςΟε

    View Slide

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

    View Slide

  16. ϓϥΫςΟεΛهड़͢Δݴޠ

    View Slide

  17. ϓϥΫςΟεΛهड़͢Δݴޠ

    ࢖͏΂͖ʮ΋ͷʯ
    ΍Δ΂͖ʮ͜ͱʯ
    ඞཁͳʮೳྗʯ
    ʢѻ͏ͷ΄͏͕Α͔ͬͨʁʣ

    View Slide

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

    View Slide

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

    ΍Δ΂͖ʮ͜ͱʯ
    ඞཁͳʮೳྗʯ
    ࢖͏΂͖ʮ΋ͷʯ

    View Slide

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

    View Slide

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

    ΍Δ΂͖ʮ͜ͱʯ

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  29. &TTFODFͱ͸ʁ

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

    View Slide

  30. &TTFODFݴޠ

    View Slide

  31. &TTFODFΧʔωϧ

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  35. ঢ়ଶΛਐḿͤ͞ΔͨΊʹߟ͑Δ

    ʮεςʔΫϗϧμʔΛר͖ࠐΉͨΊͷϛʔςΟϯάΛ։࠵ͯ͠ΈΔʁʯ

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    IUUQTHJUIVCDPNLENTOSFTTFODFBMQIBTUBUFDBSETKB

    View Slide

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

    View Slide

  41. ΞΫςΟϏςΟεϖʔεʢ͜ͱʣ

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

    View Slide

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

    View Slide

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

    View Slide

  44. εΫϥϜͱ&TTFODF

    View Slide

  45. εΫϥϜͷશମ૾

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  49. ΧʔυԽ͞Εͨͷ͸

    View Slide

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

    View Slide

  51. εΫϥϜ͚ͩ͡Όෆे෼ͳ͜ͱ΋Θ͔Δ

    ʢʦ׆ಈʧྖҬ͚ͩ͡Όͳ͍ؾ΋͢Δ͚Ͳɺෆे෼ͳͷ͸ಉҙʣ

    View Slide

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

    IUUQTQBHFTTFSWJDFTTTJWBSKBDPCTPODPNFTTFOUJBMTDSVN

    View Slide

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

    IUUQTQSBDUJDFMJCSBSZJWBSKBDPCTPODPN

    View Slide

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

    View Slide

  55. ։ൃ͕͏·͍ͬͯ͘ͳ͍ํ͸ੋඇͲ͏ͧʂ

    View Slide