SlideShare a Scribd company logo
1 of 27
Download to read offline
FOSE2012発表資料
ゴールモデルの構造に基づいた
 共通ゴール判別手法の提案


            電気通信大学
   大学院情報システム学研究科 M2
             中村 祐貴
Software Product Line Engineering
 • 既存システムを再利用すると効率よく開発できる[1]
 → 顧客が再利用すべき機能を選択しやすいように
   既存システムをモデル化することが重要[2]
既存システム
                       機能1            機能2                                                          新システム
                       機能3            機能4
                                                               機能1           機能2
                       機能5            機能6
                                                               機能3            機能5
                       機能1           機能2
                                                               機能4            機能5
                       機能3           機能4

                       機能5           機能6

 1.   Klaus Pohl, Gunter Bockle, Frank Van Der Linden: Software Product Line Engineering: Foundations, Principles
      And Techniques, Springer-Verlag New York Inc 2005.
 2.   Mohsen Asadi, Ebrahim Bagheri, Dragan Gaevi, Marek Hatala, Bardia Mohabbati: Goal-Driven Software
      Product Line Engineering, SAC2011, pp.691-698.
                                                                                                                    1
既存研究で扱っているモデル例1
• フィーチャモデル[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.                                            2
既存研究で扱っているモデル例2
• ゴールモデル[4]があると、
  要求を辿ることで必要な機能に到達できる
      そうか、                                                番組を録画
                                                           できる                     抽象的な
     この機能が
                                                                                    要求
     必要なのか!!
                                                                or
                                          録画して持ち                          大容量で
                                          運びできる                           録画できる
                                                                                           具体的な
                                                                                            機能
                               ブルーレイディスク   ハードディスクドライブ
                                で録画できる        で録画できる
                                       ゴールモデル
4.    Axel van Lamsweerde: Requirements Engineering, From System Goals to UML Models to Software
      Specications, Wiley, 2009.
                                                                                                   3
既存研究で扱っているモデル例3
• 結合ゴールモデル[5]から機能モデルを導出[6]し対応付ける
                          可変ゴールは
                          共通ゴールは
                            よし、                                                   青:共通ゴール
                         この機能を頼む!!
                         必要なものを…
                          必ず選んで…                                                  白:可変ゴール
                                                            A                                          A
                                                             and
      A                       A
      and        +             and
                                                      B            C or D                    B
B           C           B            D                 or
                                                                       or

                                                                   C          D                         C            D
                        E                        E
                                                            NOP
                                                                                             E
ゴールモデル1               ゴールモデル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-       4
       Variability Software Design, ICIST2008.
共通ゴールの判別は困難
• 現場の大規模システムのゴール数は膨大
この中から共通ゴールをすべて早く正確に見つけてください
  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



                                                                                                                                        5
提案手法の概要
 1. 明らかに共通なゴールを判別
                    自動                                            手動
 2. 明らかに可変なゴールを判別
 3. 共通ゴールランキングで共通ゴールを判別
明らかに共通なゴール                                              「C」の共通ゴールランキング
                                  ゴールの類似度に                 1位:「F」
G1               G2
                                   基づいて判別                  2位:「G」
     A                A                                          :

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


明らかに可変なゴール
                       残ったゴールで
明らかに共通・可変な 明らかに共通・可変な   共通ゴール
  ゴールを抽出     ゴールを除外   ランキングを作成                                           6
ゴールの類似度(一般的な既存手法[7]を使用)
• 名詞と動詞だけでジャッカード係数を算出
  (動詞は基本形に変換)
       類似度 = | X ∩ Y | / | X ∪ Y |

       共通要素数                             少なくとも一方にある要素数
例)「見たい番組を探すことができる」と
 「見たい番組を番組表で探すことができる」の場合…
      | X ∩ Y |は「見る」「番組」「探す」の3単語
 | X ∪ Y |は「見る」「番組」「番組表」「探す」の4単語
             → 類似度は 3 / 4 = 0.75
 7.   Muhammad Ilyas , Josef Kung: A Similarity Measurement Framework for Requirements Engineering,
      ICCGI2009, pp.31-34.
                                                                                                      7
類似度と閾値
• 閾値1より類似度が高い:明らかに共通なゴール
• 閾値2より類似度が低い:明らかに可変なゴール
• 閾値1と閾値2の間:共通・可変が曖昧なゴール
  (共通ゴールランキングとして提示)
  明らかに可変         共通ゴール   明らかに共通
                 ランキング



似てない   0                       1 似ている
           閾値2           閾値1

   類似度だけで判別すると、問題が発生する                  8
明らかに共通(問題と提案ルール)
問題:類似度だけだと、類似度が高い可変ゴールを
    誤って明らかに共通と判断してしまう


    原因:親子でゴール名が似ていて、
 共通ゴールの親子ゴールを共通と判断してしまう

解決:より具体的なゴールからセットを作り除外する
 「1ゴール1共通」
 → 1つのゴールに対して、共通ゴールは1つまで 新規性あり
 「下位ゴール優先」
  → 類似度が等しい場合は下位ゴールを優先して共通とする 9
明らかに共通(提案ルールの例)
 1. (1-2)と(2-1)は共通ゴールではないが、類似度は1.00と高い
 → (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
      番組情報や番組説明を                        番組の情報を
                           共通         見ることができる(2-1)
      見ることができる(1-1)

       AND     AND    共通と判別されやすい          AND   0   AND

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

                      共通             共通                      10
明らかに可変(問題と提案ルール)
問題:類似度だけだと、類似度が低い共通ゴールを
    誤って明らかに可変と判断してしまう


      原因:同じ内容のゴールを、
    別の単語を用いて記述しているから


解決:「子ゴール共通性の反映」      新規性あり
 → 子ゴールの中に明らかに共通なゴールが
   1つでもあれば、その親ゴールは
   明らかに可変にしない             11
明らかに可変(提案ルールの例)
 1. (1-1)と(2-1)は共通ゴールだが、類似度は0.17と低い
 → (1-1)と(2-1)は類似度だけでは「明らかに可変」と判別される
 2. (1-2)と(2-2)は明らかに共通
 3. 子ゴール共通性を反映し、その親である(1-1)と(2-1)は
    明らかに可変にしない
 4. (1-1)と(2-1)は共通ゴールランキングに出現
G1                           G2
      番組を条件を絞り込んで                       検索条件を
                       可変と判別されやすい
      探すことができる(1-1)                    指定できる(2-1)

       AND     AND                   AND    0    AND

 キーワードで探す       ジャンルで探す       キーワードで探す            日付で探す
 ことができる(1-2)   ことができる(1-3)    ことができる(2-2)       ことができる(2-3)

                      共通                                  12
評価実験(実験で用いたゴールモデル)
                テレビ
• 共通ゴール:チャンネルを選ぶことができる
        画面を二画面で見ることができる               など
• 可変ゴール: 3D映像を楽しむことができる(テレビ1)
        降雨対応放送を利用できる(テレビ2)            など

                        SNS
• 共通ゴール: signing up account
         uploading profile picture    など
• 可変ゴール: adding hash tags (twitter)
         using wall tab (Facebook)    など
                                       13
評価実験(実験の方法)
  テレビ1       テレビ2        SNS1      SNS2




 ゴール数:51     ゴール数:70     ゴール数:31   ゴール数:54




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



共通ゴール    可変ゴール      比較    明らかに共通    明らかに可変
                                             14
     正解データ                      ツールの出力
評価実験(評価項目)
• 明らかに共通なゴールを判別
  – 「1ゴール1共通」「下位ゴール優先」を用いる前後で
    適合率100%時の再現率を評価

• 明らかに可変なゴールを判別
  – 「子ゴール共通性の反映」を用いる前後で
    適合率100%時の再現率を評価

• 共通ゴールランキングで共通ゴールを判別
  – 明らかに共通・可変なゴールを除外する前後で正解共通
    ゴールが出現する順位の変化を評価
  – 「ランキング適用前」・「ランキング適用後」・「除外ありの
    ランキング適用後」の3段階に分け照合回数を評価        15
明らかに共通・可変(テレビ)の結果
  The process of identifying clearly common goals                                     The process of identifying clearly variable goals
                        (TV)                                                                               (TV)
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%の可変ゴールを判別                                                                                      (変化なし)                                                   16
明らかに共通・可変(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%向上)                                             17
共通ゴールランキングの結果
• テレビ
  – 順位:1.60位(除外前)→1.17位(除外後)(0.43位向上)
  – 照合回数:21.55%削減(除外前)→87.35%削減(除外後)
• SNS
  – 順位:1.00位(除外前) →1.00位(除外後)
  – 照合回数:16.35%削減(除外前) →99.86%削減(除外後)
               Times of collation of goal(TV)                         Times of collation of goal(SNS)
                 3000                                                  1500
                 2500                                                  1200
                 2000                                                    900
                 1500
                                                                         600
                 1000
                                                                         300
                   500
                      0                                                     0
                                                     using                                                 using
                                           using    ranking                                      using    ranking
                             no ranking                                            no ranking
                                          ranking     with                                      ranking     with
                                                    remove                                                remove
        times of collation     2870        2202      363      times of collation     1431        1197       2       18
実験の考察
• テレビは同企業(全体的に類似度が高い)
• SNSは別企業(全体的に類似度が低い)
                 のものを用いた

• 明らかに共通:「1ゴール1共通」「下位ゴール優先」
  → 全体的に類似度が高い場合(同企業)に有効
• 明らかに可変:「子ゴール共通性の反映」
  → 全体的に類似度が低い場合(別企業)に有効

• 結論:類似度が高くても低くても手法は有効        19
まとめ
        SPLE(再利用開発)では、
顧客の要求を既存システムの機能に反映できるモデルが必要


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


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


           実験により、
  本手法はゴール名の類似性に関係なく有効だと判明     20
手法が有効でない場合
• GMも正解データも人手で作るため、ミス(記述ミス・見逃しなど)
  が混ざる
→ 扱うデータにミスがあると、明らかに共通・可変なゴールを
  正しく判別・評価できない

• ゴールによってゴール名の長さが異なる
→ ジャッカード係数だと長さの違いに影響され正しい類似度を算出
  できない可能性がある

• 最下位ゴールを、分解できるところまで完全に分解しきれてない
  ことが多い
→ 「子ゴール共通性の反映」がうまく機能しない
                                21
今後の課題
  より多くのドメインで実験して考察する


  手法が有効な場合とそうでない場合を
        明確化する


    本研究で扱うことができる
   ゴールモデルの条件を定義する


 条件を緩められるように手法を拡張していく   22
ここから
質問対応用スライド


            23
閾値の求め方(予備実験の方法)
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




                                              専門家               自作ツール


                                                          ツールが適合率100%・再現率最大
共通ゴール                                             可変ゴール   で明らかに共通・可変を判別できる
                                  正解データ                        閾値を算出       24
明らかに共通・可変(テレビ)の結果
               の詳細説明
• 手法を使わないと適合率が100%にならない
→手法を使わないと共通ゴールのみをとってくること
  ができない(類似度が高い可変ゴールが混ざる)
          The process of identifying clearly common goals
100.00%
                                (TV)
90.00%

80.00%

70.00%

60.00%

50.00%

40.00%

30.00%

20.00%

10.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   (threshold)

                       Before precision                           After precision
                                                                                                              25
明らかに共通・可変(SNS)の結果
           の詳細説明
• 閾値が大きいほど、再現率は高い
→手法を使うと、適合率100%時の閾値が大きくなる
  (より多くの可変ゴールがとってこれるようになる)
                       The process of identifying clearly variable goals (SNS)

 100.00%

 90.00%

 80.00%

 70.00%
                                                                                                 (threshold)
 60.00%
           0.0   0.1     0.2        0.3      0.4   0.5   0.6    0.7     0.8        0.9           1.0
                               Before precision                               After precision

 100.00%
 80.00%
 60.00%
 40.00%
 20.00%
                                                                                                 (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
                                   Before recall                                  After recall
                                                                                                               26

More Related Content

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
 

2012 FOSE-ゴールモデルの構造に基づいた共通ゴール判別手法の提案

  • 1. FOSE2012発表資料 ゴールモデルの構造に基づいた 共通ゴール判別手法の提案 電気通信大学 大学院情報システム学研究科 M2 中村 祐貴
  • 2. Software Product Line Engineering • 既存システムを再利用すると効率よく開発できる[1] → 顧客が再利用すべき機能を選択しやすいように 既存システムをモデル化することが重要[2] 既存システム 機能1 機能2 新システム 機能3 機能4 機能1 機能2 機能5 機能6 機能3 機能5 機能1 機能2 機能4 機能5 機能3 機能4 機能5 機能6 1. Klaus Pohl, Gunter Bockle, Frank Van Der Linden: Software Product Line Engineering: Foundations, Principles And Techniques, Springer-Verlag New York Inc 2005. 2. Mohsen Asadi, Ebrahim Bagheri, Dragan Gaevi, Marek Hatala, Bardia Mohabbati: Goal-Driven Software Product Line Engineering, SAC2011, pp.691-698. 1
  • 3. 既存研究で扱っているモデル例1 • フィーチャモデル[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. 2
  • 4. 既存研究で扱っているモデル例2 • ゴールモデル[4]があると、 要求を辿ることで必要な機能に到達できる そうか、 番組を録画 できる 抽象的な この機能が 要求 必要なのか!! or 録画して持ち 大容量で 運びできる 録画できる 具体的な 機能 ブルーレイディスク ハードディスクドライブ で録画できる で録画できる ゴールモデル 4. Axel van Lamsweerde: Requirements Engineering, From System Goals to UML Models to Software Specications, Wiley, 2009. 3
  • 5. 既存研究で扱っているモデル例3 • 結合ゴールモデル[5]から機能モデルを導出[6]し対応付ける 可変ゴールは 共通ゴールは よし、 青:共通ゴール この機能を頼む!! 必要なものを… 必ず選んで… 白:可変ゴール A A and A A and + and B C or D B B C B D or or C D C D E E NOP E ゴールモデル1 ゴールモデル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- 4 Variability Software Design, ICIST2008.
  • 6. 共通ゴールの判別は困難 • 現場の大規模システムのゴール数は膨大 この中から共通ゴールをすべて早く正確に見つけてください 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 5
  • 7. 提案手法の概要 1. 明らかに共通なゴールを判別 自動 手動 2. 明らかに可変なゴールを判別 3. 共通ゴールランキングで共通ゴールを判別 明らかに共通なゴール 「C」の共通ゴールランキング ゴールの類似度に 1位:「F」 G1 G2 基づいて判別 2位:「G」 A A : B C B F G1 G2 「D」の共通ゴールランキング C F 1位:「G」 2位:「F」 D E G H D G : 明らかに可変なゴール 残ったゴールで 明らかに共通・可変な 明らかに共通・可変な 共通ゴール ゴールを抽出 ゴールを除外 ランキングを作成 6
  • 8. ゴールの類似度(一般的な既存手法[7]を使用) • 名詞と動詞だけでジャッカード係数を算出 (動詞は基本形に変換) 類似度 = | X ∩ Y | / | X ∪ Y | 共通要素数 少なくとも一方にある要素数 例)「見たい番組を探すことができる」と 「見たい番組を番組表で探すことができる」の場合… | X ∩ Y |は「見る」「番組」「探す」の3単語 | X ∪ Y |は「見る」「番組」「番組表」「探す」の4単語 → 類似度は 3 / 4 = 0.75 7. Muhammad Ilyas , Josef Kung: A Similarity Measurement Framework for Requirements Engineering, ICCGI2009, pp.31-34. 7
  • 9. 類似度と閾値 • 閾値1より類似度が高い:明らかに共通なゴール • 閾値2より類似度が低い:明らかに可変なゴール • 閾値1と閾値2の間:共通・可変が曖昧なゴール (共通ゴールランキングとして提示) 明らかに可変 共通ゴール 明らかに共通 ランキング 似てない 0 1 似ている 閾値2 閾値1 類似度だけで判別すると、問題が発生する 8
  • 10. 明らかに共通(問題と提案ルール) 問題:類似度だけだと、類似度が高い可変ゴールを 誤って明らかに共通と判断してしまう 原因:親子でゴール名が似ていて、 共通ゴールの親子ゴールを共通と判断してしまう 解決:より具体的なゴールからセットを作り除外する 「1ゴール1共通」 → 1つのゴールに対して、共通ゴールは1つまで 新規性あり 「下位ゴール優先」 → 類似度が等しい場合は下位ゴールを優先して共通とする 9
  • 11. 明らかに共通(提案ルールの例) 1. (1-2)と(2-1)は共通ゴールではないが、類似度は1.00と高い → (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 番組情報や番組説明を 番組の情報を 共通 見ることができる(2-1) 見ることができる(1-1) AND AND 共通と判別されやすい AND 0 AND 番組情報を見ること 番組説明を見ること 番組情報を見ること 番組説明を見ること ができる(1-2) ができる(1-3) ができる(2-2) ができる(2-3) 共通 共通 10
  • 12. 明らかに可変(問題と提案ルール) 問題:類似度だけだと、類似度が低い共通ゴールを 誤って明らかに可変と判断してしまう 原因:同じ内容のゴールを、 別の単語を用いて記述しているから 解決:「子ゴール共通性の反映」 新規性あり → 子ゴールの中に明らかに共通なゴールが 1つでもあれば、その親ゴールは 明らかに可変にしない 11
  • 13. 明らかに可変(提案ルールの例) 1. (1-1)と(2-1)は共通ゴールだが、類似度は0.17と低い → (1-1)と(2-1)は類似度だけでは「明らかに可変」と判別される 2. (1-2)と(2-2)は明らかに共通 3. 子ゴール共通性を反映し、その親である(1-1)と(2-1)は 明らかに可変にしない 4. (1-1)と(2-1)は共通ゴールランキングに出現 G1 G2 番組を条件を絞り込んで 検索条件を 可変と判別されやすい 探すことができる(1-1) 指定できる(2-1) AND AND AND 0 AND キーワードで探す ジャンルで探す キーワードで探す 日付で探す ことができる(1-2) ことができる(1-3) ことができる(2-2) ことができる(2-3) 共通 12
  • 14. 評価実験(実験で用いたゴールモデル) テレビ • 共通ゴール:チャンネルを選ぶことができる 画面を二画面で見ることができる など • 可変ゴール: 3D映像を楽しむことができる(テレビ1) 降雨対応放送を利用できる(テレビ2) など SNS • 共通ゴール: signing up account uploading profile picture など • 可変ゴール: adding hash tags (twitter) using wall tab (Facebook) など 13
  • 15. 評価実験(実験の方法) テレビ1 テレビ2 SNS1 SNS2 ゴール数:51 ゴール数:70 ゴール数:31 ゴール数:54 手動で共通ゴールを判別 自作ツールで共通ゴールを判別 共通ゴール 可変ゴール 比較 明らかに共通 明らかに可変 14 正解データ ツールの出力
  • 16. 評価実験(評価項目) • 明らかに共通なゴールを判別 – 「1ゴール1共通」「下位ゴール優先」を用いる前後で 適合率100%時の再現率を評価 • 明らかに可変なゴールを判別 – 「子ゴール共通性の反映」を用いる前後で 適合率100%時の再現率を評価 • 共通ゴールランキングで共通ゴールを判別 – 明らかに共通・可変なゴールを除外する前後で正解共通 ゴールが出現する順位の変化を評価 – 「ランキング適用前」・「ランキング適用後」・「除外ありの ランキング適用後」の3段階に分け照合回数を評価 15
  • 17. 明らかに共通・可変(テレビ)の結果 The process of identifying clearly common goals The process of identifying clearly variable goals (TV) (TV) 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%の可変ゴールを判別 (変化なし) 16
  • 18. 明らかに共通・可変(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%向上) 17
  • 19. 共通ゴールランキングの結果 • テレビ – 順位:1.60位(除外前)→1.17位(除外後)(0.43位向上) – 照合回数:21.55%削減(除外前)→87.35%削減(除外後) • SNS – 順位:1.00位(除外前) →1.00位(除外後) – 照合回数:16.35%削減(除外前) →99.86%削減(除外後) Times of collation of goal(TV) Times of collation of goal(SNS) 3000 1500 2500 1200 2000 900 1500 600 1000 300 500 0 0 using using using ranking using ranking no ranking no ranking ranking with ranking with remove remove times of collation 2870 2202 363 times of collation 1431 1197 2 18
  • 20. 実験の考察 • テレビは同企業(全体的に類似度が高い) • SNSは別企業(全体的に類似度が低い) のものを用いた • 明らかに共通:「1ゴール1共通」「下位ゴール優先」 → 全体的に類似度が高い場合(同企業)に有効 • 明らかに可変:「子ゴール共通性の反映」 → 全体的に類似度が低い場合(別企業)に有効 • 結論:類似度が高くても低くても手法は有効 19
  • 21. まとめ SPLE(再利用開発)では、 顧客の要求を既存システムの機能に反映できるモデルが必要 既存研究ではゴールモデルを用いて それを実現しようしているが、 共通ゴールの判別手法が考慮されていない 本研究で、ゴールモデルの構造に基づいた 共通ゴール判別手法を提案した 実験により、 本手法はゴール名の類似性に関係なく有効だと判明 20
  • 22. 手法が有効でない場合 • GMも正解データも人手で作るため、ミス(記述ミス・見逃しなど) が混ざる → 扱うデータにミスがあると、明らかに共通・可変なゴールを 正しく判別・評価できない • ゴールによってゴール名の長さが異なる → ジャッカード係数だと長さの違いに影響され正しい類似度を算出 できない可能性がある • 最下位ゴールを、分解できるところまで完全に分解しきれてない ことが多い → 「子ゴール共通性の反映」がうまく機能しない 21
  • 23. 今後の課題 より多くのドメインで実験して考察する 手法が有効な場合とそうでない場合を 明確化する 本研究で扱うことができる ゴールモデルの条件を定義する 条件を緩められるように手法を拡張していく 22
  • 25. 閾値の求め方(予備実験の方法) 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 専門家 自作ツール ツールが適合率100%・再現率最大 共通ゴール 可変ゴール で明らかに共通・可変を判別できる 正解データ 閾値を算出 24
  • 26. 明らかに共通・可変(テレビ)の結果 の詳細説明 • 手法を使わないと適合率が100%にならない →手法を使わないと共通ゴールのみをとってくること ができない(類似度が高い可変ゴールが混ざる) The process of identifying clearly common goals 100.00% (TV) 90.00% 80.00% 70.00% 60.00% 50.00% 40.00% 30.00% 20.00% 10.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 (threshold) Before precision After precision 25
  • 27. 明らかに共通・可変(SNS)の結果 の詳細説明 • 閾値が大きいほど、再現率は高い →手法を使うと、適合率100%時の閾値が大きくなる (より多くの可変ゴールがとってこれるようになる) The process of identifying clearly variable goals (SNS) 100.00% 90.00% 80.00% 70.00% (threshold) 60.00% 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 Before precision After precision 100.00% 80.00% 60.00% 40.00% 20.00% (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 Before recall After recall 26