研究グループ/コードクローン
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
[[研究グループ]]
*コードクローン研究グループ [#ua92c5d8]
**Missions [#y8baf188]
- コードクローンの作成と利用がソフトウェア品質に与える影...
- コードクローンの作成と利用における属人性の影響の解明
**Projects [#z0be04a2]
-[[Projects/CodeClone]]:ECTECの使い方等の資料
-[[Projects/]]:研究テーマ1(To be updated)
--FindBugsを使ってバグ票から見つからないバグとクローンの...
-[[Projects/]]:研究テーマ2(To be updated)
--可視化ツール作成
**CC班コアタイム [#m4bcd5d9]
- 13:30〜16:30
-- 来れない場合は連絡
**Members [#k1ca915a]
- 大平
- 久木田
- 片桐
- 上西
**資料 [#o1703b4b]
-2016/01/27: 久木田大ゼミ資料
--&attachref(60160037_久木田 雄亮_ver3.key);
--&attachref(60160037_久木田 雄亮_ver3.pdf);
-日付:資料名
--&attachref();
--&attachref();
*ミーティング議事録 [#q43045e9]
**2017年3月9日 [#n36def60]
***大石 [#m07665af]
-DONE
--久木田先輩の論文を読む(3章)
-TODO
--プログラムの中身を理解
--D3,jsの勉強
--見せ方のイメージを作ってくる
-MEMO
--どんな見せ方にしたら分析に役立つかを考える
***久木田 [#pd86a4dc]
-TODO
--プロジェクト解析やりなおし
--ツール公開準備(Bitbucketで公開リポジトリ作成)
**2017年3月1日 [#g2e69879]
***大石 [#m5d620fd]
-DONE
--久木田先輩の論文を読む(2章まで)
-TODO
--プログラムの中身を理解
--論文3章読む
-MEMO
--視覚化
---クローンがどこで変更されたか、俯瞰して見れるように
**2017年2月9日 [#g18c3800]
***久木田 [#paeb27c4]
-DONE
--修論発表資料作成
--発表練習
--修論発表会
-TODO
--修論修正
---説明の追加
---実験のやり直し
---Pajakの書き直し
-MEMO
--やることの優先度を決める(やるべきこと,余裕があればす...
***上西 [#lee452f1]
-DONE
--ケーススタディしながら執筆中...
-TODO
--ケーススタディ,考察,まとめ,関連研究
**2017年2月9日 [#p8a19845]
***久木田 [#paeb27c4]
-DONE
--修論提出
-TODO
--修論発表資料作成
--発表練習
***上西 [#e4a10466]
-DONE
--2,3章の第一版
--アプリ間類似スコアをネットワーク図的に表現しようとした?
---例(&attachref(app_distance_v0.pdf);)
-TODO
--for 各閾値について:
---全パターンのアプリの順位を人力で出してみて比べる
---いつかのクラスを対象に出るべき差分が出ているか見てみる
--RQは2つに
--ケーススタディ,考察,まとめ,関連研究
**2017年2月2日 [#p8a19845]
***久木田 [#paeb27c4]
-DONE
--評価実験
---クローン追跡精度(1年間の新規・削除クローンの目視)
--評価実験結果を論文に乗せる表にする
--論文2,4章執筆
-TODO
--論文残りを仕上げる
--研究発表会資料作成
-MEMO
--4章の評価実験で既存ツールと同じAntを使ったものにする(論...
--5章の分析事例1のプロジェクトを増やす
***上西 [#rf8114e2]
-DONE
--論理展開見直し中(&attachref(研究発表上西0202.pdf);)
--LSIにかける場合の次元数を割合で指定するように変更
--LSI無効時に各クラスが持つメソッドも出力する機能を追加
-TODO
--読み込ませるアプリやクラス、メソッドの種類、数について...
--トピック数、評価方法についての考察
**2017年01月25日 [#p8a19845]
***久木田 [#q1850532]
-DONE
--評価実験
---クローン追跡ツールの処理時間計測
-TODO
--評価実験
---クローン追跡精度(1年間の新規・削除クローンの目視)
--評価実験結果を論文に乗せる表にする
-MEMO
--
***上西 [#bf243a32]
-DONE
--論理展開見直し
--実験対象のアプリを絞って処理にかけてみた
---Googleが提供しているサンプルアプリのコードがGitHubにあ...
--実験プログラムで変更できる変数
---「android.」から始まるクラスを除去 [(bool) True, False]
---クラスが含むメソッド数でフィルターするための閾値 [(int)]
---LSIにかけるか [(bool) True, False]
---LSIにかける場合の次元数 [(int)]
---クラス間類似度でフィルターするための閾値 [(float) -1.0...
---比較できるアルゴリズムは(今のところ)4つ用意
-TODO
--実験の設計を考えてまとめる(アルゴリズムを複数決めてど...
--複数のジャンルからシンプルなアプリを2、3個取ってきて入...
--一部のクラスを追加したアプリを比べる
--読み込ませるアプリやクラス、メソッドの種類、数について...
--トピック数、評価方法についての考察
**2017年01月19日 [#f833113c]
***久木田 [#q1850532]
-DONE
--大ゼミ発表向けのポスター作成
-TODO
--評価実験
---クローン追跡精度(1年間の新規・削除クローンの目視)
---クローン追跡ツールの処理時間集計
-MEMO
--
***上西 [#k39abe36]
-DONE
--出力をCSV形式を使ってとりあえず見やすくした
--アプリ間類似度スコアが1にならない問題について、アルゴリ...
--論文タイトル「標準API呼び出しの共起関係を利用したアプリ...
--論理展開を見直し中
-TODO
--実験の設計を考えてまとめる(アルゴリズムを複数決めてど...
--複数のジャンルからシンプルなアプリを2、3個取ってきて入...
--一部のクラスを追加したアプリを比べる
--読み込ませるアプリやクラス、メソッドの種類、数について...
--トピック数、評価方法についての考察
**2017年01月12日 [#b07c5951]
***久木田 [#q1850532]
-DONE
--論文に乗せる表の作成
--クローンAuthorShip(回数Ver,変更行数Ver)の計測
-TODO
--大ゼミ発表向けのポスター作成
-MEMO
--
***上西 [#h0724dee]
-DONE
--動くもの↓を作成
--同じアプリに含まれるクラス間の類似度を計算しないように...
--2アプリ間の差分クラス(と類似クラス)を計算するアルゴリ...
クラス間類似度群 = calc_class_sim(アプリ1の各クラス, ア...
類似クラス群 = filter(類似度 >= 閾値, クラス間類似度群)
差分クラス群 = filter(類似度 < 閾値 and not in 類似クラ...
---差分クラスとは類似したクラスが1つもないクラスのこと
---ここで類似するとは閾値以上の類似度を持つことをいう
--アプリ間類似度スコアを計算するアルゴリズム(以下)を実装
入力アプリ = アプリ間類似度計算の中心にするアプリ
被検索対象アプリ群 = 入力アプリ以外のアプリ群
for 対象アプリ in 被検索対象アプリ群:
クラス間類似度群 = calc_class_sim(入力アプリの各クラ...
filter(入力側クラスが重複ならmax値のもの, クラス間類...
filter(対象側クラスが重複ならmax値のもの, クラス間類...
# ↓そこまで類似していないくせに中途半端に高い類似度...
filter(類似度 >= 閾値, クラス間類似度群)
# ↓類似したクラス以外に関係ないクラスをたくさん持つ...
対象アプリのスコア = sum(クラス間類似度群) / 対象ア...
---スコアに使う類似度は両アプリの各クラスにとってmaxのも...
//---ここまで書いて、なぜ差分を出すときと違うようにしたの...
--どのメソッドが類似度に影響したかなどは出力できない
//--(実装していない)(実装できるのかも知らない)
-TODO
--実験の設計を考えてまとめる(アルゴリズムを複数決めてど...
--複数のジャンルからシンプルなアプリを2、3個取ってきて入...
--一部のクラスを追加したアプリを比べる
--読み込ませるアプリやクラス、メソッドの種類、数について...
--トピック数、評価方法についての考察
**2016年12月22日 [#oefc6713]
***久木田 [#ue5d5213]
-DONE
--FindBugsからの撤退(ソースをbuildする際のJavaバージョン...
-TODO
--論文に乗せる表の作成
--クローンAuthorShipの計測
--似たプロジェクトでの比較(クローン含有率など)
-MEMO
--追跡している感じを表の上で表現する
***上西 [#mc1907f8]
-DONE
--横森先生とSkypeミーティング
--とりあえずそれっぽく動くものは作成(正しく動作するとは...
---↑正しくなかったことが判明
-TODO
--動くものを作成
--共通部分、差分を出して見やすいように
--論文を書く
--一部のクラスを削除したアプリを比べるのは?
--同じアプリに含まれるクラス間の類似度を計算しないように...
--少数のアプリなどでLSI部分テスト
--検索部分の仕組み(LSIの結果を見る部分)実装
--読み込ませるアプリやクラス、メソッドの種類、数について...
--トピック数、評価方法についての考察
**2016年12月15日 [#x9082220]
***久木田 [#ue5d5213]
-DONE
--Issue作成者,割り当て者,クローン変更者を紐づけて目視調...
---&attachref(Derby目視確認.pdf);
---Derbyの修正漏れの例のように修正漏れが起きないように事...
---全く変更がないコードがバグ修正の過程で削除されるのであ...
---strutsでは良い例が見つからなかった(対象としているコン...
-TODO
--FindBugsとSZZを比較するために,FindBugsをかけてみる
***上西 [#e105c0ff]
-DONE
--研究発表会
--標準APIも難読化されているアプリを見つけて顔面蒼白(http...
---「コードとリソースの圧縮」(https://developer.android....
---そもそもAndroidアプリの難読化はProGuardというツールで...
---リソースまで圧縮する機能はshrinkResourcesプロパティで...
---ProGuardは難読化結果との対応を示したmapping.txtも出力...
--アプリをノード、類似度をエッジの重みに利用したネットワ...
-TODO
--とりあえず動くものを実装中(DONE : データの保存形式をSQ...
--同じアプリに含まれるクラス間の類似度を計算しないように...
--少数のアプリなどでLSI部分テスト
--検索部分の仕組み(LSIの結果を見る部分)実装
--読み込ませるアプリやクラス、メソッドの種類、数について...
--トピック数、評価方法についての考察
**2016年12月08日 [#x9082220]
***久木田 [#ue5d5213]
-DONE
--struts(Component)の目視調査
---&attachref(struts目視確認.pdf);
---メソッド単位のクローンが存在していた
---マージによるクローンの変更が多い
---Derbyと同じくメソッドの呼び出し方法の変更も見ることが...
---クローンが別のところに再利用されているものが見ることが...
--CCTの追跡機能のバグ修正(間違った追跡を行っていた)
-TODO
--Issue作成者,割り当て者,クローン変更者を紐づけて目視調...
-MEMO
--なぜIssueとクローンが紐づいているのか
--クローンとIssueが紐づいたのであれば,どのように修正すれ...
***上西 [#td6018f6]
-DONE
--アプリをビルドしてみた → 確かにソースにない.classが生成...
--今回の手法は''「似ているアプリを検索する段階」''と''「...
--''「似ているアプリを検索する段階」''
---とにかく似ているアプリを検索する(差分のことは気にしな...
---クラス間ではなくきちんとアプリ間の類似度を測りたい?
---クラスがベクトルなのでアプリはベクトル空間になる...
---相互部分空間法を使えばできる?
---&attachref(最近の技術動向: 相互部分空間法への拡張と ...
---&attachref(部分空間法と識別器.pdf);
--''「差分の機能を示す段階」''
---特定の2アプリ間(もしくは前の段階で挙げられた各アプリ...
---クラス間類似度(今までやってきたやつ)がより小さいもの...
--実験ではそれぞれの段階を評価する?
---1段階目について、目視でアプリを確認しておいて、出力を...
---1段階目について、F-Droidにおけるアプリのカテゴリは正解...
---2段階目について、目視でアプリの機能を確認しておいて、...
-TODO
--とりあえず前回の手法を進める
--同じアプリに含まれるクラス間の類似度を計算しないように...
--少数のアプリなどでLSI部分テスト
--検索部分の仕組み(LSIの結果を見る部分)実装
--読み込ませるアプリやクラス、メソッドの種類、数について...
--トピック数、評価方法についての考察
**2016年11月29日 [#se499a41]
***久木田 [#qdeabab5]
-DONE
--どのクローンを見るのか観点を決める(変更ありとなし,一...
--クローンの作成・変更がなぜ起きたのかを理解するために
---コメント,コード,Issue Reportを見る
---特定のモジュールでどんなソースコードがクローンとして作...
---クローンに紐づいているIssueはどんなIssueなのかIssue Re...
--コードクローン内の処理自体の変更は確認できず,メソッド...
-TODO
--strutsプロジェクトで目視を行う
***上西 [#ref54267]
-DONE
--enum型は内部では特殊なクラスとして表現されているらしい...
--単語数が極端に少ない文書の扱いについて(除去していいの...
--内部クラスが含む標準API呼び出しの数を調べてみた
---内部クラス($マーク付きクラス)&br;(161個, 平均値=3.98...
---普通のクラス&br;(55個, 平均値=28.527273)&br;[0, 0, 1, ...
--Android Studioでビルドできずに困っている
-TODO
--引き続き2つのアプリに含まれるクラスをソースなどと比較し...
---''アプリをビルドしたときに生成されるファイル(APK化前...
--少数のアプリなどでLSI部分テスト
--検索部分の仕組み(LSIの結果を見る部分)実装
--読み込ませるアプリやクラス、メソッドの種類、数について...
--トピック数、評価方法についての考察
-MEMO
--ビルドシステムを確認してからビルドすること(笑)
**2016年11月24日 [#se499a41]
***久木田 [#qdeabab5]
-DONE
--1つのクローンの追跡調査
---作成されてから削除されるまで一度も変更がないものがいく...
---削除されたクローンは長い間変更されていないものが多い
---一人の開発者のみが変更に関わっているクローンは比較的短...
---クローンの作成・変更によってIssueが埋め込まれ,クロー...
-TODO
--どのクローンを見るのか観点を決める(変更ありとなし,一...
--クローンの作成・変更がなぜ起きたのかを理解するために
---コメント,コード,Issue Reportを見る
---特定のモジュールでどんなソースコードがクローンとして作...
---クローンに紐づいているIssueはどんなIssueなのかIssue Re...
***上西 [#w4899cb9]
-DONE
--2つのアプリに含まれる全クラス同士の組み合わせのうち類似...
---クラスがネストされていることがある($マーク)
---たった1つ(ごく少数)の標準APIしか呼んでいないクラスが...
-TODO
--引き続き2つのアプリに含まれるクラスをソースなどと比較し...
---''アプリをビルドしたときに生成されるファイル(APK化前...
--少数のアプリなどでLSI部分テスト
--検索部分の仕組み(LSIの結果を見る部分)実装
--読み込ませるアプリやクラス、メソッドの種類、数について...
--トピック数、評価方法についての考察
**2016年11月16日 [#se499a41]
***久木田 [#qdeabab5]
-DONE
--モジュール(クローンを含む)毎に分けて追跡,バグがある...
--issueがどこで,だれによって埋め込まれたか
-TODO
--1つのクローンの追跡調査
--pajekでクローンと開発者のグラフで,クローンの変更回数と...
-MEMO
--1つのクローンにおいて,だれが作成・変更し,いつだれがB...
--複数人が1か月に変更が行われていれば,共同のownerである...
***上西 [#a89f33a7]
-DONE
--&attachref(1116class_id.csv);
--&attachref(1116sim_all_0.txt);
--&attachref();
-TODO
--''2つのアプリに含まれる全クラス同士の組み合わせのうち類...
--少数のアプリなどでLSI部分テスト
--検索部分の仕組み(LSIの結果を見る部分)実装
--読み込ませるアプリやクラス、メソッドの種類、数について...
--トピック数、評価方法についての考察
**2016年11月10日 [#ec7960f4]
***久木田 [#qdeabab5]
-DONE
--プロジェクトのissue混入率ランキング
--クローンの増減に関わった開発者の調査
-TODO
--issueがどこで,だれによって埋め込まれたか
--モジュール(クローンを含む)毎に分けて追跡,バグがある...
-MEMO
--クローンに関係のあるIssue数/全Issue数
--Issueの分類
--IssueでBugだったものと紐づいたクローンはあるのか
derbyとstrutsをまず見る
***上西 [#m02ad6ab]
-DONE
--研究発表会
--コードがカオスだったので少しだけリファクタリング?
-TODO
--少数のアプリなどでLSI部分テスト
--検索部分の仕組み(LSIの結果を見る部分)実装
--読み込ませるアプリやクラス、メソッドの種類、数について...
--トピック数、評価方法についての考察
**2016年11月04日 [#bf9dd9b8]
***久木田 [#e00c76b7]
-DONE
--LOCとクローンLOCの時系列データのスムージング
--バグ有・無クローンの比較(検定)
-TODO
--クローンの増減に関わった開発者の調査
--issueがどこで,だれによって埋め込まれたか
--モジュール(クローンを含む)毎に分けて追跡,バグがある...
--プロジェクトのissue混入率ランキング
-MEMO
--古くから存在するクローンにissueが埋め込まれた場合,作成...
--バグが埋め込まれたクローンは誰が作成者・利用者・管理者か
***上西 [#f9e28b6a]
-DONE
--前回実装完了部分を改良
--検索部分の仕組みを思いついた
-TODO
--検索部分の仕組み(LSIの結果を見る部分)実装中
--読み込ませるアプリやクラス、メソッドの種類、数について...
--トピック数、評価方法についての考察
**2016年10月27日 [#bf9dd9b8]
***久木田 [#e00c76b7]
-DONE
--修論目次案
--LOCとクローンLOCの時系列データ作成
-TODO
--修論目次修正
--バグ有・無クローンの比較(検定)
--プロジェクトごとの運用の違いは?
***上西 [#qaf2a137]
-DONE
--StigmataCSV→コーパス変換部分実装完了
--tfidf、LSI部分実装完了
--アプリ収集用スクレイパー実装完了
-TODO
--LSIの結果を見る部分実装
--読み込ませるアプリやクラス、メソッドの種類、数について...
--なぜLSIなのか
**2016年10月20日 [#h90a5e1c]
***久木田 [#e00c76b7]
-DONE
--大ゼミ質疑回答(今日中)
-TODO
--修論目次
--バグ有・無クローンの比較(検定)
--共同作業を多くしている開発者グループの抽出
--分析・ケーススタディ・RQの設定
-MEMO
--コードクローンを安全に管理するはGoalにならない
--プロセスを見るとは
--バグでなくIssueで
--ユニーククローン数(累積クローン数)とは
--クローン含有率=クローン行数/全体コード行数(今日中)
--プロジェクトごとにリビジョン系列でクローン含有率計算し...
***上西 [#w110671c]
-DONE
--ガントチャートらしきものを作成
--目次らしきものを作成
--StigmataCSV取得部分実装
-TODO
--LSIで実装(さすがに今週中)
--(アプリ収集)
**2016年10月13日 [#p5782410]
***久木田 [#e00c76b7]
-DONE
--大ゼミスライド
-TODO
--大ゼミ質疑回答(今日中)
--分析・ケーススタディ・RQの設定
***上西 [#n718417b]
-DONE
--簡易版ガントチャート作成&br;
---2016/10/&br;
---Python、Gensim理解(13,14,15)&br;
---コーパス作成部分実装(13,14,15)&br;
---LSI部分実装(15,16,17)&br;
---アプリ収集(17,18)
--PythonやGensimの理解を進めている
-TODO
--LSIで実装
--(アプリ収集)
**2016年10月6日 [#v645f9d6]
***久木田 [#e00c76b7]
-DONE
-TODO
--大ゼミスライド
***上西 [#m23b41d9]
-DONE
--環境構築完了
-TODO
--LSIで実装
--(アプリ収集)
--ガントチャート作成
**2016年9月29日 [#adcaaa61]
***久木田 [#r42c740a]
-DONE
--関西支部大会発表
--コードクローンの作成・利用過程の分析が必要な理由につい...
--Research Questions のスライド
--Apache Strutsのクローン変更回数と変更間隔の集計(バグあ...
-TODO
--大ゼミスライド
***上西 [#m617a32a]
-DONE
--やはりStigmataを使う方針に決めた
--実際のアプリにStigmataを適用して、出力をソースコードと...
---smcモードは、各「クラス」の中に書かれているAPI呼び出し...
---クラス単位ではAPI呼び出しの「順列」に意味はないと考え...
--オープンラボ用ポスターの作成にあたってざっくりと手順を...
---ポスター : (&attachref(上西_2016年度オープンラボ用ポ...
---LSIやLDAあたりを使う予定のため、久木田さんから頂いた資...
-TODO
//--LSI、LDAが何なのかを理解する
//--手法決定
--とりあえずLSIで実装してみる
**2016年9月9日 [#ab5583c8]
***久木田 [#r42c740a]
-DONE
--データリストで未完了の解析を行う(28プロジェクト完了)
--Birdのmissing linksの論文を読む
--分析方法・結果のスライド作成
-TODO
--共同ファイル変更数の調査
--共同変更を多く行っている開発者が関わっているクローンの...
-MEMO
--クローンサイズの分布をみることで大きなクローン,小さな...
--インデントなどのバグに直接影響を与えることがないものは...
--Pajekのデータを使ってクローンまたはバグを介してつながり...
--Birdの論文からサブグループとは何かを読む
***上西 [#ed41f2f6]
-DONE
--玉田先生にStigmataについてメールで質問した
--今回はStigmataを使わない方針に決めた(ソースコードを解...
--既存の手法を意識して考えることにした
---阪大のアプリ比較ツール(&attachref(Androidアプリケーシ...
---連続して呼び出されている標準API呼び出しの順列を調べて...
---この手法では順列を完全一致で調べていた?(もう少しゆる...
--機能抽出過程
---標準API呼び出しの順列は機能を表すはず
---メソッドごとに標準API呼び出し順列を取得
---tf-idf的フィルタリング?
---BoW化?
---いい感じにゆるめな手法を探している...
--ラベル付け過程
---エンドユーザーにもわかる抽象度の機能名は、クラス名やメ...
---識別子名に対する自然言語処理(tf-idf的フィルタリング?)
-TODO
--実際の簡単なアプリの標準API呼び出し順列を確認、比較する
**2016年8月31日 [#ab5583c8]
***久木田 [#r42c740a]
-DONE
--データリストで未完了の解析を行う
--スライドの分析の内容の枠組みを考える
-TODO
--データリストで未完了の解析を行う(残り19プロジェクト)
--Birdのmissing linksの論文を読む
--分析方法・結果のスライド作成
***上西 [#e0992628]
-DONE
--feature locationは実装位置を特定するが、今回は実装位置...
--LSIが何なのかを(なんとなくだが)理解
--Marcus et al.の論文の1つ(&attachref(Feature location u...
---各メソッドの識別子名やコメントを1つのドキュメントとし...
-TODO
--Stigmataの詳細を聞く
**2016年8月26日 [#ab5583c8]
***久木田 [#r42c740a]
-DONE
--現状集まっているデータと集めているデータ(リポジトリと...
--ファイルとクローンで違いがあるかどうか(ファイルバージ...
-TODO
--データリストで未完了の解析を行う
--Birdのmissing linksの論文を読む
--スライドの分析の内容の枠組みを考える
***上西 [#aca72bcd]
-DONE
--全体MTGのスライド→&attachref(研究発表会/2016年度/研究発...
--Chen et al.の手法はCVSの各リビジョンのdiff結果とコミッ...
--Marcus et al.の手法はソースコード内の識別子名やコメント...
-TODO
--手法の決定
**2016年8月10日 [#g78c4a29]
***久木田 [#r42c740a]
-DONE
--複数プロジェクトのPajekデータ作成
--Pajekのデータからクローン同士,バグ同士の2モードネット...
--媒介中心性の高いバグ票の目視(Ant,Struts)
-TODO
--現状集まっているデータと集めているデータ(リポジトリと...
--ファイルとクローンで違いがあるかどうか
--Birdのmissing linksの論文を読む
-MEMO
--3年寝太郎:クローンの平均変更期間を出して
--クローンのミッシングリンクをネットワーク分析で繋げれそう
***上西 [#h6482cf2]
-DONE
--研究の背景、動機の、自分なりに納得のいく説明ができた
---&attachref(研究発表(仮)0810.pdf);
-TODO
--手法の決定、実験?
**2016年8月4日 [#aad162de]
***久木田 [#w4320dce]
-DONE
--SZZデータの利用方法変更
--Pajekデータ作成:(人(fixした人) - バグID - クローンID)
--関西支部大会原稿作成
-TODO
--複数プロジェクトのPajekデータ作成
--Pajekのデータからクローン同士,バグ同士の2モードネット...
--ファイルとクローンで違いがあるか
-MEMO
--Birdの研究との違いをどうするか
--CCの管理においてよくないこととは?
---CCの問題?
---バグの内容の問題?(媒介中心性が高いやつ?)
---人の問題?
***上西 [#q4a52b47]
-DONE
--word2vecをインストールした
--webで見つけたサンプル的なものを動かしてみた
-TODO
--word2vecの詳しい使い方を調べて実践
--サーベイ論文を途中までしか読んでないので続きを読む
-今後の方針?
--stigmataで取得できるクラス名、メソッド名をword2vecして...
-ひとまずの機能の定義
--機能はメソッドの集合で構成される
--それを一定のルールでまとめたものがクラスであり、機能と...
**2016年7月28日 [#aad162de]
***久木田 [#w4320dce]
-DONE
-- FOSEに向けたデータ作成
---SZZ出力確認
---Pajekデータ作成:5プロジェクト分
---クローンサイズ:行数+ブロック(トークン数)
-TODO
--SZZデータの利用方法変更
--Pajekデータ作成:(人(fixした人) - バグID - クローンID)
--関西支部大会原稿作成
***上西 [#o9c7e28c]
-DONE
--word2vecの論文を読んだ
---&attachref(ショートメッセージの部分空間表現と宛先推定....
--実験の方法をいろいろ考えてメモしていた
--さらに読むべき論文を昨日教えてもらった
---&attachref(動的機能捜索における関連度と探索戦略.pdf);
---&attachref(The Role of Concepts in Program Comprehensi...
---&attachref(Feature location in source code a taxonomy ...
-TODO
--教えてもらった論文を読む
**2016年7月21日 [#aad162de]
***久木田 [#w4320dce]
-DONE
-- SIGSEのデータ作成
-TODO
-- FOSEに向けたデータ作成
---SZZ出力確認
---Pajekデータ作成:5プロジェクト分
---クローンサイズ:行数+ブロック(トークン数)
***上西 [#ta56eece]
-DONE
--論文を読んだ
--Stigmataの出力の意味など詳しい使い方を調べたが、わから...
--Stigmata以外の指標も考えてみたが、するならまずはStigmat...
--birthmarkそのままだと量が多いので、無駄なものを減らす工...
-TODO
--玉田先生に聞く?
---Stigmataの機能、出力、各birthmarkの意味
--word2vecも見てみる
**2016年6月30日 [#aad162de]
***久木田 [#w4320dce]
-DONE
-- プロジェクトのデータ取得(残りはeclipseとant)
-- コードクローン集計プログラム作成
-TODO
-- 取得したGitHubIssuesの整形
***上西 [#u1adb551]
-DONE
--CyberAgent内定
-TODO
--具体的な実験方法を考える
--論文読む
--簡単なAndroidアプリを作ってみる
**2016年6月23日 [#aad162de]
***久木田 [#w4320dce]
-DONE
-- クローンの類似性を用いて追跡できていないクローンを減らす
-- プロジェクトのデータ取得(Spring Framework)
-- GitHub API を使ったIssue取得プログラム
-TODO
-- プロジェクトのデータ取得
***上西 [#ba0f2467]
-DONE
--Stigmataで実際のアプリを解析してみた
--Stigmataの出力を整形してソートしてみた(が、現時点では...
-TODO
--具体的な実験方法を考える
--論文を読む
**2016年6月16日 [#n92c98f0]
***久木田 [#w4320dce]
-DONE
-- Ant分析のテーブルを埋める
-- SIGSE投稿
-- 削除されたコードクローンの確認
-TODO
-- プロジェクトのデータ取得
-- クローンの類似性を用いて追跡できていないクローンを減らす
***上西 [#w4260ecc]
-DONE
--Stigmataの使い方を理解した
--前田さんから読むべき論文をもらった
-TODO
--Stigmataで実際のアプリを解析してみる
--論文を読む
**2016年6月9日 [#n92c98f0]
***久木田 [#w4320dce]
-DONE
-- クローンを変更した人,クローンを増やした人の調査
-TODO
-- テーブルを埋める
***上西 [#q13501cf]
-DONE
--論文を1つ読んだ
--データベース演習をがんばった
--輪講資料を作った
--考えた
---検索するには、各アプリが使用しているクラスを見て機能を...
--- ---- 機能の取り出し方はどうする?
--- ---- 機能を自動で取得するには?
--- -------- 機械学習する?
--- ------------ 何を正解にする?
--- -------- ラベルを参考にする?
--- ---- 最適な重みは機械学習する?
-TODO
--さらに論文を読む
--研究の進め方を確定させて、それに伴う何かをする
**2016年5月30日 [#k4ff1dff]
***久木田 [#e088a67d]
-DONE
-- クローン統計量調査
-TODO
-- クローンを変更した人,クローンを増やした人の調査
***上西 [#w38b9f43]
-DONE
--論文を2つ読んだ
-TODO
--さらに論文を読む
--研究の進め方?を考える
**2016年5月26日 [#k4ff1dff]
***久木田 [#e088a67d]
-DONE
--クローンセットがどのように追跡できなくなったかの目視確認
--jEditに対してECTECとCCTをかける
-TODO
--jEditのECTECバージョンとCCTバージョンの比較
--追跡ツール試作の章を書く
***上西 [#e97596fe]
-DONE
--バースマークというものを教えていただいた
-TODO
--バースマークや深層学習について調べる
**2016年5月19日 [#j32fa732]
***久木田 [#zc2c7945]
-DONE
--SZZ(verGitHub)の実装
--取得したプロジェクトに対してSZZの適用
-TODO
--クローン追跡がどの程度できているかの調査
--対象外にすべきディレクトリの特定
***松浦 [#zc2c7945]
-DONE
--東先輩からいただいた本の一章を読み終えた
-TODO
--いただいた本を読み進めライセンスがどういうものなのか理...
*** 上西 [#b2e16207]
-DONE
--輪講で発表した
-TODO
--進路について本気出して考えてみる(やっと)
**2016年5月12日 [#p31465a8]
***松浦 [#s0ef3e4b]
-DONE
--論文を読んだ
-TODO
--東先輩が提案してくれた研究テーマを進めていく
***久木田 [#s0ef3e4b]
-DONE
--いろんなプロジェクトに対してCCTをかける(JUnit,struts,ja...
--取得したデータの確認
-TODO
--SZZ(verGitHub)の実装
--取得したプロジェクトに対してSZZの適用
***上西 [#a33412c6]
-DONE
--自動バグ修正に興味を持った
-TODO
--論文読む
**2016年4月28日 [#mfbb805c]
***久木田 [#s0ef3e4b]
-DONE
--大ゼミ発表
-TODO
--いろんなプロジェクトに対してCCTをかける(現状あるのはst...
--取得したデータの確認
***松浦 [#s0ef3e4b]
-DONE
--研究テーマを考える
--&attachref(修正忘れが起きるコードの.pptx);
-TODO
--生データをみていく
--修正漏れの論文を調べていく
***上西 [#j8b2ad1f]
- DONE
-- リファクタリングに関することも考えることにしてみた
- TODO
-- 一貫性のある変更とは?を考える
-- 最低限読むべき論文がたくさんあるので読む
**2016年4月21日 [#r7e1f0d3]
***松浦 [#s0ef3e4b]
-DONE
-- 研究テーマを考える
--&attachref(消滅をみてなにがわかるか.pptx);
-TODO
-- ソフトウェアエンジニアリング基礎知識体系を読んで勉強する
***久木田 [#s0ef3e4b]
-DONE
-- nokogiri動作確認(特にマージコミット部分)
-- nokogiriバグ修正
-- スライド(ツール説明)
-TODO
--大ゼミ発表
***上西 [#s7303cdb]
- DONE
--
- TODO
-- 一貫性のある変更とは?を考える
**2016年4月14日 [#r7e1f0d3]
***久木田 [#s0ef3e4b]
-DONE
-- 全メソッドのつなぎ合わせ
-TODO
-- nokogiri動作確認(特にマージコミット部分)
-- 大ゼミ資料作りはじめ
***松浦 [#s0ef3e4b]
-DONE
-- 実装希望報告
-TODO
-- 論文を読み研究
**2016年4月8日 [#e1d4170a]
***上西 [#d1d0d19f]
- DONE
-- ついさっきDB.getParentsCommitInfo()を実装
-- 全体MTGの輪講とデータベース演習を頑張ってました
- TODO
-- もっと論文を読む
*** 松浦 [#ie58bfd5]
- DONE
- TODO
***片桐 [#ofa56a76]
***久木田 [#s0ef3e4b]
-DONE
-- Diffを用いたコード片特定
-TODO
-- 全メソッドのつなぎ合わせ
-- 大ゼミ資料作りはじめ
**2016年4月1日 [#v8dcedc0]
***上西・松浦 [#tb120a97]
-DONE
-- Nokogiri担当分(CommitInfoExtractor)完成
-TODO
--論文を読む
***松尾大典 [#ofa56a76]
-DONE
-- 自宅に環境構築
-- 全然進んでないです、むしろ後退
-TODO
--
***片桐 [#ofa56a76]
-DONE
-- CodeFragmentDetector, CloneDetectorの移行
-TODO
-- DBの仕様に合わせた変更
***久木田 [#s0ef3e4b]
-DONE
-- コード片特定,クローン特定
-- コードクローンの追跡(まだバグあり)
-TODO
-- 実装:マージ発生時のコード片,コードクローンの処理
**2016年3月24日 [#l4778a6b]
***松尾大典 [#z18ffa9f]
-DONE
-- コード片変更箇所の特定フロー(進捗5割?)
--- DiffやDB接続は他から拝借するので独自部分は後はほぼ無い
--- DIffのとり方の変更に対応
-TODO
-- DB接続、確認クエリ、格納クエリ
-- 動作確認
-- コーディング規約を周りに合わせる
***久木田 [#m287df95]
-DONE
-- データベース設計・実装(クローン部分のみ)
-TODO
-- 実装:マージ発生時のコード片,コードクローンの処理
--- コードクローンの追跡
+ Diffに含まれるファイルからコード片抽出
+ DBに格納されている前のリビジョンでのコード片と比較
+ 一致するコード片があればコードクローンとして追跡する
--- クローンのマージ
--- クローン情報のデータベースへの格納
--- 動作確認
***片桐 [#i04c2cc0]
-DONE
-- フローの1, 2番目まで
--- コミットIDの取得
--- 任意のコミットIDのスナップショット中に存在するファイ...
-- コード片特定に必要なライブラリの移動
-TODO
-- コード片特定
-- クローンの組特定
-MEMO
--
***上西・松浦 [#s6cd9011]
-DONE
-- DB関連(ダミーデータは挿入できる)
-TODO
-- JGitを使ってデータを取得する部分の実装
**2016年3月17日 [#y747cf74]
***久木田 [#m287df95]
-DONE
-- 実装:マージ発生時のコード片,コードクローンの処理
--- Diff取得(ファイル,行数,属性)
--- Diff比較
-- クローンのデータベース設計
-TODO
-- 実装:マージ発生時のコード片,コードクローンの処理
--- Diffに含まれるクローンの比較
--- クローンのマージ
-- データベース設計・実装
***片桐 [#i04c2cc0]
-DONE
-- フローの1, 2番目まで
-TODO
-- codeFragmentの特定部分作成中です
-MEMO
--
***上西・松浦 [#c3e2e501]
-DONE
--
-TODO
-- 実装
***大典 [#de5f624b]
-DONE
-- 既存コードを読んだ
-- 火曜に久木田さんと簡易MTGでDBを決定
-TODO
-- 担当フロー部分の実装(久木田さん作のDiffを流用)
-MEMO
-- 用事で午前中居ないかもしれないです
**2016年3月11日 [#y747cf74]
***久木田 [#m287df95]
-DONE
-- 動作手順フローチャート作成
--- マージ発生時のコード片,コードクローンの処理(久木田)
-TODO
-- 実装
--- マージ発生時のコード片,コードクローンの処理
***片桐 [#i04c2cc0]
-DONE
-TODO
-- フローチャート作成後,実装
-MEMO
- フローチャート
-- あるリビジョンのすべてのファイルをスキャンし,コード片...
-- できたら,確認してもらった後,実装開始.
***上西・松浦 [#c3e2e501]
-DONE
-- 大まかな流れ図を作成
-TODO
-- 実装
**2016年3月3日 [#y747cf74]
***CC班コアタイム [#m4bcd5d9]
13:30〜16:30
***久木田 [#m287df95]
-DONE
-- コードクローンの追跡方法のスライド
--- &attachref(KCTECドキュメント.pptx);
-TODO
-- 動作手順フローチャート作成
--- リビジョン情報・関係を取り出す(松浦・上西)
--- コードクローンの特定(最初のリビジョンのスキャン)(...
--- コードクローン変更箇所(コミット)の特定(大典)
--- マージ発生時のコード片,コードクローンの処理(久木田)
-- データベースの再設計(一人ではできないので手伝ってほし...
***上西 [#c3e2e501]
-DONE
-- 複数の論文のアブストを読んだ
-TODO
-- 論文を読む
**2016年2月26日 [#y747cf74]
***久木田 [#m287df95]
-DONE
-- この設計のままでは,計算量が膨大になり,クローンを追跡...
-TODO
-- データベースの再設計
***片桐 [#i04c2cc0]
-TODO
-- FileDetector作成中です
-- JGitの実装でモタついてます・・・。
***上西 [#c3e2e501]
-DONE
--久木田さんにCommitDetector作成を依頼→完成
-TODO
--論文を読む
**2016年2月17日 [#y747cf74]
***久木田 [#m287df95]
-DONE
-- ECTEC(ver.kukita)作成
--- コード片特定機能作成
--- コードクローン特定機能作成
-TODO
-- コミット親子関係取得機能作成
***片桐 [#i04c2cc0]
-DONE
-- 無いです・・・
-TODO
-- FileDetector作成中です
***上西 [#c3e2e501]
-TODO
--CommitDetectorの作成
**2016年2月10日 [#y747cf74]
***大平 [#db9734ad]
-TODO
-- ひとつのバグに対して同時修正を必要としたクローンを含む...
***久木田 [#m287df95]
-DONE
-- ECTEC(ver.kukita)機能の書き出し
-TODO
-- ECTEC(ver.kukita)作成
--- コード片特定機能作成
**2016年2月5日 [#sc48a859]
***久木田 [#m287df95]
-DONE
-- ECTEC(ver.kukita)作成
--- データベース作成機能
-- 大ゼミ回答提出
-TODO
-- ECTEC(ver.kukita)機能の書き出し
**2016年1月29日 [#q328fe49]
***大平 [#db9734ad]
-DONE
--コードクローン班用wikiページ作成
--研究テーマ2件のラフ設定
---コードクローン作成パターンの時系列分析(プロジェクト開...
---コードクローンの作成/利用における人間関係の分析(第三...
-TODO
--疑問を解消する(サーベイ?):研究する意味あるのかを再...
---不具合修正に占めるコードクローンの修正割合は? (modifi...
---不具合修正とは無関係な変更に占めるクローンの変更割合は...
***久木田 [#m287df95]
-DONE
-- ECTEC(ver.kukita)のデータベース設計
-- 大ゼミ発表
-TODO
-- ECTEC(ver.kukita)作成
--- データベース作成機能
-- 大ゼミ回答提出
--コードクローンの作成理由の調査
***片桐 [#i04c2cc0]
-DONE
-TODO
--来週のMTGに参加
--エントリーシート作成
--大家さんに会いに行く
-ResearchQuestions
--開発者によってコードの再利用を行いやすい・されやすい傾...
--プロジェクトに長く携わることで再利用傾向に変化があるか
--他者の書いたコードを再利用することは不具合の混入に起因...
終了行:
[[研究グループ]]
*コードクローン研究グループ [#ua92c5d8]
**Missions [#y8baf188]
- コードクローンの作成と利用がソフトウェア品質に与える影...
- コードクローンの作成と利用における属人性の影響の解明
**Projects [#z0be04a2]
-[[Projects/CodeClone]]:ECTECの使い方等の資料
-[[Projects/]]:研究テーマ1(To be updated)
--FindBugsを使ってバグ票から見つからないバグとクローンの...
-[[Projects/]]:研究テーマ2(To be updated)
--可視化ツール作成
**CC班コアタイム [#m4bcd5d9]
- 13:30〜16:30
-- 来れない場合は連絡
**Members [#k1ca915a]
- 大平
- 久木田
- 片桐
- 上西
**資料 [#o1703b4b]
-2016/01/27: 久木田大ゼミ資料
--&attachref(60160037_久木田 雄亮_ver3.key);
--&attachref(60160037_久木田 雄亮_ver3.pdf);
-日付:資料名
--&attachref();
--&attachref();
*ミーティング議事録 [#q43045e9]
**2017年3月9日 [#n36def60]
***大石 [#m07665af]
-DONE
--久木田先輩の論文を読む(3章)
-TODO
--プログラムの中身を理解
--D3,jsの勉強
--見せ方のイメージを作ってくる
-MEMO
--どんな見せ方にしたら分析に役立つかを考える
***久木田 [#pd86a4dc]
-TODO
--プロジェクト解析やりなおし
--ツール公開準備(Bitbucketで公開リポジトリ作成)
**2017年3月1日 [#g2e69879]
***大石 [#m5d620fd]
-DONE
--久木田先輩の論文を読む(2章まで)
-TODO
--プログラムの中身を理解
--論文3章読む
-MEMO
--視覚化
---クローンがどこで変更されたか、俯瞰して見れるように
**2017年2月9日 [#g18c3800]
***久木田 [#paeb27c4]
-DONE
--修論発表資料作成
--発表練習
--修論発表会
-TODO
--修論修正
---説明の追加
---実験のやり直し
---Pajakの書き直し
-MEMO
--やることの優先度を決める(やるべきこと,余裕があればす...
***上西 [#lee452f1]
-DONE
--ケーススタディしながら執筆中...
-TODO
--ケーススタディ,考察,まとめ,関連研究
**2017年2月9日 [#p8a19845]
***久木田 [#paeb27c4]
-DONE
--修論提出
-TODO
--修論発表資料作成
--発表練習
***上西 [#e4a10466]
-DONE
--2,3章の第一版
--アプリ間類似スコアをネットワーク図的に表現しようとした?
---例(&attachref(app_distance_v0.pdf);)
-TODO
--for 各閾値について:
---全パターンのアプリの順位を人力で出してみて比べる
---いつかのクラスを対象に出るべき差分が出ているか見てみる
--RQは2つに
--ケーススタディ,考察,まとめ,関連研究
**2017年2月2日 [#p8a19845]
***久木田 [#paeb27c4]
-DONE
--評価実験
---クローン追跡精度(1年間の新規・削除クローンの目視)
--評価実験結果を論文に乗せる表にする
--論文2,4章執筆
-TODO
--論文残りを仕上げる
--研究発表会資料作成
-MEMO
--4章の評価実験で既存ツールと同じAntを使ったものにする(論...
--5章の分析事例1のプロジェクトを増やす
***上西 [#rf8114e2]
-DONE
--論理展開見直し中(&attachref(研究発表上西0202.pdf);)
--LSIにかける場合の次元数を割合で指定するように変更
--LSI無効時に各クラスが持つメソッドも出力する機能を追加
-TODO
--読み込ませるアプリやクラス、メソッドの種類、数について...
--トピック数、評価方法についての考察
**2017年01月25日 [#p8a19845]
***久木田 [#q1850532]
-DONE
--評価実験
---クローン追跡ツールの処理時間計測
-TODO
--評価実験
---クローン追跡精度(1年間の新規・削除クローンの目視)
--評価実験結果を論文に乗せる表にする
-MEMO
--
***上西 [#bf243a32]
-DONE
--論理展開見直し
--実験対象のアプリを絞って処理にかけてみた
---Googleが提供しているサンプルアプリのコードがGitHubにあ...
--実験プログラムで変更できる変数
---「android.」から始まるクラスを除去 [(bool) True, False]
---クラスが含むメソッド数でフィルターするための閾値 [(int)]
---LSIにかけるか [(bool) True, False]
---LSIにかける場合の次元数 [(int)]
---クラス間類似度でフィルターするための閾値 [(float) -1.0...
---比較できるアルゴリズムは(今のところ)4つ用意
-TODO
--実験の設計を考えてまとめる(アルゴリズムを複数決めてど...
--複数のジャンルからシンプルなアプリを2、3個取ってきて入...
--一部のクラスを追加したアプリを比べる
--読み込ませるアプリやクラス、メソッドの種類、数について...
--トピック数、評価方法についての考察
**2017年01月19日 [#f833113c]
***久木田 [#q1850532]
-DONE
--大ゼミ発表向けのポスター作成
-TODO
--評価実験
---クローン追跡精度(1年間の新規・削除クローンの目視)
---クローン追跡ツールの処理時間集計
-MEMO
--
***上西 [#k39abe36]
-DONE
--出力をCSV形式を使ってとりあえず見やすくした
--アプリ間類似度スコアが1にならない問題について、アルゴリ...
--論文タイトル「標準API呼び出しの共起関係を利用したアプリ...
--論理展開を見直し中
-TODO
--実験の設計を考えてまとめる(アルゴリズムを複数決めてど...
--複数のジャンルからシンプルなアプリを2、3個取ってきて入...
--一部のクラスを追加したアプリを比べる
--読み込ませるアプリやクラス、メソッドの種類、数について...
--トピック数、評価方法についての考察
**2017年01月12日 [#b07c5951]
***久木田 [#q1850532]
-DONE
--論文に乗せる表の作成
--クローンAuthorShip(回数Ver,変更行数Ver)の計測
-TODO
--大ゼミ発表向けのポスター作成
-MEMO
--
***上西 [#h0724dee]
-DONE
--動くもの↓を作成
--同じアプリに含まれるクラス間の類似度を計算しないように...
--2アプリ間の差分クラス(と類似クラス)を計算するアルゴリ...
クラス間類似度群 = calc_class_sim(アプリ1の各クラス, ア...
類似クラス群 = filter(類似度 >= 閾値, クラス間類似度群)
差分クラス群 = filter(類似度 < 閾値 and not in 類似クラ...
---差分クラスとは類似したクラスが1つもないクラスのこと
---ここで類似するとは閾値以上の類似度を持つことをいう
--アプリ間類似度スコアを計算するアルゴリズム(以下)を実装
入力アプリ = アプリ間類似度計算の中心にするアプリ
被検索対象アプリ群 = 入力アプリ以外のアプリ群
for 対象アプリ in 被検索対象アプリ群:
クラス間類似度群 = calc_class_sim(入力アプリの各クラ...
filter(入力側クラスが重複ならmax値のもの, クラス間類...
filter(対象側クラスが重複ならmax値のもの, クラス間類...
# ↓そこまで類似していないくせに中途半端に高い類似度...
filter(類似度 >= 閾値, クラス間類似度群)
# ↓類似したクラス以外に関係ないクラスをたくさん持つ...
対象アプリのスコア = sum(クラス間類似度群) / 対象ア...
---スコアに使う類似度は両アプリの各クラスにとってmaxのも...
//---ここまで書いて、なぜ差分を出すときと違うようにしたの...
--どのメソッドが類似度に影響したかなどは出力できない
//--(実装していない)(実装できるのかも知らない)
-TODO
--実験の設計を考えてまとめる(アルゴリズムを複数決めてど...
--複数のジャンルからシンプルなアプリを2、3個取ってきて入...
--一部のクラスを追加したアプリを比べる
--読み込ませるアプリやクラス、メソッドの種類、数について...
--トピック数、評価方法についての考察
**2016年12月22日 [#oefc6713]
***久木田 [#ue5d5213]
-DONE
--FindBugsからの撤退(ソースをbuildする際のJavaバージョン...
-TODO
--論文に乗せる表の作成
--クローンAuthorShipの計測
--似たプロジェクトでの比較(クローン含有率など)
-MEMO
--追跡している感じを表の上で表現する
***上西 [#mc1907f8]
-DONE
--横森先生とSkypeミーティング
--とりあえずそれっぽく動くものは作成(正しく動作するとは...
---↑正しくなかったことが判明
-TODO
--動くものを作成
--共通部分、差分を出して見やすいように
--論文を書く
--一部のクラスを削除したアプリを比べるのは?
--同じアプリに含まれるクラス間の類似度を計算しないように...
--少数のアプリなどでLSI部分テスト
--検索部分の仕組み(LSIの結果を見る部分)実装
--読み込ませるアプリやクラス、メソッドの種類、数について...
--トピック数、評価方法についての考察
**2016年12月15日 [#x9082220]
***久木田 [#ue5d5213]
-DONE
--Issue作成者,割り当て者,クローン変更者を紐づけて目視調...
---&attachref(Derby目視確認.pdf);
---Derbyの修正漏れの例のように修正漏れが起きないように事...
---全く変更がないコードがバグ修正の過程で削除されるのであ...
---strutsでは良い例が見つからなかった(対象としているコン...
-TODO
--FindBugsとSZZを比較するために,FindBugsをかけてみる
***上西 [#e105c0ff]
-DONE
--研究発表会
--標準APIも難読化されているアプリを見つけて顔面蒼白(http...
---「コードとリソースの圧縮」(https://developer.android....
---そもそもAndroidアプリの難読化はProGuardというツールで...
---リソースまで圧縮する機能はshrinkResourcesプロパティで...
---ProGuardは難読化結果との対応を示したmapping.txtも出力...
--アプリをノード、類似度をエッジの重みに利用したネットワ...
-TODO
--とりあえず動くものを実装中(DONE : データの保存形式をSQ...
--同じアプリに含まれるクラス間の類似度を計算しないように...
--少数のアプリなどでLSI部分テスト
--検索部分の仕組み(LSIの結果を見る部分)実装
--読み込ませるアプリやクラス、メソッドの種類、数について...
--トピック数、評価方法についての考察
**2016年12月08日 [#x9082220]
***久木田 [#ue5d5213]
-DONE
--struts(Component)の目視調査
---&attachref(struts目視確認.pdf);
---メソッド単位のクローンが存在していた
---マージによるクローンの変更が多い
---Derbyと同じくメソッドの呼び出し方法の変更も見ることが...
---クローンが別のところに再利用されているものが見ることが...
--CCTの追跡機能のバグ修正(間違った追跡を行っていた)
-TODO
--Issue作成者,割り当て者,クローン変更者を紐づけて目視調...
-MEMO
--なぜIssueとクローンが紐づいているのか
--クローンとIssueが紐づいたのであれば,どのように修正すれ...
***上西 [#td6018f6]
-DONE
--アプリをビルドしてみた → 確かにソースにない.classが生成...
--今回の手法は''「似ているアプリを検索する段階」''と''「...
--''「似ているアプリを検索する段階」''
---とにかく似ているアプリを検索する(差分のことは気にしな...
---クラス間ではなくきちんとアプリ間の類似度を測りたい?
---クラスがベクトルなのでアプリはベクトル空間になる...
---相互部分空間法を使えばできる?
---&attachref(最近の技術動向: 相互部分空間法への拡張と ...
---&attachref(部分空間法と識別器.pdf);
--''「差分の機能を示す段階」''
---特定の2アプリ間(もしくは前の段階で挙げられた各アプリ...
---クラス間類似度(今までやってきたやつ)がより小さいもの...
--実験ではそれぞれの段階を評価する?
---1段階目について、目視でアプリを確認しておいて、出力を...
---1段階目について、F-Droidにおけるアプリのカテゴリは正解...
---2段階目について、目視でアプリの機能を確認しておいて、...
-TODO
--とりあえず前回の手法を進める
--同じアプリに含まれるクラス間の類似度を計算しないように...
--少数のアプリなどでLSI部分テスト
--検索部分の仕組み(LSIの結果を見る部分)実装
--読み込ませるアプリやクラス、メソッドの種類、数について...
--トピック数、評価方法についての考察
**2016年11月29日 [#se499a41]
***久木田 [#qdeabab5]
-DONE
--どのクローンを見るのか観点を決める(変更ありとなし,一...
--クローンの作成・変更がなぜ起きたのかを理解するために
---コメント,コード,Issue Reportを見る
---特定のモジュールでどんなソースコードがクローンとして作...
---クローンに紐づいているIssueはどんなIssueなのかIssue Re...
--コードクローン内の処理自体の変更は確認できず,メソッド...
-TODO
--strutsプロジェクトで目視を行う
***上西 [#ref54267]
-DONE
--enum型は内部では特殊なクラスとして表現されているらしい...
--単語数が極端に少ない文書の扱いについて(除去していいの...
--内部クラスが含む標準API呼び出しの数を調べてみた
---内部クラス($マーク付きクラス)&br;(161個, 平均値=3.98...
---普通のクラス&br;(55個, 平均値=28.527273)&br;[0, 0, 1, ...
--Android Studioでビルドできずに困っている
-TODO
--引き続き2つのアプリに含まれるクラスをソースなどと比較し...
---''アプリをビルドしたときに生成されるファイル(APK化前...
--少数のアプリなどでLSI部分テスト
--検索部分の仕組み(LSIの結果を見る部分)実装
--読み込ませるアプリやクラス、メソッドの種類、数について...
--トピック数、評価方法についての考察
-MEMO
--ビルドシステムを確認してからビルドすること(笑)
**2016年11月24日 [#se499a41]
***久木田 [#qdeabab5]
-DONE
--1つのクローンの追跡調査
---作成されてから削除されるまで一度も変更がないものがいく...
---削除されたクローンは長い間変更されていないものが多い
---一人の開発者のみが変更に関わっているクローンは比較的短...
---クローンの作成・変更によってIssueが埋め込まれ,クロー...
-TODO
--どのクローンを見るのか観点を決める(変更ありとなし,一...
--クローンの作成・変更がなぜ起きたのかを理解するために
---コメント,コード,Issue Reportを見る
---特定のモジュールでどんなソースコードがクローンとして作...
---クローンに紐づいているIssueはどんなIssueなのかIssue Re...
***上西 [#w4899cb9]
-DONE
--2つのアプリに含まれる全クラス同士の組み合わせのうち類似...
---クラスがネストされていることがある($マーク)
---たった1つ(ごく少数)の標準APIしか呼んでいないクラスが...
-TODO
--引き続き2つのアプリに含まれるクラスをソースなどと比較し...
---''アプリをビルドしたときに生成されるファイル(APK化前...
--少数のアプリなどでLSI部分テスト
--検索部分の仕組み(LSIの結果を見る部分)実装
--読み込ませるアプリやクラス、メソッドの種類、数について...
--トピック数、評価方法についての考察
**2016年11月16日 [#se499a41]
***久木田 [#qdeabab5]
-DONE
--モジュール(クローンを含む)毎に分けて追跡,バグがある...
--issueがどこで,だれによって埋め込まれたか
-TODO
--1つのクローンの追跡調査
--pajekでクローンと開発者のグラフで,クローンの変更回数と...
-MEMO
--1つのクローンにおいて,だれが作成・変更し,いつだれがB...
--複数人が1か月に変更が行われていれば,共同のownerである...
***上西 [#a89f33a7]
-DONE
--&attachref(1116class_id.csv);
--&attachref(1116sim_all_0.txt);
--&attachref();
-TODO
--''2つのアプリに含まれる全クラス同士の組み合わせのうち類...
--少数のアプリなどでLSI部分テスト
--検索部分の仕組み(LSIの結果を見る部分)実装
--読み込ませるアプリやクラス、メソッドの種類、数について...
--トピック数、評価方法についての考察
**2016年11月10日 [#ec7960f4]
***久木田 [#qdeabab5]
-DONE
--プロジェクトのissue混入率ランキング
--クローンの増減に関わった開発者の調査
-TODO
--issueがどこで,だれによって埋め込まれたか
--モジュール(クローンを含む)毎に分けて追跡,バグがある...
-MEMO
--クローンに関係のあるIssue数/全Issue数
--Issueの分類
--IssueでBugだったものと紐づいたクローンはあるのか
derbyとstrutsをまず見る
***上西 [#m02ad6ab]
-DONE
--研究発表会
--コードがカオスだったので少しだけリファクタリング?
-TODO
--少数のアプリなどでLSI部分テスト
--検索部分の仕組み(LSIの結果を見る部分)実装
--読み込ませるアプリやクラス、メソッドの種類、数について...
--トピック数、評価方法についての考察
**2016年11月04日 [#bf9dd9b8]
***久木田 [#e00c76b7]
-DONE
--LOCとクローンLOCの時系列データのスムージング
--バグ有・無クローンの比較(検定)
-TODO
--クローンの増減に関わった開発者の調査
--issueがどこで,だれによって埋め込まれたか
--モジュール(クローンを含む)毎に分けて追跡,バグがある...
--プロジェクトのissue混入率ランキング
-MEMO
--古くから存在するクローンにissueが埋め込まれた場合,作成...
--バグが埋め込まれたクローンは誰が作成者・利用者・管理者か
***上西 [#f9e28b6a]
-DONE
--前回実装完了部分を改良
--検索部分の仕組みを思いついた
-TODO
--検索部分の仕組み(LSIの結果を見る部分)実装中
--読み込ませるアプリやクラス、メソッドの種類、数について...
--トピック数、評価方法についての考察
**2016年10月27日 [#bf9dd9b8]
***久木田 [#e00c76b7]
-DONE
--修論目次案
--LOCとクローンLOCの時系列データ作成
-TODO
--修論目次修正
--バグ有・無クローンの比較(検定)
--プロジェクトごとの運用の違いは?
***上西 [#qaf2a137]
-DONE
--StigmataCSV→コーパス変換部分実装完了
--tfidf、LSI部分実装完了
--アプリ収集用スクレイパー実装完了
-TODO
--LSIの結果を見る部分実装
--読み込ませるアプリやクラス、メソッドの種類、数について...
--なぜLSIなのか
**2016年10月20日 [#h90a5e1c]
***久木田 [#e00c76b7]
-DONE
--大ゼミ質疑回答(今日中)
-TODO
--修論目次
--バグ有・無クローンの比較(検定)
--共同作業を多くしている開発者グループの抽出
--分析・ケーススタディ・RQの設定
-MEMO
--コードクローンを安全に管理するはGoalにならない
--プロセスを見るとは
--バグでなくIssueで
--ユニーククローン数(累積クローン数)とは
--クローン含有率=クローン行数/全体コード行数(今日中)
--プロジェクトごとにリビジョン系列でクローン含有率計算し...
***上西 [#w110671c]
-DONE
--ガントチャートらしきものを作成
--目次らしきものを作成
--StigmataCSV取得部分実装
-TODO
--LSIで実装(さすがに今週中)
--(アプリ収集)
**2016年10月13日 [#p5782410]
***久木田 [#e00c76b7]
-DONE
--大ゼミスライド
-TODO
--大ゼミ質疑回答(今日中)
--分析・ケーススタディ・RQの設定
***上西 [#n718417b]
-DONE
--簡易版ガントチャート作成&br;
---2016/10/&br;
---Python、Gensim理解(13,14,15)&br;
---コーパス作成部分実装(13,14,15)&br;
---LSI部分実装(15,16,17)&br;
---アプリ収集(17,18)
--PythonやGensimの理解を進めている
-TODO
--LSIで実装
--(アプリ収集)
**2016年10月6日 [#v645f9d6]
***久木田 [#e00c76b7]
-DONE
-TODO
--大ゼミスライド
***上西 [#m23b41d9]
-DONE
--環境構築完了
-TODO
--LSIで実装
--(アプリ収集)
--ガントチャート作成
**2016年9月29日 [#adcaaa61]
***久木田 [#r42c740a]
-DONE
--関西支部大会発表
--コードクローンの作成・利用過程の分析が必要な理由につい...
--Research Questions のスライド
--Apache Strutsのクローン変更回数と変更間隔の集計(バグあ...
-TODO
--大ゼミスライド
***上西 [#m617a32a]
-DONE
--やはりStigmataを使う方針に決めた
--実際のアプリにStigmataを適用して、出力をソースコードと...
---smcモードは、各「クラス」の中に書かれているAPI呼び出し...
---クラス単位ではAPI呼び出しの「順列」に意味はないと考え...
--オープンラボ用ポスターの作成にあたってざっくりと手順を...
---ポスター : (&attachref(上西_2016年度オープンラボ用ポ...
---LSIやLDAあたりを使う予定のため、久木田さんから頂いた資...
-TODO
//--LSI、LDAが何なのかを理解する
//--手法決定
--とりあえずLSIで実装してみる
**2016年9月9日 [#ab5583c8]
***久木田 [#r42c740a]
-DONE
--データリストで未完了の解析を行う(28プロジェクト完了)
--Birdのmissing linksの論文を読む
--分析方法・結果のスライド作成
-TODO
--共同ファイル変更数の調査
--共同変更を多く行っている開発者が関わっているクローンの...
-MEMO
--クローンサイズの分布をみることで大きなクローン,小さな...
--インデントなどのバグに直接影響を与えることがないものは...
--Pajekのデータを使ってクローンまたはバグを介してつながり...
--Birdの論文からサブグループとは何かを読む
***上西 [#ed41f2f6]
-DONE
--玉田先生にStigmataについてメールで質問した
--今回はStigmataを使わない方針に決めた(ソースコードを解...
--既存の手法を意識して考えることにした
---阪大のアプリ比較ツール(&attachref(Androidアプリケーシ...
---連続して呼び出されている標準API呼び出しの順列を調べて...
---この手法では順列を完全一致で調べていた?(もう少しゆる...
--機能抽出過程
---標準API呼び出しの順列は機能を表すはず
---メソッドごとに標準API呼び出し順列を取得
---tf-idf的フィルタリング?
---BoW化?
---いい感じにゆるめな手法を探している...
--ラベル付け過程
---エンドユーザーにもわかる抽象度の機能名は、クラス名やメ...
---識別子名に対する自然言語処理(tf-idf的フィルタリング?)
-TODO
--実際の簡単なアプリの標準API呼び出し順列を確認、比較する
**2016年8月31日 [#ab5583c8]
***久木田 [#r42c740a]
-DONE
--データリストで未完了の解析を行う
--スライドの分析の内容の枠組みを考える
-TODO
--データリストで未完了の解析を行う(残り19プロジェクト)
--Birdのmissing linksの論文を読む
--分析方法・結果のスライド作成
***上西 [#e0992628]
-DONE
--feature locationは実装位置を特定するが、今回は実装位置...
--LSIが何なのかを(なんとなくだが)理解
--Marcus et al.の論文の1つ(&attachref(Feature location u...
---各メソッドの識別子名やコメントを1つのドキュメントとし...
-TODO
--Stigmataの詳細を聞く
**2016年8月26日 [#ab5583c8]
***久木田 [#r42c740a]
-DONE
--現状集まっているデータと集めているデータ(リポジトリと...
--ファイルとクローンで違いがあるかどうか(ファイルバージ...
-TODO
--データリストで未完了の解析を行う
--Birdのmissing linksの論文を読む
--スライドの分析の内容の枠組みを考える
***上西 [#aca72bcd]
-DONE
--全体MTGのスライド→&attachref(研究発表会/2016年度/研究発...
--Chen et al.の手法はCVSの各リビジョンのdiff結果とコミッ...
--Marcus et al.の手法はソースコード内の識別子名やコメント...
-TODO
--手法の決定
**2016年8月10日 [#g78c4a29]
***久木田 [#r42c740a]
-DONE
--複数プロジェクトのPajekデータ作成
--Pajekのデータからクローン同士,バグ同士の2モードネット...
--媒介中心性の高いバグ票の目視(Ant,Struts)
-TODO
--現状集まっているデータと集めているデータ(リポジトリと...
--ファイルとクローンで違いがあるかどうか
--Birdのmissing linksの論文を読む
-MEMO
--3年寝太郎:クローンの平均変更期間を出して
--クローンのミッシングリンクをネットワーク分析で繋げれそう
***上西 [#h6482cf2]
-DONE
--研究の背景、動機の、自分なりに納得のいく説明ができた
---&attachref(研究発表(仮)0810.pdf);
-TODO
--手法の決定、実験?
**2016年8月4日 [#aad162de]
***久木田 [#w4320dce]
-DONE
--SZZデータの利用方法変更
--Pajekデータ作成:(人(fixした人) - バグID - クローンID)
--関西支部大会原稿作成
-TODO
--複数プロジェクトのPajekデータ作成
--Pajekのデータからクローン同士,バグ同士の2モードネット...
--ファイルとクローンで違いがあるか
-MEMO
--Birdの研究との違いをどうするか
--CCの管理においてよくないこととは?
---CCの問題?
---バグの内容の問題?(媒介中心性が高いやつ?)
---人の問題?
***上西 [#q4a52b47]
-DONE
--word2vecをインストールした
--webで見つけたサンプル的なものを動かしてみた
-TODO
--word2vecの詳しい使い方を調べて実践
--サーベイ論文を途中までしか読んでないので続きを読む
-今後の方針?
--stigmataで取得できるクラス名、メソッド名をword2vecして...
-ひとまずの機能の定義
--機能はメソッドの集合で構成される
--それを一定のルールでまとめたものがクラスであり、機能と...
**2016年7月28日 [#aad162de]
***久木田 [#w4320dce]
-DONE
-- FOSEに向けたデータ作成
---SZZ出力確認
---Pajekデータ作成:5プロジェクト分
---クローンサイズ:行数+ブロック(トークン数)
-TODO
--SZZデータの利用方法変更
--Pajekデータ作成:(人(fixした人) - バグID - クローンID)
--関西支部大会原稿作成
***上西 [#o9c7e28c]
-DONE
--word2vecの論文を読んだ
---&attachref(ショートメッセージの部分空間表現と宛先推定....
--実験の方法をいろいろ考えてメモしていた
--さらに読むべき論文を昨日教えてもらった
---&attachref(動的機能捜索における関連度と探索戦略.pdf);
---&attachref(The Role of Concepts in Program Comprehensi...
---&attachref(Feature location in source code a taxonomy ...
-TODO
--教えてもらった論文を読む
**2016年7月21日 [#aad162de]
***久木田 [#w4320dce]
-DONE
-- SIGSEのデータ作成
-TODO
-- FOSEに向けたデータ作成
---SZZ出力確認
---Pajekデータ作成:5プロジェクト分
---クローンサイズ:行数+ブロック(トークン数)
***上西 [#ta56eece]
-DONE
--論文を読んだ
--Stigmataの出力の意味など詳しい使い方を調べたが、わから...
--Stigmata以外の指標も考えてみたが、するならまずはStigmat...
--birthmarkそのままだと量が多いので、無駄なものを減らす工...
-TODO
--玉田先生に聞く?
---Stigmataの機能、出力、各birthmarkの意味
--word2vecも見てみる
**2016年6月30日 [#aad162de]
***久木田 [#w4320dce]
-DONE
-- プロジェクトのデータ取得(残りはeclipseとant)
-- コードクローン集計プログラム作成
-TODO
-- 取得したGitHubIssuesの整形
***上西 [#u1adb551]
-DONE
--CyberAgent内定
-TODO
--具体的な実験方法を考える
--論文読む
--簡単なAndroidアプリを作ってみる
**2016年6月23日 [#aad162de]
***久木田 [#w4320dce]
-DONE
-- クローンの類似性を用いて追跡できていないクローンを減らす
-- プロジェクトのデータ取得(Spring Framework)
-- GitHub API を使ったIssue取得プログラム
-TODO
-- プロジェクトのデータ取得
***上西 [#ba0f2467]
-DONE
--Stigmataで実際のアプリを解析してみた
--Stigmataの出力を整形してソートしてみた(が、現時点では...
-TODO
--具体的な実験方法を考える
--論文を読む
**2016年6月16日 [#n92c98f0]
***久木田 [#w4320dce]
-DONE
-- Ant分析のテーブルを埋める
-- SIGSE投稿
-- 削除されたコードクローンの確認
-TODO
-- プロジェクトのデータ取得
-- クローンの類似性を用いて追跡できていないクローンを減らす
***上西 [#w4260ecc]
-DONE
--Stigmataの使い方を理解した
--前田さんから読むべき論文をもらった
-TODO
--Stigmataで実際のアプリを解析してみる
--論文を読む
**2016年6月9日 [#n92c98f0]
***久木田 [#w4320dce]
-DONE
-- クローンを変更した人,クローンを増やした人の調査
-TODO
-- テーブルを埋める
***上西 [#q13501cf]
-DONE
--論文を1つ読んだ
--データベース演習をがんばった
--輪講資料を作った
--考えた
---検索するには、各アプリが使用しているクラスを見て機能を...
--- ---- 機能の取り出し方はどうする?
--- ---- 機能を自動で取得するには?
--- -------- 機械学習する?
--- ------------ 何を正解にする?
--- -------- ラベルを参考にする?
--- ---- 最適な重みは機械学習する?
-TODO
--さらに論文を読む
--研究の進め方を確定させて、それに伴う何かをする
**2016年5月30日 [#k4ff1dff]
***久木田 [#e088a67d]
-DONE
-- クローン統計量調査
-TODO
-- クローンを変更した人,クローンを増やした人の調査
***上西 [#w38b9f43]
-DONE
--論文を2つ読んだ
-TODO
--さらに論文を読む
--研究の進め方?を考える
**2016年5月26日 [#k4ff1dff]
***久木田 [#e088a67d]
-DONE
--クローンセットがどのように追跡できなくなったかの目視確認
--jEditに対してECTECとCCTをかける
-TODO
--jEditのECTECバージョンとCCTバージョンの比較
--追跡ツール試作の章を書く
***上西 [#e97596fe]
-DONE
--バースマークというものを教えていただいた
-TODO
--バースマークや深層学習について調べる
**2016年5月19日 [#j32fa732]
***久木田 [#zc2c7945]
-DONE
--SZZ(verGitHub)の実装
--取得したプロジェクトに対してSZZの適用
-TODO
--クローン追跡がどの程度できているかの調査
--対象外にすべきディレクトリの特定
***松浦 [#zc2c7945]
-DONE
--東先輩からいただいた本の一章を読み終えた
-TODO
--いただいた本を読み進めライセンスがどういうものなのか理...
*** 上西 [#b2e16207]
-DONE
--輪講で発表した
-TODO
--進路について本気出して考えてみる(やっと)
**2016年5月12日 [#p31465a8]
***松浦 [#s0ef3e4b]
-DONE
--論文を読んだ
-TODO
--東先輩が提案してくれた研究テーマを進めていく
***久木田 [#s0ef3e4b]
-DONE
--いろんなプロジェクトに対してCCTをかける(JUnit,struts,ja...
--取得したデータの確認
-TODO
--SZZ(verGitHub)の実装
--取得したプロジェクトに対してSZZの適用
***上西 [#a33412c6]
-DONE
--自動バグ修正に興味を持った
-TODO
--論文読む
**2016年4月28日 [#mfbb805c]
***久木田 [#s0ef3e4b]
-DONE
--大ゼミ発表
-TODO
--いろんなプロジェクトに対してCCTをかける(現状あるのはst...
--取得したデータの確認
***松浦 [#s0ef3e4b]
-DONE
--研究テーマを考える
--&attachref(修正忘れが起きるコードの.pptx);
-TODO
--生データをみていく
--修正漏れの論文を調べていく
***上西 [#j8b2ad1f]
- DONE
-- リファクタリングに関することも考えることにしてみた
- TODO
-- 一貫性のある変更とは?を考える
-- 最低限読むべき論文がたくさんあるので読む
**2016年4月21日 [#r7e1f0d3]
***松浦 [#s0ef3e4b]
-DONE
-- 研究テーマを考える
--&attachref(消滅をみてなにがわかるか.pptx);
-TODO
-- ソフトウェアエンジニアリング基礎知識体系を読んで勉強する
***久木田 [#s0ef3e4b]
-DONE
-- nokogiri動作確認(特にマージコミット部分)
-- nokogiriバグ修正
-- スライド(ツール説明)
-TODO
--大ゼミ発表
***上西 [#s7303cdb]
- DONE
--
- TODO
-- 一貫性のある変更とは?を考える
**2016年4月14日 [#r7e1f0d3]
***久木田 [#s0ef3e4b]
-DONE
-- 全メソッドのつなぎ合わせ
-TODO
-- nokogiri動作確認(特にマージコミット部分)
-- 大ゼミ資料作りはじめ
***松浦 [#s0ef3e4b]
-DONE
-- 実装希望報告
-TODO
-- 論文を読み研究
**2016年4月8日 [#e1d4170a]
***上西 [#d1d0d19f]
- DONE
-- ついさっきDB.getParentsCommitInfo()を実装
-- 全体MTGの輪講とデータベース演習を頑張ってました
- TODO
-- もっと論文を読む
*** 松浦 [#ie58bfd5]
- DONE
- TODO
***片桐 [#ofa56a76]
***久木田 [#s0ef3e4b]
-DONE
-- Diffを用いたコード片特定
-TODO
-- 全メソッドのつなぎ合わせ
-- 大ゼミ資料作りはじめ
**2016年4月1日 [#v8dcedc0]
***上西・松浦 [#tb120a97]
-DONE
-- Nokogiri担当分(CommitInfoExtractor)完成
-TODO
--論文を読む
***松尾大典 [#ofa56a76]
-DONE
-- 自宅に環境構築
-- 全然進んでないです、むしろ後退
-TODO
--
***片桐 [#ofa56a76]
-DONE
-- CodeFragmentDetector, CloneDetectorの移行
-TODO
-- DBの仕様に合わせた変更
***久木田 [#s0ef3e4b]
-DONE
-- コード片特定,クローン特定
-- コードクローンの追跡(まだバグあり)
-TODO
-- 実装:マージ発生時のコード片,コードクローンの処理
**2016年3月24日 [#l4778a6b]
***松尾大典 [#z18ffa9f]
-DONE
-- コード片変更箇所の特定フロー(進捗5割?)
--- DiffやDB接続は他から拝借するので独自部分は後はほぼ無い
--- DIffのとり方の変更に対応
-TODO
-- DB接続、確認クエリ、格納クエリ
-- 動作確認
-- コーディング規約を周りに合わせる
***久木田 [#m287df95]
-DONE
-- データベース設計・実装(クローン部分のみ)
-TODO
-- 実装:マージ発生時のコード片,コードクローンの処理
--- コードクローンの追跡
+ Diffに含まれるファイルからコード片抽出
+ DBに格納されている前のリビジョンでのコード片と比較
+ 一致するコード片があればコードクローンとして追跡する
--- クローンのマージ
--- クローン情報のデータベースへの格納
--- 動作確認
***片桐 [#i04c2cc0]
-DONE
-- フローの1, 2番目まで
--- コミットIDの取得
--- 任意のコミットIDのスナップショット中に存在するファイ...
-- コード片特定に必要なライブラリの移動
-TODO
-- コード片特定
-- クローンの組特定
-MEMO
--
***上西・松浦 [#s6cd9011]
-DONE
-- DB関連(ダミーデータは挿入できる)
-TODO
-- JGitを使ってデータを取得する部分の実装
**2016年3月17日 [#y747cf74]
***久木田 [#m287df95]
-DONE
-- 実装:マージ発生時のコード片,コードクローンの処理
--- Diff取得(ファイル,行数,属性)
--- Diff比較
-- クローンのデータベース設計
-TODO
-- 実装:マージ発生時のコード片,コードクローンの処理
--- Diffに含まれるクローンの比較
--- クローンのマージ
-- データベース設計・実装
***片桐 [#i04c2cc0]
-DONE
-- フローの1, 2番目まで
-TODO
-- codeFragmentの特定部分作成中です
-MEMO
--
***上西・松浦 [#c3e2e501]
-DONE
--
-TODO
-- 実装
***大典 [#de5f624b]
-DONE
-- 既存コードを読んだ
-- 火曜に久木田さんと簡易MTGでDBを決定
-TODO
-- 担当フロー部分の実装(久木田さん作のDiffを流用)
-MEMO
-- 用事で午前中居ないかもしれないです
**2016年3月11日 [#y747cf74]
***久木田 [#m287df95]
-DONE
-- 動作手順フローチャート作成
--- マージ発生時のコード片,コードクローンの処理(久木田)
-TODO
-- 実装
--- マージ発生時のコード片,コードクローンの処理
***片桐 [#i04c2cc0]
-DONE
-TODO
-- フローチャート作成後,実装
-MEMO
- フローチャート
-- あるリビジョンのすべてのファイルをスキャンし,コード片...
-- できたら,確認してもらった後,実装開始.
***上西・松浦 [#c3e2e501]
-DONE
-- 大まかな流れ図を作成
-TODO
-- 実装
**2016年3月3日 [#y747cf74]
***CC班コアタイム [#m4bcd5d9]
13:30〜16:30
***久木田 [#m287df95]
-DONE
-- コードクローンの追跡方法のスライド
--- &attachref(KCTECドキュメント.pptx);
-TODO
-- 動作手順フローチャート作成
--- リビジョン情報・関係を取り出す(松浦・上西)
--- コードクローンの特定(最初のリビジョンのスキャン)(...
--- コードクローン変更箇所(コミット)の特定(大典)
--- マージ発生時のコード片,コードクローンの処理(久木田)
-- データベースの再設計(一人ではできないので手伝ってほし...
***上西 [#c3e2e501]
-DONE
-- 複数の論文のアブストを読んだ
-TODO
-- 論文を読む
**2016年2月26日 [#y747cf74]
***久木田 [#m287df95]
-DONE
-- この設計のままでは,計算量が膨大になり,クローンを追跡...
-TODO
-- データベースの再設計
***片桐 [#i04c2cc0]
-TODO
-- FileDetector作成中です
-- JGitの実装でモタついてます・・・。
***上西 [#c3e2e501]
-DONE
--久木田さんにCommitDetector作成を依頼→完成
-TODO
--論文を読む
**2016年2月17日 [#y747cf74]
***久木田 [#m287df95]
-DONE
-- ECTEC(ver.kukita)作成
--- コード片特定機能作成
--- コードクローン特定機能作成
-TODO
-- コミット親子関係取得機能作成
***片桐 [#i04c2cc0]
-DONE
-- 無いです・・・
-TODO
-- FileDetector作成中です
***上西 [#c3e2e501]
-TODO
--CommitDetectorの作成
**2016年2月10日 [#y747cf74]
***大平 [#db9734ad]
-TODO
-- ひとつのバグに対して同時修正を必要としたクローンを含む...
***久木田 [#m287df95]
-DONE
-- ECTEC(ver.kukita)機能の書き出し
-TODO
-- ECTEC(ver.kukita)作成
--- コード片特定機能作成
**2016年2月5日 [#sc48a859]
***久木田 [#m287df95]
-DONE
-- ECTEC(ver.kukita)作成
--- データベース作成機能
-- 大ゼミ回答提出
-TODO
-- ECTEC(ver.kukita)機能の書き出し
**2016年1月29日 [#q328fe49]
***大平 [#db9734ad]
-DONE
--コードクローン班用wikiページ作成
--研究テーマ2件のラフ設定
---コードクローン作成パターンの時系列分析(プロジェクト開...
---コードクローンの作成/利用における人間関係の分析(第三...
-TODO
--疑問を解消する(サーベイ?):研究する意味あるのかを再...
---不具合修正に占めるコードクローンの修正割合は? (modifi...
---不具合修正とは無関係な変更に占めるクローンの変更割合は...
***久木田 [#m287df95]
-DONE
-- ECTEC(ver.kukita)のデータベース設計
-- 大ゼミ発表
-TODO
-- ECTEC(ver.kukita)作成
--- データベース作成機能
-- 大ゼミ回答提出
--コードクローンの作成理由の調査
***片桐 [#i04c2cc0]
-DONE
-TODO
--来週のMTGに参加
--エントリーシート作成
--大家さんに会いに行く
-ResearchQuestions
--開発者によってコードの再利用を行いやすい・されやすい傾...
--プロジェクトに長く携わることで再利用傾向に変化があるか
--他者の書いたコードを再利用することは不具合の混入に起因...
ページ名: