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

ソフトウェア開発における不確かさに着目したOSSコミットログ解析

N/A
N/A
Protected

Academic year: 2021

シェア "ソフトウェア開発における不確かさに着目したOSSコミットログ解析"

Copied!
8
0
0

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

全文

(1)ソフトウェアエンジニアリングシンポジウム 2017 IPSJ/SIGSE Software Engineering Symposium (SES2017). ιϑτ΢ΣΞ։ൃʹ͓͚Δෆ͔֬͞ʹண໨ͨ͠ OSS ίϛοτϩάղੳ ଜຊ େ‫ى‬1,a). ߐ ‫ף‬᫼1,b). ଜԬ ๺ే1,c) ਂொ ୓໵1,d) ࠤ౻ ྄հ1,g). ӏྛ ঘ༃1,e). ُҪ ༃ߴ1,f). ֓ཁɿιϑτ΢ΣΞ޻ֶʹ͓͍ͯɼෆ͔֬͞Λแ༰ͨ͠ιϑτ΢ΣΞ։ൃ͸ॏཁͳ‫ڀݚ‬՝୊ͷ 1 ͭͰ͋Δɽ ຊ࿦จͰ͸ɼ࣮ࡍͷιϑτ΢ΣΞ։ൃϓϩδΣΫτʹ͓͍ͯɼͲͷΑ͏ͳෆ͔͕֬͞໰୊ͱͳ͍ͬͯΔ͔ Λ໌Β͔ʹ͢ΔɽΦʔϓϯιʔειϑτ΢ΣΞϓϩδΣΫτͷ։ൃཤྺͷίϛοτϝοηʔδΛର৅ͱ͠ɼ ෆ͔֬͞Λද͢ΩʔϫʔυΛ‫ؚ‬Ήίϛοτϝοηʔδʹ͸Ͳͷ༷ͳಛ௃͕͋Δ͔෼ੳΛߦͬͨɽ݁Ռͱ͠ ͯɼͦΕͧΕͷΩʔϫʔυ͔Βෆ͔֬͞ʹؔΘΔ‫ڵ‬ຯਂ͍ಛ௃͕෼͔ͬͨɽ. 1. ͸͡Ίʹ. Ͱ͸ɼ͜ͷෆ͔֬ͳ໰୊͸։ൃऀ΍ফඅऀͱ͍ͬͨεςʔ ΫϗϧμʔؒͰೝࣝɼ‫ڞ‬༗͞Ε͍ͯΔɽྫ͑͹ɼෳ਺ͷͲ. ιϑτ΢ΣΞ޻ֶʹ͓͍ͯɼҰൠతͳιϑτ΢ΣΞ։ൃ. Ε͕બ͹ΕΔ͔Θ͔Βͳ͍ཁ‫͕͜ٻ‬ͷλΠϓͷෆ͔֬͞ʹ. ϓϩηε͸େ͖͘ 3 ͭʹ෼͔ΕΔɽ֤ஈ֊ʹ͸͖ͬΓ͠ͳ. ౰ͨΔɽҰํͰɼUnknown Unknowns λΠϓ͸ɼԿ͕ෆ. ͍ཁ‫ٻ‬ɼఆ·Βͳ͍ઃ‫ิީܭ‬ɼະܾఆͷΞϧΰϦζϜͳͲ. ͔֬Ͱ͋Δ͔͕Θ͔Βͳ͍έʔεΛࢦ͢ɽͭ·Γɼ͜ͷλ. ᐆດͳͱ͜Ζʹෆ͔͕֬͞જΜͰ͍Δɽ͜ͷΑ͏ͳෆ͔֬. ΠϓΛղܾ͢Δ͜ͱ͸೉͘͠ɼͲͷΑ͏ͳ໰୊͕ൃੜ͢Δ. ͞͸ιϑτ΢ΣΞͷόά΍ෆ҆ఆͳঢ়ଶ͕ൃੜ͢Δ‫ݪ‬Ҽͱ. ͔͕༧ଌෆՄೳͰ͋Δɽ. ͳ͍ͬͯΔɽ͕ͨͬͯ͠ɼෆ͔֬͞Λแ༰ͨ͠ιϑτ΢Σ Ξ։ൃ͸ॏཁͳ‫ڀݚ‬՝୊ͷ 1 ͭͰ͋Δɽ. ຊ‫Ͱڀݚ‬͸ɼ࣮ࡍͷιϑτ΢ΣΞ։ൃϓϩδΣΫτʹ͓ ͍ͯɼͲͷΑ͏ͳෆ͔͕֬͞໰୊ͱͳ͍ͬͯΔ͔Λ໌Β͔. Garlan ͸ɼෆ͔֬͞ͱ͍͏‫͔఺؍‬Βকདྷͷιϑτ΢Σ. ʹ͢Δɽ࣮ࡍʹଘࡏ͍ͯ͠Δ໰୊Λ໌֬ʹ͢Δ͜ͱͰɼι. Ξ޻ֶʹ͍ͭͯ࿦ͨ͡ [8]ɽ൴͸ɼʮίϯϐϡʔλ‫͕ڥ؀‬༧. ϑτ΢ΣΞ։ൃΛॿ͚Δ͜ͱ͕Ͱ͖Δͱߟ͍͑ͯΔɽෳ਺. ଌՄೳͰ͋Γ‫ݪ‬ଇͱͯ͠‫׬‬શʹ໌‫͖Ͱه‬ɼ·ͨɼͦ͏͍ͬ. Φʔϓϯιʔειϑτ΢ΣΞʢOSSʣϓϩδΣΫτͷ։ൃ. ͨ‫ڥ؀‬ԼͰಈ͘γεςϜ͸ো֐͕ແ͍Α͏ʹઃ‫͞ܭ‬Ε͍ͯ. ཤྺͷίϛοτϝοηʔδΛ෼ੳ͢Δ͜ͱʹΑΓɼͦΕͧ. Δɼͱ͍͏ਆ࿩ʹ‫͍ͯج‬ιϑτ΢ΣΞ޻ֶͷ‫ڀݚ‬͸ߦΘΕ. Εෆ͔֬͞Λද͢ΩʔϫʔυΛ‫ؚ‬Μͩίϛοτͷෆ͔֬͞. ͍ͯΔʯͱओு͓ͯ͠Γɼιϑτ΢ΣΞ޻ֶͷྖҬʹෆ֬. ʹؔΘΔ܏޲Λ෼ੳ͢Δɽ. ͔͞Λแ༰ͤ͞ͳ͚Ε͹ͳΒͳ͍ͱड़΂͍ͯΔɽ. ҎԼɼୈ 2 ষͰ͸ෆ͔֬͞ʹؔ͢Δ‫ط‬ଘ‫ڀݚ‬Λ঺հ͠ɼ. ιϑτ΢ΣΞ։ൃʹ͓͚Δෆ͔֬͞ʹ͸ 3 ͭͷλΠ. ͦͷ໰୊఺Λ‫ʹج‬ୈ 3 ষͰ‫ڀݚ‬՝୊ʹ͍ͭͯड़΂Δɽୈ 4. ϓʢKnown KnownsɼKnown UnknownsɼUnknown Un-. ষͰ͸ͦΕͧΕෳ਺ͷ OSS ϓϩδΣΫτΛର৅ͱͨ͠ෆ. knownsʣ͕͋Δ [2]ɽKnown Knowns λΠϓ͸ɼෆ͔֬͞. ͔֬͞ʹؔ͢Δ෼ੳΛߦ͍ɼͦͷ݁ՌΛࣔ͢ɽୈ 5 ষͰଥ. ͕ଘࡏ͠ͳ͍։ൃͰ͋Γɼଟ͘ͷ఻౷తͳιϑτ΢ΣΞ޻. ౰ੑ΁ͷ‫ڴ‬Җʹ͍ͭͯड़΂ͨ‫ޙ‬ɼୈ 6 ষͰ·ͱΊͱ͢Δ. ֶͷ‫ߦ͕ڀݚ͍͓ͯʹڀݚ‬ΘΕ͍ͯΔɽKnown Unknowns λΠϓ͸ɼιϑτ΢ΣΞ։ൃϓϩηεதʹෆ͔֬ͳ໰୊͕ ଘࡏ͢Δ։ൃͰ͋Δɽ͔͠͠ɼKnown Unknowns λΠϓ 1 a) b) c) d) e) f) g). ‫۝‬भେֶ [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected]. ©2017 Information Processing Society of Japan. 2. ιϑτ΢ΣΞ։ൃʹ͓͚Δෆ͔֬͞ ຊষͰ͸ɼෆ͔֬͞ʹؔ͢Δ‫ط‬ଘ‫ڀݚ‬ͷ࠷৽ಈ޲Λ঺հ ͢Δɽͦͷ‫ޙ‬ɼ‫ط‬ଘ‫ڀݚ‬ͷ໰୊఺ʹ͍ͭͯ‫ݕ‬౼͢Δɽ. 2.1 ෆ͔֬͞ʹؔ͢Δ‫ط‬ଘ‫ڀݚ‬ ۙ೥ɼෆ͔֬͞͸‫ʹऀڀݚ‬ඇৗʹ஫໨͞Ε͍ͯΔɽෆ֬ ͔͞ʹؔ͢ΔςʔϚͱͯ͠͸ɼΰʔϧϞσϦϯάɼUML. 122.

(2) ソフトウェアエンジニアリングシンポジウム 2017 IPSJ/SIGSE Software Engineering Symposium (SES2017). ϞσϦϯάɼιϑτ΢ΣΞΞʔΩςΫνϟɼϞσϧม‫׵‬ɼ ςετɼ‫ূݕ‬ɼύϑΥʔϚϯε޻ֶɼࣗ‫ݾ‬దԠγεςϜͳ Ͳଟ‫ʹذ‬ΘͨΔɽ ୅දతͳෆ͔֬͞ͷ‫ͯ͠ͱڀݚ‬ɼPartial model Λ༻͍. ද 1. Perez-Palacin ΒʹΑΔෆ͔֬͞ͷཁҼ. Source of Uncertainty Simplifying assumpions. Classification Location. Nature. Structural/context. Epistemic. Model drift. Structural. Epistemic. Noise in sensing. Input parameter. Epistemic/Aleatory. Future parameters value. Input parameter. Epistemic. ͯ Known Unknowns λΠϓͷෆ͔֬͞Λද‫͢ݱ‬Δख๏͕. Human in the loop. Context. Epistemic/Aleatory. Famelis ΒʹΑͬͯఏҊ͞Ε͍ͯΔ [5, 6]ɽPartial model. Objectives. Input parameter/context. Epistemic. Decentralization. Context/structural. Epistemic. ͸ཁ‫ٻ‬Ϟσϧʹ͓͚Δෆ͔֬͞ͷಛఆɼෆ͔֬͞Λ‫ݮ‬Β͢. Execution context/Mobility. context/structural/input parameters. Epistemic. Cyber-phisical system. context/structural/input parameters. Epistemic. ͜ͱʹΑΔϞσϧͷվળɼෆ͔֬͞Λ‫ؚ‬ΉϞσϧؒͷؔ܎. Automatic learning. Structural/Input parameters. Epistemic/Aleatory. Rapid evolution. Structural/Input parameters. Epistemic. Granularity of models. Context/structural. Epistemic. Different sources of information. Input parameter. Epistemic/Aleatory. ͷτϨʔαϏϦςΟ΁ͷҙຯͷ෇༩ɼͦͯؔ͠܎͢ΔϞσ ϧؒͰͷෆ͔֬͞Λ‫ݮ‬Β͢มߋͷ೾‫Ͳͳٴ‬ͷ෼໺Ͱ༻͍Β Ε͍ͯΔɽEsfahani Β͸ιϑτ΢ΣΞΞʔΩςΫνϟͷ ෼໺ʹ͓͍ͯͷෆ͔֬͞ʹ͍ͭͯ‫ڀݚ‬Λߦ͍ͬͯΔ [3, 4]ɽ. ͞͸ɼೝࣝͰ͖͍ͯͳ͍ͱ͍͏͜ͱΛཧղ͢ΔͨΊͷϓϩ. Letier Β͸ཁ‫ٻ‬΍ΞʔΩςΫνϟʹ͓͚Δෆ͔͕֬͞Ϧ. ηε͕ܽམ͍ͯ͠Δঢ়ଶͰ͋Δɽ4 ஈ֊໨ͷෆ͔֬͞͸ɼ. εΫ΁༩͑ΔӨ‫ڹ‬΍ɼෆ͔֬͞Λ‫ݮ‬Β͢͜ͱͷՁ஋Λධ. ͜͜Ͱఆٛͨ͠ෆ͔֬͞ͷஈ֊ͦͷ΋ͷʢϝλϨϕϧʣ͕. Ձ͢Δखॿ͚ͱͳΔख๏ΛఏҊ͍ͯ͠Δ [9]ɽElbaum ͱ. ෆ͔֬Ͱ͋Δͱ͍͏ঢ়ଶͰ͋Δɽ. Rosenblum ͸ɼෆ͔͕֬͞ιϑτ΢ΣΞςετʹͲͷΑ. ੑ࣭͸ɼ‫ۮ‬વʢAleatoryʣͱೝࣝʢEpistemicʣͱʹ෼ྨ. ͏ʹӨ‫͢ڹ‬Δ͔ͱ͍͏ௐࠪΛߦͳ͍ͬͯΔ [2]ɽͦͷଞʹ. ͞ΕΔɽ‫ۮ‬વ͸‫ൃۮ‬తͳࣄ৅ʹΑΓ΋ͨΒ͞ΕΔෆ͔֬. ΋ɼࣗ‫ݾ‬దԠγεςϜʹ͓͚Δෆ͔֬͞ͷ‫ڀݚ‬΍ɼෆ͔֬. ͞ɼೝࣝ͸ಘΒΕΔσʔλͷෆ‫׬‬શ͞ɼ·ͨ͸σʔλೝࣝ. ͞Λ‫ؚ‬Μͩঢ়ଶͰͷੑೳ΍৴པੑͷ෼ੳͳͲ΋ଟ͘ߦΘΕ. ͷᴥᴪͳͲʹΑΔෆ͔֬͞Λද͢ɽ. ͍ͯΔɽ. ·ͨɼPerez-Palacin Β͸ෆ͔֬͞ͷཁҼʢSource of Un-. certainlyʣʹ͍ͭͯ΋ද 1 ͷΑ͏ʹ෼ྨ͍ͯ͠ΔɽͦΕͧ 2.2 ෆ͔֬͞ͷ෼ྨ ຊઅͰ͸ɼιϑτ΢ΣΞ޻ֶʹ͓͚Δ୅දతͳෆ͔֬͞ ͷ෼ྨ๏Λ঺հ͢Δɽ ෆ͔֬͞ͷఆٛ. Εෆ͔֬͞ͷཁҼͷग़‫ݱ‬ҐஔʢLocationʣͱੑ࣭ʢNatureʣ ͕໌‫͞ه‬Ε͍ͯΔɽ ྫ͑͹ɼεςʔΫϗϧμʔ͔Βͷෆ͔֬ͳཁ‫ٻ‬͸ෆ֬ ͔͞ͷཁҼͱͯ͠͸ Human in the loop ͱ͞Εɼࡾ࣍‫ݩ‬. Perez-Palacin ͱ Mirandola ͸ࣗ‫ݾ‬దԠγεςϜʹ͓͚. ෼ྨͰ͸ɼҐஔ͸ Context Ͱ͋ΓɼϨϕϧ͸ 1stʢKnown. Δෆ͔֬͞ʹ͍ͭͯγεςϚνοΫϨϏϡʔΛߦ͍ [13]ɼ. Unknownsʣɼੑ࣭͸ೝࣝʢεςʔΫϗϧμʔͷকདྷͷܾఆ. ʮ࠷΋Α͘༻͍ΒΕΔෆ͔֬͞ͷఆٛ͸ɼ‫ۮ‬વ΍֬཰తͳෆ. ͕ෆ͔֬ʣͱ෼ྨ͞ΕΔɽࡾ࣍‫ݩ‬෼ྨͷओͳର৅͸ࣗ‫ݾ‬ద. ͔֬͞ͱ‫ݺ‬͹ΕΔࣗવ‫ݱ‬৅ͷมಈͱɼೝࣝ΍‫ط‬஌஌ࣝͷෆ. ԠγεςϜͰ͋Δ΋ͷͷɼଞͷΞϓϦέʔγϣϯυϝΠϯ. ͔֬͞ͱ͍ͬͨϓϩηεʹؔ͢Δ஌ࣝʹΑΔ΋ͷͰ͋Δɽ ʯ. ʹରͯ͠΋ద༻͢Δ͜ͱ͕Ͱ͖Δɽ. ͱ·ͱΊ͍ͯΔɽ ෆ͔֬͞ͷࡾ࣍‫ݩ‬෼ྨ. 3. ‫ڀݚ‬՝୊. ͞ΒʹɼPerez-Palacin Β͸ Walker Βͷ‫[ ڀݚ‬16] ʹैͬ. ࠷৽ͷ‫͍͓ͯʹڀݚ‬ෆ͔֬͞ͷ༷ʑͳଆ໘Λѻ͍ͬͯΔ. ɼϨϕϧʢLevelʣ ɼੑ࣭ʢNatureʣ͔ ͯɼҐஔʢLocationʣ. ΋ͷͷɼෆ͔֬͞ʹؔ͢Δ࣮ূ‫ڀݚ‬͸ແ͍ɽ·ͨɼ࢒೦ͳ. Βߏ੒͞ΕΔࡾ࣍‫ݩ‬෼ྨʢthree-dimension classificationʣ. ͕Β࣮ࡍͷϓϩδΣΫτʹ͓͍ͯɼͲͷΑ͏ͳछྨͷෆ֬. ΛఏҊͨ͠ɽ. ͔͕͞ൃੜ͢Δͷ͔ʹ͍ͭͯ‫ڀݚ‬͸ߦΘΕ͍ͯͳ͍ɽ. ɼߏ଄ʢStructuralʣ ɼೖྗύ ҐஔͰ͸ɼจ຺ʢContextʣ. ࣮ࡍʹൃੜ͍ͯ͠Δෆ͔֬͞ͷ໰୊ʹ͍ͭͯ໌Β͔ʹ͢. ϥϝʔλʢInput parametersʣͷ 3 ͭʹෆ͔͕֬͞෼ྨ͞. Δ͜ͱͰɼιϑτ΢ΣΞ։ൃΛߦ্͍ͬͯ͘Ͱ༗༻ͳ஌ࣝ. ΕΔɽจ຺ɼߏ଄ɼೖྗύϥϝʔλ͸ɼͦΕͧΕपΓͷ‫؀‬. ͕ಘΒΕΔͷͰ͸ͳ͍͔ͱߟ͑ΒΕΔɽྫ͑͹ɼͲͷΑ͏. ‫ڥ‬ͷҧ͍ʹΑͬͯੜ͡Δෆ͔֬͞ɼϞσϧࣗମͷߏ଄ͷෆ. ͳ಺༰ʹ͸ෆ͔͕֬͞ଟ͍ͷ͔ɼ·ͨɼཁ‫ٻ‬ɼઃ‫ܭ‬ɼ࣮૷. ͔֬͞ɼϞσϧ΁ͷೖྗσʔλʹΑΔෆ͔֬͞ɼͱ͍͏Α. ͦΕͧΕͷͲͷΑ͏ͳγʔϯͰෆ͔֬͞͸‫ݱ‬ΕΔͷ͔஌Δ. ͏ʹͲͷ෦෼ʹ‫ݱ‬ΕΔෆ͔֬͞Ͱ͋Δ͔Λࢦࣔ͢͠ɽ. ͜ͱͰɼෆ͔֬͞ͷ໰୊ʹ͍ͭͯରԠ͠΍͘͢ͳΔɽ. Ϩϕϧ͸ɼ4 ஈ֊ʢ1st/2nd/3rd/4thʣͰॱং෇͚ΒΕͯ. ͦ͜Ͱ࣮ࡍʹଘࡏ͢ΔϓϩδΣΫτͷෆ͔֬͞ʹ͸ɼͲ. ͍Δɽ1 ஈ֊໨ͷෆ͔֬͞͸ɼର৅͸Կ͔͠Βͷ஌ࣝΛܽ. ͷΑ͏ͳ΋ͷ͕ଘࡏ͍ͯ͠Δͷ͔Λղ໌͢ΔͨΊʹຊ‫ڀݚ‬. མ͍ͯ͠Δ͕ɼ։ൃऀ͸ͦͷܽམʹ͍ͭͯೝ͍ࣝͯ͠Δঢ়. Λߦ͏ɽࠓճ͸ɼෳ਺ͷ OSS ϓϩδΣΫτͷ։ൃཤྺΛର. ଶʢKnown Unknowns ʹ૬౰ʣͰ͋Δɽ2 ஈ֊໨ͷෆ͔֬. ৅ͱͯ͠෼ੳ͢Δɽຊ‫Ͱڀݚ‬͸ɼ։ൃཤྺͷ৘ใ͔Βෆ֬. ͞͸ɼ஌ࣝΛܽམ͍ͯ͠Δ͜ͱΛೝࣝͰ͖͍ͯͳ͍ঢ়ଶ. ͔͞ΛϓϩδΣΫτͷத͔Βநग़͢Δख๏ͱͯ͠ɼίϛο. ʢUnKnown Unknowns ʹ૬౰ʣͰ͋Δɽ3 ஈ֊໨ͷෆ͔֬. τϝοηʔδΛର৅ʹςΩετ෼ੳΛߦ͏ɽ͜ͷΑ͏ʹɼ. ©2017 Information Processing Society of Japan. 123.

(3) ソフトウェアエンジニアリングシンポジウム 2017 IPSJ/SIGSE Software Engineering Symposium (SES2017). ද 2. ग़͢Δɽεςοϓ 2ɿεςοϓ 1 Ͱநग़ͨ͠ಛ௃୯‫͔ޠ‬Β. ෆ͔֬͞Λද͢Ωʔϫʔυ. ambiguous. faltering. might. undecided. ambivalent. fluctuating. obscure. undetermined. arcane. fuzzy. of two minds. unforeseeable. ͨෆ͔֬͞Λද͢Ωʔϫʔυຖͷಛ௃୯‫ޠ‬Λ෼ྨ֤ͯ͠ෆ. blowing hot and cold. hesitant. open to question. unknown. ͔֬͞Λද͢Ωʔϫʔυͷಛ௃Λ໌Β͔ʹ͢Δɽ. chancy. in doubt. probably. unpredictable. changeable. in the balance. risky. unreliable. debatable. incalculable. tentative. unsettled. dicey. informal iffy. todo. unsure. doubtful. irregular. unascertainable. up in the air. dubious. irresolute. unclear. vacillating. ͨ಺༰΍಺༰ʹରͯ͠։ൃऀ͕‫͔ॻ͍ͯͭʹͱ͍ͨͮ͜ؾ‬. erratic. may. unconfident. vague. Εͨ΋ͷͰ͋Δɽίϛοτϝοηʔδ͸ࣗવ‫ߏͰޠݴ‬੒͞. ໊ࢺͱಈࢺΛநग़͢Δɽεςοϓ 3ɿεςοϓ 2 Ͱநग़͠. ҎԼʹ֤εςοϓͷৄࡉΛड़΂Δɽ. 4.2.1 εςοϓ 1ɿΩʔϫʔυຖͷಛ௃୯‫ޠ‬Λநग़͢Δ ίϛοτϝοηʔδʹ͸ɼओʹͦͷίϛοτͰߋ৽͞Ε. Εͨ΋ͷͰ͋ΔͨΊɼςΩετ෼ੳʹΑΓͦͷಛ௃୯‫ޠ‬Λ ςΩετ෼ੳʹΑͬͯෆ͔֬͞ͷಛఆํ๏ΛఏҊ͠ɼ݁Ռ. நग़͢Δ͜ͱ͕ՄೳͰ͋Δɽෆ͔֬͞Λද͢ΩʔϫʔυΛ. ʹରͯ͠໨ࢹͰௐࠪΛߦ͏͜ͱͰ࣮ࡍͷϓϩδΣΫτʹͲ. ‫ؚ‬Ήίϛοτϝοηʔδ͔ΒΩʔϫʔυຖͷಛ௃୯‫ޠ‬Λந. ͷ༷ͳෆ͔͕֬͞ଘࡏ͢Δͷ͔Λ໌Β͔ʹ͢Δɽ. ग़͢ΔͨΊʹɼ·ͣɼϓϩδΣΫτ͝ͱʹෆ͔֬͞Λද͢. 4. ෆ͔֬͞Λ‫ؚ‬Ήίϛοτϝοηʔδͷ܏޲ ෼ੳ. ΩʔϫʔυΛ‫ؚ‬Ήίϛοτϝοηʔδ͔Βɼ֤Ωʔϫʔυ ͷಛ௃୯‫ޠ‬Λநग़͢Δɽͦͷ‫ޙ‬ɼશϓϩδΣΫτͷಛ௃୯ ‫ޠ‬ΛΩʔϫʔυຖʹ౷߹ͯ͠ಛ௃୯‫ޠ‬Λநग़͢Δɽ. ຊ‫Ͱڀݚ‬͸ɼෆ͔֬͞Λද͢ΩʔϫʔυΛ‫ؚ‬Ήίϛοτ ϝοηʔδͷಛ௃Λ෼ੳ͢ΔͨΊςΩετ෼ੳΛߦ͏ɽ‫ط‬ ଘ‫[ ڀݚ‬12] ʹΑΓςΩετͷಛ௃ྔΛ‫ػ‬ցతʹநग़͢Δ ͜ͱ͕ՄೳͰ͋ΔͨΊɼ͜ͷ‫ط‬ଘ‫ڀݚ‬Λ༻͍Δ͜ͱͰଟ͘. ϓϩδΣΫτຖͷಛ௃୯‫ޠ‬Λநग़͢ΔͨΊʹ 4 ͭͷஈ֊ ʹ෼͚ͯૢ࡞Λߦͬͨɽ֤ૢ࡞͸ҎԼͷ௨ΓͰ͋Δɽ ʢ1ʣશίϛοτϝοηʔδͷಛ௃஋෇͖୯‫ޠ‬ϦετΛநग़ ͢Δ Φʔϓϯιʔεͷ౷‫ܭ‬ղੳγεςϜͰ͋Δ R*2 ͷςΩε. ͷ OSS ϓϩδΣΫτͷίϛοτϝοηʔδΛ༻͍ͯ෼ੳ ͢Δɽ. τ෼ੳʹ͓͚Δ୅දతͳ tm ύοέʔδ [7] Λར༻ͯ͠ɼ ϓϩδΣΫτ͢΂ͯͷίϛοτϝοηʔδΛ 1 ͭ 1 ͭͷ. 4.1 σʔληοτ. จষͱͯ͠ूੵͯ͠ 1 ͭͷίʔύεΛ࡞੒͢Δɽ͜ͷίʔ. ຊ‫Ͱڀݚ‬͸ίϛοτ୯Ґͷόʔδϣϯ؅ཧγεςϜͰ͋. ύεʹɼ֤ίϛοτϝοηʔδͷ۟ಡ఺΍ۭന౳ΰϛ৘. Δ Git Λϕʔεͱͨ͠ιʔείʔυ‫ڞ‬༗αʔϏεͰ͋Δ. ใΛআ͍ͨ‫ޙ‬ɼ୯‫͚ͩޠ‬Λ࢒͢ɽͦͷ‫ޙ‬ɼಉ͡ҙຯͷ୯‫ޠ‬. GitHub*1 ͔ΒɼOSS ϓϩδΣΫτΛೖखͨ͠ɽҰൠతͳ. Λ‫ܗ‬ଶͷҧ͍ʹΑΓೋॏΧ΢ϯτͯ͠͠·͏͜ͱΛ๷͙. ಛ௃ΛಘΔͨΊɼGitHub ͔Βແ࡞ҝʹ 1,444 ‫ݸ‬ͷϓϩδΣ. ͨΊɼεςϛϯάॲཧͰ୯‫ޠ‬ͷ‫͚ͩװޠ‬Λ࢒͠ɼ֤ίϛο. ΫτΛબग़͠ɼσʔληοτͱͨ͠ɽ. τϝοηʔδʹ͋Δ୯‫ޠ‬ͷ tf-idf ͷ஋Λ‫͢ࢉܭ‬Δɽtf-idf. ·ͨɼίϛοτʹ͸࣮ࡍͷιʔείʔυ΍มߋͷࠩ෼ͳ. ͸ɼtfʢTerm Frequencyɼ୯‫ޠ‬ͷग़‫ݱ‬ස౓ʣͱ idfʢInverse. Ͳଟ͘ͷ৘ใ͕ଘࡏ͢Δ͕ɼຊ‫Ͱڀݚ‬͸ɼ෼ੳ͢Δख๏ͱ. Document Frequencyɼ‫ٯ‬จॻස౓ʣͷ 2 ͭͷࢦඪʹ΋ͱ. ͯ͠ tf-idf [14] Λ༻͍ͨςΩετ෼ੳΛѻ͏ͨΊɼ։ൃऀ. ͍ͮͯ‫͞ࢉܭ‬ΕΔ஋Ͱ͋Δɽtf-idf ͷ஋͕ߴ͍΄Ͳ୯‫ޠ‬ͷ. ͕ͨͪόʔδϣϯ؅ཧ͢Δࡍͷࢦඪͱ͢Δίϛοτϝο. ಛ௃͕େ͖͘ɼ௿͍΄Ͳ୯‫͕ޠ‬ҰൠతͱͳΔɽ࠷‫ʹޙ‬୯‫ޠ‬. ηʔδ͚ͩΛର৅ͱͯ͠෼ੳΛߦ͏ɽίϛοτϝοηʔδ. ຖͷ tf-idf ͷฏ‫ۉ‬Λ‫ͯ͠ࢉܭ‬ಛ௃஋ͱͯ͠நग़͢Δɽ. ͚ͩΛར༻ͨ͠෼ੳͷଥ౰ੑʹ͍ͭͯ͸‫ޙ‬ͷ 5 ষͰड़΂ Δɽશͯͷίϛοτϝοηʔδͷத͔Βɼෆ͔֬͞Λද͢. ʢ2ʣෆ͔֬͞Λද͢ΩʔϫʔυΛ‫ؚ‬Ήίϛοτϝοηʔδ ͷಛ௃஋෇͖୯‫ޠ‬ϦετΛநग़͢Δ. ΩʔϫʔυΛ‫ؚ‬ΜͰ͍ΔίϛοτϝοηʔδΛநग़ͯ͠෼ ੳର৅ͱ͢Δɽ ෆ͔֬͞Λද͢Ωʔϫʔυͱͯ͠͸ Oxford American. ෆ͔֬͞Λද͢ΩʔϫʔυΛ‫ؚ‬Ήίϛοτϝοηʔδ͔ Β֤Ωʔϫʔυͷ୯‫ޠ‬ϦετΛʢ1ʣͱಉ༷ʹநग़͢Δɽ ʢ3ʣಛ௃୯‫ޠ‬ͷࠩ෼ϦετΛ࡞Δ. writer’s thesaurus [10] ͱ͍͏୅දతͳγιʔϥεॻ੶͔Β Uncertainty ʹؔΘΔྨٛ‫ޠ‬Λࢀরܾ͠ఆͨ͠ʢද 2ʣɽ. ʢ2ʣͰநग़֤ͨ͠ෆ͔֬͞Λද͢Ωʔϫʔυຖͷಛ௃ ஋෇͖୯‫ޠ‬ϦετΛεςοϓ 1 Ͱநग़ͨ͠શίϛοτϝο ηʔδͷ୯‫ޠ‬Ϧετͱൺֱͯ͠ɼෆ͔֬͞Λද͢Ωʔϫʔ. 4.2 Ξϓϩʔν ຊઅ͸ෆ͔֬͞ͷಛ௃Λ෼ੳ͢ΔͨΊͷΞϓϩʔνΛࣔ ͢ɽຊΞϓϩʔν͸ 3 ͭͷεςοϓʹ෼͚Δɽεςοϓ. υͷ୯‫ޠ‬ͷಛ௃஋͔Βɼશίϛοτϝοηʔδͷ୯‫ޠ‬ͷಛ ௃஋ΛҾ͍ͯࠩ෼ͷ୯‫ޠ‬ϦετΛ࡞Δɽ ʢ4ʣࠩ෼͕ 0 Ҏ্ͷಛ௃୯‫͚ͩޠ‬நग़͢Δ. 1ɿෆ͔֬͞Λද͢ΩʔϫʔυΛ‫ؚ‬Ήίϛοτϝοηʔδ. ʢ3ʣͰ࡞ΒΕ֤ͨෆ͔֬͞Λද͢Ωʔϫʔυͷ୯‫ࠩޠ‬. ͔Βɼtf-idf ஋ [14] ʹΑͬͯΩʔϫʔυຖͷಛ௃୯‫ޠ‬Λந *1. https://github.com/github. ©2017 Information Processing Society of Japan. *2. https://www.r-project.org/index.html. 124.

(4) ソフトウェアエンジニアリングシンポジウム 2017 IPSJ/SIGSE Software Engineering Symposium (SES2017). ෼Ϧετ͔Βࠩ෼͕ 0 Ҏ্ͷ৚݅Ͱ͞Βʹநग़͢Δɽෆ֬ ͔͞Λද͢ΩʔϫʔυΛ‫ؚ‬Ήίϛοτϝοηʔδͷಛ௃୯ ‫ͱޠ‬͸ɼશίϛοτϝοηʔδʹ͓͍ͯҰൠతͳ୯‫ޠ‬ʢಛ ௃஋͕௿͍ʣͰ͋Δ͕ɼෆ͔֬͞Λද͢ΩʔϫʔυΛ‫ؚ‬Ή. ද 3 Word type. ඼ࢺλά෇͖ͷಛ௃୯‫ޠ‬Ϧετʢunknownʣͷྫ Meanʢฏ‫ۉ‬ʣ CoVʢมಈ܎਺ʣ ϓϩδΣΫτ਺. POS λά. 0.01874571. NNʢ໊ࢺʣ. 0.853236928. 808. error. 0.018047575. 0.913466452. 903. NNʢ໊ࢺʣ. messag. 0.016683953. 0.901754048. 590. NNʢ໊ࢺʣ NNʢ໊ࢺʣ. ignor. 0.016163827. 1.080568182. 528. ίϛοτϝοηʔδʹ͓͍ͯ͸ಛ௃తͳ୯‫ޠ‬ʢಛ௃஋͕ߴ. return. 0.015338545. 0.8766055. 677. NNʢ໊ࢺʣ. handl. 0.014811577. 1.105870303. 605. NNʢ໊ࢺʣ. ͍ʣͰ͋Δɽ͕ͨͬͯ͠ɼ୯‫ޠ‬ͷಛ௃஋ͷࠩ෼͕େ͖͍΄. reason. 0.012827254. 0.873758822. 666. NNʢ໊ࢺʣ. name. 0.010824656. 0.98421489. 531. NNʢ໊ࢺʣ. Ͳෆ͔֬͞Λද͢Ωʔϫʔυͷಛ௃୯‫ͳͱޠ‬Δɽ. report. 0.009979287. 1.080975554. 539. NNʢ໊ࢺʣ. case. 0.009530822. 1.082011154. 500. NNʢ໊ࢺʣ. caus. 0.007997205. 1.138618122. 538. NNʢ໊ࢺʣ. will. 0.00708426. 0.902794009. 592. NNʢ໊ࢺʣ. ͕நग़Ͱ͖Δɽ͔ͦ͜ΒશϓϩδΣΫτʹ͓͍ͯɼ֤ෆ֬. warn. 0.016426316. 0.911621722. 479. VBPʢಈࢺʣ. fail. 0.01033176. 1.012432553. 543. VBʢಈࢺʣ. ͔͞Λද͢Ωʔϫʔυͷಛ௃୯‫ޠ‬Ϧετ͕࡞੒Ͱ͖Δɽ͠. tri. 0.008507029. 1.229532611. 507. VBDʢಈࢺʣ. ֤ϓϩδΣΫτʹҎ্ 4 ͭͷૢ࡞Λߦͬͨ݁Ռͱͯ͠ɼ ֤ϓϩδΣΫτͰͷෆ͔֬͞Λද͢Ωʔϫʔυͷಛ௃୯‫ޠ‬. ͔͠ɼ୯‫ޠ‬ͷࠩ෼͕খ͗͢͞Δͱɼͦͷ୯‫ޠ‬͸ಛ௃తͳ୯ ද 4. ‫ͱޠ‬͸‫͍ݴ‬೉͍ͷͰɼෆ͔֬͞Λද͢Ωʔϫʔυ͝ͱͷಛ. ಛ௃୯‫ޠ‬ͷྨผ. ྨผ. આ໌. ௃୯‫ޠ‬ͷࠩ෼஋Λ߱ॱͰτοϓ 20 ͷಛ௃୯‫ݶʹޠ‬ఆͯ͠ɼ. Programming. ϓϩάϥϛϯά༻‫ޠ‬. શϓϩδΣΫτʹ͓͍ͯग़‫ͨ͠ݱ‬ϓϩδΣΫτͷ਺ͱࠩ. Programming Operation. ϓϩάϥϛϯάͷૢ࡞ʹؔ͢Δ༻‫ޠ‬. ෼ͷฏ‫ͼٴۉ‬มಈ܎਺ʢCoefficient of Variationʣ[1] Λ‫ܭ‬. Self-Reference. ࢉ͢Δɽมಈ܎਺͸ࠩ෼ͷඪ४ภࠩΛฏ‫ۉ‬஋Ͱׂͬͨ஋Ͱ. Uncertain. ͋Δɽ. ෆ͔֬͞Λද͢Ωʔϫʔυࣗ਎ʹؔ͢Δ୯‫ޠ‬ ଟ͘ͷ৔߹͸ແࢹͯ͠ྑ͍ ෆ͔֬͞Λද͢୯‫ޠ‬. General. ಛ௃͕ͳ͍ɼҰൠతͳ༻‫ޠ‬. Bug. error, warn, bug ͷ͍ͣΕ͔. ୯‫ޠ‬ͷࠩ෼ͷฏ‫͕ۉ‬େ͖͍΄Ͳಛ௃తͰɼมಈ܎਺͕ߴ ͍΄Ͳ෼ࢄͷ஋͕େ͖͍ɽ·ͨɼ࠷‫ޙ‬ͷ෼ੳ͸ϚχϡΞϧ. ୈ 4.2 ষͰड़΂ͨΞϓϩʔνΛద༻͠நग़ͨ͠ෆ͔֬͞Λ. Ͱߦ͏ͨΊɼෆ͔֬͞Λද͢Ωʔϫʔυͷසग़౓ʹΑΓ. ද͢Ωʔϫʔυͷಛ௃୯‫ޠ‬ɼ‫ͼٴ‬ɼͦͷෆ͔֬͞Λද͢. τοϓ 20 ͷෆ͔֬͞Λද͢ΩʔϫʔυΛநग़͢Δɽ. Ωʔϫʔυʹର͢Δ෼ྨͱ෼ੳ݁ՌΛࣔ͢ɽ. 4.2.2 εςοϓ 2ɿಛ௃୯‫ʹޠ‬඼ࢺλάΛ෇໊͍ͯࢺͱಈ. 4.3.1 Ωʔϫʔυͷ෼ྨ. ࢺ͚ͩநग़͢Δ ද 2 Ͱࣔͨ͠Α͏ʹɼෆ͔֬͞Λද͢Ωʔϫʔυ͸શͯ ‫ܗ‬༰ࢺͱ෭ࢺͰ͋ΔɽΑͬͯɼͦΕΒ͕༻͍ΒΕ͍ͯΔί. Ωʔϫʔυͷ෼ྨʹ͍ͭͯɼ·ͣಛ௃୯‫ޠ‬Λ෼ྨͯ͠ɼ ͦΕ͔Βෆ͔֬͞Λද͢ΩʔϫʔυΛ෼ྨ͢Δɽ ಛ௃୯‫ޠ‬ͷ෼ྨ. ϛοτͰԿΛߦͬͨͷ͔Λௐࠪ͢ΔͨΊɼ໊ࢺͱಈࢺ͚ͩ. ද 2 ʹࣔͨ͠ 20 ‫ݸ‬ͷෆ͔֬͞Λද͢Ωʔϫʔυͷಛ௃. Λநग़͢Δɽநग़ํ๏ͱͯ͠͸ɼR ͷ openNLP ύοέʔ. ୯‫ޠ‬ͷࠩ෼ͷฏ‫Ͳ΄͍ߴ͕ۉ‬ಛ௃తͰ͋Γɼมಈ܎਺͕ߴ. δ [12] Λ༻͍ΔɽopenNLP ύοέʔδΛ༻͍Δ͜ͱͰɼ. ͍΄Ͳ෼ࢄ౓͕ߴ͍ɽ·ͨɼࠩ෼ͷฏ‫͘ߴ͕ۉ‬ɼ͔ͭมಈ. ถ Pennsylvania େֶͷ Ratnaparkhi ͕։ൃͨ͠ Maxent. ܎਺͕ߴ͍୯‫ޠ‬͸͋ΒΏΔϓϩδΣΫτʹଘࡏ͠ɼͦͷΑ. Ϟσϧ [15] Λར༻ͯ͠จষͷ୯‫ʹޠ‬λάΛ͚ͭΔ͜ͱ͕Ͱ. ͏ͳ୯‫ޠ‬͸ෆ͔֬͞Λද͢Ωʔϫʔυͱ݁ͼ͖͕ͭ‫͍͜ڧ‬. ͖ΔɽMaxent Ϟσϧ͸ɼಉ͡େֶͷ Marcus ࢯΒ 5 ೥ؒͰ. ͱ͕෼͔Δɽࠓճɼզʑ͸֤ෆ͔֬͞Λද͢Ωʔϫʔυͷ. ࡞ͬͨӳ‫ޠ‬඼ࢺλάʢPart of Speech Tagsʣσʔλϕʔε ʢThe Penn Treebank [11]ʣʹ‫͍ͯͮج‬։ൃ͞Ε͍ͯΔɽ͜ ΕʹΑΓɼεςοϓ 1 Ͱநग़ͨ͠ෆ͔֬͞Λද͢Ωʔϫʔ. ಛ௃୯‫ޠ‬Λ 6 ͭͷྨผʹ෼ྨͨ͠ɽද 4 ͸ࠓճ༻͍ͨྨผ Ͱ͋Δɽ ෆ͔֬͞Λද͢Ωʔϫʔυͷಛ௃୯‫֤ͱޠ‬ಛ௃୯‫ޠ‬ͷ෼. υͷಛ௃୯‫ޠ‬Ϧετʹ͋Δ໊ࢺ୯‫ͱޠ‬ಈࢺ୯‫ʹޠ‬λάΛ෇. ྨ͸ද 5 Ͱࣔ͢ɽ. ͚ͯநग़͢Δɽ࣮ࡍʹ unknown Ωʔϫʔυʹରͯ͠λά. ෆ͔֬͞Λද͢Ωʔϫʔυͷ෼ྨ. நग़·ͰΛߦͬͨ݁ՌΛද 3 ʹࣔ͢ɽ. 4.2.3 εςοϓ 3ɿಛ௃୯‫ޠ‬ͷ෼ੳ ຊεςοϓͰ͸ɼεςοϓ 2 Ͱநग़֤ͨ͠ෆ͔֬͞Λද ͢Ωʔϫʔυͷಛ௃୯‫ޠ‬Λ෼ྨ͢Δɽͦͷ‫ޙ‬ɼ֤ಛ௃୯‫ޠ‬. զʑ͸લઅͰ෼ྨ͞Εͨಛ௃୯‫ޠ‬Λ‫ʹݩ‬ෆ͔֬͞Λද͢ ɽͦΕͧΕͷྨผ͸ද ΩʔϫʔυΛ෼ྨΛߦͳͬͨʢද 6ʣ. 7 Ͱࣔ͢ɽ 4.3.2 ෆ͔֬͞Λද͢Ωʔϫʔυͷಛ௃෼ੳ. ͷࠩ෼ͷฏ‫ͱۉ‬มಈ܎਺ʹ߹Θͤͯɼ֤ෆ͔֬͞Λද͢. ද 6 Ͱࣔͨ݁͠Ռͱಛ௃୯‫ޠ‬ͷ෼ྨΛ߹ΘͤͯΩʔϫʔ. ΩʔϫʔυΛ෼ྨ͢Δɽ෼ྨ݁Ռ͔Βෆ͔֬͞Λද͢Ωʔ. υຖʹ෼ੳͨ͠ɽࠓճ෼ੳΛߦͬͨ݁Ռɼද 7 ͷͦΕͧΕ. ϫʔυΛ‫ؚ‬Ήίϛοτϝοηʔδ͕ͲͷΑ͏ͳಛ௃͕‫ݟ‬Β. ͷྨผʹ͍ͭͯಛʹಛ௃తͳ܏޲͕‫ݟ‬ΒΕͨ΋ͷʹ͍ͭͯ. ΕΔ͔Λ໨ࢹͰ‫͢࡯؍‬Δɽ. ‫͛ڍ‬Δɽ. changeable ਤ 1 ͸ changeable Λ‫ؚ‬Ήίϛοτϝοηʔ 4.3 ෼ੳ݁Ռ ຊઅͰ͸σʔληοτͰ͋Δ 1,444 ݅ͷ OSS ʹରͯ͠ɼ. ©2017 Information Processing Society of Japan. δͷҰྫͰ͋Δɽfield ΍ state ౳ɼม਺ʹؔ͢Δ୯‫ޠ‬ ͕ग़‫͢ݱ‬Δ܏޲͕‫ݟ‬ΒΕͨɽύϥϝʔλͷ࢖༻౳ͷෆ. 125.

(5) ソフトウェアエンジニアリングシンポジウム 2017 IPSJ/SIGSE Software Engineering Symposium (SES2017). ද 5 Uncertain Word. ෆ͔֬͞Λද͢Ωʔϫʔυͷಛ௃୯‫ͦͱޠ‬ͷ෼ྨ. Programming. Programming Operation. Self-Reference. ambiguous. call, valu, type, case. renam. ambigu. arcane. trigger, damag, stack. build, make. changeable. field, set, cach, default. make, offset. changeabl, chang. debatable. case, system. get, put. debat. dubious. valu, code, bit, case. replac, get. doubtful. doubt. erratic. enabl, issu, behavior, result, logic. fuzzy. test, input, requir, code, number, unit. irregular. break, switch, pass, valu. errata, erratum, errat got. fuzzi, fuzz. may. case. might. case, tri. get. obscure. code, case, problem, result, need. get, call. risky. secur, case, data. run. risk, riski. tentative. method, implement, problem. call. tentat. probably. get. unclear. valu. unknown. type, messag, return, fail, case. tri. unreliable. test, case. detect, run, tri, set. unsure. case. vague. return, line, function. Uncertain Word. set, get. Uncertain. General. Bug. ambiguous. avoid, name, differ, one. warn, error. arcane. take, shot, entri, seem, empti, column, will. error, problem. changeable. disk, select, pass, check, addit, start, found. error. debatable. seem. dubious. seem. doubtful. name, place, want, think, realli use, remov, avoid. warn, error. see, realli, one, work, want, look. erratic. workaround. handl, appli, arm, caus, affect, part. fuzzy. option. translat, way. mayb. caus, need, want, sinc, contain, time, differ, happen, mean. irregular may. part, usag, approach, place, help, condit, work. might. want, need, caus, differ, look, happen. obscure. caus. bug, error. probably. seem. need, want, caus, work, doesnt, way. risky. potenti. reduc, dont, avoid, need. tentative unclear. support, definit, work, like, allow, way, done seem. bug. name, reason, user, differ, like. unknown. ignor, handl, reason, name, report, caus, will. unreliable. remov, check, chang, time, dont, result, need. unsure. seem. work, dont, need, think, result. vague. attempt. document, time, think, caus. ਤ 1. bug. error, warn. error. changeable ͕‫·ؚ‬Εͨίϛοτϝοηʔδͷྫ. ͔֬͞ʹؔΘΔՄೳੑ͕ߴ͍ɽ. debetable ϦϑΝΫλϦϯάͰΑ͘ग़‫͢ݱ‬Δͱߟ͑ΒΕ Δ nameɼplaceɼputɼget ౳ͷಛ௃୯‫͕ޠ‬ग़‫͢ݱ‬Δͨ. ਤ 2. debetable ͕‫·ؚ‬Εͨίϛοτϝοηʔδͷྫ. ΊɼͦΕʹؔ࿈͢Δෆ͔͕֬͞ଘࡏ͢ΔՄೳੑ͸ߴ͍ɽ ਤ 2 ͸ debetable Λ‫ؚ‬ΉίϛοτϝοηʔδͷҰྫͰ. place ౳ͷಛ௃୯‫͕ޠ‬ग़‫͢ݱ‬ΔɽٙΘ͍͠ίʔυ΍஋͕. ͋Δɽ։ൃऀ͸ϥϕϧͷॲཧϧʔϧʹٙ໰͕͍࣋ͬͯ. ൃ‫ࡍͨ͠ݟ‬ɼ໰୊ͱͳͬͨͱ͜Ζʹ remove ΍ replace. ͨͨΊɼϧʔϧΛมߋͨ͠ɽ. ౳ͷૢ࡞Λߦ͏͜ͱ͕૝ఆͰ͖Δɽਤ 3 ͸ dubious Λ. dubious ࠩ෼ฏ‫͕ۉ‬େ͖͍ warn ΍ error ౳ͷಛ௃୯‫ޠ‬. ‫ؚ‬ΉίϛοτϝοηʔδͷҰྫͰ͋Δɽ։ൃऀ͸όά. ͕ग़‫͢ݱ‬ΔɽͦΕΒͱͱ΋ʹ codeɼvalueɼremoveɼre-. ൃੜՄೳͳίʔυΛ࡟আ͕ͨ͠ɼ͜ͷૢ࡞ʹΑΓ·ͨ. ©2017 Information Processing Society of Japan. 126.

(6) ソフトウェアエンジニアリングシンポジウム 2017 IPSJ/SIGSE Software Engineering Symposium (SES2017). ද 6. ෆ͔֬͞Λද͢Ωʔϫʔυͷ෼ྨ. Ωʔϫʔυ. ෼ྨʢ։ൃ޻ఔʣ. ambiguous. ࣮૷. ‫ܕ‬ɼม਺ɼcall. o. arcane. ࣮૷. Ϧετ. o. changeable. ࣮૷. ม਺. o. debatable. ࣮૷. ϦϑΝΫλϦϯά. x. dubious. ࣮૷. ม਺. o. doubtful. -. -. x. erratic. ࣮૷. ৼΔ෣͍. o. fuzzy. ςετ. -. x. irregular. -. ม਺. x. may. ཁ‫ٻ‬. -. x. might. ཁ‫ٻ‬. -. o. obscure. ࣮૷. call. o. probably. ཁ‫ٻ‬. -. x. risky. ࣮૷. ηΩϡϦςΟɼσʔλ. x. tentative. ࣮૷. ϝιουɼcall. o. unclear. -. ม਺. x. unknown. ࣮૷. ‫ܕ‬. o. unreliable. ཁ‫ٻ‬ɼςετ. -. x. unsure. -. -. x. vague. ࣮૷. υΩϡϝϯτɼؔ਺. o. ද 7. ෼ྨʢίʔυཁૉʣ. όάؔ࿈‫ޠ‬ͷ༗ແ. ਤ 5. obscure ͕‫·ؚ‬Εͨίϛοτϝοηʔδͷྫ. ਤ 6. risky ͕‫·ؚ‬Εͨίϛοτϝοηʔδͷྫ. ෆ͔֬͞Λද͢Ωʔϫʔυͷྨผ. ྨผ. આ໌. ෼ྨʢ։ൃ޻ఔʣ. Ұൠతͳ։ൃ޻ఔʢཁ‫ٻ‬ɼઃ‫ܭ‬ɼ࣮૷ɼςετʣͷ. ෼ྨʢίʔυཁૉʣ. ্߲໨͕ʮ࣮૷ʯͷ΋ͷ͕Ͳͷίʔυͷཁૉʢ‫ܕ‬ɼ. ͲΕʹؔΘΓ͕͋Δ͔ ϝιουɼͳͲʣʹؔΘΓ͕͋Δ͔ όάؔ࿈‫ޠ‬ͷ༗ແ. ਤ 3. bug, error, warn ͷͲΕ͔ͷ༗ແ. dubious ͕‫·ؚ‬Εͨίϛοτϝοηʔδͷྫ. ਤ 7. unreliable ͕‫·ؚ‬Εͨίϛοτϝοηʔδͷྫ. ͍ͯΔՄೳੑ͕ߴ͍ͱਪଌͰ͖Δɽਤ 5 ͸ obscure Λ ‫ؚ‬ΉίϛοτϝοηʔδͷҰྫͰ͋Δɽ։ൃऀ͸όά ͕ൃੜՄೳͳίʔυΛҰ࣌తʹίϝϯτΞ΢τͨ͠ɽ. risky ηΩϡϦςΟʹؔΘΔ͜ͱ͕Ұൠతʹೝࣝ͞Εͯ ͍Δɽ͕ͨͬͯ͠ɼrisk ΍ secure ౳ηΩϡϦςΟʹؔ ͢Δಛ௃୯‫͕ޠ‬ग़‫͢ݱ‬Δ͜ͱ͕૝ఆͰ͖Δɽਤ 6 ͸ ਤ 4. may ͕‫·ؚ‬Εͨίϛοτϝοηʔδͷྫ. risky Λ‫ؚ‬ΉίϛοτϝοηʔδͷҰྫͰ͋Δɽ։ൃ ऀ͸ηΩϡϦςΟ໰୊Λ๷͙ͨΊʹϑΝΠϧͷ‫ݶݖ‬Λ. όά͕ൃੜ͢ΔՄೳੑ͕͋Δɽਖ਼͍͠ରԠ๏͸෼͔ͬ ͍ͯͳ͍ɽ. มߋͨ͠ɽ. unreliable ৴པੑʹؔΘΔ͜ͱ͕ଟ͍ɽtime ΍ detect. may ‫ݪ‬Ҽ΍ཁ‫ؔ͢ʹٻ‬Δ༻‫͕ޠ‬ଟ͍ͨΊɼཁ‫ؔʹٻ‬ΘΔ. ౳ςετʹؔ͢Δ୯‫͕ޠ‬ಛ௃తͰ͋Δɽਤ 7 ͸ unre-. ෆ͔͕֬͞‫ݟ‬ΒΕͨɽਤ 4 ͸ may Λ‫ؚ‬Ήίϛοτϝο. liable Λ‫ؚ‬ΉίϛοτϝοηʔδͷҰྫͰ͋Δɽ։ൃ. ηʔδͷҰྫͰ͋Δɽ։ൃऀ͸কདྷඞཁͱͳΔ‫ػ‬ೳͷ ͨΊʹύϥϝʔλͷઃఆΛߦͬͨɽ. ऀ͸৴པͰ͖ͳ͍ςετΛআ͍ͨɽ. 4.3.3 ܏޲෼ੳ. obscure bugɼerrorɼmessage ౳όάʹؔ࿈͢Δ୯‫͕ޠ‬. Ҏ্ͷΑ͏ʹෆ͔֬͞Λද͢Ωʔϫʔυ͝ͱʹಛ௃తͳ. ଟ͘ग़‫͢ݱ‬Δɽ·ͨɼͦΕΒͷಛ௃୯‫ޠ‬ͷมಈ܎਺΋. ΩʔϫʔυΛ͍͔ͭ͘෼ྨͰ͖ͨɽΩʔϫʔυ may ͸ཁ‫ٻ‬. ඇৗʹߴ͍ͨΊɼόάʹؔΘΔෆ͔͕֬͞ଟ͘‫·ؚ‬Ε. ʹؔ͢Δෆ͔͕֬͞ଟ͘‫ݟ‬ΒΕͨɽchangeableɼdebetable. ©2017 Information Processing Society of Japan. 127.

(7) ソフトウェアエンジニアリングシンポジウム 2017 IPSJ/SIGSE Software Engineering Symposium (SES2017). ͸ϓϩάϥϜͷ࣮૷Ͱύϥϝʔλ΍ API ౳ʹؔ͢Δෆ֬. ηΩϡϦςΟʹؔ࿈͢ΔՄೳੑ͕ߴ͍ɽ·ͨɼςΩετ෼. ͔͕͞ଘࡏ͍ͯͨ͠ɽͦͷଞʹ΋ erraticɼvague ͳͲͰ΋. ੳͷࡍʹ੍࡞ͨ͠ෆ͔֬͞Λද͢Ωʔϫʔυ͝ͱͷಛ௃୯. ಉ͡܏޲͕‫ݟ‬ΒΕͨɽdubiousɼobscure ͸όάؔ࿈ͷ಺༰. ‫ޠ‬ͷࠩ෼Ϧετ͸ɼෆ͔͕֬͞ଘࡏ͢Δίϛοτͷಛ௃Λ. ͕ଟ͍ͨΊɼόάʹؔ͢Δෆ͔͕֬͞ଘࡏ͢ΔՄೳੑ͕. ั͑ͨϦετͰ͋ΔͷͰɼ‫ػ‬ցతʹෆ͔֬͞Λௐࠪ͢Δࡍ. ߴ͍ͱߟ͑ΒΕΔɽಉ͘͡ɼambiguousɼarcaneɼmightɼ. ʹෆ͔֬͞Λ‫͚ͭݟ‬ΔͨΊͷࢦඪͱͯ͠ར༻Ͱ͖Δͱߟ͑. tentativeɼunknown Ͱ΋όάΛऔΓআͨ͘Ίͷίϛοτ͕. ͍ͯΔɽ. ‫ݟ‬ΒΕͨɽunreliable ͸ϓϩάϥϜͷςετʹؔ࿈͢ΔՄ ೳੑ͕͋Γɼfuzzy ΋ςετؔ࿈ͷ༻‫ݟ͕ޠ‬ΒΕͨɽrisky ͸ηΩϡϦςΟʹؔ࿈͢Δίϛοτϝοηʔδ͕֬ೝ͞. ँࣙ ຊ‫ڀݚ‬͸ɼจ෦ՊֶলՊֶ‫ॿิڀݚ‬අ‫ج‬൫‫( ڀݚ‬A) (՝. Εͨɽ. ୊൪߸ 26240007) ʹΑΔॿ੒Λड͚ͨɽ. 5. ଥ౰ੑ΁ͷ‫ڴ‬Җ. ࢀߟจ‫ݙ‬. ෼ੳʹͯෆ͔֬͞Λද͢ΩʔϫʔυΛ෼ྨͨ͠ࡍʹɼ‫ز‬. [1]. ͔ͭಛ௃తͳ܏޲͕‫ݟ‬ΒΕͳ͍Ωʔϫʔυ͕ଘࡏͨͨ͠ Ίɼ܏޲Λଊ͑Δख๏ͷվળ͕ඞཁͰ͋Δɽಛ௃୯‫ޠ‬ͷந. [2]. ग़͸‫ط‬ଘ‫͕ͨͬߦ͍ͯͮجʹڀݚ‬ɼಛ௃୯‫ޠ‬ͷ෼ྨͱෆ֬ ͔͞Λද͢Ωʔϫʔυͷ෼ྨͰ͸ɼͦ͏͍ͬͨΩʔϫʔυ ʹಛ௃తͳ܏޲͕ଘࡏ͢ΔՄೳੑ͕͋Δͱͯ͠΋ɼ෼ྨऀ. [3]. ͷϓϩάϥϛϯά‫ݧܦ‬΍஌ࣝͳͲʹΑΓൃ‫͍ͳ͖Ͱݟ‬Մೳ ੑ΋͋Δͱߟ͑ΒΕΔɽ ·ͨɼ͜ͷ෼ੳ͸ίϛοτϝοηʔδͷΈΛର৅ͱͯ͠. [4]. ߦͬͨ΋ͷͰɼιϑτ΢ΣΞʹ͓͍࣮ͯࡍͷίʔυͱͦͷ มߋཤྺΛ‫ݶ͍ͳݟ‬Γɼ෼ੳͷ݁Ռ͕ਖ਼͍͠ͱ͸‫͍ͳ͑ݴ‬ɽ. [5]. ͦͷͨΊɼ࣮ࡍͷίʔυ΍มߋཤྺͱ߹ΘͤͯͦΕΒͷಛ௃ తͳ܏޲Λ‫͢ূݕ‬Δ͜ͱ͕ඞཁͱͳΔɽ·ͨɼίϛοτί ϝϯτʹ͸։ൃऀ͕ೝ͍ࣝͯ͠Δ໰୊ͳͲ͕ॻ͔ΕΔ΋ͷ. [6]. ͳͷͰɼೝࣝ͞Ε͍ͯΔϨϕϧͷෆ͔֬͞ɼͭ·Γ Known. Unknowns ͸ଟ͘‫ݱ‬Ε͍ͯΔͱ༧૝͞ΕΔ͕ɼ։ൃऀ͕ೝ ͍ࣝͯ͠ͳ͍ෆ͔֬͞ɼͭ·Γ Unknown Unknowns Λந. [7]. ग़͢Δํ๏ͱͯ͠͸े෼Ͱͳ͍Մೳੑ͕͋Δɽ͜͏͍ͬͨ ཧ༝͔Βࠓճͷख๏Ͱൃ‫ͨ͠ݟ‬ෆ͔֬͞͸ɼ܏޲ʹภΓ͕. [8]. ଘࡏ͍ͯ͠Δ͔΋͠Εͳ͍ͱߟ͑ΒΕΔɽ ࠷‫ʹޙ‬ɼࠓճ࢖༻ͨ͠ෆ͔֬͞Λ࣋ͭ. [9]. 6. ·ͱΊ ຊ࿦จͰ͸ɼΦʔϓϯιʔειϑτ΢ΣΞͷ։ൃཤྺΛ. [10]. ෼ੳର৅ͱͯ͠ɼ࣮ࡍͷιϑτ΢ΣΞϓϩδΣΫτʹ͓͍. [11]. ͯͲͷΑ͏ͳෆ͔͕֬͞ଘࡏ͢Δ͔Λௐࠪͨ͠ɽ ෆ͔֬͞Λද͢ΩʔϫʔυΛ‫ؚ‬Ήίϛοτϝοηʔδʹ ͸Ͳͷ༷ͳಛ௃͕͋Δ͔ɼͱ͍͏͜ͱʹؔͯ͠͸ɼෳ਺ͷϓ. [12]. ϩδΣΫτͷ෼ੳʹΑΓಛ௃Λ࣋ͭΩʔϫʔυΛ͍͔ͭ͘ ‫͚ͭݟ‬Δ͜ͱ͕Ͱ͖ͨɽΩʔϫʔυ may ͸ཁ‫ؔ͢ʹٻ‬Δෆ. [13]. ͔͕֬͞ଘࡏ͢ΔՄೳੑ͕͋Δɽchangeableɼdebetableɼ. erraticɼvague ͸ϓϩάϥϜͷ࣮૷Ͱύϥϝʔλ΍ API ౳ ʹؔ͢Δෆ͔͕֬͞ଘࡏ͢ΔՄೳੑ͕͋Δɽambiguousɼ. arcaneɼdubiousɼmightɼobscureɼtentativeɼunknown ͸ όάؔ࿈ΩʔϫʔυͰ͋ΔՄೳੑ͕ߴ͍ɽfuzzyɼunreliable. [14]. Brown, C. E.: Coefficient of Variation, pp. 155–157, Springer Berlin Heidelberg (1998). Elbaum, S. and Rosenblum, D. S.: Known Unknowns: Testing in the Presence of Uncertainty, Proceedings of the 22nd International Symposium on Foundations of Software Engineering, pp. 833–836 (2014). Esfahani, N., Malek, S. and Razavi, K.: GuideArch: guiding the exploration of architectural solution space under uncertainty, Software Engineering (ICSE), 2013 35th International Conference on, pp. 43–52 (2013). Esfahani, N., Razavi, K. and Malek, S.: Dealing with uncertainty in early software architecture, Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering, p. 21 (2012). Famelis, M., Ben-David, N., Sandro, A. D., Salay, R. and Chechik, M.: MU-MMINT: an IDE for Model Uncertainty, Proceedings of the 37th International Conference on Software Engineering, pp. 697–700 (2015). Famelis, M., Salay, R. and Chechik, M.: Partial Models: Towards Modeling and Reasoning with Uncertainty, Proceedings of the 34th International Conference on Software Engineering, pp. 573–583 (2012). Feinerer, I.: Introduction to the tm Package Text Mining in R (2015). Garlan, D.: Software engineering in an uncertain world, Proceedings of the FSE/SDP workshop on Future of software engineering research, pp. 125–128 (2010). Letier, E., Stefan, D. and Barr, E. T.: Uncertainty, risk, and information value in software requirements and architecture, Proceedings of the 36th International Conference on Software Engineering, pp. 883–894 (2014). Lindberg, C. A.(ed.): Oxford american writer’s thesaurus, Oxford University Press (2012). Marcus, M. P., Marcinkiewicz, M. A. and Santorini, B.: Building a large annotated corpus of English: The Penn Treebank, Computational linguistics, Vol. 19, No. 2, pp. 313–330 (1993). Meyer, D., Hornik, K. and Feinerer, I.: Text mining infrastructure in R, Journal of statistical software, Vol. 25, No. 5, pp. 1–54 (2008). Perez-Palacin, D. and Mirandola, R.: Uncertainties in the Modeling of Self-adaptive Systems: A Taxonomy and an Example of Availability Evaluation, Proceedings of the 5th ACM/SPEC International Conference on Performance Engineering, pp. 3–14 (2014). Ramos, J.: Using tf-idf to determine word relevance in document queries, Proceedings of the first instructional conference on machine learning (2003).. ͸ϓϩάϥϜͷςετʹؔ࿈͢ΔՄೳੑ͕͋Δɽrisky ͸. ©2017 Information Processing Society of Japan. 128.

(8) ソフトウェアエンジニアリングシンポジウム 2017 IPSJ/SIGSE Software Engineering Symposium (SES2017). [15]. [16]. Ratnaparkhi, A.: A maximum entropy model for part-ofspeech tagging, Proceedings of the conference on empirical methods in natural language processing, Philadelphia, USA, pp. 133–142 (1996). Walker, W. E., Harremo¨es, P., Rotmans, J., van der Sluijs, J. P., van Asselt, M. B., Janssen, P. and Krayer von Krauss, M. P.: Defining uncertainty: a conceptual basis for uncertainty management in modelbased decision support, Integrated assessment, Vol. 4, No. 1, pp. 5–17 (2003).. ©2017 Information Processing Society of Japan. 129.

(9)

参照

関連したドキュメント

Bae, “Blind grasp and manipulation of a rigid object by a pair of robot fingers with soft tips,” in Proceedings of the IEEE International Conference on Robotics and Automation

Jayamsakthi Shanmugam, Dr.M.Ponnavaikko “A Solution to Block Cross Site Scripting Vulnerabilities Based on Service Oriented Architecture”, in Proceedings of 6th IEEE

T´oth, A generalization of Pillai’s arithmetical function involving regular convolutions, Proceedings of the 13th Czech and Slovak International Conference on Number Theory

Since the copula (4.9) is a convex combination of elementary copulas of the type (4.4) and the operation of building dependent sums from random vector with such copulas is

Since the copula (4.9) is a convex combination of elementary copulas of the type (4.4) and the operation of building dependent sums from random vector with such copulas is

In Proceedings Fourth International Conference on Inverse Problems in Engineering (Rio de Janeiro, 2002), H. Orlande, Ed., vol. An explicit finite difference method and a new

NIST - Mitigating the Risk of Software Vulnerabilities by Adopting a Secure Software Development Framework (SSDF).

(4S) Package ID Vendor ID and packing list number (K) Transit ID Customer's purchase order number (P) Customer Prod ID Customer Part Number. (1P)