ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Nguyễn Thế Nam
NGHIÊN CỨU THIẾT KẾ THEO HỢP ĐỒNG
VÀ
XÂY DỰNG CÔNG CỤ HỖ TRỢ
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công Nghệ Thông Tin
HÀ NỘI - 2010
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Nguyễn Thế Nam
NGHIÊN CỨU THIẾT KẾ THEO HỢP ĐỒNG
VÀ
XÂY DỰNG CÔNG CỤ HỖ TRỢ
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Chuyên ngành: Công Nghệ Phần Mềm
Cán bộ hướng dẫn: TS. Trương Ninh Thuận
HÀ NỘI - 2010
LỜI CẢM ƠN
Sinh viên thực hiện khoá luận tốt nghiệp đề tài “Nghiên cứu thiết kế theo hợp đồng và xây dựng công cụ hỗ trợ” xin được bày tỏ lòng chân thành biết ơn tới các thầy cô giáo Trường Đại học Công Nghệ, Đại học Quốc Gia Hà Nội nói chung và thầy cô Bộ môn Công nghệ Phần mềm nói riêng. Trong suốt bốn năm qua thầy cô không những tận tình truyền đạt kiến thức mà còn luôn động viên chúng tôi trong học tập cũng như trong cuộc sống.
Đặc biệt, chúng tôi xin chân thành cảm ơn thầy giáo hướng dẫn, thầy Trương Ninh Thuận, đã tận tình chỉ bảo, tạo mọi điều kiện cơ sở vật chất cũng như tinh thần cho chúng tôi hoàn thành khóa luận và sửa chữa những sai sót trong suốt quá trình thực hiện đề tài.
Chúng tôi cũng xin cảm ơn tới các bạn sinh viên K51 đã cho chúng tôi những ý kiến đóng góp có giá trị khi thực hiện đề tài này.
Đề tài “Nghiên cứu thiết kế theo hợp đồng và xây dựng công cụ hỗ trợ” được hoàn thành trong thời gian hạn hẹp nên không tránh khỏi những khiếm khuyết. Chúng tôi rất mong nhận được ý kiến đóng góp từ thầy cô giáo và các bạn để có thể tiếp tục hoàn thiện hệ thống này hơn.
Hà nội ngày 24 tháng 4 năm 2010
Sinh viên
Nguyễn Thế Nam
TÓM TẮT NỘI DUNG
Khóa luận tìm hiểu về công nghệ thiết kế theo hợp đồng (Design by Contract) [3] và trình bày những khái niệm cơ bản. Đây là công nghệ giúp cho chúng ta xây dựng đặc tả giữa các lớp trong một thành phần và xem xét sự kết hợp giữa chúng với nhau. Mở rộng hơn nữa là đặc tả các thành phần trong một phần mềm và các thành phần phải thỏa mãn những điều kiện nào đó mới có thể liên kết với nhau để tạo thành phần mềm có tính tin cậy, tính đúng đắn cao.
Bên cạnh đó khóa luận còn đưa ra một số khái niệm và cơ chế cho tính đúng đắn của phần mềm. Các cấu trúc đơn giản thường có tính tin cậy hơn những phần mềm có cấu trúc phức tạp. Nhưng điểm yếu của nó lại không thể phục vụ được nhu cầu ngày càng tăng lên của người phát triển và người sử dụng. Vì thế, một số cơ chế như cố gắng giữ cho cấu trúc của phần mềm càng đơn giản càng tốt. Viết văn bản mô tả phần mềm để người phát triển sau này có thể đọc lại hoặc viết lại. Quản lý bộ nhớ, hay còn được gọi là “kỹ thuật thu gom rác” cũng làm cho phần mềm tối ưu hơn bình thường. Hoặc là việc sử dụng lại những công cụ có sẵn của những phần mềm đáng tin cậy trước đó cũng là một giải pháp thường được các nhà phát triển ứng dụng. Chi tiết hơn nữa là phát triển tất cả các giai đoạn: phân tích, thiết kế, lập trình, kiểm thử, bảo trì trong một dự án phần mềm.
Tiếp theo, khóa luận còn đưa ra các mô hình dựa trên CORBA. Khái niệm về kỹ nghệ phần mềm hướng thành phần. Một phần mềm được tạo ra là do sự ghép nối các thành phần độc lập lại với nhau. Các thành phần này sẽ không cần phải biên dịch lại hoặc không cần phải chỉnh sửa lại khi thêm mới một thành phần khác hay là chỉnh sửa một thành phần có sẵn. Mô hình thành phần CORBA là mô hình chính mà chúng tôi nghiên cứu và ứng dụng nó trong việc xây dựng công cụ hỗ trợ.
Ngoài ra khóa luận còn đi vào xây dựng công cụ đặc tả và kiếm chứng hỗ trợ người dùng kiểm tra sự phù hợp của các thành phần khi kết nối với nhau một cách trực quan. Công cụ có áp dụng những công nghệ mới hiện nay như mô hình Model – View – Controller (M-V-C) [6] hoặc sử dụng thư viện layer trong lập trình java game, dễ dàng cho việc lập trình công cụ.
MỤC LỤC
Mở đầu 1
CHƯƠNG 1. 3
Tính đúng đắn, tính tin cậy của phần mềm 3
CHƯƠNG 2. 9
Giới thiệu về Design by Contract 9
CHƯƠNG 3. 16
Mô hình thành phần CORBA 16
Xây dựng công cụ đặc tả và kiểm chứng thành phần 31
Kết luận 48
Hướng phát triển 49
Tài liệu tham khảo 50
Phụ lục 51
DANH MỤC HÌNH VẼ
Hình 1: Giao diện thành phần CORBA và các cổng 26
Hình 2: Mô hình MVC 32
Hình 3: Sơ đồ lớp thể hiện mối liên hệ giữa các đối tượng trong ứng dụng 34
Hình 4: Sơ đồ lớp thể hiện mối quan hệ kế thừa của các cổng 34
Hình 5: Lớp Component 35
Hình 6: Lớp port 36
Hình 7: Lớp canvaspanel 36
Hình 8: Lớp Contract 37
Hình 9: Kiến trúc CCM của hệ thống Stock Quoter. 38
Hình 10: Giao diện thành phần CORBA và các cổng. 38
Hình 11: Giao diện khởi động ứng dụng 41
Hình 12: Giao diện điền thông tin khi thêm mới 1 thành phần 42
Hình 13: Giao diện kết quả sau khi thêm một thành phần thành công 43
Hình 14: Giao diện điền thông tin khi thêm một cổng mới 44
Hình 15: Giao diện kết quả khi thêm mới cổng thành công 45
Hình 16: Giao diện khi kết nối thành công các cổng 46
Hình 17: Giao diện khi kết nối không thành công các cổng 47
DANH MỤC BẢNG BIỂU
Bảng 1: Hợp đồng giữa một hãng hàng không và khành hàng 10
Bảng 2: Hợp đồng chèn một từ vào từ điển 11
Bảng 3: Bảng ánh xạ từ IDL sang java 24
Bảng 4: Các lớp đối tượng trong ứng dụng 33
Bảng 5: Chi tiết lớp component 35
Bảng 6: Chi tiết lớp port 36
Bảng 7: Chi tiết lớp canvaspanel 36
Bảng 8: Chi tiết lớp Contract 37
DANH MỤC CÔNG THỨC
BẢNG KÝ HIỆU, CHỮ VIẾT TẮT
Chia sẻ với bạn bè của bạn: |