Static analysis of android apps: A systematic literature review (2017) 논문에서 3. Methodology for the SLR 부분만을 읽으며 Systematic Literature Review의 연구법에 대해 배워보고자 합니다.
이 논문을 선정한 이유는,
그러면, 시작!
Kitchenham
이 제시한 방법을 기본적으로 따른다고 함. (참고, 저 사람은 2004년에 SLR 연구법 논문을 썼는데 이것은 그냥 정석 그 자체임)
primary publications/studies
라고 불린다.논문의 수가 많다는 점을 고려하여, 각각의 논문이 철저하게 연구되었는지를 검증하고, 추출된 정보가 믿을만한지 보장하는 전략을 고안하였다. 그 결과는,
research question 덕분에 우리의 검색어를 키워드로 정리할 수 있었다. 그것은 1) 분석 작업과 관련, 2) 정적 분석의 핵심 요소와 관련, 3) 대상 프로그램과 관련 이다.
우리의 검색어 s
는 3개 줄의 '결합'으로 이루어졌다. 한편 각각의 줄은 or 조건으로 합쳐졌다. 수식을 통해 보자면,
s = l1 AND l2 AND l3
, l1 = Analysis OR Analyz OR Analys
우리의 데이터 검색은 repository들을 기반으로 하고, software enginerring and security의 top venue들을 체크함으로써 보충된다. repository 검색은 관련된 논문을 찾기 위함이고, top venue 체크는 추가적인 검증 과정으로, repository 검색이 주요한 논문을 빼먹지 않았다는 것을 확실히하기 위해 필요했다.
Repository Search
논문들의 데이터셋을 찾기 위해서 5개의 잘 알려진 repository를 이용했다. ACM Digital Library, IEEE Xplore Digital Library, SpringerLink, Web of Knowledge, ScienceDirect. 특정 경우에는 레포지토리의 검색 엔진이 검색되는 양에 있어서의 한계가 있는 경우가 있으므로, 우리는 검색어를 쪼개어 모든 관련된 정보가 나올 때까지 반복했다.
Top Venue Check
몇몇 컨퍼런스와 저널, 예를 들면 NDSS와 같은, 것들은 open proceeding이라는 정책을 가지고 있어서, 위에서 언급한 repository에는 존재하지 않는다. 따라서 우리는 well-known venue들에서 나온 모든 논문들을 고려하였다. 이 연구에서 우리는 top 20개의 venue를 포함했다. 10개는 소프트웨어 엔지니어링, 프로그래밍 언어 영역이고, 또다른 10개는 보안과 개인정보 분야이다. 몇몇 기초 암호학 관련, 병렬 프로그래밍 관련, 잡지, 비공식 출판물은 제외하였다. H5-index는 Google Scholar 기준으로 판단하였는데, 이 수치는 최근 5년간의 출판물들이 고려된 것이다. 클 수록 좋다.
Top venue 검사는 DBLP 기반으로 수행되었다. 이 검색을 위해서는 line 3에 있는 키워드만 이용하였는데, DBLP가 논문의 이름만을 제공하기 때문에 같은 키워드를 사용할 필요가 ㅇ벗었기 대문이다. 이상적으로 스마트폰과 관련된 모든 논문이 대상에 포함되었다. 결과적으로 coarse-granularity 전략은(정확하게 안하고 대충 뭉뚱그린 전략)은 관련 없는 논문들을 포함하게 되었다. 다행히도, venue의 수가 작기 때문에 직접 이러한 관련 없는 논문들을 배제할 수 있었고, 이 부분은 다음 섹션에서 더 설명하겠다.
위에서 언급한 검색어는 거의 모든 논문 리스트들의 집합을 의도적으로 허용한다. 그러나 이러한 범위의 넓음은 실제로는 관련 없거나 기초적인 논문일 것이다. 우리의 연구를 위해 다음의 제외 규칙을 정하였다.
Android가 최근 몇 년간 뜨거운 주제였기 때문에, 이러한 조건을 거치고 나서도 해당하는 논문이 아주 많았다. 수집된 논문들 중 몇몇은 1) Android static analysis 영역에 기여한 바가 없거나, 2) 단순히 API 이름을 가져와서 매칭한 경우이다. 예를 들면, 몇몇 접근들은 단순히 manifest 파일을 읽어 permission 리스트를 가져오거나, 함수 호출에서의 특정한 API 이름을 가져오려는 시도이다. 따라서 우리는 4개의 exclusion criteria를 추가하였다.
Kitchenham 님의 절대적인 가이드라인에 따라 backward snowballing도 수행하였다. 목적은 키워드 검색에서 미처 발견되지 못한 추가적으로 관련된 논문을 식별하기 위함이다. 이것을 직접 수행하기에는 지루하고, 시간이 많이 들기 때문에 우리는 python script를 짜서 자동으로 레퍼런스들을 추출할 수 있도록 하였다. 구체적으로 우리는 pdfx
를 이용하여 pdf를 텍스트 포맷으로 변경하였다. 그러면 우리는 모든 레퍼런스가 텍스트 파일로 나오는데, 여기에 script를 이용하여 1) SLR timeline 밖의 논문을 제거하고, 2) 제목에 우리가 설정한 키워드가 들어가지 않는 논문을 제거하였다. 그 이후에는 우리는 나머지 레퍼런스 논문들을 직접 읽으면서 검사하였다. 여기에서 발견된 논문들이 우리의 논문 셋에 포함되지 않는 경우에는 추가해주었다.
Table 3에서 보여주고 있는 우리의 최종 선택 결과에 대한 자세한 설명을 하려고 한다. 첫 두 줄은(search result, script verification)은 키워드를 기반으로 한 검색의 수치를 보여준다. 첫 줄에서, repository search로부터 나온 결과에 집중했다. (여기에서는 최대한 많은 논문을 수집하는 데에 집중했다.) repository search를 통해, 우리는 paper title이나, paper abstract와 같은 정보를 수집했다. 둘째 줄은 수집된 데이터에 대한 추가 검증 단계에 대한 결과이다. 구체적으로 우리는 수집된 데이터에 대해서 자동화된 키워드 검색을 수행했다. (이전 스텝에서와 정확히 같은 키워드를 이용) 둘째 줄을 도입한 이유는 5개의 repository에서 제공하는 "advanced" 검색 기능의 결함 때문이다. 검색 결과는 때때로 정확하지 않아, 관련 없는 논문들이 많이 포함되어 있었다. 둘째 줄을 거친 후에 해당하는 논문의 수가 많이 감소하였다.
세번째 줄은 exclustion criteria를 적용한 결과를 나타낸다. 특히 IEEE repository에서 큰 감소가 있었는데, IEEE에서는 짧은 논문들이 많아 그들의 접근법/도구에 대한 불충분한 설명을 제공하기 때문이었다. 이러한 것들은 제거하는 것이 맞다!
네번째 줄에서는 이것을 하나의 셋으로 합치는 과정에서 중복된 연구를 제거하였다. 이 과정에서 이러한 경우들이 존재했다. 1) ACM repository에서 IEEE나 Springer에 원래 출판되었던 논문을 포함하고 있는 경우, 2) Web of Knowledge repository에서 Elsevier에 출판된 논문을 포함하고 있는 경우, 3) 5개의 repository가 top-20-venue에 등장하는 논문을 포함하고 있는 경우.
merge한 이후에는 공동 저자들에게 논문을 분배하였다. 우리는 직접 title/abstract를 읽고, 전체 컨텐츠들을 검사하면서 4-8 exclusion criteria를 적용하였다. 저자들 사이의 최종 검토를 통해 118개의 논문을 기초 논문으로 선정하였다.
자기-검사 과정을 위해, 우리는 저자들의 이메일 주소를 수집하여, SLR를 이 저자들에게 발송하고, 그들의 논문이 올바르게 분류되었는지 검사해주기를 요청하였다. 우리는 25개의 피드백 메시지를 받았고, 저자들은 19개의 논문이 SLR에 더 추가되어야 한다고 추천해주었는데, 그 중에서 15개는 이미 존재하였고 4개는 우리의 exclusion criteria의 경계선쯤에 존재하였다. (dynamic anlaysis인데 static analysis를 이용한) 우리는 이것들을 셋에 포함하였다.
backward-snowballing과 관련해서, 우리는 timeline 내부에 존재하는 1815개의 관련된 논문을 발견하였다. 그 중에서 오로지 53개만이 키워드 밖의 title을 가지고 있어 배제하였다. 나머지 논문들을 검토하여서 오로지 2개만이 우리의 조건을 만족하여 추가하였다.
최종적으로 우리의 SLR은 124개의 논문을 검토하였는데, 해당 리스트는 뒤에 첨부하였다. 이러한 논문들을 타입과 도메인으로 분류한 그림도 첨부하였다. 70%에 달하는 논문이 컨퍼런스였다. ... (그 밖에 ~~ 했더라)
끝!