Mining Rules From Source Code(소프트웨어 코드 마이닝)
통도사
다운로드
장바구니
소개글
Mining Software Repositories는 소프트웨어 엔지니어링 분야의 신분야로 떠오르고 있는 분야입니다.아직까지 한글로되어 있는 소개자료가 없고 참고서적조차 없는 관계로 인하여
ICSE에서 발표된 논문과 저널에 실린 논문을 참고로 하였고
`An ICDM 2007 Tutorial on Mining for Software Reliability`을 참고로하여
Mining Rules From Source Code에 대한 내용을 보고서 형태로 작성/요약하였습니다.
소프트웨어 공학의 최신 연구분야에 대한 공부해보고 싶거나 조사보고서를 작성하고자 하시는 분들께 특히 컴퓨터공학과 소프트웨어 공학을 수강하고 계신 분, 논문을 작성하려고 하시는 분들께 큰 도움이 될 것이라고 생각됩니다.
목차
MSR(Mining Software Repositories)의 정의 3MSR의 접근방법 3
소스코드로부터 규칙을 분석하는 방법 3
1.1 Bugs as Deviant Behavior 4
1.1.1 Cross-Checking Program Beliefs 5
1.1.2 Deriving Rule("A must be followed by B") 6
1.1.3 Limitations of Bugs as Deviant Behavior 6
1.2 Mining Programming Rules with PR-Miner 7
1.2.1 Analysis Example 7
1.2.2 Extracting Rules 9
1.2.3 Parsing Source Code 10
1.2.4 Mining Programming Patterns 13
1.2.5 Generating Programming Rules 13
1.2.6 Rule Explosion Problem 14
1.2.7 Detecting Violations 14
1.2.8 Pruning False Violations 15
1.2.9 Some Result of Bug Detection 16
1.3 Mining Fun. Precedence Protocols 17
1.3.1 Mining Fun. Precedence Protocols란? 17
1.3.2 Mining Specifications Statically 18
1.3.2.1 Path Sensitivity 18
1.3.2.2 Inter-procedural Analysis 19
1.4 Revealing Neglected Conditions 20
1.4.1 Limitation of Precedence-Related Bug Detection 20
1.4.2 Neglected Conditions 20
1.4.3 Approach to Detecting Neglected Conditions 21
1.4.4 Dependence Graph Representation 21
1.4.5 Frequent Subgraph Mining 23
1.4.6 SDG(System Dependence Graph) Minors 24
1.4.7 Rule Mining Issues 26
1.4.8 Transforming the Graph Set 26
1.4.10 User Evaluation of Rules 27
1.4.11 Detecting Rule Violations 27
1.4.12 Some Results of Neglected-Condition Bug Detection 28
참고문헌 29
본문내용
MSR(Mining Software Repositories)의 정의소스코드/변경이력 자료를 분석하여 룰과 패턴을 검색하고 이에 대한 위반사항을 검출함으로써 Software의 신뢰성을 높이는 활동을 말한다.
MSR의 접근방법
MSR의 접근방법에는 3가지가 있는데 첫째, 소스코드로부터 규칙을 분석(Mining)하는 것, 둘째, 변경이력으로부터 규칙을 분석(Mining)하는 것, 셋째, 소스코드로부터 복사-붙이기 패턴을 분석(Mining)하는 것 등으로 구성된다.
소스코드로부터 규칙을 분석하는 방법
본 문서에서는 3가지 접근방법 중에서 첫번째 방법인 소스코드로부터 규칙을 분석(Mining)하는 것을 설명하고자 하며, 상세 설명대상 분석방법은 아래와 같다.
1) S/W 비정상 작동에 의한 오류검출(Bugs as deviant behavior)
- 제안 : Engler et al., SOSP `01
- 방법 : Statistical analysis
- 문제점 : Fixed Rule Templates, Program에 대한 사전지식 필요, 분석대상이 한쌍(Pair)으로 존재
2) PR-Miner을 이용한 프로그램 Rule Mining(Mining Programming Rules with PR-Miner)
- 제안 : Li et al., FSE `05
- 방법 : Frequent Itemset Mining
- 문제점 : 코드내부의 procedure를 고려하지 않음, 실행Path에 대해 둔감함
3) 함수 우선순위 Rule Mining(Mining Function Precedence Protocols)
- 제안 : Ramanathan et al., ICSE `07
- 방법 : Frequent Subsequence Mining
- 문제점 : Data흐름 or 종속관계를 고려하지 않음
.
..
참고 자료
Chao Liu, Tao Xie, Jiawei Han , An ICDM 2007 Tutorial on Mining for Software ReliabilityDawson Engler, David Yu Chen, Seth Hallem, Andy Chou, and Benjamin Chelf, "Bugs as deviant behavior: A general approach to inferring errors in systems code", SOSP 2001
Zhenmin Li and Yuanyuan Zhou, "PR-Miner: Automatically Extracting Implicit Programming Rules and Detecting Violations in Large Software Code", ESEC/FSE 2005
Murali Krishna Ramanathan, Ananth Grama, Suresh Jagannathan, "Path-Sensitive Inference of Function Precedence Protocols", ICSE 2007
Ray-Yaung Chang, Andy Podgurski, and Jiong Yang, "Finding What's Not There: A New Approach to Revealing Neglected Conditions in Software", ISSTA 2007
Mining Rules from Source Code
Mining Rules from Source Code
Mining Software Repositories