修論発表会発表資料
ソフトウェア再利用に向けた
共通ゴール判別手法の提案


            電気通信大学
    大学院情報システム学研究科
        大須賀・田原研究室
        1151025 中村 祐貴
再利用開発
• 既存システムを上手く再利用することで、
        効率よく新システムを開発できる[1]
                               1から開発
                                                                                               非効率




                            再利用して開発                                                            効率が
                                                                                                いい



1.   Klaus Pohl, Gunter Bockle, Frank Van Der Linden: Software Product Line Engineering: Foundations, Principles   1
     And Techniques, SpringerVerlag New York Inc 2005.
再利用資産の構築
• 既存システムを再利用し易いように整理する
  必要がある




          再利用資産



 既存システム           新システム
                          2
共通機能と可変機能に分類[2]




                  機能1          機能2          機能1         機能2          機能1          機能2


                  機能3          機能4          機能3         機能4          機能3          機能4




2.   Lianping Chen, Muhammad Ali Babar, Nour Ali Lero: Variability Management in Software Product Lines: A   3
     Systematic Review, SPLC2009,pp.81-90.
共通機能と可変機能に分類[2]
             可変機能                                                      共通機能
     顧客の要求に応じて                                                       いかなる場合でも
     再利用すべき機能                                                        再利用すべき機能



                  機能1          機能2          機能1         機能2          機能1          機能2


                                                 共通機能




2.   Lianping Chen, Muhammad Ali Babar, Nour Ali Lero: Variability Management in Software Product Lines: A   4
     Systematic Review, SPLC2009,pp.81-90.
要求と機能のギャップ
• 機能モデル[3]から「再利用すべき機能」を特定しづらい

        録画したい!!                                 ギャップ                                  どっちが
                                                                                      必要??

                                                                録画機能


                                        ブルーレイディスク                                  ハードディスク
                                           機能                                      ドライブ機能
                顧客                                                機能モデル

3. Czarnecki K, Helsen S, and Eisenecker U: Formalizing: Cardinality-based Feature Models and their Specialization,
   Software Process. Improvement and Practice, Vol.10, No.1 2005, pp.7-29.                                            5
ゴールモデルを使うと機能を選べる
• ゴールモデル[4]があると、
  要求を辿ることで「再利用すべき機能」に到達できる
     録画したい!!                                       用途に合わせて
                                                   番組を録画できる

                                                             or
                                        録画して持ち                          長時間
                                        運びできる                          録画できる



                             ブルーレイディスク   ハードディスクドライブ
                              で録画できる        で録画できる
       顧客                            ゴールモデル
4.    Axel van Lamsweerde: Requirements Engineering, From System Goals to UML Models to Software
      Specications, Wiley, 2009.
                                                                                                   6
ゴールモデルを使うと機能を選べる
• ゴールモデル[4]があると、
  要求を辿ることで「再利用すべき機能」に到達できる
  そうか、                                            用途に合わせて                                  抽象的な
 この機能が                                            番組を録画できる
                                                                                            要求
 必要なのか!!
                                                            or
                                       録画して持ち                          長時間
                                       運びできる                          録画できる
                                                                                           具体的な
                                                                                            機能
                            ブルーレイディスク   ハードディスクドライブ
                             で録画できる        で録画できる
      顧客                            ゴールモデル
4.   Axel van Lamsweerde: Requirements Engineering, From System Goals to UML Models to Software
     Specications, Wiley, 2009.
                                                                                                  7
既存研究
• 結合ゴールモデル[5]から機能モデルを導出[6]し対応付ける

                                                                                   青:共通ゴール
                                                                                   白:可変ゴール
                                                             A                                          A
                                                              and
      A                        A
      and         +             and
                                                       B            C or D
                                                                        or
                                                                                              B
B           C            B            D                 or
                                                                    C          D                         C            D
ゴールモデル1
                         E                        E
                                                             NOP
                                                                                              E
                       ゴールモデル2                        結合ゴールモデル                                     機能モデル

 5.     Uno K, Hayashi S, Saeki M: Constructing Feature Models using Goal Oriented Analysis, QSIC2009, pp.412-417.
 6.     Yijun Yu, Alexei Lapouchnian, Sotirios Liaskos, John Mylopoulos, and Julio C.S.P.Leite: From Goals to High-
        Variability Software Design, ICIST2008.                                                                           8
ゴールを選ぶと、短期間・低コストで
      要求を満たした派生システムが[7]
                                                   A
                                              OR        OR



                        B                          C                       D
                        OR                         OR                      OR
                                                                                            派生システム1
顧客1               E            F            G                H        I           J
                  機能1         機能2         機能1           機能2        機能1          機能2


                  機能3         機能4         機能3  機能4
                                            共通機能                   機能3          機能4



可変機能                                                                                        共通機能



 7.   Mohsen Asadi, Ebrahim Bagheri, Dragan Gaevi,Marek Hatala, Bardia Mohabbati: Goal-Driven Software Product   9
      Line Engineering, SAC2011,pp.691-698.
ゴールを選ぶと、短期間・低コストで
      要求を満たした派生システムが[7]
                                                   A
                                              OR        OR



                        B                          C                      D
                        OR                         OR                     OR               派生システム2
顧客2               E           F            G                 H       I           J
                  機能1        機能2          機能1           機能2       機能1          機能2


                  機能3        機能4          機能3  機能4
                                            共通機能                  機能3          機能4



可変機能                                                                                       共通機能



 7.   Mohsen Asadi, Ebrahim Bagheri, Dragan Gaevi,Marek Hatala, Bardia Mohabbati: Goal-Driven Software Product10
      Line Engineering, SAC2011,pp.691-698.
既存研究
• 結合ゴールモデル[5]から機能モデルを導出[6]し対応付ける

                                                                                   青:共通ゴール
                                                                                   白:可変ゴール
                                                             A                                          A
                           問題:共通ゴールの判別手法
                                                              and
      A                     A
      and         +              B  C or D
                               が自明でない
                                and
                                                                        or
                                                                                              B
B           C            B            D                 or
                                                                    C          D                         C            D
ゴールモデル1
                         E                        E
                                                             NOP
                                                                                              E
                       ゴールモデル2                        結合ゴールモデル                                     機能モデル

 5.     Uno K, Hayashi S, Saeki M: Constructing Feature Models using Goal Oriented Analysis, QSIC2009, pp.412-417.
 6.     Yijun Yu, Alexei Lapouchnian, Sotirios Liaskos, John Mylopoulos, and Julio C.S.P.Leite: From Goals to High-
        Variability Software Design, ICIST2008.                                                                       11
「共通」と「非共通」と「可変」

AとBは共通ゴール      AとBは非共通ゴール

  A   共通   B        A   非共通   B


               Aは可変ゴール
                     非共通   D
同じゴール               非共通
                A        B   C
                     非共通
同じじゃないゴール
                                  12
共通ゴールの判別は困難
• 現場の大規模システムのゴール数は膨大
この中から共通ゴールをすべて早く正確に見つけてください
  G1                                                                                       G2
                                                   C                                                                                                C




           C       C               C                           C                                    C               C                   C                   C




                                                                                                        C




           C                       C       C                           C                                        C           C                                   C



                                                                                                C




                                                                                                                                                                                            C




               C               C                                               C                                        C                                                   C




                                               C                                                                                C               C



                                                                                                                                                                                    C




           C           C                                                                            C           C



                                                       C               C                                                                                        C




                                       C                                                                                            C




   C       C                                               C                       C       C                C                                           C           C




                                       C       C                                                                                    C           C




           C                                                               C           C            C




                                                                                                                                    C




                                                                                                        C           C                           C           C




       C                                                                       C                                                                                                C




                           C                   C                                                                                            C




                                                                                                                                                                        C               C




                                                                   C                   C




                                                                                                                                                                                                13
提案手法の概要
                                            明らかに共通・
         自動で判別(増やしたい)                        可変なゴール
                                            明共通 明可変
                                            A   と   F   E   J
     ゴールモデル                        提案手法を
       ×2                         実装したツール   B   と   G

G1               G2
     A                F
                                                共通ゴール
 B       C        G       H                     ランキング
     D       E        I       J             「C」の共通ゴールランキング
                                               1位:「H」
                                               2位:「I」

                                            「D」の共通ゴールランキング
         人手で判別(減らしたい)                          1位:「I」
                                               2位:「H」
                                                                14
ツールの内部処理
 ゴールモデル
   ×2       ゴール名の
           類似度を計測
              +
           提案ルールを
             適用
 明らかに共通
 明らかに可変    閾値を基準に
 共通ゴール       判別
 ランキング      ツール     15
ツールの内部処理
 ゴールモデル
   ×2       ゴール名の
           類似度を計測
              +
           提案ルールを
             適用
 明らかに共通
 明らかに可変    閾値を基準に
 共通ゴール       判別
 ランキング      ツール     16
類似度のみを用いた場合の問題点

• 「類似度の高い非共通ゴール」
→ ゴール名が似ているため、
         共通ゴールと判別されやすい


• 「類似度の低い共通ゴール」
→ ゴール名が似ていないため、
         非共通ゴールと判別されやすい


                          17
解決の方針
• 自然言語処理を利用して解決
  – オントロジーで意味を与え、類似度をより繊細に計測する
  – デメリット1:ドメインごとにオントロジーを用意する必要が
    ある
  – デメリット2:「類似度の低い共通ゴール」は見分けられる
    が、「類似度の高い非共通ゴール」は困難
採用
 • ゴールモデルの構造を利用して解決
  – 親子ゴールの情報を使う
  – メリット1:ドメインごとに何か準備する必要はない
  – メリット2:「類似度の低い共通ゴール」、
          「類似度の高い非共通ゴール」共に判別可能
                                   18
「類似度の高い非共通ゴール」を見分ける
• より具体的なゴールから共通ゴールのセットを作り
  除外する
                抽象的な           抽象的な
                 ゴール            ゴール
      類似度:0.9
ゴール                    優先
      類似度:0.9   具体的な        具体的な      具体的な
                 ゴール         ゴール       ゴール


• 「1ゴール1共通」
  → 1つのゴールに対して、共通ゴールは一つまで
• 「下位ゴール優先」
  → 類似度が等しい場合は、より下位のゴールを優先19
「1ゴール1共通」・「下位ゴール優先」の例
 1.   (1-2)と(2-1)は「類似度の高い非共通ゴール」
 2.   下位ゴール(1-2)(1-3)(2-2)(2-3)だけで比較
 3.   (1-2)(2-2)と(1-3)(2-3)の2セットができる
 4.   1ゴール1共通なので、これらを除外
 5.   (1-2)の共通ゴール候補に(2-1)が出現しない

G1                               G2
       番組情報や番組説明を                        番組の情報を
                            共通
       見ることができる(1-1)                   見ることができる(2-1)

        AND     AND    類似度の高い非共通ゴール        AND   0    AND

番組情報を見ること     番組説明を見ること           番組情報を見ること          番組説明を見ること
 ができる(1-2)     ができる(1-3)           ができる(2-2)          ができる(2-3)

                       共通             共通
                                                              20
「類似度の低い共通ゴール」を見分ける
• 具体的なゴールの情報を参考に、抽象的なゴール
  を判別する
    抽象的な                   抽象的な
     ゴール
              判別が困難         ゴール

                  参考に
 具体的な      具体的な         具体的な      具体的な
  ゴール       ゴール          ゴール       ゴール


• 「子ゴール共通性の反映」
  → 子ゴールの中に「明らかに共通なゴール」が
    一つでもあれば、その親ゴールは
    「明らかに可変なゴール」にしない                     21
「子ゴール共通性の反映」の例
 1. (1-1)と(2-1)は「類似度の低い共通ゴール」
 2. (1-2)と(2-2)は明らかに共通
 3. 子ゴール共通性を反映し、その親である(1-1)と(2-1)は
    明らかに可変にしない
 4. (1-1)と(2-1)は共通ゴールランキングに出現

G1                                         G2
             searching in the         類似度の低い              searching friends
            search field (1-1)         共通ゴール                   (2-1)

            AND          AND                             AND    0    AND

     by user name                                                   by e-mail address
                          by words (1-3)        by name (2-2)
         (1-2)                                                            (2-3)

                                 共通                                                 22
評価実験
ドメイン               テレビ             SNS        就職支援システム     カメラ
ゴールモデル名        55X3 55ZX9000 Twitter Facebook リクナビ マイナビ A37 NEX-F3
ゴール数             51       70      31       54    33   84 57     50
正解共通ゴール数             20              9             13       23
企業                同企業             別企業            別企業      同企業
作成者               同作者             同作者            別作者      同作者
言語                日本語              英語            日本語       英語


 • 実験1:テレビ、SNS、就職支援システム
 → 提案ルール( 「1ゴール1共通」、「下位ゴール優先」、「子ゴール共通性の反映」)
   の有効性を評価
 • 実験2:カメラ
 → 提案手法全体の有効性を評価
                                                              23
実験1:実験の方法
           G1       G2




                ゴールモデル×2




  手動で共通ゴールを判別            自作ツールで共通ゴールを判別



共通ゴール   可変ゴール     比較      明らかに共通   明らかに可変
   正解データ                     ツールの出力         24
実験1:テレビの結果
 The process of identifying clearly common goals                                      The process of identifying clearly variable goals
                    (テレビ)                                                                                (テレビ)
100.00%                                                                             100.00%
80.00%                                                                              90.00%
60.00%
                                                                                    80.00%
40.00%
20.00%                                                                              70.00%
                                                                      (threshold)                                                                            (threshold)
 0.00%                                                                              60.00%
          0.0   0.1   0.2   0.3   0.4   0.5   0.6   0.7   0.8   0.9    1.0                    0.0   0.1     0.2   0.3   0.4   0.5   0.6   0.7    0.8   0.9   1.0
                       Before                             After precision                                  Before                               After precision
                      precision                                                                           precision
100.00%                                                                             100.00%
80.00%                                                                               80.00%
60.00%                                                                               60.00%
40.00%                                                                               40.00%
20.00%                                                                               20.00%
                                                                      (threshold)                                                                            (threshold)
 0.00%                                                                                0.00%
          0.0   0.1   0.2   0.3   0.4   0.5   0.6   0.7   0.8   0.9    1.0                    0.0   0.1    0.2    0.3   0.4   0.5   0.6   0.7    0.8   0.9   1.0

                  Before recall                            After recall                                   Before recall                            After recall


• 明らかに共通
    – 提案ルール適用前:0.00%の共通ゴールを判別
    – 提案ルール適用後:40.00%の共通ゴールを判別                                                                                                            (40.00%向上)
• 明らかに可変
    – 提案ルール適用前:34.57%の可変ゴールを判別
    – 提案ルール適用後:34.57%の可変ゴールを判別                                                                                                            (変化なし)                           25
実験1:SNSの結果
 The process of identifying clearly common goals                                        The process of identifying clearly variable goals
                     (SNS)                                                                                  (SNS)
100.00%                                                                              100.00%
 80.00%                                                                               90.00%
 60.00%
                                                                                      80.00%
 40.00%
 20.00%                                                                               70.00%
                                                                       (threshold)                                                                          (threshold)
 0.00%                                                                                60.00%
          0.0   0.1   0.2   0.3   0.4   0.5   0.6   0.7    0.8   0.9    1.0                    0.0   0.1    0.2   0.3   0.4   0.5   0.6   0.7   0.8   0.9   1.0

                       Before                             After precision                                   Before                              After precision
                      precision                                                                            precision
100.00%                                                                              100.00%
 80.00%                                                                               80.00%
 60.00%                                                                               60.00%
 40.00%                                                                               40.00%
 20.00%                                                                               20.00%
                                                                       (threshold)                                                                          (threshold)
  0.00%                                                                                0.00%
          0.0   0.1   0.2   0.3   0.4   0.5   0.6   0.7    0.8   0.9    1.0                    0.0   0.1    0.2   0.3   0.4   0.5   0.6   0.7   0.8   0.9   1.0
                  Before recall                            After recall                                    Before recall                           After recall


• 明らかに共通
    – 提案ルール適用前:77.78%の共通ゴールを判別
    – 提案ルール適用後:77.78%の共通ゴールを判別                                                                                                            (変化なし)
• 明らかに可変
    – 提案ルール適用前:16.42%の可変ゴールを判別
    – 提案ルール適用後:91.04%の可変ゴールを判別                                                                                                            (74.62%向上) 26
実験1:就職支援システムの結果
  The process of identifying clearly common goals                                   The process of identifying clearly variable goals
                   (就職サイト)                                                                           (就職サイト)
 100.00%                                                                          100.00%
  80.00%                                                                          80.00%
  60.00%                                                                          60.00%
  40.00%                                                                          40.00%
  20.00%                                                                          20.00%
   0.00%                                                            (threshold)    0.00%                                                            (threshold)
           0.0   0.1   0.2   0.3   0.4   0.5   0.6   0.7    0.8   0.9   1.0                 0.0   0.1   0.2   0.3   0.4   0.5   0.6   0.7   0.8   0.9   1.0
                        Before                             After precision                               Before                             After precision
                       precision                                                                        precision
 100.00%                                                                          100.00%
 80.00%                                                                            80.00%
 60.00%                                                                            60.00%
 40.00%                                                                            40.00%
 20.00%                                                                            20.00%
  0.00%                                                             (threshold)                                                                     (threshold)
                                                                                   0.00%
           0.0   0.1   0.2   0.3   0.4   0.5   0.6   0.7    0.8   0.9   1.0                 0.0   0.1   0.2   0.3   0.4   0.5   0.6   0.7   0.8   0.9   1.0
                   Before recall                            After recall                            Before recall                           After recall


• 明らかに共通
   – 提案ルール適用前:38.46%の共通ゴールを判別
   – 提案ルール適用後:53.85%の共通ゴールを判別                                                                                                   (15.39%向上)
• 明らかに可変
   – 提案ルール適用前:23.66%の可変ゴールを判別
   – 提案ルール適用後:23.66%の可変ゴールを判別                                                                                                   (変化なし)                            27
実験1:考察
• テレビでは「類似度の高い非共通ゴール」が、
  SNSでは「類似度の低い共通ゴール」が出現し、
  それらを見分けられたことで精度が上がった

• 就職支援システムでは「類似度の低い共通ゴール」を見分け
  られていない
→ 原因:ゴールモデルの作者が別作者
  – 最下位ゴールの分解粒度が粗い
  – 最下位ゴールの分解粒度が統一されていない

   「子ゴール共通性の反映」は最下位ゴールの
  分解粒度が細かく、かつ統一されている場合に有効
                                28
実験2:実験の方法(チームA)
       G1       G2




            ゴールモデル×2




      手作業で共通ゴールを判別



   共通ゴール    可変ゴール      作業時間
                              29
実験2:実験の方法(チームB)
G1                                                  G2                                               「C」の共通ゴールランキング
                            C                                                    C




    C           C                       C                    C               C       C
                                                                                                        1位:「H」
                C       C                   C            C           C                   C
                                                                                                        2位:「I」
C           C                                   C                C                               C




        C




                    C
                                C           C
                                                         C




                                                                         C
                                                                                         C

                                                                                                     「D」の共通ゴールランキング   手作業で共通ゴールを判別
                                                                                                        1位:「I」
                                    C                C                                       C




                                                                                                        2位:「H」
    ゴールモデル×2


                                                                                                           明共通             共通ゴール
                                                                                                           明可変             可変ゴール

                                                ツール
                                                                                                                 共通ゴール    可変ゴール

                                                                                                                  作業時間             30
実験2:実験結果

• 提案手法を用いた方が…
 – 作業時間:53.5分→39.25分( 7割の作業時間で)
 – 適合率:81.69%→92.43%(約10%向上)
 – 再現率:69.75%→91.30%(約20%向上)



     提案手法を用いた方が、
 早く正確に多くの共通ゴールを判別できる
                                  31
研究の課題

    シナリオ:同一企業内のシステムで
     共通ゴールを判別し再利用する

                  しかし、もし…

• 別企業のシステムと共通ゴールを判別する場合
 – オントロジーを用いて類似度計測手法の精度を上げる
 – 最下位ゴールの分解粒度が統一されていない箇所を
   自動で見つけ統一する
 ことが必要
                              32
まとめ
         再利用開発では、
顧客の要求を既存システムの機能に反映できるモデルが必要


      既存研究ではゴールモデルを用いて
        それを実現しようしているが、
      共通ゴールの判別手法が自明でない


     本研究で、ゴールモデルの構造に基づいた
       共通ゴール判別手法を提案した


  実験により、提案ルールが有効な場合とそうでない場合を
明確化し、有効な場合は作業の効率化に貢献することがわかった33
研究成果
•   論文誌:
    中村祐貴, 本田耕三, 中川博之, 田原康之, 大須賀昭彦
    "ソフトウェア再利用に向けた共通ゴール判別手法の提案“
    日本ソフトウェア科学会誌「コンピュータソフトウェア」「ソフトウェア工学」
    特集2013(投稿中).
•   国内査読付きシンポジウム:
    中村祐貴, 本田耕三, 中川博之, 田原康之, 大須賀昭彦
    "ゴールモデルの構造に基づいた共通ゴール判別手法の提案"
    第19 回ソフトウェア工学の基礎ワークショップ2012(FOSE2012)
    (2012.12).
•   その他研究発表:
    中村祐貴, 本田耕三, 中川博之, 田原康之, 大須賀昭彦
    "ソフトウェア再利用に向けた共通ゴール判別手法の提案“
    ウインターワークショップ2013 (2013.1).              34
ここから、質問対応用


             35
ゴール名の類似度(一般的な既存手法[8]を使用)
• ゴール名を構成する名詞と動詞が一致する割合を算出
  (動詞は基本形に変換してから)
         類似度 = | X ∩ Y | / | X ∪ Y |

       共通要素数                             少なくとも一方にある要素数

例)「見たい番組を探すことができる」と
 「見たい番組を番組表で探すことができる」の場合…
         | X ∩ Y |は「見る」「番組」「探す」の3単語
    | X ∪ Y |は「見る」「番組」「番組表」「探す」の4単語
                → 類似度は 3 / 4 = 0.75
 8.   Muhammad Ilyas , Josef Kung: A Similarity Measurement Framework for Requirements Engineering,
      ICCGI2009, pp.31-34.                                                                            36
非共通ゴールを共通と判別すると…

                  明らかに共通
                                         • 本来なくてもいい機能
        可変   共通        共通       共通

                                     1   • ユーザビリティが低下
                                         • 手戻り
閾値1

    A              A



B       C     B             C




                                                        37
共通ゴールを可変と判別すると…

                   明らかに可変
• 必要な機能がない
• ユーザビリティが低下       可変       可変   可変   共通

• 手戻り          0
                                           閾値2

                             A             A



                        C        B    C        B




                                                   38
類似度と閾値
• 類似度+提案ルールに閾値(基準)を設定し、
  それに従ってツールが共通・可変を判別する仕様に

 明らかに可変       共通ゴール        明らかに共通
              ランキング



似てない   0                     1   似ている
                類似度
           閾値2   +   閾値1
               提案ルール

   閾値1・閾値2の値はいくらにしよう…??             39
最適な閾値を求めるために1
 最適な閾値(共通ゴールのみ・可変ゴールのみを
  正しく判別できる閾値)をどうやって見つけよう


• 閾値の値はゴールモデルによって違う
• 正解の共通ゴールが分からないと、最適な閾値もわ
  からない


• ゴールモデルの一部だけを使って、手作業で正解
  の共通ゴールを判別するのは??
• そしてその部分で閾値を出せばいいのでは??
                            40
閾値の求め方(予備実験の方法)
G1                                              C
                                                                                                        G2                                          C




        C       C               C                           C                                               C           C               C               C




                                C       C                           C                                               C           C                           C

                                                                                                        C




                                                                                                                                                                                        C




            C               C                                               C                                               C                                           C




                                                                                                                                                                                C




        C           C                                                                                               C

                                                    C               C                                                                                       C




                                    C                                                                                               C




C       C                                               C                       C                   C           C                                               C




                                    C       C                                                                                                   C




        C                                                               C           C                       C




                                                                                                                                    C




                                                                                                                                                C       C




    C                                                                       C                                                                                               C




                        C                   C                                                                                               C




                                                                                                                                                                    C               C




                                                                C                   C




                                                                                専門家               自作ツール


共通ゴール                                                                                   可変ゴール   正解データだけで
                                                                正解データ                           最適な閾値を算出                                                                                    41
テレビ、SNSのゴール例
                テレビ
• 共通ゴール:チャンネルを選ぶことができる
        画面を二画面で見ることができる               など
• 可変ゴール: 3D映像を楽しむことができる(テレビ1)
        降雨対応放送を利用できる(テレビ2)            など

                        SNS
• 共通ゴール: signing up account
         uploading profile picture    など
• 可変ゴール: adding hash tags (twitter)
         using wall tab (Facebook)    など
                                       42
就職支援システム、カメラのゴール例
              就職支援システム
• 共通ゴール:企業をフリーワードで検索できる
         企業を本社や勤務地の場所から検索できる など
• 可変ゴール: 1週間以内に説明会が開催される企業を検索
         できる(リクナビ)
         企業を採用実績校で検索できる(マイナビ) など

                        カメラ
• 共通ゴール: recognizes the scene
         Installing the software        など
• 可変ゴール: hold the camera (A37)
        Using the self-timer (NEX-F3)   など43
実験2:実験の方法(チームB-ステップ1)
 G1                                                   G2                                               G1      G2
                              C                                                    C




      C           C                       C                    C               C       C




                  C       C                   C            C           C                   C




  C           C                                   C                C                               C




          C                                                C

                                  C           C                                            C




                      C                                                    C




                                      C                C                                       C




      ゴールモデル×2                                                                                         ゴールモデルの一部×2




                                                                                                       手作業で共通ゴールを判別
                                              ツール

                                                                                                       共通ゴール        可変ゴール

                                                  閾値                                                                作業時間1   44
提案ルールが上手く機能しない場合の例

「企業を詳細な業種で複数選択し検索できる」
         (リクナビ)
            と
    「業種を小分類で検索できる」
         (マイナビ)
    は、類似度の低い共通ゴール

 しかし、これ以上分解されていないため
   子ゴール共通性を反映できない       45
フィーチャロケーション[9]
• フィーチャとコードを対応付ける

必須フィーチャ:スタック




任意フィーチャ:ロック

 9.   Dapeng Liu , Andrian Marcus , Denys Poshyvanyk , Vclav Rajlich:Feature Location via Information Retrieval
      based Filtering of a Single Scenario Execution Trace, ASE2007, pp.234-243.
                                                                                                                  46
コードのモジュール化[10]
• #define,ifdef,endifで
  ロックを付け替え可能に




 10.   Jorg Liebig, Sven Apel, Christian Lengauer, Christian Kstner, Michael Schulze: An Analysis of the Variability in
       Forty Preprocessor-Based Software Product Lines,ICSE2010, pp.105-114.
                                                                                                                          47
ゴールモデルの入力
• テキスト形式で入力
                     番組情報や番組説明を見ることができる(1-1)
                     (タブ)番組情報を見ることができる(1-2)
                     (タブ)番組説明を見ることができる(1-3)

     番組情報や番組説明を
     見ることができる(1-1)

      AND     AND

番組情報を見ること    番組説明を見ること
 ができる(1-2)    ができる(1-3)
                          •   ゴールNo:ツールに入力した順に振られる
                          •   ゴール名:ゴールの名前
                          •   レイヤNo:タブの数で判別
                          •   親ゴールNo:タブの数で判別     48
提案手法に至るまで

  共通ゴールの判別手法が自明でない

   全自動で共通ゴールを判別したい

   全自動・高精度で判別は難しい

   なら、半自動・高精度を目指そう

  手動の部分もできるだけ楽にしよう
                     49
提案ルールに至るまで
    類似度の高い非共通ゴールと
類似度の低い共通ゴールを正しく見分けられない

   自分なら、どうやって見分けるだろう??

  親子ゴールの情報を参考にするだろうな…

     アルゴリズム化して実装しよう

 ヒューリスティックな手法だけど、上手くいったな   50

平成24年度社会知能情報学専攻修士論文発表会(発表資料)

  • 1.
    修論発表会発表資料 ソフトウェア再利用に向けた 共通ゴール判別手法の提案 電気通信大学 大学院情報システム学研究科 大須賀・田原研究室 1151025 中村 祐貴
  • 2.
    再利用開発 • 既存システムを上手く再利用することで、 効率よく新システムを開発できる[1] 1から開発 非効率 再利用して開発 効率が いい 1. Klaus Pohl, Gunter Bockle, Frank Van Der Linden: Software Product Line Engineering: Foundations, Principles 1 And Techniques, SpringerVerlag New York Inc 2005.
  • 3.
    再利用資産の構築 • 既存システムを再利用し易いように整理する 必要がある 再利用資産 既存システム 新システム 2
  • 4.
    共通機能と可変機能に分類[2] 機能1 機能2 機能1 機能2 機能1 機能2 機能3 機能4 機能3 機能4 機能3 機能4 2. Lianping Chen, Muhammad Ali Babar, Nour Ali Lero: Variability Management in Software Product Lines: A 3 Systematic Review, SPLC2009,pp.81-90.
  • 5.
    共通機能と可変機能に分類[2] 可変機能 共通機能 顧客の要求に応じて いかなる場合でも 再利用すべき機能 再利用すべき機能 機能1 機能2 機能1 機能2 機能1 機能2 共通機能 2. Lianping Chen, Muhammad Ali Babar, Nour Ali Lero: Variability Management in Software Product Lines: A 4 Systematic Review, SPLC2009,pp.81-90.
  • 6.
    要求と機能のギャップ • 機能モデル[3]から「再利用すべき機能」を特定しづらい 録画したい!! ギャップ どっちが 必要?? 録画機能 ブルーレイディスク ハードディスク 機能 ドライブ機能 顧客 機能モデル 3. Czarnecki K, Helsen S, and Eisenecker U: Formalizing: Cardinality-based Feature Models and their Specialization, Software Process. Improvement and Practice, Vol.10, No.1 2005, pp.7-29. 5
  • 7.
    ゴールモデルを使うと機能を選べる • ゴールモデル[4]があると、 要求を辿ることで「再利用すべき機能」に到達できる 録画したい!! 用途に合わせて 番組を録画できる or 録画して持ち 長時間 運びできる 録画できる ブルーレイディスク ハードディスクドライブ で録画できる で録画できる 顧客 ゴールモデル 4. Axel van Lamsweerde: Requirements Engineering, From System Goals to UML Models to Software Specications, Wiley, 2009. 6
  • 8.
    ゴールモデルを使うと機能を選べる • ゴールモデル[4]があると、 要求を辿ることで「再利用すべき機能」に到達できる そうか、 用途に合わせて 抽象的な この機能が 番組を録画できる 要求 必要なのか!! or 録画して持ち 長時間 運びできる 録画できる 具体的な 機能 ブルーレイディスク ハードディスクドライブ で録画できる で録画できる 顧客 ゴールモデル 4. Axel van Lamsweerde: Requirements Engineering, From System Goals to UML Models to Software Specications, Wiley, 2009. 7
  • 9.
    既存研究 • 結合ゴールモデル[5]から機能モデルを導出[6]し対応付ける 青:共通ゴール 白:可変ゴール A A and A A and + and B C or D or B B C B D or C D C D ゴールモデル1 E E NOP E ゴールモデル2 結合ゴールモデル 機能モデル 5. Uno K, Hayashi S, Saeki M: Constructing Feature Models using Goal Oriented Analysis, QSIC2009, pp.412-417. 6. Yijun Yu, Alexei Lapouchnian, Sotirios Liaskos, John Mylopoulos, and Julio C.S.P.Leite: From Goals to High- Variability Software Design, ICIST2008. 8
  • 10.
    ゴールを選ぶと、短期間・低コストで 要求を満たした派生システムが[7] A OR OR B C D OR OR OR 派生システム1 顧客1 E F G H I J 機能1 機能2 機能1 機能2 機能1 機能2 機能3 機能4 機能3 機能4 共通機能 機能3 機能4 可変機能 共通機能 7. Mohsen Asadi, Ebrahim Bagheri, Dragan Gaevi,Marek Hatala, Bardia Mohabbati: Goal-Driven Software Product 9 Line Engineering, SAC2011,pp.691-698.
  • 11.
    ゴールを選ぶと、短期間・低コストで 要求を満たした派生システムが[7] A OR OR B C D OR OR OR 派生システム2 顧客2 E F G H I J 機能1 機能2 機能1 機能2 機能1 機能2 機能3 機能4 機能3 機能4 共通機能 機能3 機能4 可変機能 共通機能 7. Mohsen Asadi, Ebrahim Bagheri, Dragan Gaevi,Marek Hatala, Bardia Mohabbati: Goal-Driven Software Product10 Line Engineering, SAC2011,pp.691-698.
  • 12.
    既存研究 • 結合ゴールモデル[5]から機能モデルを導出[6]し対応付ける 青:共通ゴール 白:可変ゴール A A 問題:共通ゴールの判別手法 and A A and + B C or D が自明でない and or B B C B D or C D C D ゴールモデル1 E E NOP E ゴールモデル2 結合ゴールモデル 機能モデル 5. Uno K, Hayashi S, Saeki M: Constructing Feature Models using Goal Oriented Analysis, QSIC2009, pp.412-417. 6. Yijun Yu, Alexei Lapouchnian, Sotirios Liaskos, John Mylopoulos, and Julio C.S.P.Leite: From Goals to High- Variability Software Design, ICIST2008. 11
  • 13.
    「共通」と「非共通」と「可変」 AとBは共通ゴール AとBは非共通ゴール A 共通 B A 非共通 B Aは可変ゴール 非共通 D 同じゴール 非共通 A B C 非共通 同じじゃないゴール 12
  • 14.
    共通ゴールの判別は困難 • 現場の大規模システムのゴール数は膨大 この中から共通ゴールをすべて早く正確に見つけてください G1 G2 C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C 13
  • 15.
    提案手法の概要 明らかに共通・ 自動で判別(増やしたい) 可変なゴール 明共通 明可変 A と F E J ゴールモデル 提案手法を ×2 実装したツール B と G G1 G2 A F 共通ゴール B C G H ランキング D E I J 「C」の共通ゴールランキング 1位:「H」 2位:「I」 「D」の共通ゴールランキング 人手で判別(減らしたい) 1位:「I」 2位:「H」 14
  • 16.
    ツールの内部処理 ゴールモデル ×2 ゴール名の 類似度を計測 + 提案ルールを 適用 明らかに共通 明らかに可変 閾値を基準に 共通ゴール 判別 ランキング ツール 15
  • 17.
    ツールの内部処理 ゴールモデル ×2 ゴール名の 類似度を計測 + 提案ルールを 適用 明らかに共通 明らかに可変 閾値を基準に 共通ゴール 判別 ランキング ツール 16
  • 18.
    類似度のみを用いた場合の問題点 • 「類似度の高い非共通ゴール」 → ゴール名が似ているため、 共通ゴールと判別されやすい • 「類似度の低い共通ゴール」 → ゴール名が似ていないため、 非共通ゴールと判別されやすい 17
  • 19.
    解決の方針 • 自然言語処理を利用して解決 – オントロジーで意味を与え、類似度をより繊細に計測する – デメリット1:ドメインごとにオントロジーを用意する必要が ある – デメリット2:「類似度の低い共通ゴール」は見分けられる が、「類似度の高い非共通ゴール」は困難 採用 • ゴールモデルの構造を利用して解決 – 親子ゴールの情報を使う – メリット1:ドメインごとに何か準備する必要はない – メリット2:「類似度の低い共通ゴール」、 「類似度の高い非共通ゴール」共に判別可能 18
  • 20.
    「類似度の高い非共通ゴール」を見分ける • より具体的なゴールから共通ゴールのセットを作り 除外する 抽象的な 抽象的な ゴール ゴール 類似度:0.9 ゴール 優先 類似度:0.9 具体的な 具体的な 具体的な ゴール ゴール ゴール • 「1ゴール1共通」 → 1つのゴールに対して、共通ゴールは一つまで • 「下位ゴール優先」 → 類似度が等しい場合は、より下位のゴールを優先19
  • 21.
    「1ゴール1共通」・「下位ゴール優先」の例 1. (1-2)と(2-1)は「類似度の高い非共通ゴール」 2. 下位ゴール(1-2)(1-3)(2-2)(2-3)だけで比較 3. (1-2)(2-2)と(1-3)(2-3)の2セットができる 4. 1ゴール1共通なので、これらを除外 5. (1-2)の共通ゴール候補に(2-1)が出現しない G1 G2 番組情報や番組説明を 番組の情報を 共通 見ることができる(1-1) 見ることができる(2-1) AND AND 類似度の高い非共通ゴール AND 0 AND 番組情報を見ること 番組説明を見ること 番組情報を見ること 番組説明を見ること ができる(1-2) ができる(1-3) ができる(2-2) ができる(2-3) 共通 共通 20
  • 22.
    「類似度の低い共通ゴール」を見分ける • 具体的なゴールの情報を参考に、抽象的なゴール を判別する 抽象的な 抽象的な ゴール 判別が困難 ゴール 参考に 具体的な 具体的な 具体的な 具体的な ゴール ゴール ゴール ゴール • 「子ゴール共通性の反映」 → 子ゴールの中に「明らかに共通なゴール」が 一つでもあれば、その親ゴールは 「明らかに可変なゴール」にしない 21
  • 23.
    「子ゴール共通性の反映」の例 1. (1-1)と(2-1)は「類似度の低い共通ゴール」 2. (1-2)と(2-2)は明らかに共通 3. 子ゴール共通性を反映し、その親である(1-1)と(2-1)は 明らかに可変にしない 4. (1-1)と(2-1)は共通ゴールランキングに出現 G1 G2 searching in the 類似度の低い searching friends search field (1-1) 共通ゴール (2-1) AND AND AND 0 AND by user name by e-mail address by words (1-3) by name (2-2) (1-2) (2-3) 共通 22
  • 24.
    評価実験 ドメイン テレビ SNS 就職支援システム カメラ ゴールモデル名 55X3 55ZX9000 Twitter Facebook リクナビ マイナビ A37 NEX-F3 ゴール数 51 70 31 54 33 84 57 50 正解共通ゴール数 20 9 13 23 企業 同企業 別企業 別企業 同企業 作成者 同作者 同作者 別作者 同作者 言語 日本語 英語 日本語 英語 • 実験1:テレビ、SNS、就職支援システム → 提案ルール( 「1ゴール1共通」、「下位ゴール優先」、「子ゴール共通性の反映」) の有効性を評価 • 実験2:カメラ → 提案手法全体の有効性を評価 23
  • 25.
    実験1:実験の方法 G1 G2 ゴールモデル×2 手動で共通ゴールを判別 自作ツールで共通ゴールを判別 共通ゴール 可変ゴール 比較 明らかに共通 明らかに可変 正解データ ツールの出力 24
  • 26.
    実験1:テレビの結果 The processof identifying clearly common goals The process of identifying clearly variable goals (テレビ) (テレビ) 100.00% 100.00% 80.00% 90.00% 60.00% 80.00% 40.00% 20.00% 70.00% (threshold) (threshold) 0.00% 60.00% 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 Before After precision Before After precision precision precision 100.00% 100.00% 80.00% 80.00% 60.00% 60.00% 40.00% 40.00% 20.00% 20.00% (threshold) (threshold) 0.00% 0.00% 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 Before recall After recall Before recall After recall • 明らかに共通 – 提案ルール適用前:0.00%の共通ゴールを判別 – 提案ルール適用後:40.00%の共通ゴールを判別 (40.00%向上) • 明らかに可変 – 提案ルール適用前:34.57%の可変ゴールを判別 – 提案ルール適用後:34.57%の可変ゴールを判別 (変化なし) 25
  • 27.
    実験1:SNSの結果 The processof identifying clearly common goals The process of identifying clearly variable goals (SNS) (SNS) 100.00% 100.00% 80.00% 90.00% 60.00% 80.00% 40.00% 20.00% 70.00% (threshold) (threshold) 0.00% 60.00% 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 Before After precision Before After precision precision precision 100.00% 100.00% 80.00% 80.00% 60.00% 60.00% 40.00% 40.00% 20.00% 20.00% (threshold) (threshold) 0.00% 0.00% 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 Before recall After recall Before recall After recall • 明らかに共通 – 提案ルール適用前:77.78%の共通ゴールを判別 – 提案ルール適用後:77.78%の共通ゴールを判別 (変化なし) • 明らかに可変 – 提案ルール適用前:16.42%の可変ゴールを判別 – 提案ルール適用後:91.04%の可変ゴールを判別 (74.62%向上) 26
  • 28.
    実験1:就職支援システムの結果 Theprocess of identifying clearly common goals The process of identifying clearly variable goals (就職サイト) (就職サイト) 100.00% 100.00% 80.00% 80.00% 60.00% 60.00% 40.00% 40.00% 20.00% 20.00% 0.00% (threshold) 0.00% (threshold) 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 Before After precision Before After precision precision precision 100.00% 100.00% 80.00% 80.00% 60.00% 60.00% 40.00% 40.00% 20.00% 20.00% 0.00% (threshold) (threshold) 0.00% 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 Before recall After recall Before recall After recall • 明らかに共通 – 提案ルール適用前:38.46%の共通ゴールを判別 – 提案ルール適用後:53.85%の共通ゴールを判別 (15.39%向上) • 明らかに可変 – 提案ルール適用前:23.66%の可変ゴールを判別 – 提案ルール適用後:23.66%の可変ゴールを判別 (変化なし) 27
  • 29.
    実験1:考察 • テレビでは「類似度の高い非共通ゴール」が、 SNSでは「類似度の低い共通ゴール」が出現し、 それらを見分けられたことで精度が上がった • 就職支援システムでは「類似度の低い共通ゴール」を見分け られていない → 原因:ゴールモデルの作者が別作者 – 最下位ゴールの分解粒度が粗い – 最下位ゴールの分解粒度が統一されていない 「子ゴール共通性の反映」は最下位ゴールの 分解粒度が細かく、かつ統一されている場合に有効 28
  • 30.
    実験2:実験の方法(チームA) G1 G2 ゴールモデル×2 手作業で共通ゴールを判別 共通ゴール 可変ゴール 作業時間 29
  • 31.
    実験2:実験の方法(チームB) G1 G2 「C」の共通ゴールランキング C C C C C C C C 1位:「H」 C C C C C C 2位:「I」 C C C C C C C C C C C C 「D」の共通ゴールランキング 手作業で共通ゴールを判別 1位:「I」 C C C 2位:「H」 ゴールモデル×2 明共通 共通ゴール 明可変 可変ゴール ツール 共通ゴール 可変ゴール 作業時間 30
  • 32.
    実験2:実験結果 • 提案手法を用いた方が… –作業時間:53.5分→39.25分( 7割の作業時間で) – 適合率:81.69%→92.43%(約10%向上) – 再現率:69.75%→91.30%(約20%向上) 提案手法を用いた方が、 早く正確に多くの共通ゴールを判別できる 31
  • 33.
    研究の課題 シナリオ:同一企業内のシステムで 共通ゴールを判別し再利用する しかし、もし… • 別企業のシステムと共通ゴールを判別する場合 – オントロジーを用いて類似度計測手法の精度を上げる – 最下位ゴールの分解粒度が統一されていない箇所を 自動で見つけ統一する ことが必要 32
  • 34.
    まとめ 再利用開発では、 顧客の要求を既存システムの機能に反映できるモデルが必要 既存研究ではゴールモデルを用いて それを実現しようしているが、 共通ゴールの判別手法が自明でない 本研究で、ゴールモデルの構造に基づいた 共通ゴール判別手法を提案した 実験により、提案ルールが有効な場合とそうでない場合を 明確化し、有効な場合は作業の効率化に貢献することがわかった33
  • 35.
    研究成果 • 論文誌: 中村祐貴, 本田耕三, 中川博之, 田原康之, 大須賀昭彦 "ソフトウェア再利用に向けた共通ゴール判別手法の提案“ 日本ソフトウェア科学会誌「コンピュータソフトウェア」「ソフトウェア工学」 特集2013(投稿中). • 国内査読付きシンポジウム: 中村祐貴, 本田耕三, 中川博之, 田原康之, 大須賀昭彦 "ゴールモデルの構造に基づいた共通ゴール判別手法の提案" 第19 回ソフトウェア工学の基礎ワークショップ2012(FOSE2012) (2012.12). • その他研究発表: 中村祐貴, 本田耕三, 中川博之, 田原康之, 大須賀昭彦 "ソフトウェア再利用に向けた共通ゴール判別手法の提案“ ウインターワークショップ2013 (2013.1). 34
  • 36.
  • 37.
    ゴール名の類似度(一般的な既存手法[8]を使用) • ゴール名を構成する名詞と動詞が一致する割合を算出 (動詞は基本形に変換してから) 類似度 = | X ∩ Y | / | X ∪ Y | 共通要素数 少なくとも一方にある要素数 例)「見たい番組を探すことができる」と 「見たい番組を番組表で探すことができる」の場合… | X ∩ Y |は「見る」「番組」「探す」の3単語 | X ∪ Y |は「見る」「番組」「番組表」「探す」の4単語 → 類似度は 3 / 4 = 0.75 8. Muhammad Ilyas , Josef Kung: A Similarity Measurement Framework for Requirements Engineering, ICCGI2009, pp.31-34. 36
  • 38.
    非共通ゴールを共通と判別すると… 明らかに共通 • 本来なくてもいい機能 可変 共通 共通 共通 1 • ユーザビリティが低下 • 手戻り 閾値1 A A B C B C 37
  • 39.
    共通ゴールを可変と判別すると… 明らかに可変 • 必要な機能がない • ユーザビリティが低下 可変 可変 可変 共通 • 手戻り 0 閾値2 A A C B C B 38
  • 40.
    類似度と閾値 • 類似度+提案ルールに閾値(基準)を設定し、 それに従ってツールが共通・可変を判別する仕様に 明らかに可変 共通ゴール 明らかに共通 ランキング 似てない 0 1 似ている 類似度 閾値2 + 閾値1 提案ルール 閾値1・閾値2の値はいくらにしよう…?? 39
  • 41.
    最適な閾値を求めるために1 最適な閾値(共通ゴールのみ・可変ゴールのみを 正しく判別できる閾値)をどうやって見つけよう • 閾値の値はゴールモデルによって違う • 正解の共通ゴールが分からないと、最適な閾値もわ からない • ゴールモデルの一部だけを使って、手作業で正解 の共通ゴールを判別するのは?? • そしてその部分で閾値を出せばいいのでは?? 40
  • 42.
    閾値の求め方(予備実験の方法) G1 C G2 C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C 専門家 自作ツール 共通ゴール 可変ゴール 正解データだけで 正解データ 最適な閾値を算出 41
  • 43.
    テレビ、SNSのゴール例 テレビ • 共通ゴール:チャンネルを選ぶことができる 画面を二画面で見ることができる など • 可変ゴール: 3D映像を楽しむことができる(テレビ1) 降雨対応放送を利用できる(テレビ2) など SNS • 共通ゴール: signing up account uploading profile picture など • 可変ゴール: adding hash tags (twitter) using wall tab (Facebook) など 42
  • 44.
    就職支援システム、カメラのゴール例 就職支援システム • 共通ゴール:企業をフリーワードで検索できる 企業を本社や勤務地の場所から検索できる など • 可変ゴール: 1週間以内に説明会が開催される企業を検索 できる(リクナビ) 企業を採用実績校で検索できる(マイナビ) など カメラ • 共通ゴール: recognizes the scene Installing the software など • 可変ゴール: hold the camera (A37) Using the self-timer (NEX-F3) など43
  • 45.
    実験2:実験の方法(チームB-ステップ1) G1 G2 G1 G2 C C C C C C C C C C C C C C C C C C C C C C C C C C C C C ゴールモデル×2 ゴールモデルの一部×2 手作業で共通ゴールを判別 ツール 共通ゴール 可変ゴール 閾値 作業時間1 44
  • 46.
    提案ルールが上手く機能しない場合の例 「企業を詳細な業種で複数選択し検索できる」 (リクナビ) と 「業種を小分類で検索できる」 (マイナビ) は、類似度の低い共通ゴール しかし、これ以上分解されていないため 子ゴール共通性を反映できない 45
  • 47.
    フィーチャロケーション[9] • フィーチャとコードを対応付ける 必須フィーチャ:スタック 任意フィーチャ:ロック 9. Dapeng Liu , Andrian Marcus , Denys Poshyvanyk , Vclav Rajlich:Feature Location via Information Retrieval based Filtering of a Single Scenario Execution Trace, ASE2007, pp.234-243. 46
  • 48.
    コードのモジュール化[10] • #define,ifdef,endifで ロックを付け替え可能に 10. Jorg Liebig, Sven Apel, Christian Lengauer, Christian Kstner, Michael Schulze: An Analysis of the Variability in Forty Preprocessor-Based Software Product Lines,ICSE2010, pp.105-114. 47
  • 49.
    ゴールモデルの入力 • テキスト形式で入力 番組情報や番組説明を見ることができる(1-1) (タブ)番組情報を見ることができる(1-2) (タブ)番組説明を見ることができる(1-3) 番組情報や番組説明を 見ることができる(1-1) AND AND 番組情報を見ること 番組説明を見ること ができる(1-2) ができる(1-3) • ゴールNo:ツールに入力した順に振られる • ゴール名:ゴールの名前 • レイヤNo:タブの数で判別 • 親ゴールNo:タブの数で判別 48
  • 50.
    提案手法に至るまで 共通ゴールの判別手法が自明でない 全自動で共通ゴールを判別したい 全自動・高精度で判別は難しい なら、半自動・高精度を目指そう 手動の部分もできるだけ楽にしよう 49
  • 51.
    提案ルールに至るまで 類似度の高い非共通ゴールと 類似度の低い共通ゴールを正しく見分けられない 自分なら、どうやって見分けるだろう?? 親子ゴールの情報を参考にするだろうな… アルゴリズム化して実装しよう ヒューリスティックな手法だけど、上手くいったな 50