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


            電気通信大学
    大学院情報システム学研究科
        大須賀・田原研究室
        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

More Related Content

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

Frameworks We Live By: Design by day-to-day framework development: Multi-para...
Frameworks We Live By: Design by day-to-day framework development: Multi-para...Frameworks We Live By: Design by day-to-day framework development: Multi-para...
Frameworks We Live By: Design by day-to-day framework development: Multi-para...
Atsuhiro Kubo
 
リアルタイムレイトレーシング時代を生き抜くためのデノイザー開発入門
リアルタイムレイトレーシング時代を生き抜くためのデノイザー開発入門リアルタイムレイトレーシング時代を生き抜くためのデノイザー開発入門
リアルタイムレイトレーシング時代を生き抜くためのデノイザー開発入門
Silicon Studio Corporation
 
Cedec2012 ai-contest-design-patterns-principles
Cedec2012 ai-contest-design-patterns-principlesCedec2012 ai-contest-design-patterns-principles
Cedec2012 ai-contest-design-patterns-principles
Hironori Washizaki
 
OpenCVをAndroidで動かしてみた
OpenCVをAndroidで動かしてみたOpenCVをAndroidで動かしてみた
OpenCVをAndroidで動かしてみた徹 上野山
 
TAM 新人ディレクター システムスキルアップ プログラム 第5回 「システムドキュメント」
TAM 新人ディレクター システムスキルアップ プログラム 第5回 「システムドキュメント」TAM 新人ディレクター システムスキルアップ プログラム 第5回 「システムドキュメント」
TAM 新人ディレクター システムスキルアップ プログラム 第5回 「システムドキュメント」(株)TAM
 
2009 qsic-constructing feature models using goal-oriented analysis
2009 qsic-constructing feature models using goal-oriented analysis2009 qsic-constructing feature models using goal-oriented analysis
2009 qsic-constructing feature models using goal-oriented analysisn-yuki
 

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

Frameworks We Live By: Design by day-to-day framework development: Multi-para...
Frameworks We Live By: Design by day-to-day framework development: Multi-para...Frameworks We Live By: Design by day-to-day framework development: Multi-para...
Frameworks We Live By: Design by day-to-day framework development: Multi-para...
 
リアルタイムレイトレーシング時代を生き抜くためのデノイザー開発入門
リアルタイムレイトレーシング時代を生き抜くためのデノイザー開発入門リアルタイムレイトレーシング時代を生き抜くためのデノイザー開発入門
リアルタイムレイトレーシング時代を生き抜くためのデノイザー開発入門
 
Cedec2012 ai-contest-design-patterns-principles
Cedec2012 ai-contest-design-patterns-principlesCedec2012 ai-contest-design-patterns-principles
Cedec2012 ai-contest-design-patterns-principles
 
OpenCVをAndroidで動かしてみた
OpenCVをAndroidで動かしてみたOpenCVをAndroidで動かしてみた
OpenCVをAndroidで動かしてみた
 
TAM 新人ディレクター システムスキルアップ プログラム 第5回 「システムドキュメント」
TAM 新人ディレクター システムスキルアップ プログラム 第5回 「システムドキュメント」TAM 新人ディレクター システムスキルアップ プログラム 第5回 「システムドキュメント」
TAM 新人ディレクター システムスキルアップ プログラム 第5回 「システムドキュメント」
 
2009 qsic-constructing feature models using goal-oriented analysis
2009 qsic-constructing feature models using goal-oriented analysis2009 qsic-constructing feature models using goal-oriented analysis
2009 qsic-constructing feature models using goal-oriented analysis
 

More from n-yuki

平成24年度社会知能情報学専攻修士論文発表会(予稿)
平成24年度社会知能情報学専攻修士論文発表会(予稿)平成24年度社会知能情報学専攻修士論文発表会(予稿)
平成24年度社会知能情報学専攻修士論文発表会(予稿)n-yuki
 
2011 icse-reverse engineering feature models
2011 icse-reverse engineering feature models2011 icse-reverse engineering feature models
2011 icse-reverse engineering feature modelsn-yuki
 
平成24年度社会知能情報学専攻修士論文中間発表会(予稿)
平成24年度社会知能情報学専攻修士論文中間発表会(予稿)平成24年度社会知能情報学専攻修士論文中間発表会(予稿)
平成24年度社会知能情報学専攻修士論文中間発表会(予稿)n-yuki
 
2009 splc-a framework for constructing semantically composable feature models...
2009 splc-a framework for constructing semantically composable feature models...2009 splc-a framework for constructing semantically composable feature models...
2009 splc-a framework for constructing semantically composable feature models...n-yuki
 
2011 splc-using multiple feature models to design applications for mobile phones
2011 splc-using multiple feature models to design applications for mobile phones2011 splc-using multiple feature models to design applications for mobile phones
2011 splc-using multiple feature models to design applications for mobile phonesn-yuki
 
図書館システム作成手順書
図書館システム作成手順書図書館システム作成手順書
図書館システム作成手順書n-yuki
 
交通費申請システム作成手順書
交通費申請システム作成手順書交通費申請システム作成手順書
交通費申請システム作成手順書n-yuki
 
学部卒業論文
学部卒業論文学部卒業論文
学部卒業論文n-yuki
 
2011 splc-a scalable goal-oriented approach to software variability recovery
2011 splc-a scalable goal-oriented approach to software variability recovery2011 splc-a scalable goal-oriented approach to software variability recovery
2011 splc-a scalable goal-oriented approach to software variability recoveryn-yuki
 
2011 sac-goal-driven software product line engineering
2011 sac-goal-driven software product line engineering2011 sac-goal-driven software product line engineering
2011 sac-goal-driven software product line engineeringn-yuki
 
2011 icse-improving requirements quality using essential use case interaction...
2011 icse-improving requirements quality using essential use case interaction...2011 icse-improving requirements quality using essential use case interaction...
2011 icse-improving requirements quality using essential use case interaction...n-yuki
 
2011 icse-feature cohesion in software product lines an exploratory study
2011 icse-feature cohesion in software product lines an exploratory study2011 icse-feature cohesion in software product lines an exploratory study
2011 icse-feature cohesion in software product lines an exploratory studyn-yuki
 
2010 電子情報通信学会論文誌-要求変更によるソースコードへのインパクトを分析するシステムの開発と評価
2010 電子情報通信学会論文誌-要求変更によるソースコードへのインパクトを分析するシステムの開発と評価2010 電子情報通信学会論文誌-要求変更によるソースコードへのインパクトを分析するシステムの開発と評価
2010 電子情報通信学会論文誌-要求変更によるソースコードへのインパクトを分析するシステムの開発と評価n-yuki
 
2010 re-extending nocuous ambiguity analysis for anaphora in natural language...
2010 re-extending nocuous ambiguity analysis for anaphora in natural language...2010 re-extending nocuous ambiguity analysis for anaphora in natural language...
2010 re-extending nocuous ambiguity analysis for anaphora in natural language...n-yuki
 
2010 icse-an analysis of the variability in forty preprocessor-based software...
2010 icse-an analysis of the variability in forty preprocessor-based software...2010 icse-an analysis of the variability in forty preprocessor-based software...
2010 icse-an analysis of the variability in forty preprocessor-based software...n-yuki
 
2010 ase-tool support for essential use cases to better capture software requ...
2010 ase-tool support for essential use cases to better capture software requ...2010 ase-tool support for essential use cases to better capture software requ...
2010 ase-tool support for essential use cases to better capture software requ...n-yuki
 
2010 ase-automatic detection of nocuous coordination ambiguities in natural l...
2010 ase-automatic detection of nocuous coordination ambiguities in natural l...2010 ase-automatic detection of nocuous coordination ambiguities in natural l...
2010 ase-automatic detection of nocuous coordination ambiguities in natural l...n-yuki
 
2009 splc-relating requirements and feature configurations a systematic approach
2009 splc-relating requirements and feature configurations a systematic approach2009 splc-relating requirements and feature configurations a systematic approach
2009 splc-relating requirements and feature configurations a systematic approachn-yuki
 
2008 電子情報通信学会論文誌-ユースケースポイント計測におけるアクタとユースケースの自動分類の試みと支援ツールの試作
2008 電子情報通信学会論文誌-ユースケースポイント計測におけるアクタとユースケースの自動分類の試みと支援ツールの試作2008 電子情報通信学会論文誌-ユースケースポイント計測におけるアクタとユースケースの自動分類の試みと支援ツールの試作
2008 電子情報通信学会論文誌-ユースケースポイント計測におけるアクタとユースケースの自動分類の試みと支援ツールの試作n-yuki
 
2008 ismis-from goals to high-variability software design
2008 ismis-from goals to high-variability software design2008 ismis-from goals to high-variability software design
2008 ismis-from goals to high-variability software designn-yuki
 

More from n-yuki (20)

平成24年度社会知能情報学専攻修士論文発表会(予稿)
平成24年度社会知能情報学専攻修士論文発表会(予稿)平成24年度社会知能情報学専攻修士論文発表会(予稿)
平成24年度社会知能情報学専攻修士論文発表会(予稿)
 
2011 icse-reverse engineering feature models
2011 icse-reverse engineering feature models2011 icse-reverse engineering feature models
2011 icse-reverse engineering feature models
 
平成24年度社会知能情報学専攻修士論文中間発表会(予稿)
平成24年度社会知能情報学専攻修士論文中間発表会(予稿)平成24年度社会知能情報学専攻修士論文中間発表会(予稿)
平成24年度社会知能情報学専攻修士論文中間発表会(予稿)
 
2009 splc-a framework for constructing semantically composable feature models...
2009 splc-a framework for constructing semantically composable feature models...2009 splc-a framework for constructing semantically composable feature models...
2009 splc-a framework for constructing semantically composable feature models...
 
2011 splc-using multiple feature models to design applications for mobile phones
2011 splc-using multiple feature models to design applications for mobile phones2011 splc-using multiple feature models to design applications for mobile phones
2011 splc-using multiple feature models to design applications for mobile phones
 
図書館システム作成手順書
図書館システム作成手順書図書館システム作成手順書
図書館システム作成手順書
 
交通費申請システム作成手順書
交通費申請システム作成手順書交通費申請システム作成手順書
交通費申請システム作成手順書
 
学部卒業論文
学部卒業論文学部卒業論文
学部卒業論文
 
2011 splc-a scalable goal-oriented approach to software variability recovery
2011 splc-a scalable goal-oriented approach to software variability recovery2011 splc-a scalable goal-oriented approach to software variability recovery
2011 splc-a scalable goal-oriented approach to software variability recovery
 
2011 sac-goal-driven software product line engineering
2011 sac-goal-driven software product line engineering2011 sac-goal-driven software product line engineering
2011 sac-goal-driven software product line engineering
 
2011 icse-improving requirements quality using essential use case interaction...
2011 icse-improving requirements quality using essential use case interaction...2011 icse-improving requirements quality using essential use case interaction...
2011 icse-improving requirements quality using essential use case interaction...
 
2011 icse-feature cohesion in software product lines an exploratory study
2011 icse-feature cohesion in software product lines an exploratory study2011 icse-feature cohesion in software product lines an exploratory study
2011 icse-feature cohesion in software product lines an exploratory study
 
2010 電子情報通信学会論文誌-要求変更によるソースコードへのインパクトを分析するシステムの開発と評価
2010 電子情報通信学会論文誌-要求変更によるソースコードへのインパクトを分析するシステムの開発と評価2010 電子情報通信学会論文誌-要求変更によるソースコードへのインパクトを分析するシステムの開発と評価
2010 電子情報通信学会論文誌-要求変更によるソースコードへのインパクトを分析するシステムの開発と評価
 
2010 re-extending nocuous ambiguity analysis for anaphora in natural language...
2010 re-extending nocuous ambiguity analysis for anaphora in natural language...2010 re-extending nocuous ambiguity analysis for anaphora in natural language...
2010 re-extending nocuous ambiguity analysis for anaphora in natural language...
 
2010 icse-an analysis of the variability in forty preprocessor-based software...
2010 icse-an analysis of the variability in forty preprocessor-based software...2010 icse-an analysis of the variability in forty preprocessor-based software...
2010 icse-an analysis of the variability in forty preprocessor-based software...
 
2010 ase-tool support for essential use cases to better capture software requ...
2010 ase-tool support for essential use cases to better capture software requ...2010 ase-tool support for essential use cases to better capture software requ...
2010 ase-tool support for essential use cases to better capture software requ...
 
2010 ase-automatic detection of nocuous coordination ambiguities in natural l...
2010 ase-automatic detection of nocuous coordination ambiguities in natural l...2010 ase-automatic detection of nocuous coordination ambiguities in natural l...
2010 ase-automatic detection of nocuous coordination ambiguities in natural l...
 
2009 splc-relating requirements and feature configurations a systematic approach
2009 splc-relating requirements and feature configurations a systematic approach2009 splc-relating requirements and feature configurations a systematic approach
2009 splc-relating requirements and feature configurations a systematic approach
 
2008 電子情報通信学会論文誌-ユースケースポイント計測におけるアクタとユースケースの自動分類の試みと支援ツールの試作
2008 電子情報通信学会論文誌-ユースケースポイント計測におけるアクタとユースケースの自動分類の試みと支援ツールの試作2008 電子情報通信学会論文誌-ユースケースポイント計測におけるアクタとユースケースの自動分類の試みと支援ツールの試作
2008 電子情報通信学会論文誌-ユースケースポイント計測におけるアクタとユースケースの自動分類の試みと支援ツールの試作
 
2008 ismis-from goals to high-variability software design
2008 ismis-from goals to high-variability software design2008 ismis-from goals to high-variability software design
2008 ismis-from goals to high-variability software design
 

平成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 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
  • 27. 実験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
  • 28. 実験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
  • 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
  • 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