R1� ICSE’14勉強会 2014/07/22 AR-‐Miner: Mining Informa�ve Reviews for Developers from Mobile App Marketplace � Ning Chen, Jialiu Lin, Steven C. H. Hoi, Xiaokui Xiao, Boshen Zhang� 紹介者: 早瀬 康裕(��⼤大��研)� 1� R1� 概要� 問題 – モバイルアプリのレビューは,アプリの改善に有⽤用. でも有効な⽀支援がない. – “informa�ve” なレビューは少ない (35%)� – レビューが多過ぎる Android の Facebookアプリ : 2000 reviews/day 提案⼿手法: AR-‐Miner (1) (2) (3) (4) ノイズや,改善に関係ないレビューを除去 トピックモデリングでグループ化 novel approach で優先度度付け グループと,グループ内のレビューを直感的な視覚 化によって提�� 2� R1� レビューの例例と分類� Class Type (Rule) Functional flaw that produces incorrect or unexpected result Performance flaw that degrades the performance of Apps Informative Requests to add/modify features Requests to remove advertisements/notifications Requests to remove permissions Pure user emotional expression NonDescriptions of (apps, features, actions, etc.) informative Too general/unclear expression of failures and requests Questions and inquiries Real Example None of the pictures will load in my news feed. It lags and doesn't respond to my touch which almost always causes me to run into stuff. Amazing app, although I wish there were more themes to choose from. Please make it a little easy to get bananas please and make more power ups that would be awesome. So many ads its unplayable! This game is adding for too much unexplained permissions. Great fun can't put it down! This is a crap app. I have changed my review from 2 star to 1 star. Bad game this is not working on my phone. How can I get more points? Figure 1: Di↵erent Types of Informative and Non-informative Information for App Developers 感�の��� �問� 不不明瞭や⼀一般的すぎる要求� アプリの機能や,評価値に ついての説明� 出典: N. Chen et al., “AR-‐Miner: Mining Informa�ve Reviews for Developers from Mobile App Marketplace”, P. 769� 3� R1� AR-‐Miner の概要� User Reviews Report Preprocess -ing Filtering 1 2 Visualization Ranking 5 4 Grouping 3 Figure 2: Overview of the AR-Miner framework. We focus on tackling the “Ranking” Step. 出典: N. Chen et al., “AR-‐Miner: Mining Informa�ve Reviews for Developers from Mobile App Marketplace”, P. 770� (1) センテンス単位に分割し,ストップワード除去と正規化 (2) Expecta�on Maximiza�on for Naive Bayes (EMNB) で改善に有⽤用 でないレビューを除去 (3) LDA もしくは ASUM でグループ化 (トピック=グループ,レ ビューはトピックにある割合で参加. Table 3 を参照) (4) Novel なランキング⼿手法で並び換え (5) 視覚化 (Fig. 5 を参照)� 4� R1� Ranking 基�� Group Ranking → 3つの��の重みつき�� – Volume: レビュー-‐トピック⾏行行列列の列列 (縦⽅方向) の�� – Time Series Pa�ern: Volume の経時変化 (急激に増加しているとか,徐々 に減っているとか) – Average Ra�ng: トピックに含まれるレビュー評価値の重み付き逆数 スコアが低いレビューに,改善に有⽤用な意⾒見見が含まれていることが多いため Instance Ranking → 5つの��の重みつき�� – Propo�on: レビューインスタンスとトピックとの関連度度 (⾏行行列列の要素)� – Duplicates: レビューテキストをベクトル空間モデルで集約したときの重 複度度. 重複度度の⾼高いものは,多くのユーザに共通する要求の可能性が⾼高い – Probability: フィルタリング��で得られる「有⽤用である確�」� – Ra�ng: 評価値の逆数� – Timestamp: 新�さ� “Novel” と主張されているが,普通な印象.⽐比較対象の既存 ⼿手法[22]はフィルタリング無しで LDA を使っているとの事で, 改善分 (Table 6) はフィルタリングの寄与か?� 5� R3� ICSE’14勉強会 2014/07/22 Mining Interprocedural, Data-‐Oriented Usage Pa�erns in JavaScript Web Applica�ons Hung Viet Nguyen, Hoan Anh Nguyen, Anh Tuan Nguyen, Tien N. Nguyen 紹介者: 早瀬 康裕(��⼤大��研)� 6� R3� 概要� JavaScript の usage pa�ern mining の難しさ (1) ⼊入れ⼦子になったデータ構造に,名前や型がない事 (2) cross-‐language で inter-‐procedural なコード HTMLや,ネイティブコードの呼び出し イベントハンドラなどによる処理理の分断 (3) 動的な型付け (変数に型がない) 提案⼿手法 – Java Script + HTML を静的に分析することで usage pa�ern を得る – JSModel: graph-‐based representa�on for JS usages. – JSMiner: inter-‐procedural, data-‐oriented JS usage pa�erns miner �� R3� JSModelと例例� ラベル付き有向グラフ 頂点 – program ac�ons incl ObjLit incl 関数呼び出し 変数への代⼊入 データ操作opera�ons (e.g., ‘+’, ‘==’, ‘!=’, etc) – data 変数 関数 オブジェクトのリテラル HTML のデータ – control structures 辺 incl in out = in or igin destination out = in destination waypoints out = in waypoints travelMode out = in ...DRIVING arg L21 directionsService = obj request out L27 route arg Function (anonymous) 分岐⽂文と繰り返し⽂文 – 制御フロー – データフロー – ⼊入れ⼦子関係 (データとコード両⽅方)� or igin incl Node Types status param Action in incl L28 param IF cond OP in ...OK Data Control incl response incl arg clearMarkers L29 directionsDisplay obj setDirections L30 Edge Types Control Flow Data Flow Inclusion Figure 4: JSModel for the body of calcRoute in Figure 1 出典: H.V. Nguyen et al., “Mining Interprocedural, Data-‐Oriented Usage Pa�erns in JavaScript Web Applica�ons”, P. 794� 8� R3� JSMiner アルゴリズム� AGM の派⽣生 – サイズ1のパターン から,徐々に拡⼤大 どの辺を選んで拡 ⼤大するかを決める NextNodes が肝(ら しい) – GrouMiner [2] から アイデアを得た� 1 function MineUsagePatterns(JSModelSet J ) 2 AnonymizeVariablesandFunctionsNames(J ) 3 S {Size−1 patterns from J } 4 for each Pattern p in S do ExtendPattern(p, S ) 5 return S 6 function ExtendPattern(Pattern p, PatternSet S ) 7 C GenerateCandidates(p) 8 for each q in Cluster (C ) do 9 if Freq(q) > and q 2 /S 10 S S[q 11 ExtendPattern(q , S ) 12 end 13 function GenerateCandidates(Pattern p) 14 C ; 15 for each Instance i of p do 16 for each Node n inL NextNodes(i) do 17 C C [ (i n) 18 return C 19 function NextNodes(Instance i) 20 PriorityList L ; 21 switch LastExtendedNode(i) 22 case Action.Assignment: L GetNodes(‘in ’,‘ out ’) 23 case Action.FuncCall: L GetNodes(‘is−decl’) 24 case Action.OP: L GetNodes(‘in’) 25 case Data.ObjLit, Data.Function: L GetNodes(‘incl ’) 26 case Data.Variable , Data.HTML: L Neighbors(i) 27 case Control : L GetNodes(‘incl ’) 28 L L [ (Neighbors(i) / L) 29 return L Figure 5: JSModel usage pattern mining algorithm 出典: H.V. Nguyen et al., “Mining Interprocedural, Data-‐Oriented Usage Pa�erns in JavaScript Web Applica�ons”, P. 798� 9� R2� ICSE’14勉強会 2014/07/22 Mining Billions of AST Nodes to Study Actual and Poten�al Usage of Java Language Features� Robert Dyer†, Hridesh Rajan†, Hoan Anh Nguyen†, and Tien N. Nguyen†� †Iowa State University� 紹介者: ����(��⼤大��研)� 10 R2� ��� プログラミング⾔言語の新機能が開発者にどのように 導⼊入されていくのか、Javaで実証研究� RQ1: Are language features used before release�� RQ2: How fre�uently is each feature used�� RQ3: How did committers/teams adopt features�� RQ4: Could features have been used more�� RQ5: �as old code converted to use new features�� � 分析に使⽤用するデータ:� 31,000+ projects� 9,000,000+ java files� 2013年年9⽉月時点でSourceForgeにあった、Subversion/CVS リポジトリが⼀一つ以上存在するJavaプロジェクト全て� 11 R2� l l ����� 0.5ページしか書かれていない� この論論⽂文は、著者らが以前作った分析基盤「Boa」を特定 の問題に応⽤用したという論論⽂文であるため� � 「Boa」の簡単な説明:� l l l SourceForgeやGitHubのようなUltra-‐‑‒Large-‐‑‒Scale Software Repositoriesに対する分析のための プログラミング⾔言語と基盤� リポジトリに対する多様なクエリを適度度な抽象度度で 投げられる� クエリをMapReduce(Hadoop)にコンパイルして実⾏行行� 12 R2� ������ 論論⽂文のFigure 13より引⽤用� All: 新機能を⽤用いたコードに機械的に置き換えられる箇所の数� Old: Allのうち、新機能リリース前に書かれた箇所 (保守作業者が修正できるはずの場所)� New: Allのうち、新機能リリース後に書かれた箇所 (新機能が使えるのに開発者がそれをしなかった箇所)� � àIDEによる新機能の推薦が必要かもしれない� � 13 R2� ����������� 著者本⼈人による紹介スライド� l http://www.cs.bgsu.edu/rdyer/papers/icse14-‐‑‒ slides.pptx を参照� 14 R4� ICSE’14勉強会 2014/07/22 Mining Fine-‐Grained Code Changes to Detect Unknown Code Change Pa�erns� Stas Negara†, Mihai Codoban‡, Danny Dig‡, and Ralph E. Johnson†� †University of Illinois ‡Oregon State University� 紹介者: ����(��⼤大��研)� 注: スライド中の引⽤用番号は論論⽂文内のものと同じ� 15 R4� ������ 背景� l ソースコードの変更更にはよくあるパターンがある� 例例: Return If Arguments Are Equalパターン(著者らによる命名)� double computeDistance(Point p1, Point p2) { if (p1.equals(p2)) return 0; �加� /* 重い計算 */ }� l こうしたパターンを⾒見見つけられればIDEによる⾃自動化などで 開発者の⽣生産性を上げられる� ⽬目的� l VCSのスナップショットではデータが粗すぎて 時間軸を扱う分析に限界がある[23]ため� リアルタイムに収集したソースコード変更更履履歴から 16 今までに知られていない頻出変更更パターンを⾒見見つける� R4� アプローチ(1/2)� 変更更履履歴� l l 未知のものがあるか 上位から確認� マイニング アルゴリズム� 頻出変更更 パターン� ソースコード変更更履履歴から頻出変更更パターンを マイニングするアルゴリズムを設計� アルゴリズムの出⼒力力を上位からいくつか⼿手動で確認し、 未知の変更更パターンが無いか探す (ゴミや既知の変更更パターンがあれば無視する)� 17 R4� 未知のものがあるか 上位から確認� アプローチ(2/2)� 変更更履履歴� マイニング アルゴリズム� 頻出変更更 パターン� 論論⽂文のTable 1より引⽤用� Return If Arguments Are Equal� Return If Arguments Are Equal� ソースコード変更更履履歴をASTノードに対する操作の列列として 表現→itembagを変更更パターンとしてマイニング� 18 R4� l ��� 23⼈人のべ1520時間分のソースコード編集履履歴をマイニング� p l マイニング結果の上位36個を第⼆二著者が⼿手動で確認� p l 5時間半で済んだ à Scalable�� 32%が未知の変更更パターン à E�ective�� 未知の変更更パターンを10種類確認 à Useful�� その⼀一つ: Change and Propagate Field Typeパターン(論論⽂文より引⽤用)� l オンラインアンケートした420⼈人の半分以上が6種類の変更更 19 パターンについて実際の開発でよく使うと回答� R4� ����������� マイニングアルゴリズムの詳細� l 本論論⽂文にはアルゴリズムの概要しか書かれていません!� l ⼿手法の詳細は http://hdl.handle.net/2142/43889 を参照� � マイニングアルゴリズムの実装� l http://codingtracker.web.engr.illinois.edu/ を参照� 20
© Copyright 2024 ExpyDoc