hprof C java agentlib hprof jar Run jar
例 hprofの出力例 C: > java -agentlib: hprof -jar Run. jar スレッドのところでやった生産者・消費者問題 数秒動かしただけで,7万行の情報を出力. TRACE 302139: java. awt. Component. <init>(<Unknown Source>: Unknown line) java. awt. Label. <init>(<Unknown Source>: Unknown line) Tabaco. Sale. init(Tabaco. Sale. java: 29) Tabaco. Sale. main(Tabaco. Sale. java: 66) TRACE 302140: Int. Label. <init>(Int. Label. java: 5) Tabaco. Sale. init(Tabaco. Sale. java: 32) Tabaco. Sale. main(Tabaco. Sale. java: 66) TRACE 302141: java. lang. Thread. <init>(<Unknown Source>: Unknown line) Label. Updater. <init>(Label. Updater. java: 8) Customer. <init>(Customer. java: 3) Tabaco. Sale. init(Tabaco. Sale. java: 32) 11
我々の取り組み Req. Change 1. 1 Introduction. . . 3. 2 zzzz. . . channel. . . . sendrequest. . . . efficiently. . . 5. 4 yyy. . . . . 7. 5 xxxx. . . crypto. . . . initcomm. . Validating Clue(s) Codes Second queries Stakeholder(s) Document First queries . . channel. . efficiently. . . crypto. . . Former Engineer(s) int eee(){. . . int sendrequest(){ }. . . . } int bbb(){ . . . int ccc(){ }. . . } int aaa(){. . int ddd(){. . . } initcomm=. . } 13
14
要求変更を特徴付けるには? 索引付けの利用 Req. Change 1. 1 Introduction. . bus. . . First queries . . channel. . efficiently. . . crypto. . . Document 3. 2 zzzz. . . channel. . . . sendrequest. . . . efficiently. . . 5. 4 yyy. . secure. . . . Candidate of First Queries Indexing Module e. g. "bus, secure. . " Stakeholder(s) 7. 5 xxxx. . . crypto. . . . initcomm. . 15
機械学習の利用による変更の可能性 がある箇所の予測 Former Engineer(s) Yes No Validating Clue(s) Training Codes Second queries int eee(){. . . int sendrequest(){}. . . . } int bbb(){ . . . int ccc(){ }. . . } int aaa(){. . initcomm=. . } Machine Learning Module int ddd(){. . . } Classifying positive int aaa(). . . negative int bbb() int ccc() int ddd(). . . 17
変更波及の可視化 コールグラフと共有変数の利用 Codes Second queries int eee(){. . . int sendrequest(){ }. . . . } int bbb(){ . . . int ccc(){ }. . . } int aaa(){. . int ddd(){. . . } initcomm=. . } Call Graph and Shared Variables Analysis Module indirectly impacted int ddd(). . 18
- Slides: 24