部品間の関係を利用したソフトウェア部品の分類手法の提案
8
0
0
全文
(2) Vol.2016-SE-194 No.8 2016/11/18. ใॲཧֶձڀݚใࠂ IPSJ SIG Technical Report. ͷؔͷྨࣅੑ͔Βػೳׂ͕ྨࣅ͍ͯ͠Δ෦Λநग़. ͑ΒΕΔ͕ɼຊͰڀݚɼޙड़͢Δར༻ؔͷลɼ͘͠. ͢Δɽྨͷํ๏ͱͯ͠ɼ෦άϥϑ্Ͱͷ֤෦ͷೖग़. ίʔυΫϩʔϯؔͷลɼ྆͘͠ํͷลΛ෦άϥ. ྗลͷͳͲΛ༻͍ͯͷࣅ͍ͯΔ෦͝ͱʹྨ͢Δํ. ϑ্Ͱද͢ݱΔɽ. ๏ɼར༻ઌʢར༻ݩʣͷ෦͕ͲΕ͚ͩҰக͍ͯ͠Δ͔ͱ ͍͏ྨࣅ͔Β֤෦ؒͷڑΛٻΊͯྨ͢Δํ๏ͷೋ ௨Γͷํ๏ΛఏҊ͢Δɽ. 2.2 ιϑτΣΞ෦άϥϑ্Ͱද͢ݱΔลʹ͍ͭͯ ιϑτΣΞ෦ʹ͓͚Δར༻ؔͱɼ͋Δ෦͕ࣗ. લऀɼ෦άϥϑ͔ΒಘΒΕͨΛ༻͍ͯɼͷ. ͷػೳΛ࣮͢ݱΔࡍʹɼଞͷ෦ͷ࣋ͭػೳΛར༻ͯ͠. ྨࣅੑΛͱʹྨࣅ෦Λఆ͢Δɽ෦άϥϑʹ͓͚Δ. ࣮͢ݱΔ͜ͱΛࢦ͢ɽ͜ΕΒͷؔΛཧղ͢Δ͜ͱͰɼ͋. ར༻ؔͷೖྗลͷɼར༻ؔͷग़ྗลͷɼίʔυΫ. Δػೳ͕࣮͍ͯ͠ݱΔػೳ͕ɼιϑτΣΞͷͲͷ෦܈. ϩʔϯΛڞ༗͍ͯ͠Δ෦ͷͱ͍ͬͨఆཁૉΛ͍ͭ͘. Λࢀর͢Δ͜ͱͰѲͰ͖Δ͔ͳͲΛࢧԉͰ͖Δɽຊڀݚ. ͔Έ߹ΘͤͯɼΫϥελʔੳΛߦ͍ɼͷ͕ࣅͯ. Ͱɼར༻ؔΛղੳ͢ΔͨΊʹɼ Classycle[3] Λར༻͢. ͍Δ෦܈Λநग़͢ΔɽͦΕͧΕͷࣗମ͕ऑ͍ؔੑΛ. Δɽར༻ؔͱͯ͠ɼΫϥεͷܧঝɼΠϯελϯεͷੜɼ. ࣋ͭͱߟ͑ΒΕɼҧͬͨҙຯΛද͢ෳͷࢦඪΛ༻͍Δ͜. ϝιουͷͼݺग़͠ɼϑΟʔϧυͷࢀরΛར༻ؔͱͯ͠. ͱͰɼޮՌతʹྨ͕Ͱ͖ΔͷͰͳ͍͔ͱߟ͑ͨɽ. நग़͠ɼར༻ݩͷ෦͔Βར༻ઌͷ෦ͷ༗ลͱͯ͠. ҰํͰऀޙɼ෦άϥϑ্Ͱද͞ݱΕΔར༻͔ؔΒɼ. ఆٛ͠ɼ෦άϥϑ্Ͱද͢ݱΔɽ. ಉ͡෦Λར༻͍ͯ͠Δɼ͘͠ಉ͡෦͔Βར༻͞Ε. ιϑτΣΞ෦ʹ͓͍ͯɼྨࣅͨ͠هड़Λίʔυஅ. ͍ͯΔͱ͍͏ɼΑΓ͍ؔڧੑΛࣔ͢ࢦඪΛ༻ҙ͠ɼͦͷ. ยͱͯ͠ڞ༗͢Δ෦͕ଘࡏ͢Δ߹͕͋Δɽ͜ͷΑ͏ͳ. ࢦඪʹ͍ͯͮجΫϥελʔੳΛߦ͍ɼྨΛߦ͏ɽͦΕ. ෦Λ·ͱΊͯѲ͓ͯ͘͜͠ͱͰɼ͋Δमਖ਼͕ඞཁʹͳͬ. ͧΕͷ෦ʹ͓͍ͯɼར༻͍ͯ͠Δ෦ɼར༻͞Ε͍ͯ. ͨ߹ʹಉछͷରࡦΛߦ͏͖͔ͷݕ౼͕ඞཁͱͳΔ෦. Δ෦ͷू߹ΛٻΊɼ֤෦ରʹ͍ͭͯू߹ͷྨࣅΛٻ. ͷू߹Λऔಘ͢Δ͜ͱ͕༰қͱͳΔͱߟ͑ΒΕΔɽͦͷΑ. Ίɼ෦ؒͷؔ͢ʹڑΔྻߦڑΛ࡞͢Δɻ. ͏ͳɼྨࣅͨ͠هड़Λίʔυஅยͱͯ͠ڞ༗͍ͯ͠Δ෦. Φʔϓϯιʔε։ൃϓϩδΣΫτͷιʔείʔυຊख. ؒʹɼίʔυΫϩʔϯؔΛද͢ลΛఆٛ͢ΔɽຊͰڀݚ. ๏ͷద༻Λߦ͍ɼಘΒΕͨ݁Ռ͔Β֤ྨํ๏ͷಛΛߟ. ɼίʔυΫϩʔϯؔΛղੳ͢ΔͨΊʹɼ CCfinder[5]. ͢Δɽྨ݁ՌΛ༻͍Δ͜ͱͰɼੳରιϑτΣΞ. Λར༻͢ΔɽҰக͢Δίʔυย͕ 30 τʔΫϯҎ্ʹΘͨ. Λػೳతͳ·ͱ·Γͱͯ͠Ѳ͢Δ͜ͱΛࢧԉͰ͖Δͱͱ. ΔίʔυยΛڞ༗͍ͯ͠Δ෦ؒʹίʔυΫϩʔϯ͕ؔ. ʹɼࣅͨΑ͏ͳػೳΛ࣮͢ݱΔ෦ɼ͋Δ෦Ͱ࣮͠ݱ. ଘࡏ͢Δͱఆٛ͢Δɽͪ͜Βͷؔɼ͖Λߟྀͤͣʹɼ. ͍ͯΔػೳ·ؚʹ܈ΕΔ෦ͱ͍͏ͰܗɼιϑτΣΞΛ. ແลͱͯ͠෦άϥϑ্Ͱද͢ݱΔɽ. ߏ͢Δ෦Λ෦ͯ͠ͱ܈ѲͰ͖Δͱߟ͑ΒΕΔɽ ҎԼͰɼ2 ষͰഎٕܠज़Λհͨ͠ͷͪʹɼ3 ষͰఏҊ ख๏ʹ͓͚Δ 2 छྨͷྨख๏ʹ͍ͭͯ֓ཁΛհ͢Δɽ. 4 ষɼ5 ষͰͦΕͧΕͷํ๏ͷखॱద༻ࣄྫΛհ͢Δɽ. 2. എٕܠज़ 2.1 ιϑτΣΞ෦ͱιϑτΣΞ෦άϥϑ. 2.3 ιϑτΣΞ෦ͷಛΛද͢ϝτϦΫεΛ༻͍ͨ ྨख๏ʹ͍ͭͯ ιϑτΣΞ෦ͷಛΛද͢ϝτϦΫεΛιʔείʔ υ͔Βೖखͯ͠ɼಉҰ͘͠ྨࣅͨ͠෦Λநग़͢Δख ๏ͱͯ͠ɼখງΒ Luigi ΛఏҊ͍ͯ͠Δ [11]ɽ͜ͷํ๏ Ͱɼ੍ߏޚͷෳࡶ͞Λද͢ݱΔαΠΫϩϚνοΫ. ιϑτΣΞ෦ͱɼͦͷ༰ΛΧϓηϧԽͨ͠͏͑. ϝιουͳͲΛओϝτϦΫεͱఆٛͨ͠͏͑ͰɼنΛ. ͰɼιϑτΣΞΛ࣮͢ݱΔަ͍͓ͯʹڥՄೳͳܗ. ද͢ݱΔτʔΫϯओϝτϦΫε͕ྨࣅ͍ͯ͠Δ͔ʹ. ͰஔͰ͖ΔΑ͏ʹͨ͠γεςϜϞδϡʔϧͷҰ෦Λࢦ. ॏΛஔ͍ͨ͏͑ͰɼಉҰ͘͠ྨࣅͨ͠ͷ෦Λந. ͢ [6]ɻຊͰڀݚɼJava Ͱهड़͞ΕͨιϑτΣΞΛର. ग़͢Δɽ͜ͷख๏ɼΫϥε୯ҐͷίϐʔΞϯυϖʔετ. ͱ͠ɼͦΕͧΕͷΫϥεͷιʔείʔυ͕هड़͞Ε͍ͯ. Λัଊ͢Δ͜ͱΛओͳతͱ͓ͯ͠ΓɼιϑτΣΞ෦. ΔϑΝΠϧΛ෦ͷ୯Ґͱͯ͠ѻ͏ɽ. ࡧݕγεςϜʹ͓͍ͯଟͷιϑτΣΞ͔Β෦Λநग़. ιϑτΣΞ෦ؒʹɼ͋Δ෦͕͋Δ෦Λར༻͢. ͨ͠ͷͪʹɼ֤ιϑτΣΞΛߏ͢Δ෦͕ଓ͞Εͨ. Δɼ͘͠ɼ͋Δ෦͕͋Δ෦ͱྨࣅίʔυยΛڞ༗. ঢ়ଶͱͳΔΑ͏ʹɼιϑτΣΞؒͰಉҰͱࢥΘΕΔ෦. ͍ͯ͠ΔͳͲͷؔΛઃఆ͢Δ͜ͱ͕Ͱ͖Δɽ͜ΕΒͷι. Λநग़͢Δख๏Ͱ͋Δɽ. ϑτΣΞ෦ؒͷؔΛάϥϑߏΛ༻͍ͯϞσϧԽ͠ɼ. ࠓճզʑ͕ఏҊ͠Α͏ͱ͍ͯ͠Δख๏ɼ͋ΔҰͭͷι. ιϑτΣΞ෦άϥϑͱͯ͠ද͢ݱΔɽιϑτΣΞ෦. ϑτΣΞͷதʹଘࡏ͢Δɼྨࣅͨ͠ػೳΛ࣮͍ͯ͠ݱΔ. άϥϑʹ͓͚Δ֤ͦΕͧΕͷ෦Λද͠ɼล෦. ෦ɼιϑτΣΞͰͷ෦ͷཱɼׂͳͲ͕ྨࣅ. ؒͷؔΛද͢ݱΔɽͦΕͧΕͷੳख๏ʹΑͬͯɼ෦. ͍ͯ͠Δ෦Λ෦ͱ·ͯ͠ͱ܈ΊΔ͜ͱΛతͱͯ͠. άϥϑ্Ͱද͢ݱΔล͕ࢦࣔ͢͠ҙຯ͕ҟͳΔ͜ͱ͕ߟ. ͍Δɽ. c 2016 Information Processing Society of Japan . 2.
(3) Vol.2016-SE-194 No.8 2016/11/18. ใॲཧֶձڀݚใࠂ IPSJ SIG Technical Report. ࣄલͯ͠ͱڀݚɼڮΒɼιϑτΣΞΛߏ͢Δͦ ΕͧΕͷ෦͔Βͦͷ෦ͷಛΛ͋ΒΘ͢ϝτϦΫεΛ. ʹɼΞʔΩςΫνϟͷϨΠϠʔͱσβΠϯϝτϦΫεͱͷ ؔΛௐࠪͨ͠ [4]ɽ. நग़ͯ͠ɼಉ͡Α͏ͳΛ࣋ͭ෦͚ͩΛબͿ͜ͱͰɼಉ. ίʔυΫϩʔϯؔΛར༻ͨ͠ղੳํ๏ͱͯ͠ɼMondal. ͡Α͏ͳߏͰ͋ͬͨΓɼಉ͡Α͏ͳׂΛ࣋ͭ෦͚ͩ. ίʔυΫϩʔϯͷ҆ఆੑΛछྨ͝ͱʹௐࠪ͠ɼΪϟο. ΛҰ·ͱΊͰऔΓग़͢͜ͱ͕Ͱ͖Δͱߟ͑ͨ [12]ɽϝτϦ. ϓυΫϩʔϯͱݺΕΔɼλΠϓ 3 ͷίʔυΫϩʔϯ͕ߴ. Ϋεͷྫͱͯ͠ɼ෦ؒͷར༻͕ؔ͛ڍΒΕΔɽ෦ͷ. ͍҆ఆੑΛ͍࣋ͬͯΔ͜ͱΛ֬ೝͨ͠ [7]ɽAntoniol 19. هड़͕ҧ͍ͬͯͯɼѻ͏ର୲͏ׂ͕ಉ͡Ͱ͋Εɼ. ͷόʔδϣϯͷϦφοΫεΧʔωϧʹ͓͍ͯɼෳ͞Εͨ. ݁Ռͱͯͦ͠ͷ෦͕ར༻͍ͯ͠Δ෦ͷʢͦ͘͠. ίʔυ͕ͲͷΑ͏ʹมԽ͔ͨ͠Λௐ͍ࠪͯ͠Δ [1]ɽ٢ా. ͷ෦Λར༻͍ͯ͠Δ෦ͷʣಉ͡Α͏ͳͱͳΓ. ΒɼΫϩʔϯΛ༗͢Δίʔυؒͷґଘؔʹ͍ͯͮجϦ. ͍͢ɽͦ͜Ͱɼར༻෦ඃར༻෦ɼ֎෦ϥΠϒϥ. ϑΝΫλϦϯάΛࢧԉ͢Δํ๏ΛఏҊ͍ͯ͠Δ [9]ɽ. ϦΫϥεͷར༻ͳͲͰྨ͢Δ͜ͱͰɼಉ͡Α͏ͳׂ ͷ෦Λ·ͱΊΔ͜ͱ͕Ͱ͖Δͱߟ͑ͨɽ ଞʹྨʹར༻Ͱ͖ΔϝτϦΫεͷྫͱͯ͠ɼίʔυΫ. 3. ιϑτΣΞ෦ͷಛΛද͢ϝτϦΫε Λ༻͍ͨྨख๏ʹ͍ͭͯ. ϩʔϯ͕ؔ͛ڍΒΕΔɽίʔυΫϩʔϯؔͱɼڞ௨. ຊͰڀݚɼ͋Δ̍ͭͷιϑτΣΞΛߏ͢Δ෦܈. ͷίʔυยͷू߹Λ࣋ͭ෦ؒͷؔΛࣔͨ͠ͷͰɼͲ. Λੳରͱͯ͠ɼ෦ؒͷؔΛར༻ͯ͠ιϑτΣΞ. Ε͚ͩଞͷ෦ͱྨࣅͨ͠ίʔυยΛڞ༗͍ͯ͠Δ͔ͳͲ. ෦ͷྨΛߦ͏ख๏ͱͯ͠ɼ2 छྨͷํ๏ΛఏҊ͢Δɽ. ͷࢦඪΛநग़͢Δ͜ͱ͕Ͱ͖Δɽଟ͘ͷϑΝΠϧ͕ؔ͢. ( 1 ) ར༻ؔͱίʔυΫϩʔϯؔʹؔ͢ΔϝτϦΫεʹ. ΔେنͳΫϩʔϯηοτ͕Ͱ͖͍ͯΔ߹ɼͦͷΫϩʔ. ͮ͘جྨख๏. ϯηοτάϥϑ্Ͱڧ࿈݁ͱͳ͍ͬͯΔ͜ͱ͕ఆ͞Ε. ෦άϥϑ্Ͱද͞ݱΕ͍ͯΔɼར༻ؔίʔυΫ. ΔɽϑΝΠϧ͝ͱʹɼྨࣅίʔυยΛڞ༗͍ͯ͠ΔϑΝΠ. ϩʔϯؔͷลͷͳͲͷϝτϦΫεΛநग़͠ɼ͕. ϧͷΛٻΊͨ߹ɼେنͰڧ࿈݁ͱͳ͍ͬͯΔΫϩʔ. ྨࣅ͍ͯ͠Δͱ͍͏͔؍ΒࣅͨಛΛ࣋ͭ෦Λޮ. ϯηοτʹ·ؚΕΔ෦ಉ͡Α͏ͳͱͳΓ͍͢͜ͱ. Ռతʹநग़͢Δɽ2 ͭҎ্ͷϝτϦΫεΛ༻͍ͯඇ֊. ͕૾Ͱ͖Δɽͦ͜Ͱɼͦͷ෦ͱྨࣅͨ͠ίʔυยΛڞ. ΫϥελʔੳʹΑΔྨΛߦ͏͜ͱͰɼಛతͳ. ༗͍ͯ͠Δ෦ͷͰྨ͢Δ͜ͱͰɼίʔυΫϩʔϯؔ. ͱͯ͠ू·͍ͬͯΔ෦͚ͩͰͳ͘ɼϝτϦΫε. ͕ಉ͡Α͏ͳ෦ಉ࢜Λ·ͱΊΔ͜ͱ͕Ͱ͖Δͱߟ͑ͨɽ. ͕େ͖͍෦શମΛྨରͱͰ͖Δͱߟ͑ͨɽ·. ར༻ؔɼ֎෦ͱͷΓऔΓͰ࣮͍ͯ͠ݱΔػೳͷؔ. ͨɼΫϥελʔੳͷج४ͱͳΔϝτϦΫεͷछྨΛ. ࿈ੑΛར༻͍ͯ͠ΔҰํͰɼίʔυΫϩʔϯؔ෦. ૿͢͜ͱͰɼΑΓࡉ͔͘ྨ͞Εͨ݁ՌΛಘΔ͜ͱ. ͷهड़ͷؔ࿈ੑΛར༻͓ͯ͠ΓɼͦΕͧΕͷϝτϦΫε. ͕Ͱ͖Δͱߟ͑ͨɽ. ҟͳΔج४ͰྨΛߦ͍ͬͯΔͱߟ͑ΒΕΔɽ[12] Ͱɼ. ( 2 ) ར༻ઌʢར༻ݩʣ෦ͷҰகʹͮ͘جྨख๏. ࢄਤΛ༻͍ͯίʔυΫϩʔϯؔͱར༻͕ؔಘΒΕΔ. ར༻͚ؔͩΛදͨ͠෦άϥϑΛ༻ҙ͠ɼ͝ͱ. ϝτϦΫεΛநग़͠ɼಉ͡Α͏ͳΛࣔ͢෦͝ͱʹ·ͱ. ʹར༻ઌ෦ͷू߹ʢ֤͔Βग़Δลͷ౸ணઌ෦. ΊΔ͜ͱͰɼΑΓࡉ͔͘ྨ͢Δํ๏ΛఏҊͨ͠ɽఏҊ͠. ͷू߹ʣɼར༻ݩ෦ͷू߹ʢ֤ೖΔลͷग़. ͨྨํ๏ʹΑΓɼಉ͡ಛΛࣔͨ͠෦͝ͱʹؔ࿈ੑΛ. ൃݩ෦ͷू߹ʣΛٻΊΔɽͦΕͧΕͷ෦ର͝ͱʹɼ. ௐΔ͜ͱͰɼྨࣅͨ͠ػೳΛ࣮͍ͯ͠ݱΔ෦ɼιϑ. ར༻ઌʢ͘͠ར༻ݩʣ෦ͷू߹͕ͲΕ͚ͩҰக. τΣΞͰͷ෦ͷཱɼׂͳͲ͕ྨࣅ͍ͯ͠Δ෦. ͍ͯ͠Δ͔Λྨࣅͱͯ͠ٻΊΔɽ෦ؒͷྨࣅΛ. ͱ͍͏Ͱܗɼྨͨ݁͠Ռʹҙຯ͚͕ߦ͑Δ͜ͱΛ֬ೝ. ͱʹ֊తΫϥελʔੳΛߦ͍ɼಉ͡෦Λར༻. ͨ͠ɽͨͩ͠ɼڮΒͷख๏ͷ߹ɼࢄਤ্Ͱͷؔ࿈. ͍ͯ͠Δ෦ɼಉ͡෦͔Βར༻͞Ε͍ͯΔ෦Λந. ੑΛௐ͍ࠪͯͨ͠ͷͰɼநग़Ͱ͖ΔͷಛతͳͰදݱ. ग़͢Δɽػೳతʹࣅ͍ͯΔͱߟ͑ΒΕΔ෦܈ɼ͋. ͞ΕΔɼݶఆ͞Εͨ෦܈ͷΈͰ͋Δɽ. Δ෦͔Βར༻͞ΕΔػೳͱͯ͠ͱ܈Β͑Δ͜ͱ͕Ͱ ͖ΔΑ͏ͳ෦܈Λநग़Ͱ͖Δͱߟ͑ͨɽ. 2.4 ίʔυΫϩʔϯؔར༻ؔΛར༻ͨ͠ੳख๏ ʹ͍ͭͯ ར༻ؔΛར༻ͨ͠ղੳํ๏ͱͯ͠ɼΞʔΩςΫνϟʹ ؔ͢ΔใΛιʔείʔυ͔Βऔಘ͢ΔͨΊͷํ๏͕ఏҊ ͞Ε͍ͯΔɽZhang OO γεςϜΛάϥϑͱͯ͠Ϟσ ϧԽ͢Δ͜ͱͰɼιϑτΣΞΞʔΩςΫνϟΛऔಘ͢Δ ͨΊͷΫϥελϦϯάΞϧΰϦζϜΛఏҊ͍ͯ͠Δ [10]ɽ. Constantinou ίϯϙʔωϯτؒͷ֊తͳؔΛͱ. c 2016 Information Processing Society of Japan . ҎԼͷষͰɼͦΕͧΕͷख๏ͷੳखॱͱద༻݁ՌΛ հ͢Δɽ. 4. ར༻ؔͱίʔυΫϩʔϯؔʹؔ͢Δϝ τϦΫεʹͮ͘جྨख๏ 4.1 ੳͷखॱ ར༻ؔίʔυΫϩʔϯؔʹؔ͢ΔϝτϦΫεͱ͠ ͯද 1 Ͱද͢ϝτϦΫε܈Λར༻͢Δɽ͜ΕΒͷࢦඪͷத. 3.
(4) Vol.2016-SE-194 No.8 2016/11/18. ใॲཧֶձڀݚใࠂ IPSJ SIG Technical Report ද 1. ༻͢ΔϝτϦΫεͷҰཡ. ϝτϦΫε໊. આ໌. औಘํ๏. ༧͞ΕΔྨ݁Ռ. CSharingFiles. ίʔυΫϩʔϯΛڞ༗. ͦͷ͔Βग़Δίʔ. ಉ͡Ϋϩʔϯηοτʹ. ͢ΔϑΝΠϧͷ. υΫϩʔϯؔͷลͷ. ೖ͍ͬͯΔ෦͝ͱͷ. . ྨ. ੳ݁ՌͷΫϩʔ. ྨࣅίʔυยͷछྨ. ϯू߹ʹ͓͚Δग़ݱ. ʹΑΔྨ. Cset. ྨࣅίʔυยͷछྨ. ʢෳճग़ݱ 1 ճʣ. Capperance. ྨࣅίʔυยͷग़ݱճ. ੳ݁ՌͷΫϩʔ. ྨࣅίʔυยͷग़ݱճ. . ϯू߹ʹ͓͚Δग़ݱ. ʹΑΔྨ. ʢԆʣ. UsedBy. ͦͷ෦Λར༻͍ͯ͠. ͦͷʹೖͬͯ͘Δ. ಉ͡Α͏ͳ෦͔Βར. ΔϑΝΠϧͷ. ར༻ؔͷลͷ. ༻͞Ε͍ͯΔ෦ͷू ߹ʹྨ. UsesInternal. ͦͷ෦͕ར༻͍ͯ͠. ͦͷ͔Βग़Δར༻. ྨࣅͨ͠ػೳ܈Λར༻. ΔϑΝΠϧͷ. ؔͷลͷ. ͍ͯ͠Δ෦ͷू߹ʹ ྨ. UsesExternal. ར༻͍ͯ͠Δ֎෦ϥΠ. ੳ݁Ռʹ͓͚Δ֤. ྨࣅͨ͠֎෦ϥΠϒϥ. ϒϥϦΫϥεͷ. Ϋϥεͷ֎෦Ϋϥεͷ. Ϧ܈Λར༻͍ͯ͠Δ෦. ༻. ͷू߹ʹྨ. ͔Β͍͔ͭ͘ΛΈ߹Θͤͯྨ͢ΔɽྨͰ͖ͨ෦܈. ΞΛੳରͱ͢ΔɽTurtle Sport ͷόʔδϣϯ 1.0 ʹͭ. ͝ͱʹҙຯ͚Λߦ͍ɼͦΕͧΕͷ෦܈ͷಛΛௐࠪ͢. ͍ͯɼίʔυΫϩʔϯؔͱར༻͔ؔΒ෦ͷྨΛߦ. ΔɽͦΕͧΕͷ෦͕܈ɼͦΕͧΕҟͳׂͬͨΛ࣋ͭ෦. ͏ɽ͜ͷιϑτΣΞͷϑΝΠϧ૯ 386 Ͱ͋Δɽ. ͷू߹ʹ͔Ε͍ͯΔ͜ͱΛ֬ೝ͠ɼྨͰ͖ͨͦΕͧ Εͷू߹ΛѲ͢Δ͜ͱͰιϑτΣΞ͕ͲͷΑ͏ʹߏ ͞Ε͍ͯΔ͔Λཧղ͢Δ͜ͱΛࢧԉ͢ΔɽੳखॱΛҎԼ. 4.3 ධՁ߲ ఏҊख๏ͷ༗ޮੑΛ֬ೝ͢ΔͨΊʹɼҎԼͷௐ߲ࠪΛ. ʹࣔ͢ɽ. ઃఆ͠ɼྨ݁ՌΛධՁ͢Δɽ. ( 1 ) ௐ͍ͨιϑτΣΞΛ CCFinder[5] Ͱղੳ͠ɼΫ. Q1 ఏҊख๏Λ༻͍ͯநग़ͨ͠෦܈ͷதʹɼࣄલڀݚ. ϩʔϯใΛऔಘ͢Δɽ. ( 2 ) ௐ͍ͨιϑτΣΞΛ Classycle[3] Ͱղੳ͠ɼར༻ ؔΛऔಘ͢Δɽ. ( 3 ) ೖखͨ͠ར༻ؔɼίʔυΫϩʔϯؔΛಡΈࠐΈɼ ෦άϥϑΛߏங͢Δɽ. Ͱநग़ͨ͠෦ͱ܈ಉ͡Α͏ͳಛΛ࣋ͭ෦͕܈ଘ ࡏ͢Δ͔ɽ ࣄલ[ ڀݚ12] ͰɼUses Internalʢར༻ϑΝΠϧʣͱ. C Sharing FilesʢίʔυΫϩʔϯΛڞ༗͢ΔϑΝΠϧ ͷʣΛ༻͍ͯྨͨ͠ͱ͖ͷ෦܈ͷಛ. ( 4 ) ෦άϥϑ্ͷ͝ͱʹɼར༻ؔͷग़ྗลɼೖ. ( 1 ) ར༻ઌ෦ͷଟ͕͘Ұக͢ΔΑ͏ͳɼιϑτΣ. ྗลɼίʔυΫϩʔϯลͳͲͷද 1 Ͱࣔ͢ใΛ. ΞͰಉ༷ͷׂΛՌͨ͢͜ͱ͕ೝࣝͰ͖ΔΑ͏. ٻΊΔɽ͞Βʹɼੳʹར༻͢ΔϝτϦΫεΛબ͠ɼ ֤෦ͷϝτϦΫεΛදʹग़ྗ͢Δɽ. ( 5 ) දΛೖྗͱ͠ɼR ্Ͱඇ֊ΫϥελʔੳΛߦ͍ɼ ֤෦͕ॴଐ͢ΔΫϥελʔΛಘΔɽ. ( 6 ) ͦΕͧΕͷΫϥελʔʹ·ؚΕΔ෦Λௐࠪ͠ɼ֤Ϋ ϥελʔͷಛΛௐࠪ͢Δɽ. ͳϑΝΠϧ͋Ͱ܈Δɽ. ( 2 ) ଟ͘ͷڞ௨ͷར༻ઌΛ࣋ͪɼͦΕͧΕ͕ػೳ܈ͷ தͷҰͭͷػೳΛ࣮͍ͯ͠ݱΔΑ͏ͳϑΝΠϧ܈ Ͱ͋Δ. ( 3 ) ෦Λ౷ׅ͢Δத৺తͳػೳΛ୲͏ϑΝΠϧɼ ୯ҰϝτϦΫεͰଞͷάϧʔϓͱ͍ࠞͬͯͯ͟ ɼෳͷϝτϦΫεΛ༻͍Δ͜ͱͰͰ͖Δ. 4.2 ධՁ࣮ݧͷ֓ཁ. ͱ͍͏ͷͰ͋ͬͨɽఏҊख๏Λ༻͍ͯநग़Ͱ͖ͨ෦. ࣮ࡍͷΦʔϓϯιʔεϓϩδΣΫτʹର͠ɼఏҊख๏Λ. ܈ͷதʹɼ͜ΕΒͷੑ࣭Λ࣋ͭ෦͕͋܈Δ͔Λௐ. ༻͍ͯྨͨ͠෦Ͳ͕܈ͷΑ͏ͳ෦Ͱߏ͞Ε͍ͯΔ. ࠪ͢Δɽ͜ΕʹΑΓɼϝτϦΫεΛ༻͍ͯྨΛߦ. ͷ͔Λௐࠪͨ͠ɽTurtle Sport[8] ͱ͍͏ɼGPS ͱ௨৴Λ͠. ͏ख๏͕ɼΞϓϩʔν͕ҧͬͯࣅͨੑ࣭Λ͍࣋ͬͯ. ͯҠಈͨ݁͠ՌΛ༻͍ͯਤදਤΛ࡞͢ΔιϑτΣ. Δ͜ͱΛࣔ͢ɽ. c 2016 Information Processing Society of Japan . 4.
(5) Vol.2016-SE-194 No.8 2016/11/18. ใॲཧֶձڀݚใࠂ IPSJ SIG Technical Report. Q2 ඇ֊ΫϥελʔੳΛదԠ͢ΔࡍʹͲͷఔ·Ͱ. MainGui ෦Λ౷ׅ͢ΔॏཁͳϑΝΠϧͰ͋Γɼೋ. ׂͨ݁͠ՌΛར༻͖͔͢ɽ. ͭͷϝτϦΫεͰɼ্هͷΑ͏ʹύωϧμΠΞϩ. Ϋϥελʔੳʹ͓͍ͯٻΊΔΫϥελʔΛมߋ͠. άʹؔ͢ΔϑΝΠϧͱࠞࡏ͠Ͱ͖ͳ͔ͬͨɽϝτ. ͯಘΒΕͨ݁ՌΛൺֱ͢Δɽదͳ݁ՌΛಘΔͨΊʹ. ϦΫεʹ Used Byʢར༻͞Ε͍ͯΔϑΝΠϧͷʣΛ. ࠷దͳׂΛௐࠪ͢Δɽ. Ճ͠ɼࡾͭͷϝτϦΫεͷΈ߹ΘͤͰΫϥελʔ. Q3 ੳޙͷ෦͍͓ͯʹ܈ɼಛ͕ࣅͨ෦ಉ࢜Ͱ·. MainGui ΛͰ͖ͨɽ ੳΛߦ͏͜ͱͰɼ ⎧ ⎪ ⎪JPanelTableRunɼJPanelTreeRunɼ ⎨. ͱ·Δ෦܈ͲΕ͚ͩଘࡏ͢Δ͔ɽ. JDialogImportɼJPanelRunɼ ⎪ ⎪ ⎩JPanelStatɼJPanelUserProfileɼMainGui. ϝτϦΫεͷͷখ͍͞෦ɼ෦ͷߏ͕ࣅ͍ͯ ͳͯ͘ಉ͡ΛͱΔ߹͕ଟ͍ͱߟ͑ΒΕɼ༗ޮͳ ݁Ռ͋·ΓظͰ͖ͳ͍ɽϝτϦΫεͷ͕͋Δఔ. Uses Internal. େ͖͍෦ΛؚΉͱ͖ʹ༗ޮͳ݁ՌͱͳΔͱߟ͑Β. 40. 5. 35. ΕΔɽׂޙͷ෦܈Λௐࠪ͠ɼͲͷఔͷ෦͕܈. 30. ༗ޮͳྨ݁Ռͱͳ͍ͬͯΔ͔Λௐࠪ͢Δɽ. 16. 25. Q4 Ϋϥελʔੳʹ͓͍ͯྨରͱͳΔϝτϦΫε. 4. 20. ͷΛ૿͢͜ͱͰɼΑΓࡉ͔͘ྨͰ͖Δ͔ɽ. 11. 15 10. ͜ͷ߲Ͱɼྨʹར༻͢ΔϝτϦΫεͷΛ 2 ͔. 9 1. 5. Β 3 ʹ૿ͨ͠ͱ͖ʹɼྨ݁Ռ͕Ͳ͏มԽ͢Δ͔Λ. 0. 0. 13 18. 5. 10. 8. 20. 15. 20. 25. 30. 35. ௐΔɽϝτϦΫεͷΛ૿ͨ͠ͱ͖ʹɼࡉ͔͘ ྨͨ݁͠ՌΛಘΔͨΊʹߟྀ͖͢͜ͱΛߟ͢Δɽ. C Sharing Files. ਤ 1. Uses Internal ͱ C Sharing Files ͷࢦඪΛ༻͠ɼඇ֊Ϋ ϥελʔੳΛͨ݁͠Ռ (Ϋϥελʔ 20). 4.4 ద༻݁Ռ A1 Turtle Sport ʹର͠ɼUses Internal ͱ C Sharing Files. A2 A1 ͱಉ͡ࢦඪͰඇ֊ΫϥελʔੳΛ༻͍ͯɼΫ ϥελʔͷΛ 10ɼ20ɼ30 ͷ෦ͦͰ܈ΕͧΕׂ. Λࢦඪͱ͠ɼඇ֊ΫϥελʔੳΛ༻͍ͯྨ͠ɼ. ͨ͠ɽׂͨ݁͠ՌΛਤ 2ɼਤ 1ɼਤ 3 ʹࣔ͢ɽΫϥ. 20 ͷ෦ʹ܈ׂͨ݁͠ՌΛਤ 1 ʹࣔ͢ɽͦΕͧ. ελʔͷ͕ 10 ͷ߹ɼ͋Δఔ·ͰྨͰ͖ͨ. ΕͷΫϥελʔͷத৺ͷ࠲ඪΛ͓ࣔͯ͠Γɼۙݪ. ͕ɼ1 ͭͷάϧʔϓʹ͍ͭ͘ͷ෦·ؚ͕܈Εͯ. ʹΫϥελʔ͕ଟ͘ੜ͍ͯ͠Δ͜ͱ͕͔Δɽ. ͍ͨɽΫϥελʔͷ͕ 20 ͷ߹ɼΫϥελʔͷ. ར༻ઌ෦ͷଟ͕͘Ұக͢ΔΑ͏ͳɼιϑτΣΞ. ͕ 10 ͷ߹ʹ 1 ͭͷάϧʔϓʹࠞࡏ͍ͯͨ͠෦܈. Ͱಉ༷ͷׂΛՌͨ͢͜ͱ͕ೝࣝͰ͖ΔΑ͏ͳϑΝΠ. ΛͦΕͧΕͷ෦͔͘ࡉʹ܈ׂ͢Δ͜ͱ͕Ͱ͖ͨɽ. ϧͯ͠ͱ܈ɼҎԼͷΑ͏ͳ෦Ͱߏ͞ΕΔάϧʔϓ. Ϋϥελʔͷ 30 ͷ߹Ͱɼҙຯͷ͋Δ෦܈. 8 ͕ଘࡏͨ͠ɽ্ 4 ͭσʔλΛཧ͍ͯ͠ΔϑΝΠ. ͔Εͯɼผʑͷάϧʔϓͱͯ͠ྨ͞ΕͨɽҎ্ͷ. ϧͰ͋Γɼ΄΅ڞ௨ͷׂΛ࣋ͬͨ෦ͷू߹Ͱ͋Δɽ ⎧ ⎪ ⎪DatabaseManagerɼMeteoTableManagerɼ ⎨. ݁Ռ͔ΒɼຊϓϩδΣΫτʹ͓͍ͯɼΫϥελʔͷ 20 ͕ద͍ͯͨ͠ͱߟ͑ΒΕΔɽ. RunTrkTableManagerɼUserTableManagerɼ ⎪ ⎪ ⎩JPanelPrefGenɼJPanelPrefMap ଟ͘ͷڞ௨ͷར༻ઌΛ࣋ͪɼͦΕͧΕ͕ػೳ܈ͷதͷ. Uses Internal. 35. 6. 30. ҰͭͷػೳΛ࣮͍ͯ͠ݱΔΑ͏ͳϑΝΠϧͯ͠ͱ܈ɼ. 2. 25. ҎԼͷΑ͏ͳ෦Ͱߏ͞ΕΔάϧʔϓ 16 ͕ଘࡏ͠. 20. ͨɽ্هͷ 5 ͭҐஔใʹؔ͢ΔϑΝΠϧͰɼԼه. 15. 9. ͷ 3 ͭਤʹؔ͢ΔϑΝΠϧͰ͋ͬͨɽTurtle Sport. 5. 7 5. GPS ͱ௨৴Λͯ͠Ҡಈͨ݁͠ՌΛ༻͍ͯਤද. 0. ਤΛ࡞͢ΔιϑτΣΞͰɼͦΕΒͷػೳͷҰͭҰ ͭΛ୲͍ͬͯΔɽɽ ⎧ ⎪ ⎪ ⎨HstFileɼTcxFileɼGoogleMapGeoɼ. 1. 3. 10. 10. 8. 4 0. 5. 10. 15. 20. 25. 30. 35. 40. C Sharing Files. ਤ 2. Uses Internal ͱ C Sharing Files ͷࢦඪΛ༻͠ɼඇ֊Ϋ ϥελʔੳΛͨ݁͠Ռ (Ϋϥελʔ 10). ModelRunɼGpxFileɼJDiagramComponentɼ. ⎪ ⎪ ⎩JDialogPreferenceɼJDialogRunSendEmail. ෦Λ౷ׅ͢ΔΑ͏ͳத৺తͳػೳΛ୲͏ϑΝΠϧͱ ͯ͠ɼάϧʔϓ 5 ʹ MainGui ͱ͍͏ϑΝΠϧ͕ଘࡏ͠ ͨɽάϧʔϓ 5 Λߏ͢Δ෦ҎԼͷ௨ΓͰ͋Δɽ. c 2016 Information Processing Society of Japan . A3 ΫϥελʔͷΛ 20 ʹͨ͠ͱ͖ͷྨ݁ՌͷதͰɼ ͍ͭ͘ͷάϧʔϓ͕ࣅׂͨͷ෦͔Βߏ͞ΕΔ෦ ͔ͨͬ͋Ͱ܈Λௐࠪ͢Δɽਤ 1 ͷ 20 ͷΛେ͖͘ ͚ͯɼϝτϦΫεͷ͕େ͖͍ͷάϧʔϓ (ਤத. 5.
(6) Vol.2016-SE-194 No.8 2016/11/18. ใॲཧֶձڀݚใࠂ IPSJ SIG Technical Report. Uses Internal 50 18. ࡢᣦᶆࢆ⏝࠸࡚㸪ࢡࣛࢫࢱ࣮ᩘ ࡢᣦᶆࢆ⏝࠸࡚㸪ࢡ ࡛ศࡋࡓ⤖ᯝ ࣛࢫࢱ࣮ᩘ ࡛ศࡋࡓ⤖ᯝ. 45. C Sharing Files. Uses Internal. 40. 35. ࡢᣦᶆࢆ⏝࠸࡚㸪ࢡ ࣛࢫࢱ࣮ᩘ ࡛ศࡋࡓ⤖ᯝ Uses Internal. Uses Internal. C Sharing files. 26. 30. 20. 25. 30. • • • • • •. 30 29. 25. 27 20. DatabaseManager MeteoTableManager UserTableManager RunTrkTableManager JPanelPrefGen JPanelPrefMap. 16 7. 15. 10 22 5. 0 0. 10. 20. 30. 40. ͐. C Sharing Files. ਤ 3. C Sharing files. Used By. 20. Used By. 4. DatabaseManager MeteoTableManager UserTableManager RunTrkTableManager JPanelPrefGen JPanelPrefMap. ࡞ィ ಶࡢ㒊ရ⩌ 20. Uses Internal ͱ C Sharing Files ͷࢦඪΛ༻͠ɼඇ֊Ϋ ϥελʔੳΛͨ݁͠Ռ (Ϋϥελʔ 30). Ͱ൪߸͖) ͱখ͍͞ͷάϧʔϓ (൪߸ͳ͠) ʹ͚ ͨɽ൪߸͖ͷάϧʔϓʹ͓͍ͯɼ10 άϧʔϓͷ. ਤ 4. • • • • • • • •. DatabaseManager MeteoTableManager UserTableManager RunTrkTableManager RunLapTableManager GeoUtil. JPanelPrefGen JPanelPrefMap JPanelMeteo JPanelUserActivity JPanelUserEquipement JDialogAddRun JDialogProgressRu JDialogRunDetail. 2 ࢦඪͷ߹ͱ (த)3 ࢦඪͷ߹ͷ݁Ռͷҧ͍ (ࠨ) Ϋϥελʔ 20 ͷ߹ɼ(ӈ) Ϋϥελʔ 30 ͷ߹. ͏ͪɼ8 ͭͷάϧʔϓ͕ࣅׂͨͷ෦͔Βߏ͞Ε Δ෦ʹ܈ׂͰ͖ͨɽҰํͰ൪߸ͳ͠ͷάϧʔϓͰ. ͚ߦ͍͖͍ͬͯͨɽ. ɼશͯͷάϧʔϓ͕ଟछͷ෦͕ࠞࡏͨ͠άϧʔϓ. ·ͨɼ࣮ϓϩδΣΫτʹରͯ͠ద༻Λߦ͏ࡍʹɼͦΕ. ͱͳ͍ͬͯͨɽࠓճͷ݁Ռ͔ΒɼϝτϦΫεͷ͕େ. ͧΕͷϓϩδΣΫτʹରͯ͠ϓϩδΣΫτͷαΠζʢϑΝ. ͖͍άϧʔϓͷଟ͘ʹҙຯ͚͢Δ͜ͱՄೳ͕ͩɼ. Πϧʣར༻͢ΔϝτϦΫεͷछྨͳͲʹΑܾͬͯఆ. ͦ͏Ͱͳ͍άϧʔϓʹ͍͍ͭͯ͠ͱ͍͏͜ͱͱɼ. Ͱ͖ΔΑ͏ͳదͳׂ͕͋Δͱߟ͑ΒΕɼͦΕΒͷ. ·ͨશମͱͯͨ͠ݟ߹ 3 ׂ͔Β 4 ׂ͕ҙຯͷ͋Δά. ਪଌࠓޙͷ՝Ͱ͋Δͱߟ͑ΒΕΔɽ. ϧʔϓʹྨͰ͖Δͱߟ͑ΒΕΔɽ. A4 C Sharing FilesɼUses InternalɼUsed By ͷࡾͭͷࢦ ඪΛΈ߹ΘͤͯΫϥελʔੳΛߦͬͨɽਤ 4 ɼ ਤ 1 ͷάϧʔϓ 8 ͕ɼUsed By ͷϝτϦΫεΛՃ͠. 5. ར༻ઌ෦ͷҰகʹͮ͘جྨख๏ 5.1 ੳͷखॱ ͋Δ 1 ͭͷιϑτΣΞΛߏ͢Δ෦܈Λੳରͱ. ͨͱ͖ʹͲͷΑ͏ʹྨ͞Εͨͷ͔Λࣔͨ͠ਤͰ͋Δɽ. ͯ͠ར༻ઌ෦͘͠ར༻ݩ෦ͷػೳ͕ྨࣅͨ͠෦. Ϋϥελʔͷ͕ 20 ͷ߹ɼάϧʔϓ 8 ͷϑΝΠϧ. ͝ͱʹྨΛߦ͏ͨΊʹɼ࣍ͷΑ͏ͳखॱͰར༻ؔͷ. શͯಉ͡άϧʔϓʹྨ͞Εͨɽ͜ͷάϧʔϓʹ. ཧͱ෦ؒͷྨࣅͷࢉܭΛߦ͏ɽπʔϧͰ෦ؒͷྨ. ෳͷ෦ͷ·ͱ·Γ͕ࠞࡏ͓ͯ͠ΓɼޮՌతͳ. ࣅ͔Βੜͨ͠ߦྻΛग़ྗ͠ɼग़ྗ͞ΕͨߦྻΛߦڑ. ྨ͕Ͱ͖ͳ͔ͬͨɽ͜Ε 3 ͭͷϝτϦΫεͷΛฏ. ྻͱͯ͠ R ʹೖྗ͠ɼ֊తΫϥελʔੳΛ༻͍ͯྨ. ʹ͖ͱͨ͠ۉɼ1 ͭ͋ͨΓͷॏΈ͕ݮΔ͜ͱʹΑΔͱ. Λߦ͏ɽR Ͱͷੳ݁Ռͱͯ͠ग़ྗ͞Εͨथܗਤ͔Βྨ. ߟ͑ΒΕΔɽΫϥελʔͷΛ 30 ʹ૿ͨ͠ͱ͜Ζɼ. ͞Εͨ෦܈ΛಡΈऔΓɼͦΕͧΕͷάϧʔϓͷಛΛ֬. ͦΕΒͷ෦͕܈ผʑͷάϧʔϓʹͳΓɼΑΓࡉ͔͍. ೝ͢Δɽ. ྨʹޭͨ͠ɽϝτϦΫε͕ 2 ͭͷͱ͖ɼσʔλΛ. ( 1 ) ੳରͷιϑτΣΞΛ Classycle[3] Ͱੳͯ͠ɼ. ཧ͍ͯ͠ΔϑΝΠϧͱύωϧͷදࣔʹؔ͢ΔϑΝΠ ϧ͕ࠞࡏ͍͕ͯͨ͠ɼϝτϦΫεΛ૿͠Ϋϥελʔ ͷΛ 30 ʹ૿͢͜ͱͰɼͦΕΒΛྨ͢Δ͜ͱ͕. Ϋϥεؒͷར༻ؔΛೖख͢Δɽ. ( 2 ) ར༻͔ؔΒ෦άϥϑΛߏங͠ɼ֤෦ͷར༻ݩ෦ ͷू߹ɼར༻ઌ෦ͷू߹Λ࡞͢Δɽ. Ͱ͖ͨɽྨʹར༻͢ΔϝτϦΫεΛ 3 ͭʹ૿͢. ( 3 ) ར༻ݩ෦ͷྨࣅɼ͘͠ར༻ઌ෦ͷྨࣅͷ. ߹ɼΫϥελʔͷ߹Θͤͯ૿͢͜ͱͰɼదʹ. ͲͪΒͰྨ͢Δ͔ΛܾΊɼ֤෦ର͝ͱʹྨࣅΛ. ྨ͢Δ͜ͱ͕Ͱ͖Δͱߟ͑ΒΕΔɽ. ͠ࢉܭɼڑม͢Δɽ. ( 4 ) ֤෦ؒͷڑΛࣔ͢ྻߦڑΛ࡞͠ɼ֊తΫϥ 4.5 ධՁ࣮ݧͷߟ. ελʔੳΛߦ͍थܗਤΛಘΔɽ. ࣄલ͍͓ͯʹڀݚಘΒΕͨ෦ͱ܈ಉ͡ੑ࣭ͷ෦܈Λ. ( 5 ) ಘΒΕͨथܗਤʹ͓͍ͯɼ·ͱ·Γʹͳ͍ͬͯΔ෦. ಘΔ͜ͱ͕Ͱ͖͓ͯΓɼϝτϦΫεΛ༻͍ͯྨΛߦ͏. ͔Βྨࣅ෦܈Λநग़͠ɼ෦ͷྨࣅੑΛ֬ೝ͢Δɽ. ͱ͍͏Ξϓϩʔνɼͷେ͖͍෦ʹରͯ͠༗ޮʹಇ͘ ͜ͱΛ֬ೝͨ͠ɽࠓޙɼద༻ࣄྫΛ૿͠ɼख๏ʹΑͬͯ. 5.2 ྨࣅͱྻߦڑͷੜʹ͍ͭͯ. ಘΒΕΔݟͷҰൠੑΛߴΊ͍ͨɽ͞Βʹɼྨʹར༻͠. ͋Δ෦ A ͷར༻( ݩ͘͠ར༻ઌ) ෦ͷू߹Λ. ͍ͯΔϝτϦΫεͷΈ߹Θͤݶఆ͞Ε͓ͯΓɼࠓޙ. CA ɼ͋Δ෦ B ͷར༻( ݩ͘͠ར༻ઌ) ෦ͷू߹Λ. ଞͷΈ߹Θͤʹ͓͍ͯಘΒΕׂͨ݁Ռʹର͢Δҙຯ. CB ͱͨ͠ͱ͖ɼͦΕΒͷू߹ؒͷྨࣅ sim(CA , CB ) Λ. c 2016 Information Processing Society of Japan . 6.
(7) Vol.2016-SE-194 No.8 2016/11/18. ใॲཧֶձڀݚใࠂ IPSJ SIG Technical Report. – Ϧετ͔ΒͷԠΛฦ͢ػೳͱମͷදࣔʹؔ͢. Jaccard Λ༻͍ͯࣔ͢ɽ sim(CA , CB ) =. |CA ∩ CB | |CA ∪ CB |. ΔػೳͷΈ߹Θͤͱͳ͍ͬͯΔɽతͳؔ. (1). ɹ͜ͷ 0ʙ1 ͷҬΛ࣋ͪɼߴ͍΄Ͳྨࣅ͍ͯ͠Δ͜. ͳ͍͕ Tree Λ྆ํͱ༻͓ͯ͠Γར༻ઌ෦ڞ ௨ੑ͕͋Δɽ. ͱΛ͍ࣔͯ͠ΔͷͰɼ ڑdist(CA , CB ) ΛҎԼͷΑ͏ʹఆ ّ͠ɼྻߦڑͷ࡞ʹ༻͍Δɽ. dist(CA , CB ) = 1 − sim(CA , CB ). (2). 5.3 ධՁ࣮ݧͷ֓ཁ ࣮ࡍͷΦʔϓϯιʔεϓϩδΣΫτʹର͠ɼఏҊख๏Λ ༻͍ͯྨͨ͠෦Ͳ͕܈ͷΑ͏ͳ෦Ͱߏ͞Ε͍ͯ Δͷ͔Λௐࠪͨ͠ɽArt Of Illusion[2] ͷόʔδϣϯ 1.0 Λ. ਤ 5. ར༻ઌ෦ͷ֊తΫϥελʔੳ݁Ռ. ར༻ͨ͠ɽ͜ͷιϑτΣΞମΛඳը͠δΦϥϚΛ࡞ ͢ΔιϑτΣΞͰ͋Δɽߏ͢ΔιϑτΣΞ෦. ར༻ݩ෦ͷྨࣅͰྨ͢Δͱਤ 6 ͷΑ͏ͳ݁Ռ͕ಘ. (ϑΝΠϧ) 190 Ͱ͋Γɼར༻ઌ෦ͷྨࣅͱར༻ݩ. ΒΕͨɽઢͷԼͰ݁߹ͨ͠ɼؔ͘ڧ࿈͍ͯ͠Δͱఆ͞. ෦ͷྨࣅͰΫϥελʔੳΛߦ͍ɼػೳతʹࣅ͍ͯΔ. ΕΔ 17 άϧʔϓΛநग़͠ɼ෦ͷػೳͷྨࣅੑͰ͞Βʹ. ෦ಉ͡Α͏ͳ෦͔Βར༻͞Ε͍ͯΔ෦Λ·ͱΊΒ. ྨͨ͠ͱ͜Ζɼେ͖͘ 3 άϧʔϓʹ͚Δ͜ͱ͕Ͱ͖ͨɽ. ΕΔͷ͔Λ֬ೝ͢Δɽ. • ػೳ͕Ұக͍ͯ͠Δάϧʔϓ 11 άϧʔϓ͕͜ͷʹ܈ଐ͍ͯͨ͠ɽͦͷதʹҎԼͷ. 5.4 ධՁ߲ Q1 ར༻ઌ෦ͷҰகͰྨΛߦͬͨ߹ɼ෦͕܈ ͲͷΑ͏ͳ෦Ͱߏ͞Ε͍ͯΔͷ͔. Q2 ར༻ݩ෦ͷҰகͰྨΛߦͬͨ߹ɼ෦͕܈ ͲͷΑ͏ͳ෦Ͱߏ͞Ε͍ͯΔͷ͔. Α͏ͳػೳΛ࣋ͭͷ͕ଘࡏͨ͠ɽ. – TriangleMesh Ͱ࡞ΒΕͨମʹରͯ͠ฤूΛ͢Δػ ೳΛ࣮͢ݱΔ෦ͷू߹ɽTriMeshEditor ͕ར༻͞ Ε͍ͯΔɽ. – ମͷஔʹؔ͢ΔػೳΛ࣮͢ݱΔ෦ͷू߹ɽ. ͦΕͧΕͷྨํ๏ʹΑͬͯಘΒΕͨ෦͕܈ɼػೳ. Create ܥͷ෦ LayoutWindow ͳͲͷମΛ࡞. తʹࣅ͍ͯΔ෦ಉ͡Α͏ͳ෦͔Βར༻͞Ε͍ͯ. ͢Δػೳ͔Βར༻͞Ε͍ͯΔɽ. Δ෦Λ·ͱΊΔ͜ͱ͕Ͱ͖Δͷ͔Λ֬ೝ͢Δɽ. – ̏ D ͷઢܗϚοϐϯάΛهड़͢ΔػೳͰ·ͱΊΒ Εͨ෦ͷू߹ɽLinearMapping3D ͔Βར༻͞Εͯ. 5.5 ద༻݁Ռ ར༻ઌ෦ͷྨࣅͰྨΛߦͬͨ݁Ռɼਤ 5 ͷथܗਤ. ͍Δɽ. • ෳͷҟͳΔػೳΛͭ෦ʹ܈ྨ͢Δ͜ͱ͕Ͱ͖. ͕ಘΒΕͨɽઢͷԼͰ݁߹ͨ͠ɼؔ͘ڧ࿈͍ͯ͠Δͱ. ͨάϧʔϓ. ఆ͞ΕΔ 13 ͷ෦܈Λநग़͠ɼதΛ֬ೝͨ͠ͱ͜Ζɼେ. 3 άϧʔϓ͕͜ͷʹ܈ଐ͍ͯͨ͠ɽͦΕΒҎԼͷΑ. ͖͚ͯ͘ 2 ͭͷάϧʔϓʹ͚Δ͜ͱ͕Ͱ͖ͨɽ. ͏ͳػೳΛͭͷͰ·ͱΊΒΕ͍ͯͨɽ. • ػೳ͕Ұக͍ͯͯ͠ྨࣅੑ͕ߴ͍άϧʔϓ. – ମͷߏΛ͢ΔͷͱΤσΟοτπʔϧΛදࣔ͢. 11 άϧʔϓ͕͜ͷʹ܈ଐ͍ͯͨ͠ɽάϧʔϓͷதʹ. ΔͷͱμΠΞϩάϘοΫεΛ࣮͢Δͱ͍͏ 3 ͭ. ҎԼͷΑ͏ͳػೳΛ࣋ͭͷ͕ଘࡏͨ͠ɽ. ͷػೳͰྨ͢Δ͜ͱͰ͖ͨɽLayoutWindow ͔Β. – keyframe ʹؔ͢ΔػೳΛ࣋ͭ෦ͷू߹ɽ. ར༻͞Ε͍ͯΔػೳͰɼػೳ܈Λߏ͍ͯ͠Δͱߟ. – TriangleMesh ʹؔ͢ΔػೳΛ࣋ͭ෦ͷू߹ɽΫ. ͑ΒΕΔɽ. ϥελʔੳͷௐࠪରͷ෯Λ͛Δͱ͞Βʹଞͷ ಉ͡Α͏ͳػೳΛ࣋ͭ෦άϧʔϓͱ݁߹ͨ͠ɽ. • ػೳࣅ͍ͯͳ͍͕ར༻ઌྨࣅੑ͕ߴ͍άϧʔϓ 2 άϧʔϓ͕͜ͷʹ܈ଐ͢Δɽͦͷ༰ҎԼͷΑ͏ ͳͷͰ͋ͬͨɽ. – άϧʔϓͰϑΝΠϧͷಡΈࠐΈΛߦ͏ͷͱΟϯ υͷදࣔʹؔ͢ΔػೳΛ࣋ͭͷͰΘ͚Δ͜ͱ͕ Ͱ͖ͨɽػೳͷҧ͍ͷ΄͔ʹར༻ ʹݩModellingApp Λ͍࣋ͬͯΔ͔Ͳ͏͔Ͱ͔Ε͍ͯΔɽ. – keyframe ʹؔ͢Δ෦ͱɼମͷ࣠ΛఆΊΔػೳ. – ϫΠϠʔϑϨʔϜΛߏ͢ΔػೳΛ࣋ͭͷͱͦͷ. Λ࣋ͭ෦Ͱྨ͢Δ͜ͱ͕Ͱ͖ͨɽͦΕΒ྆ํ. ϫΠϠʔ্Ͱར༻͢ΔΛઃఆ͢ΔͷͷΈ߹Θ. ͱ animation.score ͱ animation.TrackGraph ʹར. ͤͱͳ͍ͬͯΔɽͦΕͧΕͷ෦͕࣋ͭػೳΛ͓ޓ. ༻͞Ε͍ͯΔɽ. ͍͕ར༻͢Δؔʹͳ͓ͬͯΓɼؔ࿈ੑߴ͍ɽ. c 2016 Information Processing Society of Japan . • ػೳͷྨࣅੑ͕ͳ͍άϧʔϓ 7.
(8) Vol.2016-SE-194 No.8 2016/11/18. ใॲཧֶձڀݚใࠂ IPSJ SIG Technical Report. 3 άϧʔϓ͕͜ͷʹ܈ଐ͓ͯ͠Γɼάϧʔϓʹೖͬͨ. ੳΛߦͬͨͷΈͰ͋ΔͷͰɼੳରϓϩδΣΫτΛ૿. ෦͕࣮͢ݱΔػೳͱಉ͡ػೳΛ࣋ͭ෦͕άϧʔϓ. ͨ͠͏͑ͰͦΕͧΕͷख๏ͷҰൠੑΛ֬ೝ͍ͯ͘͠ͱͱͱ. ʹͳ͘ɼଞͷ෦ͱ͋·Γؔ࿈͕ͳ͍ɽར༻ݩ෦. ʹɼࠓޙɼͦΕͧΕͷ݁ՌͷൺֱɼಘΒΕͨ෦܈ͷ. Λௐͯڞ௨ੑΛݟग़͢ͷ͕͍͠ɽ. ಛੑͷҧ͍ͳͲΛߟ͍͖͍ͯͨ͠ͱߟ͍͑ͯΔɽ ँࣙ. ຊڀݚɼ2016 ೆࢁେֶύοϔڀݚྭۚ. I-A-2 ͷॿڀݚΛड͚͍ͯΔɽ͜ͷจɼࠓൃޙද༧ ఆͷଔ[ ڀݚۀ13], [14] ͷ༰Λ·ͱΊͨͷͰɼᖛౡً ܅ɼԼޫ܅ɼງ܅ߦوɼ݄ढ़܅رɼޙ౻ክँײʹ܅ͷ ҙΛද͠·͢ɽචऀɼ͜ΕΒͷଔۀจͷࢦಋڭһͱ͠ ͯςʔϚͷઃఆɼࢦڀݚಋͳͲΛશ໘తʹߦ͍ͬͯ·͢ɽ ਤ 6. ར༻ݩ෦ͷ֊తΫϥελʔੳ݁Ռ. ࢀߟจݙ [1]. 5.6 ධՁ࣮ݧͷߟ ࣮Ͱݧɼ࣮ࡍͷιϑτΣΞΛରͱͯ͠෦ؒͷར ༻ઌ෦ɼར༻ݩ෦ͷϦετΛ࡞͠ɼͦΕΒͷྨࣅ ΛʹݩΫϥελʔੳΛߦͬͨɽར༻ઌ෦ͷڞ௨ੑͰ. [2] [3] [4]. ྨͨ͠ͱ͖ɼ΄ͱΜͲͷ෦͕܈ಉ͡Α͏ͳػೳΛ࣋ͭ ͷͰ·ͱΊΒΕ͍ͯΔ͜ͱΛ֬ೝͨ͠ɽಉ͡Α͏ͳػೳΛ ࣋ͭ෦໊শࣅ͍ͯΔͱ͍͏ಛ͋Γɼͦͷ͔Β. [5]. ྨࣅੑ͕ߴ͍͜ͱ͕Θ͔Δɽ ར༻ݩ෦ͷྨࣅΛʹݩྨͨ͠߹ಉ͡Α͏ͳػ ೳΛ࣋ͭάϧʔϓʹ͔ΕΔ߹͕ଟ͍͕ɼڞ௨ੑΛݟग़ ͢ͷʹར༻ݩͷ෦ͷใ͕ඞཁͳ߹ར༻ݩΛͯݟ. [6]. ڞ௨ੑΛ͍ͳ͍ͤͩݟ߹͕͋ͬͨɽ෦ಉ࢜ͷػೳͷؔ. [7]. ࿈ͷΈʹ͢ΔͷͰͳ͘ɼػೳͯ͠ͱ܈ଊ͑Δ͜ͱ ڞ௨ͷར༻ݩ෦ͷׂ͕ॏཁͱͳΔ͜ͱ͕༧͞ΕΔɽ ద༻ࣄྫΛ૿͠ɼख๏ʹΑͬͯಘΒΕΔݟͷҰൠੑ ΛߴΊΔ͜ͱ͕ٻΊΒΕΔɽ·ͨɼར༻ઌ෦ͷू߹ɼར. [8]. ༻ݩ෦ͷू߹ɼͦΕͧΕ୯ಠͷ߹ͷࣄྫͷΈͰ͋Δ͕ɼ. [9]. ෳͷू߹ΛΈ߹Θͤͨ߹ͷ݁Ռߟ͍ͨ͠ɽ. 6. ·ͱΊ ຊͰڀݚɼར༻ؔίϐʔ͞Εͨ෦ͳͲͷ෦ؒ. [10]. ͷؔʹண͠ɼͦΕΒͷؔʹ͍ͯͮجιϑτΣΞ Ͱಉ͡Α͏ͳੑ࣭Λ࣋ͭ෦Λ෦ʹ܈ྨ͢Δ͜ͱΛ తͱͨ͠ೋ௨Γͷྨख๏ΛఏҊͨ͠ɽ෦άϥϑ্Ͱ֤ ෦ͷೖग़ྗลͷͳͲΛ༻͍ͯͷࣅ͍ͯΔ෦͝ͱʹ. [11]. ྨ͢Δํ๏ɼར༻ઌʢར༻ݩʣͷ෦͕ͲΕ͚ͩҰக͠ ͍ͯΔ͔ͱ͍͏ྨࣅ͔Β֤෦ؒͷڑΛٻΊͯྨ͢ Δํ๏ɼͦΕͧΕʹର࣮ͯ͠ࡍͷϓϩδΣΫτʹରͯ͠ద. [12]. ༻ͨ݁͠ՌΛࣔ͠ɼͦΕͧΕͷख๏ʹΑͬͯɼιϑτΣ ΞͷϑΝΠϧ͕ͲͷΑ͏ʹྨ͞ΕΔ͔Λհ͠ɼࣅͨΑ. [13]. ͏ͳػೳΛ࣮͢ݱΔ෦ɼ͋Δ෦Ͱ࣮͍ͯ͠ݱΔػೳ܈ ʹ·ؚΕΔ෦ͱ͍͏ͰܗɼιϑτΣΞΛߏ͢Δ෦ Λ෦ͯ͠ͱ܈நग़͢Δ͜ͱ͕Ͱ͖Δ͜ͱΛ֬ೝͨ͠ɽ. [14]. Antoniol, G., Villano, U., Merio, E. and Penta, M. D.: Analyzing cloning evolution in the Linux kernel, Information and Software Technology, Vol. 44, No. 13, pp. 755–765 (2002). Art Of Illusion: http://sourceforge.net/projects/ aoi/. Classycle: http://classycle.sourceforge.net/. Constantinou, E., Kakarontzas, G. and Stamelos, I.: Towards Open Source Software System Architecture Recovery Using Design Metrics, Proceedings of the 15th Panhellenic Conference on Informatics, pp. 166–170 (2011). Kamiya, T., Kusumoto, S. and Inoue, K.: CCFinder: A Multi-Linguistic Token-based Code Clone Detection System for Large Scale Source Code, IEEE Transactions. Software Engineering, Vol. 28, No. 7, pp. 654–670 (2002). Krueger, C.: Software Reuse, ACM Computing Surveys, Vol. 24, No. 2, pp. 131–183 (1992). Mondal, M., Roy, C., Rahman, M., Saha, R., Krinke, J. and Schneider, K.: Comparative Stability of Cloned and Non-cloned Code: An Empirical Study, Proceedings of the 27th ACM Symposium on Applied Computing, pp. 1227–1234 (2012). Turtle Sport: http://turtlesport.sourceforge. net/. Yoshida, N., Higo, Y., Kamiya, T., Kusumoto, S. and Inoue, K.: On Refactoring Support Based on Code Clone Dependency Relation, Proceedings of the 11th IEEE International Software Metrics Symposium, pp. 16:1– 16:10 (2005). Zhangs, Q., Qiu, D., Tian, Q. and Sun, L.: Objectoriented software architecture recovery using a new hybrid clustering algorithm, Proceedings of the Seventh International Conference on Fuzzy Systems and Knowledge Discovery, pp. 2546–2550 (2010). খງҰ༤ɼࢁຊஉɼদԼɹɼҪ্ࠀɿίʔυͷ੩త ಛੑΛར༻ͨ͠ Java ιϑτΣΞ෦ྨࣅఆख๏ɼి ࢠใ௨৴ֶձจࢽ Dɼ Vol. J90-D(4), pp. 1158–1160 (2007). ڮେथɼՏ߹Ұݑɼۙ౻ູوɿར༻ؔͱίʔυΫϩʔ ϯؔʹࣅྨͮ͘ج෦ͷྨख๏ͷఏҊɼೆࢁେֶ ใཧֶ෦ 2015 ଔۀจ (2016). ɹງߦوɼ݄ढ़رɼɹޙ౻ክɿར༻ઌར༻ݩͷ෦ ͷڞ௨ੑʹͮ͘جιϑτΣΞ෦ྨख๏ͷఏҊɼೆ ࢁେֶใཧֶ෦ 2016 ଔۀจ (2017 ൃද༧ఆ). ᖛౡًɼɹԼޫɿར༻ؔͱίʔυΫϩʔϯؔʹ ؔ͢ΔϝτϦΫεʹࣅྨͮ͘ج෦நग़ख๏ͷఏҊɼೆ ࢁେֶใཧֶ෦ 2016 ଔۀจ (2017 ൃද༧ఆ).. ݱঢ়ɼͦΕͧΕͷख๏Ͱ 1 ϓϩδΣΫτʹ͓͍ͯͷ. c 2016 Information Processing Society of Japan . 8.
(9)
関連したドキュメント
HORS
This product includes software developed by the OpenSSL Project for use in the OpenSSL
The approach based on the strangeness index includes un- determined solution components but requires a number of constant rank conditions, whereas the approach based on
注:一般品についての機種型名は、その部品が最初に使用された機種型名を示します。
部 品 名
NIST - Mitigating the Risk of Software Vulnerabilities by Adopting a Secure Software Development Framework (SSDF).
「自然・くらし部門」 「研究技術開発部門」 「教育・教養部門」の 3 部門に、37 機関から 54 作品
LC06111TMT Battery Protection Controller with Integrated MOSFET, 1-Cell Lithium-Ion LC05711ARA Battery Protection Controller with Integrated MOSFET, 1-Cell Lithium-Ion