Hình 16: Giao diện khi kết nối thành công các cổng
Sau khi tạo các thành phần và các cổng thành công. Người dùng có thể kết nối các cổng của các thành phần với nhau để kiểm tra bằng cách click vào biểu tượng kết nối trên thanh công cụ, click chuột vào cổng thứ nhất và di đến cổng thứ hai là cổng cần kết nối.
Sau khi kết nối, chương trình sẽ kiểm tra đặc tả của các cổng mà người dùng đã điền ở trên và kiểm tra với các điều kiện kết nối. Nếu thỏa mãn, kết nối thành công và được thể hiện ở hình 16. Trái lại, nếu không thành công, chương trình sẽ hiện lên bảng thông báo như hình 17 (Xem lại các điều kiện kết nối phần 3.3.3 trang 30).
Kết luận
Qua quá trình nghiên cứu và thực hiện khoá luận, chúng tôi nhận thấy đã đạt được một số kết quả chính sau:
- Nắm bắt được khá rõ các nền tảng cần thiết để có thể nhìn gần hơn về một hệ thống phần mềm đúng đắn và bền vững. Nói một cách dễ hiểu, phần mềm đúng đắn là phần mềm có ít lỗi và xử lý được những lỗi bất thường xảy ra trong phần mềm trong lúc làm việc. Như thế, phần mềm mới có khả năng tồn tại lâu dài với thời gian và được người dùng ưa chuộng.
- Hiểu khá rõ về công nghệ Design ByContract và khả năng ứng dụng của nó trong lập trình hướng đối tượng. Một hệ thống phần mềm được xem như là tập hợp các thành phần có các giao tiếp tương tác với nhau dựa trên định nghĩa chính xác của các giao ước trong hợp đồng. Phải thỏa mãn những giao ước đó thì các thành phần mới có thể liên kết với nhau để tạo nên sự chính xác, tính đúng đắn cho phần mềm. Ngoài ra, công nghê này còn cung cấp một công cụ rất tốt cho việc viết tài liệu phát triển cho phần mềm, dễ dàng phát hiện và gỡ lỗi.
- Xây dựng một công cụ đặc tả và kiếm chứng cho sự liên kết của các thành phần bằng ngôn ngữ Java. Khi sử dụng ứng dụng này, một cách trực quan, người dùng nhanh chóng vẽ ra các thành phần cùng với các cổng.
- Ngoài ra chúng tôi đã trình bày một số khía cạnh của đặc tả thành phần, vạch ra phương pháp tiếp cận với cách giao tiếp của thành phần dựa trên các loại cổng được kết nối. Chúng tôi đã xác định các ràng buộc về cổng, nhờ đó, chúng ta có thể biết được các thành phần có thể kết nối được với nhau nếu chúng đáp ứng được những yêu cầu mà chúng tôi đã nêu ở trên. Ở mức độ này, chúng tôi mới chỉ nghiên cứu đến các loại cổng (facet, receptacle, event source, event sink) và các ràng buộc về loại cổng. Chúng tôi đã xác minh điều kiện kết nối của các loại cổng và tích hợp chúng với nhau để hỗ trợ cho phương pháp tiếp cận của chúng tôi. Điều này sẽ ủng hộ chúng tôi trong việc xác minh tính tương thích giữa các thành phần bởi các đặc tả hành vi ở mức độ ngữ nghĩa.
Hướng phát triển
Trong thời gian tới, chúng tôi sẽ tiến hành kiểm tra thành phần cấu tạo giữa các hành vi của các cổng khi kết nối thành công giữa các loại cổng.
Sau đó chúng tôi sẽ nâng cấp ứng dụng hiện tại để có thể hỗ trợ tốt hơn việc đặc tả và kiểm chứng cho công đoạn kết nối các thành phần của phần mềm hướng thành phần này.
Tài liệu tham khảo
Tài liệu tham khảo tiếng Việt
[1] Nguyễn Thanh Bình - Đặng Thị Lệ Thu. Giải pháp nâng cao chất lượng phần mềm hướng đối tượng. Tạp chí khoa học và công nghệ, Đại học Đà Nẵng. Số 5(28).2008.
Tài liệu tham khảo tiếng Anh
[2] A. M. Zaremski and J. M. Wing. Specification matching of software components. 333–369, 1997.
[3] B. Meyer. Design By Contract, in Advances in Object-Oriented Software Engineering. Prentice Hall. 1991.
[4] B. Meyer. Eiffel: The Language. Prentice Hall. 1992.
[5] Bala Natarajan, Douglas C. Schmidt, and Steve Vinoski. The CORBA Component Model. http://www.drdobbs.com/cpp/184403888. September 01, 2004
[6] Boodhoo, Jean-Paul. Design Patterns: Model View Controller. Retrieved 2009-07- 07.
[7] C.A.R Hoare. An axiomatic basis for computer programming. Communications of the ACM. 1969.
[8] Ivica Crnkovic - Magnus Larsson. Building Reliable Component-Based Software Systems. Artech house, Inc. 2002. tr.3-18 và tr.73-76.
[9] Frank Pilhofer. Writing and Using CORBA Components. Technology report, FPX. 04/2002.
[10] Jeremy Rosenberger. Teach Yourself CORBA In 14 Days
[11] Jonas Bergström. Design By Contract for Java. http://c4j.sourceforge.net/.
[12] Tran Thi Mai Thuong - Vo Van Thanh - Truong Ninh Thuan. Checking the conformability in CORBA component model specifications. Journal of Science, Natural Sciences and Technology. 2008.
[13] Yi Liu - H. Conrad Cunningham. Software Component Specification Using Design by Contract. National Defense Industry Association. 04/2002.
Phụ lục
(Hướng dẫn sử dụng chương trình)
Sau khi cài đặt môi trường jre cho java. Người dùng có thể click vào file chạy chương trình để chạy công cụ (Hình 11)
Đầu tiên để vẽ một thành phần, người dùng có thể click vào nút có biểu tượng sau đó di chuột sang màn hình bên phải để vẽ. Chương trình sẽ hiện lên bảng đòi người dùng phải điền đầy đủ thông tin cho thành phần. Sau khi hoàn thành thao tác, click vào nút ok để vẽ hoặc click vào nút cancel để bỏ qua không vẽ nữa.
Để có thể vẽ các cổng cho thành phần, người dùng click vào nút có các biểu tượng , , , , tương ứng với các cổng attribute, facet, receptacle, event source, event sinks. Chú ý, các cổng nằm trên thành phần nên khi vẽ, người dùng phải click vào phạm vi bên trong thành phần, nếu không sẽ có thông báo lỗi hiện ra ngăn cấm việc vẽ các cổng. Chương trình sẽ hiện lên khung bắt buộc người dùng điền thông tin cho các cổng đó. Khung thông tin bao gồm ô điển tên cổng, kiểu của cổng, và tủy chọn xem kiểu của cổng đó có kế thừa kiểu nào khác của một cổng nào đó khác hay không. Sau khi hoàn thành thao tác, người dùng click vào ok để vẽ cổng hoặc click vào cancel để bỏ qua không vẽ cổng nữa.
Sau khi vẽ xong các thành phần và các cổng, người dùng có thể click vào nút có biểu tượng để tiến hành kết nối các cổng của các thành phần. Người dùng click chuột vào 1 cổng bất kỳ và giữ lỳ chuột, di đến cổng thứ 2 cần kết nối, sau đó thả chuột ra. Chương trình sẽ kiểm tra các điều kiện kết nối (xem lại mục 3.3.3). Nếu không thỏa mãi một trong 5 điều kiện đã nên ở trên, sẽ có một bảng thông báo kết nối không thành công kèm theo lỗi xảy ra ở điều kiện nào. Sau khi người dùng xác nhận, phần kết nối sẽ tự động được xóa đi.
Ngoài ra người dùng có thể dùng thêm một số chức năng phụ như tạo mới một bản đặc tả mới bằng cách vào menu File → New.
Nếu người dùng kết nối sai cổng (nhưng vẫn thỏa mãn điều kiện) thì có thể sử dụng chức năng undo hoặc redo bằng cách vào menu Edit → Undo hoặc Edit → Redo.