3 Thực nghiệm, đánh giá
3.1.1 Kiến trúc công cụ
Kiến trúc tổng thể của công cụ được mơ tả như trong Hình 3.1, gồm7modules với chức năng như sau:
• Protocol State Machine Editor: cho phép người dùng xây dựng đặc tả PSM của một
thành phần phần mềm một cách trực quan. Kết quả đặc tả được lưu trữ trong file XML. Module này cũng cho phép người dùng load một đặc tả đã lưu trước đó để tiếp tục đặc tả.
• Protocol State Machine Reader: đọc thông tin đặc tả PSM đã lưu trong file XML để xây dựng biểu diễn đồ thị tương ứng. Kết quả sẽ được sử dụng cho module tiếp theo, Graph Converter.
• Graph Converter: Module Protocol State Machine Reader sinh ra một biểu đồ thị trong
đó mỗi cạnh cạnh biểu diễn một lời gọi phương thức. Module Graph Converter chuyển nó sang dạng đồ thị dẫn xuất trong đó, mỗi đỉnh là lời gọi phương thức còn mỗi cạnh biểu diễn thứ tự các lời gọi phương thức.
ra dòng bytecode tương ứng ở dạng file văn bản (xem Listing 2.3), làm cho việc xử lý bytecode trở nên thuận tiện hơn.
• Control Flow Graph Maker: Tạo ra đồ thị CFG cho dòng bytecode được sinh ra từ Dòng bytecode được sinh ra bởi Bytecode Generator.
• Control Flow Graph Reducer: giản lược đồ thị của CFG bằng cách loại bỏ những đỉnh
không phải là lệnh gọi thực hiện phương thức và đảm bảo thứ tự các lời gọi phương thức giống như ban đầu.
• Conformance Checker: kiểm tra xem đồ thị các lời gọi phương thức CG được sinh ra từ file mã bytecode có tuân theo đồ thị dẫn xuất của đồ thị PSM hay không. Nếu không, module này đưa ra danh sách các chuỗi lời gọi phương thức vi phạm đặc tả PSM. Thông tin này giúp ta biết được vì sao thực thi của một thành phần phần mềm không tuân theo đặc tả PSM. Implementation (Java language) Report Yes/No ? Editor Conformance Checker Protocol State Machine
Bytecode Generator
Protocol State Machine Reader
Control Flow Graph Maker
Graph Converter
Control Flow Graph Reducer
Hình 3.1: Kiến trúc cơng cụ hỗ trợ