Từ những vấn đề còn tồn đọng trong khóa luận này, trong tương lai tôi sẽ tiếp tục nghiên cứu này nhằm xây dựng hoàn thiện công cụ để đáp ứng tốt hơn nữa những yêu cầu đặt ra. Cụ thể:
o Tôi sẽ phát triển tiếp để công cụ có thể bắt được những ràng buộc, quan hệ đặc trưng của thành phần có trong file mã nguồn với cấu trúc phức tạp. Ngoài ra việc dữ liệu đầu vào có thể được mở rộng với mã nguồn của một vài ngôn ngữ lập trình khác.
o Hỗ trợ việc kết hợp bằng phản hồi (Composition by Feedback)
o Tự động kiểm tra tính chất thỏa mãn của công thức ξ bằng việc sử dụng các solver có sẵn như: SAT solver, Z3.
o Xây dựng giao diện đồ họa .
Tôi hi vọng, ứng dụng của tôi sẽ góp phần cho việc phát triển ngành công nghệ phần mềm nói riêng và ngành công nghệ thông tin nói chung hiện nay.
Phụ lục
Phụ lục 1: Nội dung mã nguồn file thử nghiệm Sample.java
public class Sample {
public static void main(String[] args) throws Exception { float a = 2; float b = 3;
float result1;
result1 = chia(cong(a, b), tru(a, b)); }
public static float cong(float a, float b) { return a + b;
}
public static float tru(float a, float b) { return a - b;
}
public static float nhan(float a, float b) { return a * b;
}
public static float chia(float a, float b) throws Exception { if (b != 0) {
return a / b; } else {
throw new Exception(); }
}
public static float triTuyetDoi(float a) { if (a >= 0) { return a; } else { return -a; } } }
TÀI LIỆU THAM KHẢO
[1] Đỗ Đức Giáo. Hướng dẫn giải bài tập toán rời rạc. NXB Giáo dục, Hà Nội, 2007, tr.276-277.
[2] A. Chakrabarti, L. de Alfaro, T. Henzinger, and F. Mang. Synchronous and bidirectional component interfaces. In CAV, LNCS 2404, Springer, 2002. Tr.414-427.
[3] Ian Sommerville. Software Engineering 6th Edition. 2001. Tr.193-197. [4] L. de Alfaro and T.Henzinger. Interface Automata. In Foundations of Software Engineering (FSE). ACM Press, 2001.
[5] Luca de Alfaro, Thomas A. Henzinger. Interface Theories for Component- based design. In Proceedings of the First International Workshop on Embedded Software (EMSOFT), 2001.
[6] L. Doyen, T.Henzinger, B.Jobstmanm, and T.Petrov. Interface theories with component reuse. In 8th ACM IEEE International conference on Embedded software, EMSOFT. Tr.79-88, 2008.
[7] Stavros Tripakis, Ben Lickly, Thomas A.Henzinger, Edward A.Lee. On relational interfaces. In EMSOFT’09, October 12-16, 2009, Grenoble, France.
[8] Wikimedia.com. http://en.wikipedia.org/wiki/Component-
based_software_engineering