TAILIEUCHUNG - Lecture Software testing and analysis: Chapter 6 - Mauro Pezzè, Michal Young

Models of data flow and dependence in software have many applications in software engineering, from testing to refactoring to reverse engineering,. Moreover, the basic algorithms used to construct data flow models have even wider application and are of particular interest because they can often be quite efficient in time and space. | Dependence and Data Flow Models (c) 2007 Mauro Pezzè & Michal Young Ch 6, slide 1 Why Data Flow Models? • Models from Chapter 5 emphasized control • Control flow graph, call graph, finite state machines • We also need to reason about dependence • Where does this value of x come from? • What would be affected by changing this? • . • Many program analyses and test design techniques use data flow information – Often in combination with control flow • Example: “Taint” analysis to prevent SQL injection attacks • Example: Dataflow test criteria () (c) 2007 Mauro Pezzè & Michal Young Ch 6, slide 2 Learning objectives • Understand basics of data-flow models and the related concepts (def-use pairs, dominators ) • Understand some analyses that can be performed with the data-flow model of a program – The data flow analyses to build models – Analyses that use the data flow models • Understand basic trade-offs in modeling data flow – variations and limitations of data-flow models and analyses, differing in precision and cost (c) 2007 Mauro Pezzè & Michal Young Ch 6, slide 3 Def-Use Pairs (1) • A def-use (du) pair associates a point in a program where a value is produced with a point where it is used • Definition: where a variable gets a value – – – – Variable declaration (often the special value “uninitialized”) Variable initialization Assignment Values received by a parameter • Use: extraction of a value from a variable – – – – Expressions Conditional statements Parameter passing Returns (c) 2007 Mauro Pezzè & Michal Young Ch 6, slide 4 Def-Use Pairs . if (.) { x = . ; . } y = . + x + . ; Def-Use path . if (.) { Definition: x gets a value x = . . Use: the value of x is extracted y = . + x + . . (c) 2007 Mauro Pezzè & Michal Young Ch 6, slide .

TÀI LIỆU MỚI ĐĂNG
TAILIEUCHUNG - Chia sẻ tài liệu không giới hạn
Địa chỉ : 444 Hoang Hoa Tham, Hanoi, Viet Nam
Website : tailieuchung.com
Email : tailieuchung20@gmail.com
Tailieuchung.com là thư viện tài liệu trực tuyến, nơi chia sẽ trao đổi hàng triệu tài liệu như luận văn đồ án, sách, giáo trình, đề thi.
Chúng tôi không chịu trách nhiệm liên quan đến các vấn đề bản quyền nội dung tài liệu được thành viên tự nguyện đăng tải lên, nếu phát hiện thấy tài liệu xấu hoặc tài liệu có bản quyền xin hãy email cho chúng tôi.
Đã phát hiện trình chặn quảng cáo AdBlock
Trang web này phụ thuộc vào doanh thu từ số lần hiển thị quảng cáo để tồn tại. Vui lòng tắt trình chặn quảng cáo của bạn hoặc tạm dừng tính năng chặn quảng cáo cho trang web này.