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 full-size slide

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

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

    View full-size slide

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

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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




    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

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

    View full-size slide

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

    View full-size slide

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

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

    View full-size slide

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

    View full-size slide

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

    ΍Δ΂͖ʮ͜ͱʯ

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  28. &TTFODFͱ͸ʁ

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

    View full-size slide

  29. &TTFODFΧʔωϧ

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    IUUQTHJUIVCDPNLENTOSFTTFODFBMQIBTUBUFDBSETKB

    View full-size slide

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

    View full-size slide

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

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  42. εΫϥϜͱ&TTFODF

    View full-size slide

  43. εΫϥϜͷશମ૾

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  47. ΧʔυԽ͞Εͨͷ͸

    View full-size slide

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

    View full-size slide

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

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

    View full-size slide

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

    IUUQTQBHFTTFSWJDFTTTJWBSKBDPCTPODPNFTTFOUJBMTDSVN

    View full-size slide

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

    IUUQTQSBDUJDFMJCSBSZJWBSKBDPCTPODPN

    View full-size slide

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

    View full-size slide

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

    View full-size slide