ĐẠ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 bhướ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 cu thiết kế theo hợp
đồng và xây dựng công cụ hỗ trợ” xin đượcy tlòng chân thành biết ơn tới các thầy
giáo Tờ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 m qua thầy 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 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 thi 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 giáo và các bạn để 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]
trình bày những khái niệm bản. Đây là công nghgiú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 skế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 o đó mới 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 chế cho tính đúng đắn
của phần mềm. Các cấu trúc đơn giản thường tính tin cậy n những phần mềm có
cấu trúc phức tạp. Nhưng điểm yếu của 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 người sử dụng. Vì thế, một số 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ô tphần
mềm để người phát triển sau này th đọc lại hoặc viết lại. Quản bộ nhớ, hay còn
được gọi là “kthuật thu gom ráccũ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ụ 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 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 hình dựa trên CORBA. Khái niệm về kỹ
nghphần mềm hướng thành phần. Một phần mềm được tạo ra là do sghé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 skhô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 mi một thành phần khác hay là chỉnh sửa
một thành phần sẵn. hình thành phần CORBA là hình chính 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ù hp 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áp dụng những công nghệ mới hiện nay như 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. Tính đúng đắn, tính tin cậy của phần mềm .......................................3
1.1. Một số cơ chế mang lại tính đúng đắn.............................................................3
1.2. Biểu diễn một đặc tả .......................................................................................4
1.2.1. Những công thức của tính đúng đắn......................................................4
1.2.2. Những điều kiện yếu, mạnh ..................................................................5
1.3. Giao ước cho tính tin cậy của phần mềm ........................................................7
1.3.1. Quyền lợi..............................................................................................8
1.3.2. Nghĩa vụ ...............................................................................................8
CHƯƠNG 2. Giới thiệu về Design by Contract .......................................................9
2.1. Giới thiệu .......................................................................................................9
2.2. Khái niệm về hợp đồng.................................................................................10
2.3. Tiền điều kiện, hậu điều kiện và tính bất biến ...............................................11
2.3.1. Tiền điều kiện và hậu điều kiện...........................................................11
2.3.2. Tính bất biến.......................................................................................12
2.4. Design By Contract trong Eiffel....................................................................12
2.4.1. Biểu diễn Design by Contract trong Eiffel ..........................................13
2.4.2. Ví dụ minh họa ...................................................................................14
CHƯƠNG 3. hình thành phần CORBA...........................................................16
3.1. Khái niệm cơ bản về công nghệ phần mềm hướng thành phần......................16
3.1.1. Giới thiệu............................................................................................16
3.1.2. Thành phần.........................................................................................17
3.1.3. Đối tượng và thành phần.....................................................................17
3.1.4. Giao diện ............................................................................................18
3.1.5. Hợp đồng............................................................................................19
3.1.6. Khuôn mẫu .........................................................................................21