• 検索結果がありません。

部品間の関係を利用したソフトウェア部品の分類手法の提案

N/A
N/A
Protected

Academic year: 2021

シェア "部品間の関係を利用したソフトウェア部品の分類手法の提案"

Copied!
8
0
0

読み込み中.... (全文を見る)

全文

(1)Vol.2016-SE-194 No.8 2016/11/18. ৘ใॲཧֶձ‫ڀݚ‬ใࠂ IPSJ SIG Technical Report. ෦඼ؒͷؔ܎Λར༻ͨ͠ ιϑτ΢ΣΞ෦඼ͷ෼ྨख๏ͷఏҊ ԣ৿ ྭ࢜1,a). ֓ཁɿ‫ٻ‬ΊΒΕΔ‫ػ‬ೳͷ૿େ΍อक‫ؒظ‬ͷ௕‫ظ‬Խʹ൐͍ɼۙ೥ͷιϑτ΢ΣΞ͸େ‫ن‬໛ͳ΋ͷͱͳ͍ͬͯ Δɽιϑτ΢ΣΞΛߏ੒͢Δ෦඼ͦΕͧΕ͕࣮‫͢ݱ‬Δ‫ػ‬ೳͷྨࣅੑ΍ɼ෦඼͕୲͍ͬͯΔ໾ׂͷྨࣅੑͳ ͲΛར༻͢Δ͜ͱͰɼେ‫ن‬໛Խͨ͠ιϑτ΢ΣΞΛޮՌతʹ೺Ѳ͢Δ͜ͱ͕Ͱ͖ΔΑ͏ʹͳΔͱߟ͑Δɽ ຊ‫Ͱڀݚ‬͸ɼ͋Διϑτ΢ΣΞΛߏ੒͢Δ෦඼‫͔܈‬Βར༻ؔ܎΍ίʔυΫϩʔϯؔ܎Λநग़͠ɼͦΕΒͷ ؔ܎ͷྨࣅੑ͔Β‫ػ‬ೳ΍໾ׂ͕ྨࣅ͍ͯ͠Δ෦඼Λநग़͢Δख๏ΛఏҊ͢Δɽ෼ྨͷํ๏ͱͯ͠ɼ෦඼ά ϥϑ্Ͱͷ֤෦඼ͷೖग़ྗลͷ਺Λ༻͍ͯ஋ͷࣅ͍ͯΔ෦඼͝ͱʹ෼ྨ͢Δํ๏ɼར༻ઌʢར༻‫ݩ‬ʣͷ෦ ඼͕ͲΕ͚ͩҰக͍ͯ͠Δ͔͔Β֤෦඼ؒͷ‫཭ڑ‬Λ‫ٻ‬Ίͯ෼ྨ͢Δํ๏ͷೋ௨Γͷํ๏ΛఏҊ͠ɼධՁ࣮ ‫͔ݧ‬ΒͦΕͧΕͷํ๏ͷಛ௃Λߟ࡯͢Δɽ Ωʔϫʔυɿιϑτ΢ΣΞ෦඼ɼΫϥελʔ෼ੳɼར༻ؔ܎ɼίʔυΫϩʔϯؔ܎. Classification Methods for Software Components based on Relationships between Software Components Abstract: In recent years, the size of software becomes more large scale. So the number of software components that compose one software is also increasing and the relationships between software components becomes more complicated. So we would like to assist software comprehension by presenting components that play similar roles, or components whose positions are almost the same. In this paper, we suggest two classification methods for software components based on relationships between software components. One is based on the similarity of several metrics based on the component graph, and the other is based on the similarity of using components (or components that are used by). We will show application examples of the two classification methods and discuss their characteristics. Keywords: Software Component, cluster analysis, use-relation, relation about code clone. 1. ͸͡Ίʹ. ͱͰશମΛ೺Ѳ͢Δ͜ͱ͕೉͘͠ͳΓɼ͞Βʹ෦඼ؒͷؔ ܎΋ෳࡶԽ͍ͯ͘͜͠ͱͰɼϓϩάϥϜͷ಺෦ߏ଄ͷཧղ. ۙ೥ͷιϑτ΢ΣΞ։ൃ‫ݱ‬৔Ͱ͸ɼ։ൃର৅Ͱ͋Διϑ. ͸ࠔ೉ͳ΋ͷͱͳΔɽେ‫ن‬໛͔ͭෳࡶʹͳͬͨιϑτ΢Σ. τ΢ΣΞͷେ‫ن‬໛ԽɼෳࡶԽ͕‫ʹܹٸ‬ਐߦ͍ͯ͠ΔɽͦΕ. ΞΛཧղ͢ΔͨΊʹඞཁͳ࿑ྗ΋ɼಉ༷ʹ૿Ճ͍ͯ͠Δͱ. ʹ൐͍࣮ࡍʹιϑτ΢ΣΞ͕อक΍‫ػ‬ೳ௥Ճͷର৅ͱͳΔ. ߟ͑ΒΕɼιϑτ΢ΣΞΛߏ੒͢Δ෦඼ͦΕͧΕ͕࣮‫͢ݱ‬. ‫ؒظ‬΋௕‫ظ‬Խ͍ͯ͠Δɽ௕‫ʹؒظ‬Θͨͬͯ։ൃ͞ΕΔιϑ. Δ‫ػ‬ೳͷྨࣅੑ΍ɼ෦඼͕୲͍ͬͯΔ໾ׂͷྨࣅੑͳͲΛ. τ΢ΣΞͰ͸ɼஈ֊తʹ‫ػ‬ೳ͕௥Ճ͞Εɼ༷ʑͳ࢓༷มߋ. ར༻͢Δ͜ͱͰɼιϑτ΢ΣΞΛޮ཰తʹ೺Ѳ͢Δ͜ͱ͕. ΁ͷରԠ͕ͳ͞Ε͍ͯΔɽ౰ॳ͸γϯϓϧͳߏ੒Ͱ͋ͬͨ. Ͱ͖ΔΑ͏ʹͳΔͱߟ͑Δɽ. ͱͯ͠΋ɼιϑτ΢ΣΞ಺෦ͷؔ܎͸࣍ୈʹෳࡶԽɾେ‫ن‬. ຊ‫Ͱڀݚ‬͸ɼར༻ؔ܎΍ίϐʔ͞Εͨ෦඼ͳͲͷ෦඼ؒ. ໛Խ͍͖ͯ͠ɼϓϩάϥϜΛߏ੒͢Δ෦඼ͷ਺͕૿͑Δ͜. ͷؔ܎ʹண໨͠ɼͦΕΒͷؔ܎ʹ‫͍ͯͮج‬ιϑτ΢ΣΞ಺. 1. Ͱಉ͡Α͏ͳੑ࣭Λ࣋ͭ෦඼Λ෦඼‫ʹ܈‬෼ྨ͢Δ͜ͱΛ໨. a). ೆࢁେֶɹཧ޻ֶ෦ nanzan university, 18 Yamazato-cho, Shouwa-ku, Nagoya, 466-8673, Japan [email protected]. c 2016 Information Processing Society of Japan . తͱ͢ΔɽఏҊख๏Ͱ͸ɼ͋Διϑτ΢ΣΞΛߏ੒͢Δ෦ ඼‫͔܈‬Βར༻ؔ܎΍ίʔυΫϩʔϯؔ܎Λநग़͠ɼͦΕΒ. 1.

(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