オブジェクト指向のその前に-凝集度と結合度/Coheision-Coupling

3cb4e761dbdb7aebd1ffd85f752e1e3e?s=47 sonata
February 16, 2020

 オブジェクト指向のその前に-凝集度と結合度/Coheision-Coupling

3cb4e761dbdb7aebd1ffd85f752e1e3e?s=128

sonata

February 16, 2020
Tweet

Transcript

  1. 1 ΦϒδΣΫτࢦ޲ͷͦͷલʹ ڽू౓ͱ݁߹౓ 0CKFDU0SJFOUFE$POGFSFODF !TPOBUBSEͦͳଠ

  2. D Technologies ͦͳଠ @sonatard # Infra • Linux Server and

    Network Engineer # System C • Wireless LAN Module Simulator # Cݴޠ • TCP/IP protocol stack on RTOS • TCP Offload Engine # Go • Google App Engine # TypeScript • React+GraphQL # Swift • iOS # ϚΠϒʔϜ • GraphQL
  3. ͸͡Ίʹ

  4. 4 ͸͡Ίʹ w ೥୅Ҏ߱ΦϒδΣΫτࢦ޲ϓϩάϥϛϯάͷීٴʹΑΓɺΫϥεઃܭɺΠϯλʔ ϑΣʔεઃܭɺ(P'ͷσβΠϯύλʔϯͳͲ͕ఏএ͞Εɺۙ೥Ͱ͸.7$ܥɺ%%%ɺ $MFBO"SDIJUFDUVSFͳͲͷΞʔΩςΫνϟͷٞ࿦͕੝ΜʹߦΘΕ͍ͯ·͢ɻ w ͜ΕΒ΋΋ͪΖΜେ੾Ͱ͕͢ݴޠ΍ΞʔΩςΫνϟʹґଘͤͣɺଟ͘ͷϓϩάϥϚ͕ඞ ͣݕ౼Λ͢Δઃܭͱͯ͠ʮؔ਺෼ׂʯ͕ଘࡏ͍ͯ͠·͢ɻؔ਺෼ׂͷج४ʹ͍ͭͯ͸ɺ ্هͷσβΠϯύλʔϯ΍ΞʔΩςΫνϟͰ͸ٞ࿦͞Ε͍ͯ·ͤΜɻ

  5. 5 ͸͡Ίʹ w ؔ਺ͷ࣮૷͸ੈͷϓϩάϥϚͷશһ͕ຖ೔ߦ͏͜ͱͰ͋Γɺ͔ܽͤͳ͍ઃܭͰ͋Δͱ ݴͬͯ΋աݴͰ͸͋Γ·ͤΜɻ͔͠͠ʮςελϏϦςΟ͕ߴ͍ؔ਺ʹ͢ΔʯͷΑ͏ͳج ४ʹཹ·Γɺ໌֬ʹݴޠԽ͞Ε͍ͯΔ͜ͱ͕গͳ͍Ͱ͢ɻ w ͦ͜Ͱ೥୅Ҏ߱ͷߏ଄ԽϓϩάϥϛϯάΛϕʔεͱͨۙ͠୅ͷଟ͘ͷݴޠ͢΂ͯʹ ద༻Ͱ͖Δؔ਺෼ׂͷࢦඪͰ͋Δʮڽू౓ͱ݁߹౓ʯΛ঺հ͠·͢ɻ w

    ྑ͍ίʔυΛ͔͚ΔΤϯδχΞ͸ײ֮తʹ͜ͷڽू౓ͱ݁߹౓Λक͍ͬͯ·͢ w ͔͠͠ݴޠԽ͢Δ͜ͱͰɺઆಘྗΛ࣋ͬͯϨϏϡʔΛ͢Δ͜ͱ͕ՄೳͱͳΓ·͢ w ݱࡏͰ͸ɺؔ਺ʹݶΒ༷ͣʑͳػձͰར༻͞ΕΔݴ༿Ͱ͕͢ɺࠓճ͸ؔ਺ʹݶఆ͓ͯ͠ ࿩Λ͍͖͍ͯͨ͠ͱࢥ͍·͢ɻ
  6. ڽू౓ ࣌ؒతڽू ࿦ཧతڽू ݁߹౓ ·ͱΊ

  7. ڽू౓

  8. 8 ڽू౓ w ڽू౓͸ߴ͍ɺ௿͍Ͱఔ౓Λදݱ͠·͢ɻ w ۮൃతڽू ࠷ѱɺڽू౓͕௿͍  w ؔ࿈ੑ͕ͳ͍ॲཧ͕ͭͷؔ਺಺ʹ࣮૷͞Ε͍ͯΔ

    w ࿦ཧతڽू w ࣌ؒతڽू w खॱతڽू w ௨৴తڽू w ஞ࣍తڽू w ػೳతڽू ࠷ྑɺڽू౓͕ߴ͍
  9. 9

  10. 10 ࣌ؒతڽू w ࣌ؒతڽू w ಛఆͷ࣌ؒʹ࣮ߦ͞ΕΔෳ਺ͷॲཧ͕·ͱ·͍ͬͯΔ

  11. 11 खॱతڽू w ಛఆͷ࣌ؒͰ͔ͭɺखॱʹҙຯͷ͋Δෳ਺ͷॲཧ͕·ͱ·͍ͬͯΔ

  12. 12 ௨৴తڽू w ಛఆͷखॱͰ͔ͭɺखॱؒͰಉ͡஋Λར༻͢Δෳ਺ͷॲཧ͕·ͱ·͍ͬͯΔ

  13. 13 ஞ࣍తڽू w ಛఆͷखॱͰ͔ͭɺखॱؒͰ஋ͷड͚౉͠Λ͢Δෳ਺ͷॲཧ͕·ͱ·͍ͬͯΔ

  14. 14 ػೳతڽू w ࠷΋ྑ͍ڽू౓Ͱ͢ɻ w ୯Ұͷػೳ͚ͩΛ࣮ݱ͍ͯ͠·͢ɻ

  15. 15 ڽू౓·ͱΊ w ݸਓతʹ͸ҎԼͷ̐෼ྨͰे෼ͩͱߟ͍͑ͯΔ w ۮൃతڽू w ࿦ཧతڽू w ϑϥάʹΑΔॲཧͷ੾Γସ͑

    w ࣌ؒతڽू w ࣌ؒతɺखॱతɺ௨৴తɺஞ࣍త w ػೳతʹ͸ؔ࿈͕ബ͍͕ɺಉҰ࣌ؒ࣠Ͱ࣮ࢪ͢Δॲཧ w ػೳతڽू w ୯Ұػೳ ࣮ࢪ͢Δ͜ͱ͸ͳ͍ ʁ ʁ ཧ૝త
  16. 16 ڽू౓·ͱΊ w ͜͜·Ͱฉ͍ͯʮࣗ෼͸࣌ؒతڽूͯ͠͠·͍ͬͯͨͳʜʯͱࢥͬͨํ͕͍Δ͔ͱࢥ͍ ·͕͢ɺͦΕ͸ਖ਼͍͜͠ͱͰѱ͍͜ͱͰ͸͋Γ·ͤΜɻ w ໋ྩతͳϓϩάϥϜΛ࣮ߦ͍ͯ͠ΔݶΓɺ࣌ؒతͳ֓೦͕ඞͣଘࡏ͢ΔͨΊɺͦΕΛ දݱ͢Δίʔυ͕Ͳ͔͜ʹ͸ଘࡏ͍ͯ͠·͢ɻ w ͦ͜Ͱ͜ΕҎ߱Ͱ͸ݱ࣮తʹى͜ΓಘΔ࣌ؒతڽूͱ࿦ཧతڽूΛ঺հ͢Δ͜ͱͰɺͦ

    ͷಛ௃ΛΑΓৄ͘͠આ໌͍͖ͯ͠·͢ɻ
  17. ࣌ؒతڽू

  18. 18 ࣌ؒతڽू w ࣌ؒతڽू͸ѱʜ  w NBJOؔ਺ͰඞཁͳηοτΞοϓ͢Δࡍʹ͸࣌ؒతڽूʹͳΔͷͰ͸ʁ w όοΫΤϯυͷϢʔεέʔε૚ͷؔ਺΋࣌ؒతڽूͰ͸ʁ w

    ΫϥΠΞϯτ΍ΞϓϦ։ൃͷ7JFXͷϥΠϑαΠΫϧ؅ཧ͸ඪ४ϑϨʔϜϫʔΫ͕࣌ؒ తڽूΛڧ੍ͯ͘͠ΔͷͰ͸ʁ w ࣌ؒతڽू͕ઈରతͳѱͱ͍͏Θ͚Ͱ͸ͳ͍ w ඞཁʹԠ࣮ͯ͡ࢪ͠ͳ͚Ε͹͍͚ͳ͍ w ͔͠͠ؾΛ͚ͭΔϙΠϯτ͸ଘࡏ͢Δ
  19. 19 ࣌ؒతڽू w ࣌ؒతڽू w ಛఆͷ࣌ؒʹ࣮ߦ͞ΕΔෳ਺ͷॲཧ͕·ͱ·͍ͬͯΔ

  20. 20 ڐ͞Εͳ͍࣌ؒతڽूɺखॱతڽूɺ௨৴తڽूɺஞ࣍తڽू w ࣌ؒతڽू͔Βஞ࣍తڽू͸ɺػೳతڽूͷؔ਺ΛݺͿ͚ͩͳΒڐ͞ΕΔɻ w ͔͜͠͠ͷΑ͏ʹͳ͍ͬͯΔͷͳΒڐ͞Εͳ͍ɻ

  21. 21 ࣌ؒతڽूͷݱ࣮GPSόοΫΤϯυΤϯδχΞ w ॳظԽॲཧ͸࣌ؒతڽूʹͳΓ·͢ɻ

  22. 22 ࣌ؒతڽूͷݱ࣮GPSϑϩϯτɺΞϓϦΤϯδχΞ w ଟ͘ͷϓϥοτϑΥʔϜ͕ఏڙ͢Δ(6*ΞʔΩςΫνϟ͸ɺ࣌ؒతڽूΛڧ͍Δઃܭʹ ͳ͍ͬͯ·͢ɻ w ը໘ͷϥΠϑαΠΫϧʹ͋Θͤͨؔ਺͕࣮ߦ͞ΕΔ5FNQMBUF.FUIPEύλʔϯʹͳͬͯ ͍Δ͜ͱ͕ҰൠతͰ͢ɻ w 3FBDUͳΒDPNQPOFOU%JE.PVOUɺDPNQPOFOU8JMM6ONPVOUʜ

    w J04ͳΒWJFX%JE-PBEɺWJFX%JE%JTBQQFBSʜ w "OESPJEͳΒPO4UBSUɺPO4UPQʜ w ͜Ε͸ը໘ͷϥΠϑαΠΫϧ͸ඪ४ϑϨʔϜϫʔΫ͕؅ཧ͓ͯ͠ΓɺͦͷؒʹॲཧΛڬ ΉͨΊʹ͸ඞཁͳػೳͰ͢ɻ
  23. 23 ࣌ؒతڽूͷݱ࣮GPSϑϩϯτɺΞϓϦΤϯδχΞ w ϥΠϑαΠΫϧΛ؅ཧ͢Δؔ਺͸ɺલॲཧͱޙॲཧ͕͋Γ·͢ɻ w લॲཧͱޙॲཧͰؔ਺͕Θ͔Εͯ͠·͏ͨΊɺྨࣅ͍ͯ͠Δػೳతʹ͍ۙ΋ͷ͕Օॴ ʹ෼ׂ͞Εͯ͠·͍·͢ɻ

  24. 24 ࣌ؒతڽूͷݱ࣮ɺ3FBDUͷྫ ॲཧ" ॲཧ# ॲཧ$ ॲཧ" ॲཧ# ॲཧ$ ͨ·ͨ·ಉ࣌ؒ͡ʹ࣮ߦ͢Δ͚ͩͰɺ ػೳͱͯ͠͸ແؔ܎ͳॲཧΛಉؔ͡਺ʹ

    هड़͠ͳ͚Ε͹ͳΒͳ͍ ࣌ؒతڽू ಉ͡ॲཧ"ʹؔ͢Δ͜ͱͰ΋ ࣮ߦλΠϛϯάͰؔ਺͕෼͔Εͯ͠·͏
  25. 25 ࣌ؒతڽूͷݱ࣮ͱ3FBDUͷରԠ 3FBDU)PPLTͷVTF&⒎FDUؔ਺ʹΑΓٖࣅతͳػೳతڽूͱͳΔɻ ίϯϙʔωϯτͷՄಡੑ͕େ෯ʹ޲্ ॲཧ" ॲཧ"

  26. 26 3FBDU)PPLTʹΑΔ࣌ؒతڽू ͷղܾΛϏδϡΞϧԽ Ҿ༻ݩ IUUQTUXJUUFSDPNQSDIELTUBUVT

  27. 27 ࣌ؒతڽूͷݱ࣮ͱ3FBDUͷରԠ w 3FBDU͸࣌ؒతڽूΛ͜ͷΑ͏ʹղܾ͠·ͨ͠ɻ w ͜Ε͸ͱͯ΋໘ന͍ࢼΈͰ͢ɻ w ͜ͷΑ͏ʹڽू౓Λཧղ͍ͯ͠Δͱɺ3FBDU)PPLTͷVTF&⒎FDU͕ొ৔ͨ͠ͱ͖ʹ ʮԿ΍Β৽͍͠΋ͷ͕Ͱ͖ͯͨͳʁͳΜͷҙຯ͕͋ΔΜͩΖ͏ʁʯ ͱ͸ͳΒͣʹ

    ʮ࣌ؒతڽूͷ໰୊఺Λผͷ֯౓͔ΒٖࣅతʹػೳతڽूΛ࣮ݱ͍ͯ͠ΔΜͩʯ ͱཧղ͢Δ͜ͱ͕Ͱ͖ΔΑ͏ʹͳΓ·͢ɻ w ࠓճ͓఻͍͑ͨ͜͠ͱ͸VTF&⒎FDU͕ྑ͍ͱ͍͏͜ͱͰ͸ͳ͘ɺڽू౓ͷΑ͏ͳجૅͱ ͳΔ֓೦Λཧղ͓ͯ͘͜͠ͱͰɺ৽ͨͳٕज़Λద੾ʹೝࣝͰ͖ΔΑ͏ʹͳΓɺΑΓ࠷ద ͳٕज़తͳબ୒͕Ͱ͖ΔΑ͏ʹͳΔͱ͍͏͜ͱͰ͢ɻ
  28. 28 ࣌ؒతڽू·ͱΊ w ࣌ؒతڽू͸ɺঢ়گʹԠ࣮ͯ͡ࢪ͠ͳ͚Ε͹͍͚ͳ͍͜ͱ͕͋Δɻ w ͨͩ࣌ؒ͠తڽूͷؔ਺಺Ͱ͸ɺػೳతڽूͷؔ਺Λ࣮ߦ͢Δ͚ͩʹ͢Δɻ w ڽू౓Λཧղ͍ͯ͠Δͱ৽͍͠ΞϓϩʔνΛద੾ʹཧղͰ͖Δɻ

  29. ࿦ཧతڽू

  30. 30 ࿦ཧతڽूʹͳΔέʔε w Ϣʔεέʔε͕ҟͳΔ͕ɺॲཧ͕ࣅ͍ͯΔ࣮૷Λ%3:ʹ͢Δͱ͖ʹؾΛ͚ͭͳ͚Ε͹ͳ Βͳ͍ w ࠷ॳ͸6TFDBTF͚ͩΛ૝ఆ͢Ε͹Α͔͕ͬͨɺͦͷؔ਺ͷ··6TFDBTFΛ૝ఆ͢Δͱ ࿦ཧతڽूʹͳΔ w ͜Ε͸΍Γ͕ͪͰΑ͘ͳ͍͜ͱͱ֮ࣗͰ͖͍ͯͳ͍͜ͱ͕ଟ͍ɻ

    6TFDBTF͸ Dͷ࣮ߦ͕ෆཁ
  31. 31 ࿦ཧతڽूʹͳΔέʔε w ͭͷϢʔεέʔε͚ͩͰ͸ͳ͘ɺ͜Ε͕ͭͭͱ૿͍͑ͯ͘ͱͦͷϞδϡʔϧ͸ϑϥ άͩΒ͚ʹͳΔɻ w ·ͨෳ਺ͷϢʔεέʔεΛදݱ͢Δؔ਺ʹͳΔ͜ͱͰଞͷϢʔεέʔε΁ͷӨڹ͕͋Δ ؔ਺ʹͳͬͯ͠·͏ɻ w 6TFDBTFΛมߋͨ݁͠Ռɺ6TFDBTF

     ͷʹόά͕ൃੜ͢ΔՄೳੑ͕͋Δ w ଞͷϢʔεέʔε΁ͷӨڹ͕େ͖͘ͳͬͯ͘Δͱɺڽू౓͕௿͘ͳ͍ͬͯΔͱݴ͑Δɻ w ӨڹൣғΛཧղ͢Δ͜ͱ͕೉͘͠ͳΔɻ
  32. 32 ࿦ཧతڽूΛճආ͢Δํ๏ w Ϣʔεέʔε͝ͱʹؔ਺Λఆٛ͢Δɻ w ͜ΕʹΑΓVTFDBTFΛදݱ͢Δؔ਺͕࿦ཧతڽू͔Β࣌ؒతڽूʹͳΔ 6TFDBTFͱ 6TFDBTFΛ෼཭

  33. 33 ࿦ཧతڽूΛճආ͢Δํ๏

  34. 34 ࿦ཧతڽूΛճආ͢Δํ๏6TFDBTFΛ࠶ར༻ͨ͘͠ͳΔ৔߹ͦͷ w 6TFDBTFΛ෼཭ͤͣ࠶ར༻ͨ͘͠ͳΔཧ༝͸ɺ࣌ؒతڽूͷؔ਺ʹৄࡉͳ࣮૷Λॻ͖ա ͍͗ͯΔͨΊ ͱͰॏෳ͕ଟ͍ͨΊ࠶ར༻ͨ͘͠ͳΔ͕

  35. 35 ࿦ཧతڽूΛճආ͢Δํ๏6TFDBTFΛ࠶ར༻ͨ͘͠ͳΔ৔߹ͦͷ w ղܾࡦ w ࣌ؒతڽूͷؔ਺ʹৄࡉͳ࣮૷Λॻ͖͗ͨ͢ͱ͖ʹ͸ɺ6TFDBTFΛ࠶ར༻Ͱ͖Δܗʹ ͢ΔͷͰ͸ͳ͘ɺ6TFDBTFͷ಺෦ͷػೳΛػೳతڽूͰؔ਺Խ͢Δ w ࣌ؒతڽूͰ͋ΔϢʔεέʔεͷؔ਺͕ɺผͷػೳతڽूͷؔ਺Λݺͼग़͚ͩ͢ͷ࣮ ૷ʹͳ͍ͬͯΕ͹ɺෳ਺ͷϢʔεέʔεʹରԠͯ͠࠶ར༻͢Δඞཁੑ͸௿Լ͢Δɻ

    B C D EͷॲཧΛػೳతڽूͷؔ਺ʹ෼཭͢Δ
  36. 36 ࿦ཧతڽूΛճආ͢Δํ๏6TFDBTFΛ࠶ར༻ͨ͘͠ͳΔ৔߹ͦͷ w ࣮ߦॱংΛදݱ͢Δ͜ͱΛ%3:ʹ͍ͨ͠ w ؾ࣋ͪ͸͘͢͝Θ͔Δʜ͕࿦ཧతڽूͷฐ֐ͱఱṝʹ͔͚ͯબ୒͠ͳ͚Ε͹ͳΒͳ͍ w ଟ͘ͷ৔߹͸࿦ཧతڽूΛճආͨ͠ํ͕ਖ਼ղ w ܦݧͱͯ͠͸ɺॱংʹҙຯ͕͋Δ৔߹͸

    w ॱং͕มΘΔ৔߹͸΄ͱΜͲ͓͜Βͳ͍ w ॱং͕มΘͬͯ΋ɺͦͷ৔߹͸ػೳ͠ͳ͘ͳΔͷͰ࠷௿ݶͷಈ࡞֬ೝͰؾ͕ͭ͘ ΋͠CΛBͷલʹݺͿΑ͏ʹͳͬͨΒ྆ํ௚͞ͳ͚Ε͹͍͚ͳ͍͕
  37. 37 ࿦ཧతڽूΛճආ͢ΔϝϦοτ w ࿦ཧతڽूΛճආͭͭ͠ɺ࣮૷ৄࡉΛػೳతڽूͱͯ͠෼཭͍ͯ͘͠ͱɺϢʔεέʔε Λදݱ͢ΔϨΠϠʔ͔Β৚݅෼ذ͕ফ͑Δɻ w ͦ͏ͳΔͱϢʔεέʔεͷՄಡੑ͕େ෯ʹ޲্͢Δɻ w ϢʔεέʔεͰඞཁͳॲཧ͚͕ͩॻ͔ΕΔͨΊɻ w

    ·ͨผͷྨࣅͨ͠Ϣʔεέʔε͕ੜ·Εͨ৔߹ʹɺଞͷϢʔεέʔε͔Βίϐϖ͢Δͩ ͚Ͱ࡞ΕΔΑ͏ʹͳΔɻ VTFDBTF͔ΒΛ࡞Δͷ͸ͱͯ΋؆୯ VTFDBTF͕B C EΛ࣮ࢪ͍ͯ͠Δ͜ͱ͸໌Β͔
  38. 38 ࿦ཧతڽूΛճආ͢ΔϝϦοτ w ୯Ұ੹೚ʹͳΔ w ୯ҰͷϢʔεέʔε͚ͩΛ੹຿ʹ࣋ͭ w ػೳΛ࣌ؒ࣠ͷͲ͜ʹ഑ஔ͢Δ͔͚ͩΛ੹຿ͱͯ࣋ͭ͠ w ͭ·Γɺର৅Ϣʔεέʔεͷ࣮ߦॱং͕มΘ͚ͬͨ࣌ͩϢʔεέʔεͷؔ਺Λมߋ͢Δ

    ͜ͱʹͳΔ VTFDBTFͷมߋ͕ඞཁͳέʔε͸ͱͯ΋ݶఆత
  39. 39 ࿦ཧతڽूͷ۩ମྫ w ͜͜·ͰͰ࿦ཧతڽूΛΠϝʔδͯ͠΋Β͑ͨͱࢥ͍·͢ w ଓ͍ͯ΋͏গ͠۩ମతͳྫΛ঺հ͠·͢ w Αࣗ͘વʹ΍ͬͯ͠·͏࣮ྫ͓఻͑͢Δ͜ͱͰʮ࿦ཧతڽू͕ຊ౰ʹѱ͍ͷ͔ʁʯͱ ࠞཚͯ͠௖͖͍ͨͱࢥ͍·͢

  40. 40 ࿦ཧతڽूͷળѱϢʔεέʔε૚GPSόοΫΤϯυΤϯδχΞ w ྫ νϟοτͷϝοηʔδૹ৴ɹςΩετͱελϯϓͷछྨͷϝοηʔδΛૹΕΔ

  41. 41 ࿦ཧతڽूͷળѱϢʔεέʔε૚GPSόοΫΤϯυΤϯδχΞ w ྫ νϟοτͷϝοηʔδૹ৴ɹςΩετͱελϯϓͷछྨͷϝοηʔδΛૹΕΔ ݺͼग़͠ଆͷίʔυ͕γϯϓϧʹͳΓڞ௨ॲཧΛ࠶ར༻Ͱ͖͍ͯΔ

  42. 42 ࿦ཧతڽूͷળѱϢʔεέʔε૚GPSόοΫΤϯυΤϯδχΞ w ྫ νϟοτͷϝοηʔδૹ৴ɹςΩετͱελϯϓͷछྨͷϝοηʔδΛૹΕΔ NTH5ZQFΛ౉ͯ͠৚݅෼ذΛ͍ͯ͠Δ࿦ཧతڽूͰ͋Δ

  43. 43 ࿦ཧతڽूͷળѱϢʔεέʔε૚GPSόοΫΤϯυΤϯδχΞ w ྫ νϟοτͷϝοηʔδૹ৴ɹςΩετͱελϯϓͷछྨͷϝοηʔδΛૹΕΔ UFYUͱTUBNQͰϢʔεέʔεΛ෼͚Δ͜ͱͰ ࿦ཧతڽूΛճආ͢Δ

  44. 44 ࿦ཧతڽूͷળѱGPSΞϓϦɺϑϩϯτΤϯδχΞ w ͪ͜Β΋࿦ཧతڽूʹͳΓ·͕͢ɺΑ͘΍ͬͯ͠·͏͜ͱͰ͸ͳ͍Ͱ͠ΐ͏͔ w ྫ 1SPpMFը໘ w Ϣʔβ͸໊લͱ೥ྸ w

    ҩऀ͸໊લͱ೥ྸͱۈ຿೔ 6TFS5ZQFʹԠͯ͡8PSLJOH%BZTΛ දࣔ͢Δ͔Ͳ͏͔ܾΊΔ
  45. 45 ࿦ཧతڽूͷળѱGPSΞϓϦɺϑϩϯτΤϯδχΞ w ͔͠͠%PDUPSͷϓϩϑΟʔϧը໘ͱ6TFSͷϓϩϑΟʔϧը໘ͱ͍͏ͷ͸ɺϢʔεέʔ ε͕ҟͳΓ·͢ɻ w ͨ·ͨ·OBNFͱBHFͱ͍͏ಉ͡ϑΟʔϧυΛ͍࣋ͬͯͨՄೳੑ͕ߴ͍Ͱ͢ɻ w ͔࣮͠͠૷ͱͯ͠͸OBNFͱBHF͕ڞ௨͔ͩΒ࠶ར༻ͨ͘͠ͳΓ·͢ɻ 6TFS5ZQFʹԠͯ͡8PSLJOH%BZTΛ

    දࣔ͢Δ͔Ͳ͏͔ܾΊΔ
  46. 46 ࿦ཧతڽूͷળѱGPSΞϓϦɺϑϩϯτΤϯδχΞ w Ϣʔεέʔε͕ίϯϙʔωϯτʹ༩͑ΔӨڹΛߟ͑Δ w Ϣʔεέʔεͷมߋྫ w Ϣʔβ w ໊લɺ೥ྸɺੑผ

    ௥Ճ  w ҩऀ w ໊લɺ೥ྸ ࡟আ ɺۈ຿೔ w ͜ΕΒ͸ݸผͷϢʔεέʔεʹΑΔมߋͰ͕͢ɺ͢΂͕͓ͯޓ͍ʹؔ܎ͳ͍͸ͣͳͷ ʹ͓ޓ͍ͷ࣮૷ʹӨڹͯ͠͠·͍·͢ w ৚݅෼ذͷ࣮૷ΛޡΔͱҩऀͷ೥ྸΛදࣔͯ͠͠·͏͔΋͠Εͳ͍ ͓ޓ͍ʹϢʔεέʔεͷมߋ͕ଞͷίϯϙʔωϯτͷ࣮૷ʹӨڹ͍ͯ͠Δ
  47. 47 ࿦ཧతڽूͷળѱGPSΞϓϦɺϑϩϯτΤϯδχΞ w Ϣʔεέʔε͕ίϯϙʔωϯτʹ༩͑ΔӨڹΛߟ͑Δ w Ϣʔεέʔεͷมߋྫ w Ϣʔβ w ໊લ

    ࡟আ ɺ೥ྸ ੜ೥݄೔ʹมߋ  w ҩऀ w ໊લɺ೥ྸɺۈ຿೔ w ͜ͷมߋʹΑΓϢʔβͱҩऀͷϓϩϑΟʔϧʹಉ߲͡໨͸ͳ͘ͳΓ·ͨ͠ w ಉ͡ίϯϙʔωϯτʹ͍ͯ͠Δཧ༝͕ͳ͘ͳͬͨͷͰ෼཭͠·͔͢  w ϢʔεέʔεͷมߋʹԠͯ͡ίϯϙʔωϯτͷઃܭ͕มΘΔͷ͸ෆ҆ఆͳઃܭͰ͢ w ·ͨڞ௨ͷ߲໨͕ొ৔ͨ͠Βɺ࠶౓ڞ௨ͷίϯϙʔωϯτΛ࡞Γ·͔͢ʁ w ͦͯ͠·ͨڞ௨ͷ߲໨͕ͳ͘ͳͬͨΒɺ·ͨ෼཭ʜ ڞ௨߲໨ͷ༗ແ͕ઃܭʹӨڹ͍ͯ͠Δ
  48. 48 ࿦ཧతڽूͷળѱGPSΞϓϦɺϑϩϯτΤϯδχΞ w ղܾࡦ w Ϣʔεέʔε͝ͱʹίϯϙʔωϯτΛ࡞੒͠·͢ w 6TFS1SPpMF ໊લɺ೥ྸ 

    w ੑผ͕ඞཁͳΒ௥Ճɺ೥ྸΛੜ೥݄೔ʹมߋ w %PDUPS1SPpMF ໊લɺ೥ྸɺۈ຿೔  w ೥ྸ͕ෆཁͳΒ࡟আ w લఏ w ֤ཁૉͷίϯϙʔωϯτ͸ɺϢʔεέʔεඇґଘͷը໘ͷύʔπͱͯ͠ػೳత ڽूͰఆ͓ٛͯ͘͠ /BNFɺ"HFɺ8PSLJOH%BZT ͓ޓ͍ʹϢʔεέʔεͷมߋ͕ ଞͷίϯϙʔωϯτͷ࣮૷ʹӨڹ͠ͳ͍ ڞ௨߲໨ͷ༗ແ͸ઃܭʹӨڹ͠ͳ͍
  49. 49 ࣮͸͜ͷ࿩͸ॻ੶$MFBO"SDIJUFDUVSFʹొ৔͍ͯ͠·͢ w $MFBO"SDIJUFDUVSFΛಡΜͩ͜ͱ͕͋Δํ͸ɺ͜ͷจষͷҙਤΛద੾ʹଊ͑Δ͜ͱ͕Ͱ ͖͍ͯͨͰ͠ΐ͏͔ʁ w ࿦ཧతڽूΛཧղ͍ͯ͠ΔࠓͳΒΑΓ໌֬ʹཧղͰ͖Δͱࢥ͍·͢ w ࠶ܝ w

    ڽू౓ͷΑ͏ͳجૅͱͳΔ֓೦Λཧղ͓ͯ͘͜͠ͱͰɺ৽ͨͳٕज़Λద੾ʹೝࣝͰ͖ ΔΑ͏ʹͳΓɺΑΓ࠷దͳٕज़తͳબ୒͕Ͱ͖ΔΑ͏ʹͳΓ·͢ɻ Ҿ༻ݩ$MFBO"SDIJUFDUVSFɹୡਓʹֶͿιϑτ΢ΣΞͷߏ଄ͱઃܭ ϢʔεέʔεΛਨ௚ʹ෼཭͍ͯ͠Δͱɺ͜͏ͨ͠໰୊ʹૺ۰͢Δɻͦͯ͠ɺϢʔεέʔεΛ౷߹ͨ͘͠ͳΔɻͳͥͳΒɺ ը໘ߏ੒͕ࣅ͍ͯͨΓɺΞϧΰϦζϜ͕ࣅ͍ͯͨΓɺσʔλϕʔεͷΫΤϦ΍εΩʔϚ͕ࣅ͍ͯͨΓ͢Δ͔Βͩɻ ൓ࣹతʹॏෳΛഉআ͢ΔࡑΛ൜ͯ͠͸͍͚ͳ͍ɻͦͷॏෳ͕ຊ෺͔Ͳ͏͔ΛݟۃΊΔ΂͖ͩ
  50. 50 ࿦ཧతڽूͱػೳతڽूͷڥք w Ͱ͸ɺ͜ͷΑ͏ͳ࣮૷͸࿦ཧతڽूͰ͠ΐ͏͔ʁ w ͜Ε͸ͲͪΒͱ΋ݴ͑ͳ͘͸͋Γ·ͤΜɻ w ύϥϝʔλΛ౉ͯ͠ػೳͷ࣮ߦΛ੾Γସ͍͑ͯΔͷ͔ͩΒɺ࿦ཧతڽूʁ w Ϣʔεέʔεʹґଘ͠ͳ͍൚༻తͳؔ਺ͳͷͰػೳతڽूʁ

    w ͢΂ͯͷϑΥʔϜʹར༻Ͱ͖Δ w ਖ਼ղ͸ͳ͍ͷͰదٓ൑அ͕ඞཁ MBCFM͕ۭͩͬͨΒදࣔ͠ͳ͍
  51. 51 ࿦ཧతڽू·ͱΊ w Ϣʔεέʔε͕ҟͳΔ͕ɺॲཧ͕ࣅ͍ͯΔ࣮૷Λ͢Δͱ͖ʹؾΛ͚ͭͳ͚Ε͹͍͚ͳ͍ w ຊ౰ʹͦͷϢʔεέʔεΛ࠶ར༻͢Δඞཁ͕͋Δͷ͔Λߟ͑ͳͯ͘͸͍͚ͳ͍ w ࿦ཧతڽूΛճආ͢ΔͱϢʔεέʔεͷڽू౓্͕͕Δɻ w ଞͷϢʔεέʔεʹӨڹΛ༩͑ͳ͘ͳΔ

    w Ϣʔεέʔε͔Β৚݅෼ذ͕ͳ͘ͳΔ w ݴޠ΍ϓϥοτϑΥʔϜʹݶΒͣൃੜ͢Δ
  52. ڽू౓·ͱΊ

  53. 53 ڽू౓·ͱΊ w ۮൃతڽू w ࿦ཧతڽू w ϑϥάʹΑΔॲཧͷ੾Γସ͑ w ࣌ؒతڽूɺखॱతڽूɺ௨৴తڽूɺஞ࣍తڽू

    w ػೳతʹ͸ؔ࿈͕ബ͍͕ɺಉҰ࣌ؒ࣠ͰॲཧΛ࣮ࢪ͢Δ w ػೳతڽू ࠷΋ྑ͍  w ୯Ұػೳ ࣮ࢪ͢Δ͜ͱ͸ͳ͍ ࣮ࢪ͕͕ͪͩ͠ ۃྗ࣮ࢪ͢Δ΂͖Ͱ͸ͳ͍ ঢ়گʹԠ࣮ͯ͡ࢪ͢Δඞཁ͋Γ ཧ૝త
  54. 54 ڽू౓·ͱΊ w ͢΂͕ͯػೳతڽूʹ͢Ε͹Α͍ͱ͍͏୯७ͳ࿩Ͱ͸͋Γ·ͤΜɻ w ػೳతڽूΛ໨ࢦ͢΂͖Ͱ͕͢ɺݱ࣮తʹ͸ͦ͏͸ͳΒͳ͍͜ͱ͕͋Γ·͢ɻ w ϨϏϡʔͷࡍʹ͸Կނݱࡏ͸ػೳతڽूͰ͸ͳ͘ɺ࣌ؒతڽू΍࿦ཧతڽूΛબΜ͔ͩ Λઆ໌Ͱ͖Δ͜ͱ͕େ੾Ͱ͢ɻ

  55. ݁߹౓

  56. 56 ݁߹౓ w ݁߹౓͕௿͍ͱྑ͍ؔ਺Ͱ͋Γɺߴ͍ͱѱ͍ؔ਺Ͱ͋Γɺ݁߹౓ʹ͸ϥϯΫ͕ଘࡏ͍ͯ͠Δ w ಺༰݁߹ʢ࠷ѱ  w ଞͷؔ਺ͱ֎෦એݴ͞Ε͍ͯͳ͍஋Ͱ݁߹͞Ε͍ͯΔɻ$ݴޠͰಛఆͷΞυϨεͷ஋Λ௚઀มߋ͢ΔͳͲ w

    ڞ௨݁߹ w ڞ௨ͷάϩʔόϧม਺Ͱ݁߹͞Ε͍ͯΔ w ֎෦݁߹ w QVCMJDม਺Ͱ݁߹͞Ε͍ͯΔ w ੍ޚ݁߹ w ར༻͢Δଆͷؔ਺͕ར༻͞ΕΔଆͷૢ࡞ΛϑϥάͰࢦࣔ͢Δ͜ͱͰ݁߹͍ͯ͠Δɻݺͼग़͞ΕΔଆ͸࿦ཧ తڽूʹͳΔ w ελϯϓ݁߹ w ߏ଄ମ΍ΫϥεͳͲͷड͚౉͠Ͱ݁߹͍ͯ͠Δ w σʔλ݁߹ w εΧϥʔܕͷड͚౉͠Ͱ݁߹͍ͯ͠Δ w ϝοηʔδ݁߹ ࠷ྑ  w ؔ਺ͷ࣮ߦͰ݁߹͍ͯ͠Δɻ஋ͷड͚౉͠͸ଘࡏ͠ͳ͍ɻ
  57. 57 ݁߹౓ w ಺༰݁߹ʢ࠷ѱ  w ڞ௨݁߹ɺ֎෦݁߹ w άϩʔόϧม਺ʹΑΔड͚౉͠ w

    ੍ޚ݁߹ w ؔ਺ύϥϝʔλʹΑΓࢦࣔΛग़͢ w ελϯϓ݁߹ɺσʔλ݁߹ɺϝοηʔδ݁߹ w ؔ਺ύϥϝʔλʹΑΔ஋ͷड͚౉͠ ى͜Γಘͳ͍ ࣮ࢪ͢Δ΂͖Ͱ͸ͳ͍ ཧ૝త ࣮ࢪ͕͕ͪͩ͠ ۃྗ࣮ࢪ͢Δ΂͖Ͱ͸ͳ͍
  58. 58 ݁߹౓·ͱΊ w ଟ͘ͷਓ͕௚ײతʹڞ௨݁߹ɺ֎෦݁߹͕Α͘ͳ͘ɺελϯϓ݁߹ɺσʔλ݁߹ɺϝο ηʔδ݁߹Λ໨ࢦ͢΂͖͜ͱ͸஌͍ͬͯΔͱࢥ͍·͢ɻ w ੍ޚ݁߹͸ɺҰݟελϯϓ݁߹΍σʔλ݁߹ͱͷ۠ผ͕೉͍ͨ͠Ίɺݟམͱ͕ͪ͠ͳͷ Ͱɺಛʹ஫ҙΛ͢Δඞཁ͕͋Γ·͢ɻ w ͔͠͠࿦ཧతڽू͑͞ؾΛ͚͍ͭͯΕ͹ࣗવͱ੍ޚ݁߹΋ճආͰ͖ΔͷͰɺ݁߹౓͸ڽ

    ू౓΄ͲؾΛ͚ͭͳͯ͘΋ࣗવͱྑ͍݁߹Λ࣮ݱͰ͖ΔͷͰ͸ͳ͍͔ͱࢥ͍·͢ɻ
  59. ͓ΘΓʹ

  60. 60 ͓ΘΓʹ w ۙ೥༷ʑͳΞʔΩςΫνϟ͕ొ৔ͯ͠ɺ·ͬͨ͘৽͍͠΋ͷ͕ొ৔ͨ͠Α͏ʹײ͡Δ͜ ͱ͕͋Δ͔ͱࢥ͍·͢ɻ w ͔ͦ͠͠ΕΒͷ͢΂ͯͷجຊతͳ౔୆͸มΘ͍ͬͯΔΘ͚Ͱ͸͋Γ·ͤΜɻ w ؔ৺͝ͱͷ෼཭ w

    ୯Ұ੹೚ w ந৅౓ͷ౷Ұ w ڽू౓ͱ݁߹౓΋͜ΕΒͷ౔୆ͷ্ʹؔ਺ͷ࣮૷ํ๏ͱ͍͏ࢹ఺Ͱ·ͱΊͳ͓ͨ͠΋ͷ Ͱ͢ɻ w ۙ೥ొ৔͢ΔΞʔΩςΫνϟ΋ಉ༷Ͱ͢ɻ w $MFBO"SDIJUDUVSF΍3FBDU)PPLTͷ͓࿩Ͱͨ͠௨Γɺ͜ΕΒͷ౔୆Λਖ਼͘͠ཧղ͢Δ͜ ͱͰɺ৽ͨͳΞʔΩςΫνϟʹࠞཚ͢Δ͜ͱͳ͘εϜʔζʹཧղͰ͖ΔΑ͏ʹͳΓ· ͢ɻ
  61. 61 Έͳ͞Μ͸ͲͷΑ͏ʹؔ਺Λ෼ׂ͍ͯ͠·͔͢ʁ ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠