Hệ thống báo cáo (The Report) [15,16] có chức năng nhận kết quả đầu ra, định dạng và hiển thị các kết quả khi thực thi JPF như báo cáo vi phạm thuộc tính, vết chương trình, các thống kê… Đây là một phần quan trọng nhất của giao diện người dùng JPF, nó có thể hiển thị các định dạng đầu ra khác nhau như: tệp văn bản, màn hình console, XML, các lời gọi API. Tùy thuộc vào ứng dụng và dự án, người dùng có thể thay đổi cách hiển thị bằng việc cấu hình lại các thuộc tính. Hệ thống báo cáo của JPF bao gồm 3 thành phần:
- Lớp Reporter
- Các đối tượng Publisher
- Các đối tượng PublisherExtension
Tất cả các lớp chính liên quan và các giao diện nằm trong gói gov.nasa.jpf.report. Trong đó:
- Đối tượng Reporter có nhiệm vụ thu gom dữ liệu. Nó quản lý và thông báo cho các phần mở rộng của Publisher khi dữ liệu đầu ra đã đạt tới ngưỡng.
- Đối tượng Publisher có nhiệm vụ ghi dữ liệu từ Reporter ra một định dạng nào đó (text, xml, html,…). Publisher thông dụng nhất là ConsolePublisher, nó có chức năng ghi dữ liệu ra dạng text, console hoặc ghi ra file.
-Đối tượng PublisherExtension sẽ được đăng ký với đối tượng Publisher khi chương trình bắt đầu chạy. Mục đích để có thể định nghĩa một PublisherExtension là kế thừa đối tượng ListenerAdaper, đăng ký Publisher Extension này với JPF trong hàm khởi tạo của nó.
-Một đối tượng khá quan trọng trong JPF đó chính là Config, đây là đối tượng lưu trữ tất cả các thuộc tính (properties) cấu hình của JPF. Các thuộc tính của JPF sẽ được định nghĩa trong file jpf.properties và *.jpf. Dưới đây là một số thuộc tính quan trọng của Report JPF:
24
report.class=gov.nasa.jpf.report.Reporter: chỉ định Report cho
chương trình
report.publisher=console,xml: chỉ định có thể báo cáo ở dạng
console hoặc xml
Hình 3.5: Hệ thống báo cáo Report
report.console.class=gov.nasa.jpf.report.ConsolePublisher:chỉ
định đối tượng để báo cáo ghi vết là ConsolePublisher.
report.console.property_violation=error,trace,snapshot: sẽ ghi
thông tin ở dạng error, stack trace vào snapshot.
report.console.file=My_JPF_report: chỉ định đường dẫn chứa file vết của
JPF