ứng dụng relational interface cho java

64 288 2
ứng dụng relational interface cho java

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Tài liệu tham khảo công nghệ thông tin ứng dụng relational interface cho java

ĐẠI HỌC QUỐC GIA HÀ NỘITRƯỜNG ĐẠI HỌC CÔNG NGHỆ Đỗ Duy HưngỨNG DỤNG RELATIONAL INTERFACE CHO JAVAKHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUYNgành: Công nghệ thông tinCán bộ hướng dẫn: Ths. Phạm Thị Kim Dung Ứng dụng Relational Interface cho Java Đỗ Duy HưngHÀ NỘI – 2010II Ứng dụng Relational Interface cho Java Đỗ Duy HưngLời cảm ơnTrước tiên, tôi xin gửi lời cảm ơn và lòng biết ơn sâu sắc đến thạc sỹ Phạm Thị Kim Dung, người đã tận tình chỉ bảo hướng dẫn tôi trong suốt quá trình thực hiện khoá luận tốt nghiệp.Tôi xin bày tỏ lời cảm ơn sâu sắc đến các thầy cô giáo đã giảng dạy tôi trong suốt bốn năm học qua, đã cho tôi nhiều kiến thức quý báu để tôi vững bước trên con đường học tập của mình.Tôi xin gửi lời cảm ơn tới các bạn trong lớp K51CB, và K51CNPM đã ủng hộ khuyến khích tôi trong suốt quá trình học tập tại trường.Và cuối cùng, tôi xin bày tỏ niềm biết ơn vô hạn tới bố mẹ, và những người bạn thân luôn bên cạnh, động viên tôi trong suốt quá trình thực hiện khoá luận tốt nghiệp.Hà Nội, ngày 22 tháng 05 năm 2010Sinh ViênĐỗ Duy HưngI Ứng dụng Relational Interface cho Java Đỗ Duy HưngTÓM TẮT NỘI DUNGHiện nay, thiết kế dựa trên thành phần (Component-based design) đang được ứng dụng và phát triền mạnh vì những lợi ích mà nó mang lại cho ngành công nghệ phần mềm. Thiết kế dựa trên thành phần giúp cho việc xây dựng các hệ thống phức tạp, như là hệ thống nhúng, hệ thống vật lý trở nên hiệu quả và đáng tin cậy. Với kích cỡ và độ phức tạp lớn của hệ thống này không cho phép thiết kế toàn bộ từ đầu, hoặc xây dựng nó như là một đơn vị đơn lẻ. Thay vào đó, hệ thống phải được thiết kế như là một tập hợp các thành phần, một số được xây dựng từ đầu, một số kế thừa lại. Giao diện (Interface) đóng một vai trò quan trọng trong thiết kế dựa trên thành phần vì chúng cung cấp phương tiện để mô tả cho thành phần. Một interface có thể được xem như là một bản tóm tắt, một đại diện của thành phần: giữ lại các thông tin cần thiết của thành phần, giấu thông tin không cần thiết và làm cho mô tả thành phần trở nên đơn giản và hiệu quả hơn.Trong khóa luận tốt nghiệp này, bằng việc sử dụng lý thuyết về relational interface, tôi xây dựng một công cụ tự động phân tích, trích rút các thành phần có trong file mã nguồn Java và biến đổi nó thành các relational interface, thực hiện việc kết hợp tự động các interface này với nhau. Để từ đó, ta có thể biết được khả năng kết hợp của các thành phần này với nhau. Interface mới được kết hợp vẫn giữ nguyên tính chất của các interface cũ. Qua đó, ta cũng có thể dự đoán được giá trị đầu ra của các thành phần nếu biết được giá trị đầu vào thông qua các tính chất.II Ứng dụng Relational Interface cho Java Đỗ Duy HưngMỤC LỤCBảng các kí hiệu nghĩa tiếng anh VIDanh mục hình vẽ .VIICHƯƠNG 1: MỞ ĐẦU .11.1 Đặt vấn đề .11.2 Nội dung bài toán 11.3 Cấu trúc khóa luận 2CHƯƠNG 2: GIỚI THIỆU CHUNG VỀ ĐẶC TẢ VÀ GIAO DIỆN .32.1 Công nghệ phần mềm hướng thành phần .32.2 Đặc tả hình thức 42.2.1 Các phương pháp hình thức 42.2.2 Đặc tả 52.2.3 Đặc tả hình thức 52.3 Giao diện .62.3.1 Đặc tả giao diện 62.3.2 Thành phần và giao diện .62.3.3 Các loại interface 62.3.4 Statelful và stateless interface 72.3.5 Relational interface .8CHƯƠNG 3: NỘI DUNG LÝ THUYẾT VỀ RELATIONAL INTERFACE .103.1 Sơ bộ về bài viết và các ký hiệu 103.2 Relational interfaces 113.3 Môi trường và khả năng lắp ghép 143.4 Kết hợp .16CHƯƠNG 4: XÂY DỰNG CÔNG CỤ CHUYỂN ĐỔI TỰ ĐỘNG TỪ JAVA SANG RELATIONAL INTERFACE .224.1 Cở sở lý thuyết 224.1.1 Các thành phần của lớp trong ngôn ngữ lập trình hướng đối tượng .22III Ứng dụng Relational Interface cho Java Đỗ Duy Hưng4.1.2 Relational interface .234.1.3 Một số kiến thức về logic .244.2 Mục tiêu của bài toán 264.3 Hướng giải quyết bài toán .274.3.1 Tạo relational interface tự động từ phương thức .274.3.2 Tính input assumption tự động .284.3.3 Tính ξ mới được tạo ra tự động 284.3.4 Thực hiện việc kết hợp tự động 294.4 Mô tả các thành phần của công cụ .304.4.1 Lớp SourceFormat.java 314.4.2 Lớp RInterface.java 314.4.3 Lớp JavaFile.java 324.4.4 Lớp JavaClass.java .334.4.5 Lớp Tools.java 354.4.6 Lớp Expresstion.java 394.4.7 Lớp FOLOptimizer.java .41CHƯƠNG 5: CÀI ĐẶT VÀ THỬ NGHIỆM .435.1 Xây dựng công cụ .435.2 Dữ liệu thử nghiệm .445.3 Kết quả thử nghiệm .455.3.1 Phân tích file mã nguồn 455.3.2 Chuyển những phương thức này thành relational interface .465.3.3 Kết hợp các interface 485.3.4 Dự đoán kết quả: .495.4 Đánh giá 50CHƯƠNG 6: KẾT LUẬN 516.1 Kết luận về khóa luận 516.2 Hướng phát triển trong tương lai .51Phụ lục 53Phụ lục 1: Nội dung mã nguồn file thử nghiệm Sample.java .53IV Ứng dụng Relational Interface cho Java Đỗ Duy HưngV Ứng dụng Relational Interface cho Java Đỗ Duy HưngBảng các kí hiệu nghĩa tiếng anhKí hiệu Diễn giảiInput Đầu vàoOutput Đầu raWell-formed Định dạng hoàn chỉnhWell-formable Định dạng có thể hoàn chỉnhInterface Giao diệnRelational Interface Giao diện quan hệStateless Phi trạng tháiStateful Có trạng tháiFeedback Phản hồiFormal methods Các phương pháp hình thứcFormal specification Đặc tả hình thứcAssumption Giả thiếtGuarantee Bảo đảmRefinement Làm mịnVI Ứng dụng Relational Interface cho Java Đỗ Duy HưngDanh mục hình vẽHình 3.1: Sơ đồ một interface cho ví dụ 4 18Hình 3.2: Sơ đồ một interface với feedback .20Hình 3.1: Hàm parse() trong lớp JavaFile.java .33VII [...]... cách đơn giản và hiệu quả thông qua các ràng buộc 4.1.2 Relational interface Lý thuyết được tôi sử dụng là toàn bộ lý thuyết về relational interface được nêu lên ở chương 2, nhưng lý thuyết chính để xây dựng công cụ này là về relational interface và kết hợp relational interface, được nêu ra trong phần 3.2 và 3.4 Phần 3.2 chỉ ra rằng, một relational interface là một bộ I = ( X, Y, ξ ) Trong đó X, Y là... thiệu chung về relational interface Chương 3: Mô tả nội dung lý thuyết của relational interface, về môi trường và khả năng lắp ghép Lý thuyết về kết hợp relational interfaces [7] Chương 4: Áp dụng lý thuyết về relational interface và một số lý thuyết khác để xây dựng công cụ tự động chuyển đổi từ file mã nguồn Java sang relational interface Chương 5: Thử nghiệm công cụ và đánh giá Chương 6: Kết luận CHƯƠNG... tránh khỏi CHƯƠNG 4: XÂY DỰNG CÔNG CỤ CHUYỂN ĐỔI TỰ ĐỘNG TỪ JAVA SANG RELATIONAL INTERFACE 4.1 Cở sở lý thuyết Với lý thuyết về đặc tả hình thức interface cho phép thiết kế phần mềm dựa trên việc kết hợp giữa các interface, và mỗi interface là đại diện cho một thành phần Trong chương này, tôi đưa ra mô hình thiết kế phần mềm dựa trên các interface 4.1.1 Các thành phần của lớp trong ngôn ngữ lập trình... ngữ lập trình hướng đối tượng thành những relational interface tương ứng Sau đó tiến hành kết hợp các relational interface này theo thứ tự kết hợp các thành phần của chúng có trong hàm main, nếu như tồn tại việc kết hợp giữa các thành phần ở hàm main Trong khóa luận này, tôi sử dụng ngôn ngữ lập trình Java để xây dựng một công cụ và cũng sử dụng file mã nguồn java như là dữ liệu đầu vào Nhấn mạnh rằng,... true Một interface có thể được chỉ rõ như một máy tự động hữu hạn trạng thái được gọi là một interface hữu hạn trạng thái (finite-state interface) Các A/G interface là trường hợp đặc biệt của relational interface Một A/G interface phi trạng thái là một bộ (X, Y, ϕx, ϕy), trong đó ϕx là một thuộc tính trên X biểu diễn giả thiết input và ϕy là một thuộc tính trên Y biểu diễn những bảo đảm output Interface. .. tính giao hoán): cho 2 interface tách rời I1 và I2, I1 || I2 ≡ I2 || I1 Định lý 5 (Kết nối có tính liên kết): Cho I1, I2, I3 là những interface Cho θ12 là một kết nối giữa I1 và I2, θ13 là một kết nối giữa I1 và I3, và θ23 là một kết nối giữa I2 và I3 Như vậy: (θ12 ∪ θ23) (I1, θ23(I2, I3)) ≡ (θ13 ∪ θ23) (θ12(I1, I2), I3) Hình 3.1: Sơ đồ một interface cho ví dụ 4 Ví dụ 4: Xem xét sơ đồ của interface phi... loop được cho phép Cụ thể, ta cho phép một output của một interface I được kết nối với một trong các input x của nó chỉ trong trường hợp I là Moore đối với x, có nghĩa ràng buộc của I không phụ thuộc vào x 2.3.4 Statelful và stateless interface [7] nói đến hai dạng của interface là stateless interface ( giao diện phi trạng thái ) và stateful interface ( giao diện có trạng thái ) Stateful interface, ... mãn tại mọi trạng thái có thể đạt được (reachable state) Well-formable interface không nhất thiết phải là wellformed, nhưng mà có thể được chuyển thành well-formed bằng cách hạn chế một cách hợp lý các input 2.3.5 Relational interface Trong khóa luận này, tôi muốn đề cập đến relational interface [7] Relational interface là một interface chỉ ra những relation ( quan hệ ) giữa những input và output Xem... S Nếu s = a1a2…an, thì phần tử thứ i của chuỗi, ai, được kí hiệu là si, với i = 1, … , n 3.2 Relational interfaces Định nghĩa 1 (Relational interface) : một relational interface (hay một interface đơn giản) là 1 bộ I = ( X, Y, ξ ) Trong đó X, Y là 2 tập hữu hạn và tách rời của các biến input và output tương ứng, và ξ là hàm tổng ξ: ξ(X ∪ Y)* → ℱ(X ∪ Y) Gọi G là tập tất cả các phép gán trên tập các biến... ra từ thành phần đó Tính năng nổi trội của relational interface là ở việc giải quyết vấn đề bắt được quan hệ giữa input và output Ngoài ra, lý thuyết về composition (kết hợp), connection (kết nối), feedback loop (phản hồi lặp) có trong relational interface có thể dẫn tới những khẳ năng: a Thiết kế phần mềm dựa trên relational interface là sự kết hợp giữa các interface mà trong đó, các ràng buộc phải . nghiệm Sample .java. ..................................53IV Ứng dụng Relational Interface cho Java Đỗ Duy HưngV Ứng dụng Relational Interface cho Java Đỗ Duy. Ths. Phạm Thị Kim Dung Ứng dụng Relational Interface cho Java Đỗ Duy HưngHÀ NỘI – 2010II Ứng dụng Relational Interface cho Java Đỗ Duy HưngLời cảm ơnTrước

Ngày đăng: 23/11/2012, 15:04

Hình ảnh liên quan

Formal methods Các phương pháp hình thức - ứng dụng relational interface cho java

ormal.

methods Các phương pháp hình thức Xem tại trang 8 của tài liệu.
Bảng các kí hiệu nghĩa tiếng anh - ứng dụng relational interface cho java

Bảng c.

ác kí hiệu nghĩa tiếng anh Xem tại trang 8 của tài liệu.
Hình 3.1: Sơ đồ một interface cho ví dụ 4 - ứng dụng relational interface cho java

Hình 3.1.

Sơ đồ một interface cho ví dụ 4 Xem tại trang 28 của tài liệu.
Hình 3.2: Sơ đồ một interface với feedback - ứng dụng relational interface cho java

Hình 3.2.

Sơ đồ một interface với feedback Xem tại trang 30 của tài liệu.
Hình 3.1: Hàm parse() trong lớp JavaFile.java - ứng dụng relational interface cho java

Hình 3.1.

Hàm parse() trong lớp JavaFile.java Xem tại trang 43 của tài liệu.
Hình 4.2: Hàm parse() trong lớp JavaClass.java - ứng dụng relational interface cho java

Hình 4.2.

Hàm parse() trong lớp JavaClass.java Xem tại trang 44 của tài liệu.
Hình 4.4: Hàm Tools. getRInterfaceList(JavaClass jc) - ứng dụng relational interface cho java

Hình 4.4.

Hàm Tools. getRInterfaceList(JavaClass jc) Xem tại trang 49 của tài liệu.
Hình 4.5: Hàm Shorten trong lớp Expression.java - ứng dụng relational interface cho java

Hình 4.5.

Hàm Shorten trong lớp Expression.java Xem tại trang 51 của tài liệu.
Hình 5.1: Giao diện làm việc của Netbeans - ứng dụng relational interface cho java

Hình 5.1.

Giao diện làm việc của Netbeans Xem tại trang 53 của tài liệu.
Hình 5.3: Minh họa cách cài đặt thư viện (2) - ứng dụng relational interface cho java

Hình 5.3.

Minh họa cách cài đặt thư viện (2) Xem tại trang 54 của tài liệu.
Hình 5.2: Minh họa cách cài đặt thư viện (1) - ứng dụng relational interface cho java

Hình 5.2.

Minh họa cách cài đặt thư viện (1) Xem tại trang 54 của tài liệu.
Hình 5.7: Kết quả thử nghiệm 5.3.1 đối với hàm nhan - ứng dụng relational interface cho java

Hình 5.7.

Kết quả thử nghiệm 5.3.1 đối với hàm nhan Xem tại trang 56 của tài liệu.
Hình 5.15: Biểu đồ interface cho kết hợp chia(cong(a, b), tru(a, b)) - ứng dụng relational interface cho java

Hình 5.15.

Biểu đồ interface cho kết hợp chia(cong(a, b), tru(a, b)) Xem tại trang 58 của tài liệu.

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan