Đăng ký Đăng nhập
Trang chủ Framework và ứng dụng cho bào toán tuyển sinh trực tuyến tại các trường đại học...

Tài liệu Framework và ứng dụng cho bào toán tuyển sinh trực tuyến tại các trường đại học

.DOC
80
105
82

Mô tả:

-i- LỜI CẢM ƠN Trước tiên tôi xin được bày tỏ sự trân trọng và lòng biết ơn đối với PGS.TS. Nguyễn Văn Vỵ, giảng viên Khoa Công nghệ thông tin - Trường Đại học Công nghệ - ĐHQGHN. Trong thời gian học và làm luận văn tốt nghiệp, thầy đã dành nhiều thời gian quí báu và tận tình chỉ bảo, hướng dẫn tôi trong việc nghiên cứu, thực hiện luận văn. Tôi xin được cảm ơn các GS, TS đã giảng dạy tôi trong quá trình học tập và làm luận văn. Các thầy đã giúp tôi hiểu thấu đáo hơn lĩnh vực mà mình nghiên cứu để có thể vận dụng các kiến thức đó vào trong công tác của mình. Xin cảm ơn các bạn bè, đồng nghiệp và nhất là các thành viên trong gia đình đã tạo mọi điều kiện tốt nhất, động viên, cổ vũ tôi trong suốt quá trình học tập và nghiên cứu để hoàn thành tốt bản luận văn tốt nghiệp này. Học viên Phạm Duy Học -ii- LỜI CAM ĐOAN Tôi xin cam đoan rằng, đây là công trình nghiên cứu của tôi trong đó có sự giúp đỡ rất lớn của thầy hướng dẫn và các đồng nghiệp ở cơ quan, các bạn học viên. Các nội dung nghiên cứu và kết quả trong đề tài này là hoàn toàn trung thực. Trong luận văn, tôi có tham khảo đến một số tài liệu của một số tác giả đã được liệt kê tại phần Tài liệu tham khảo ở cuối luận văn. Thái Nguyên, ngày 10 tháng 1 năm 2013 Học viên Phạm Duy Học -iii- MỤC LỤC LỜI CẢM ƠN i LỜI CAM ĐOAN ii MỤC LỤC iii MỞ ĐẦU 1. Cơ sở khoa học và thực tiễn của đề tài 2. Đối tượng và phạm vi nghiên cứu 3. Cấu trúc của luận văn Chương 1: TỔNG QUAN VỀ FRAMEWORK 1.1. Khái niệm về framework 1.1.1. Định nghĩa về framework 1.1.2. Cấu trúc của một framework 1.1.3. Phân biệt framework với các khái niệm khác 1.1.4. Các đặc điểm của framework 1.2. Phân loại khung làm việc 1.2.1. Phân loại framework theo vùng vấn đề 1.2.2. Phân loại framework theo cấu trúc nội bộ 1.3. Các phương pháp phát triển framework 1.3.1. Quy trình phát triển dựa trên các kinh nghiệm ứng dụng 1.3.2. Quy trình phát triển framework dựa trên phân tích miền vấn đề 1.3.3. Quy trình phát triển framework sử dụng các mẫu thiết kế 1.3.4. Quy trình phát triển framework chung 1.4. Giới thiệu khung làm việc Higgin Trust 1.4.1. Tổng quan về khung làm việc Higgin Trust 1.4.2. Các thành phần của Higgins 1.4.3. Mô hình dữ liệu của Higgins 1.5. Khung làm việc View-Model-Controler (VMC) 1.5.1. MVC là gì? 1.5.2. Lịch sử MVC 1.5.3. Vai trò của các thành phần M-V-C trong Web framework 1 1 2 2 4 4 5 6 8 10 11 11 12 14 14 15 16 16 18 18 19 23 26 26 26 27 Chương 2: MÔ TẢ NGHIỆP VỤ, ĐẶC TẢ BÀI TOÁN TUYỂN SINH TRỰC TUYẾN TẠI CÁC TRƯỜNG ĐẠI HỌC 32 2.1. Bài toán tuyển sinh và những vấn đề đặt ra 32 2.1.1. Nội dung các hoạt động tuyển sinh 33 2.1.2. Những vấn đề đặt ra cho hoạt động tuyển sinh 34 2.2. Giải pháp cho các vấn đề tuyển sinh đặt ra 35 -iv- 2.3. Đặc tả nghiệp vụ của bài toán tuyển sinh trực tuyến 2.3.1. Các tiến trình nghiệp vụ của hoạt động tuyển sinh 2.3.2. Các tác nhân, các đối tượng và các thao tác nghiệp vụ 2.3.3. Mô hình miền lĩnh vực 2.3.4. Phân tích các ca sử dụng (Use case) cho bài toán tuyển sinh trực tuyến tại các trường Đại học. 2.3.5. Mô hình các ca sử dụng và mô tả các ca sử dụng, mô hình miền 36 36 38 39 41 43 Chương 3: ỨNG DỤNG FRAMEWORK VÀ THIẾT KẾ CÁC LỚP ĐỐI TƯỢNG CHO BÀI TOÁN TUYỂN SINH TRỰC TUYẾN 55 3.1. Mô hình liên kết giữa các lớp cho bài toán tuyển sinh trực tuyến. 55 3.2. Mô hình cộng tác của các ca sử dụng trong gói 55 3.3. Biểu đồ tuần tự thực thi các ca sử dụng 59 3.4. Mô hình liên kết giữa các lớp 64 3.5. Mô tả chi tiết các lớp 65 Chương 4 : CHƯƠNG TRÌNH TUYỂN SINH TRỰC TUYẾN TẠI ĐẠI HỌC CÔNG NGHIỆP QUẢNG NINH 68 4.1. Môi trường cài đặt 68 4.1.1. Yêu cầu cấu hình phần cứng 68 4.1.2. Môi trường phát triển, vận hành 68 4.2. Giới thiệu chương trình 68 4.2.1. Các hệ con và chức năng 68 4.2.2. Một số giao diện chính 69 4.3. Hướng dẫn sử dụng một số chức năng chính 70 4.3.1. Chức năng đăng ký thi tuyển 70 4.3.2. Chức năng thông báo kết quả thi tuyển 70 4.3.3. Chức năng lịch thi, địa điểm thi, tra cứu phòng thi 70 KẾT LUẬN 71 TÀI LIỆU THAM KHẢO 73 -v- BẢNG CÁC CHỮ VIẾT TẮT Viết tắt CBTS Tên đầy đủ Cán bộ tuyển sinh CNĐKDT Cập nhật hồ sơ đăng ký dự thi ĐH & CĐ Đại học và Cao đẳng ĐHCNQN Đại học Công nghiệp Quảng ninh GD&ĐT Giáo dục và Đào tạo HĐTS Hội đồng tuyển sinh HSDK Hồ sơ đăng ký KB Kiểm bài, đánh phách, chia túi KHTS Lập kế hoạch tuyển sinh KV1 Khu vực 1 KV2 Khu vực 2 KV2-NT Khu vực 2 – nông thôn KV3 Khu vực 3 LĐ Lãnh đạo NĐT Nhập điểm thi NQT Người quan tâm PĐT Phòng đào tạo QLHT Quản lý hệ thống QLTS Quản lý tuyển sinh QTHT Người quản trị hệ thống TBTS Thông báo tuyển sinh THKQ Tổng hợp kết quả TS Thí sinh XL HS Xử lý hồ sơ đăng ký dự thi XPT Đánh số báo danh, phân cụm, xếp phong thi XTS Xét tuyển sinh, lên thông báo API Application Programming Interface JMF Java Media Framework MVC Model-View-Controller PAC Presentation-Abstraction-Controller Ý nghĩa -vi- DANH SÁCH CÁC HÌNH VÀ BẢNG Hình 1.1: Mối quan hệ giữa các thành phần khác nhau của framework.............................................6 Hình 1.2: Phát triển framework dựa trên kinh nghiệm ứng dụng [10].............................................14 Hình 1.3: Quy trình phát triển framework dựa trên phân tích miền vấn đề [10]..............................15 Hình 1.4: Quy trình phát triển framework sử dụng các mẫu thiết kế [10]........................................16 Hình 1.5: Quy trình phát triển khung làm việc chung [10]..............................................................17 Hình 1.6: Higgins Trust Framework................................................................................................19 Hình 1.7: Kiến trúc của Higgins......................................................................................................19 Hình 1.8: RP Enablement................................................................................................................20 Hình 1.9: Kiến trúc Token Service..................................................................................................22 Hình 1.10: Mô hình MCV...............................................................................................................27 Hình 2.1: Biểu đồ hoạt động của Xác định chỉ tiêu tuyển sinh........................................................36 Hình 2.2: Biểu đồ hoạt động Công bố yêu cầu thi tuyển, tiếp nhận đăng ký thi..............................37 Hình 2.3: Biểu đồ hoạt động Công bố yêu cầu tuyển chọn, tiếp nhận đăng ký................................37 Hình 2.4: Biểu đồ hoạt động Công bố kết quả và gửi kết quả tuyển sinh........................................38 Hình 2.5. Biểu đồ mô hình miền lĩnh vực tuyển sinh trực tuyến.....................................................39 Hình 2.6: Mô hình ca sử dụng mức cao...........................................................................................43 Hình 2.8: Biểu đồ ca sử dụng gói đăng ký dự thi mức chi tiết.........................................................43 Hình 2.9: Mô hình ca sử dụng gói xử lý hồ sơ đăng ký dự thi.........................................................44 Hình 2.10: Mô hình gói xử lý điểm thi............................................................................................44 Hình 2.11: Mô hình miền gói tuyển sinh trực tuyến........................................................................54 Hình 3.1: Mô hình liên kết giữa các lớp trong gói đăng ký dự thi...................................................55 Hình 3.2: Biểu đồ cộng tác thực thi ca sử dụng Nhập mới hồ sơ đăng ký dự thi.............................55 Hình 3.3: Biểu đồ cộng tác thực thi ca sử dụng tìm kiếm hồ sơ đăng ký dự thi...............................56 Hình 3.4: Biểu đồ cộng tác thực thi ca sử dụng xoá hồ sơ đăng ký dự thi.......................................56 Hình 3.5: Biểu đồ cộng tác thực thi ca sử dụng thống kê báo cáo...................................................56 Hình 3.6: Mô hình liên kết giữa các lớp cẳt dụng tách hồ sơ theo cụm thi......................................56 Hình 3.7: Biểu đồ cộng tác thực thi ca sử dụng tách hồ sơ theo cụm thi.........................................57 Hình 3.8: Biểu đồ cộng tác thực thi ca sử dụng lập danh sách phòng thi.........................................57 Hình 3.9: Biểu đồ cộng tác thực thi ca sử dụng in giấy báo thi.......................................................57 Hình 3.10:Biểu đồ cộng tác thực thi ca sử dụng dồn túi..................................................................58 Hình 3.11: Biểu đồ cộng tác thực thi ca sử dụng cập nhật điểm......................................................58 Hình 3.12: Biểu đồ cộng tác thực thi ca sử dụng tổng hợp điểm.....................................................58 Hình 3.13: Biểu đồ tuần tự cho thực thi ca sử dụng thêm hồ sơ......................................................59 Hình 3.14: Biểu đồ tuần tự cho thực thi ca sử dụng tìm kiếm hồ sơ................................................60 Hình 3.15: Biểu đồ tuần tự cho thực thi ca sử dụng xoá hồ sơ........................................................60 Hình 3.16: Biểu đồ tuần tự cho thực thi ca sử dụng sửa hồ sơ.........................................................61 Hình 3.17: Biểu đồ tuần tự cho thực thi ca sử dụng tách hồ sơ theo cụm thi...................................61 Hình 3.18: Biểu đồ tuần tự cho thực thi ca sử dụng lập danh sách phòng thi..................................62 Hình 3.19: Biểu đồ tuần tự cho thực thi ca sử dụng in giấy báo thi.................................................62 Hình 3.20: Biểu đồ tuần tự cho thực thi ca sử dụng dồn túi.............................................................63 Hình 3.21: Biểu đồ tuần tự cho thực thi ca cập nhật điểm...............................................................63 Hình 3.22: Biểu đồ tuần tự cho thực thi ca tổng hợp điểm..............................................................64 Hình 3.23: Mô hình liên kết giữa các lớp thực thi ca sử dụng thêm hồ sơ......................................64 Hình 3.24: Mô hình liên kết giữa các lớp thực thi CSD tách hồ sơ theo cụm thi.............................64 Hình 4.0: Giao diện trang chủ.........................................................................................................69 Hình 4.1: Giao diện trang đăng ký tuyển sinh trực tuyến................................................................70 Hình 4.2: Giao diện trang thông tin thí sinh....................................................................................70 -vii- -1- MỞ ĐẦU 1. Cơ sở khoa học và thực tiễn của đề tài Ngày nay, một trong những vấn đề quan trọng của ngành công nghệ phần mềm là vấn đề sử dụng lại. Ngay từ thời kỳ đầu tiên, người ta đã cố gắng sử dụng lại phần mềm bằng cách xây dựng trước thư viện các thành phần phần mềm. Trong các thư viện này chứa các hàm và thủ tục thường hay được sử dụng trong các ứng dụng phần mềm. Tuy nhiên, cách sử dụng lại này tương đối thụ động, vì chỉ có thể sử dụng lại các đoạn mã có sẵn nên phạm vi ứng dụng bị hạn chế. Khi phát triển phần mềm hướng đối tượng ra đời, nó mở ra một phạm vi rộng rãi cho việc sử dụng lại: Đó là ý tưởng sử dụng lại các thiết kế và các khung làm việc dành cho một lớp các bài toán xác định. Một mẫu thiết kế (Patterns) là một mô tả có tên về một cặp vấn đề và giải pháp, nó có thể được áp dụng trong những hoàn cảnh khác nhau. Mẫu thiết kế đã làm cho việc sử dụng lại trở lên phổ biến và rộng rãi cho những ai thực hiện phát triển phần mềm hướng đối tượng. Tuy nhiên, các mẫu thiết kế thường khó sử dụng vì có mức độ trừu tượng hóa cao. Một hướng sử dụng lại thuận lợi hơn là các khung làm việc (framework). Giống với các mẫu thiết kế, các khung làm việc dành cho những lớp bài toán xác định nên dễ sử dụng hơn. Phần lớn chi phí và các hoạt động liên tục trong phát triển phần mềm là tái tìm kiếm và tái tạo tạo lại các thành phần cốt lõi. Đặc biệt do tính không đồng nhất của các phần cứng, cùng với sự đa dạng của hệ điều hành và nền tảng truyền thông làm cho khó khăn để xây dựng được chính xác các ứng dụng với mỗi điều kiện cụ thể. Vì thế cần xây dưng các phần mêm sao cho dễ dàng thích nghi, thay đổi, hiệu quả và ít tốn kém từ các khoản đầu tư. Mô hình khung làm việc hướng đối tượng là công nghệ hướng đến làm giảm chi phí, thời gian và nâng cao chất lượng của phần mềm bằng cách sử dụng lai. Sử dụng khung làm việc là tái sử dụng “phần cốt lõi” của một lớp bài toán đã được xây dựng sẵn, sau đó sửa đổi, làm thích nghi nó và bổ sung những thành phần còn thiếu để được một ứng dụng đầy đủ cho bài toán cụ thể thuộc về lớp bài toán đã cho. -2- Khung làm việc dựa trên phân tích thiết kế hướng đối tượng và sử dụng tối đa các mẫu có khả năng thích nghi cao khi tính đến các tình huống có thể xẩy ra của lớp các bài toán cụ thể sẽ gặp. Nhờ vậy mà ta có thể giải quyết được nhiều bài toán thực tế thuộc lớp một cách nhanh chóng và hiệu quả. Ngày nay tuyển sinh là công việc thường xuyên và quan trọng của nhiều trường đại học và cao đẳng. Trong điều kiên quản lý đào tạo có nhiều thay đổi, nhà trường cần thích ứng với các yêu cầu quản lý như vậy đang nảy sinh và cần có hình thức tuyển sinh thích hợp trong điều kiện canh tranh. Vì vậy đề tài “Framework và ứng dụng cho bài toán tuyển sinh trực tuyến tại các trường Đại học” đã được tôi chọn làm đề tài luận văn tốt nghiệp của mình. 2. Đối tượng và phạm vi nghiên cứu Trong luận văn, sau khi đã trình bày tổng quan về “khung làm việc” hướng đối tượng, dựa trên ý tưởng chung và một số khung làm việc cụ thể để phát triển một ứng dụng trên nền web cho bài toán “Tuyển sinh trực tuyến tại các trường Đại học”. Trong điều kiện quy chế đào tạo của Việt Nam luôn có nhiều thay đổi, việc sử dụng khung làm việc cho ứng dụng này cho phép ta bảo trì và thay đổi hệ thống phần mềm nhanh chóng với chi phí có thể chấp nhận được là rất phù hợp với điều kiện hiện nay. Vì thời gian và khuôn khổ hạn chế của luận văn, luận văn sẽ không đi sâu trình bày một cách chi tiết các bước về mặt kỹ thuật phân tích hướng đối tượng, vì như vậy sẽ rất dài và không đủ thời gian, mà chỉ mô tả nội dung chính và đưa ra kết quả thực hiện của mỗi bước và kết quả cuối cùng. 3. Cấu trúc của luận văn Cấu trúc của luận văn bao gồm các phần sau: − Mở đầu: Giới thiệu cơ sở khoa học và thực tiễn của đề tài. − Chương 1: Giới thiệu tổng quan về khung làm việc, bao gồm các khái niệm, đặc điểm và phân loại khung làm việc hướng đối tượng. Giới thiệu một số khung làm việc được sử dụng cho việc giải quyết bài toán đặt. Chương cũng nêu ra một số phương pháp để phát triển một khung làm việc hay gặp. -3- − Chương 2: Bài toán quản lý tuyển sinh trực tuyến tại các trường Đại học: chương này đưa ra mô tả những vấn đề đang đặt ra của bài toán quản lý tuyển sinh trực tuyến, cho phép ta nhận biết cấu trúc tổng thể của bài toán tuyển sinh. Mô tả mô hình nghiệp vụ và đặc tả bài toán theo hướng đối tượng làm cơ sở để ứng dụng khung làm việc. − Chương 3: Triển khai ứng dụng khung làm việc cho bài toán tuyển sinh trực tuyến. Xác định các đối tượng, tìm ra các lớp cho thiết kế lớp đối tượng và ứng dụng khung làm việc để làm phù hợp với bài toán này. − Chương 4: Cài đặt và thử nghiệm bài toán tuyển sinh trực tuyến Lựa chọn môi trường va ngôn ngữ cài đặt, chuyển thiết kế thành chương trình và chạy thử nghiệm với các dữ liệu thực − Kết luận: Nêu ra những kết quả đã thực hiện trong luận văn và hướng phát triển tiếp tục nâng cấp và mở rộng ứng dụng đề tài vào thực tiễn trong tương lai. -4- Chương 1: TỔNG QUAN VỀ FRAMEWORK Trong một vài thập niên gần đây, việc sử dụng lại phần mềm đã và đang là một vấn đề quan trọng cho các tổ chức phát triển phần mềm. Đầu tiên, phần mềm được sử dụng lại dưới hình thức là các thư viện hàm API hay các thư viện lớp. Tiếp theo, các nhà phát triển nhận thấy không chỉ cần sử dụng lại các đoạn mã mà còn cần phải sử dụng lại cả các thiết kế của phần mềm. Do vậy, đã xuất hiện khái niệm về mẫu thiết kế (design pattern) và khung làm việc (framework). Các mô tả chi tiết về mẫu thiết kế sẽ được trình bầy trong một chủ đề khác. Nội dung của phần này của luận văn sẽ chỉ trình bầy về khung làm việc và phạm vi ứng dụng của nó. 1.1. Khái niệm về framework Thiết kế phần mềm là loại công việc khó và việc thiết kế phần mềm để có thể sử dụng lại còn khó khăn hơn rất nhiều. Một khung làm việc định hướng đối tượng là một loại cấu trúc phần mềm có thể sử dụng lại bao gồm cả thiết kế và code. Khái niệm khung làm việc được mong đợi sẽ làm tăng tính hiệu quả trong quá trình phát triển phần mềm của các kỹ sư phần mềm. Khung làm việc hướng đối tượng là gì? Tồn tại rất nhiều định nghĩa khác nhau và giống nhau về khung làm việc trong đó định nghĩa cua Johnson và Foote [10] là định nghĩa được biết đến nhiều nhất “Một khung làm việc là một bộ các lớp mà nó là biểu hiện của một thiết kế trừu tượng các giải pháp cho một lớp các vấn đề liên quan”. Một định nghĩa tương tự cũng đã được Johnson đưa ra năm 1991 [10]: “Một khung làm việc là một bộ nổi bật các lớp cộng tác bao gồm cả các mẫu tỷ lệ nhỏ và cơ chế lớn mà nó thực hiện các yêu cầu chung và thiết kế trong phạm vi một miền ứng dụng cụ thể” . Dựa trên các định nghĩa, chúng ta có thể giải thích một cách đầy đủ hơn ý nghĩa khung làm việc định hướng đối tượng như dưới đây. -5- 1.1.1. Định nghĩa về framework Thuật ngữ framework hướng đối tượng có thể được định nghĩa theo nhiều cách. Một framework được định nghĩa như là một phần của thiết kế và thực hiện, cho một ứng dụng trong một lĩnh vực. Điều này cho thấy: một framework không phải là một hệ thống hoàn chỉnh. Hệ thống này có thể được điều chỉnh lại để tạo ra các ứng dụng hoàn chỉnh. Các framework nói chung được sử dụng và được phát triển khi cần phát triển một vài ứng dụng tương tự. Một framework là phần chung giữa các ứng dụng này. Do vậy, một framework giảm công sức cần thiết để xây dựng các ứng dụng. Phần lớn các định nghĩa đều nhất trí rằng, một framework là một kiến trúc phần mềm có thể sử dụng lại, bao gồm cả thiết kế và mã thực hiện được. Tuy nhiên, lại không có định nghĩa nào được thống nhất chung về framework và các thành phần hợp thành của nó. Sau đây là một số các định nghĩa khác nhau hoặc tương tự nhau về framework được nêu ra: “Một framework ràng buộc các lựa chọn chính xác về sự phân chia trạng thái và luồng điều khiển, người dùng hoàn thiện hoặc mở rộng framework để tạo ra một ứng dụng thực tế” “Một framework là một tập các lớp mà bao gồm một thiết kế trừu tượng cho các giải pháp của một hoặc các vấn đề liên quan” “Một framework là một tập các đối tượng mà cộng tác với nhau để tạo ra một tập các đáp ứng cho một ứng dụng hoặc một vùng hệ thống con” “Một framework là một tập các ký hiệu của các lớp cộng tác mà đạt được cả các mẫu phạm vi nhỏ và các cơ chế chủ yếu để thực hiện các yêu cầu chung và thiết kế trong một phạm vi ứng dụng cụ thể” “Một tập các lớp cộng tác với nhau mà tạo ra một thiết kế có thể sử dụng lại cho một lớp cụ thể của phần mềm. Một framework cung cấp các hướng dẫn có tính kiến trúc bằng cách phân chia thiết kế thành các lớp trừu tượng và định nghĩa các -6- đáp ứng và sự cộng tác của chúng. Một nhà phát triển tùy biến framework thành một ứng dụng cụ thể bằng cách tạo ra các lớp con và tạo ra các phiên bản của các lớp framework” Như vậy, một framework bao gồm một tập các lớp mà các thể hiện của chúng cộng tác với nhau, được dự định để mở rộng, sử dụng lại cho các ứng dụng cụ thể của một lĩnh vực. Một họ các vấn đề liên quan, cho phép tổng hợp trong một framework. Hơn nữa, các framework được biểu diễn thành một ngôn ngữ lập trình, như vậy nó cung cấp cho việc sử dụng lại cả mã thực hiện và thiết kế. 1.1.2. Cấu trúc của một framework Một framework hướng đối tượng bao gồm các 5 thành phần sau:  Các tài liệu thiết kế  Các giao diện  Các lớp trừu tượng  Các thành phần  Các lớp Mối quan hệ giữa các thành phần khác nhau trong một framework được mô tả như hình vẽ sau: Các tài liệu thiết kế phản ánh khai Các giao diện triển khai triển khai Các lớp trừu tượng thừa kế Các thành phần là 1 phần Các lớp Hình 1.1: Mối quan hệ giữa các thành phần khác nhau của framework -7- Các thành phần của một framework bao gồm: Các tài liệu thiết kế: thiết kế của một framework có thể bao gồm các lược đồ lớp, viết bằng văn bản hoặc chí ít là một ý tưởng trong đầu của nhà phát triển. Các giao diện: các giao diện mô tả sự đáp ứng với bên ngoài của các lớp. Các giao diện có thể được sử dụng để mô hình hóa các vai trò khác nhau trong hệ thống, ví dụ như các vai trò trong một mẫu thiết kế. Một vai trò đại diện cho một nhóm các phương pháp trong giao diện mà liên quan tới các phương pháp do các phần khác thực hiện. Các lớp trừu tượng: một lớp trừu tượng là một sự thực hiện chưa đầy đủ của một hoặc nhiều giao diện. Nó có thể được sử dụng để định nghĩa cách ứng xử của một số các thành phần thực hiện một nhóm các giao diện. Các thành phần: Giống như các lớp, các thành phần có thể được tích hợp với các lớp khác. Trong hình vẽ, có một mũi tên “là một phần của” giữa các lớp và các thành phần. Nếu bản thân các lớp có một API được định nghĩa đầy đủ thì tập kết quả của các lớp sẽ được biểu hiện như là một tổ hợp các thành phần. Một thành phần được định nghĩa như sau: “Một thành phần phần mềm là một đơn vị kết cấu với các giao diện được ghi rõ theo hợp đồng và các phụ thuộc ngữ cảnh rõ ràng. Một thành phần phần mềm có thể được triển khai độc lập và được tổ hợp bằng các hãng thứ ba” Các lớp: Mức thấp nhất của một framework là các lớp. Các lớp chỉ khác với các thành phần là trong thực tế, các API được công khai của nó không được đưa ra trong các giao diện của một framework. Một cách điển hình là các lớp được các thành phần sử dụng để đại diện cho chức năng. Ví dụ một người dùng framework thường không nhìn thấy các lớp này trừ khi anh ta làm việc với các thành phần. Cách thức làm việc của một framework như sau: Một framework làm việc bằng cách cung cấp một đặc tả rõ ràng của các tương tác được mong đợi giữa các thành phần. Ví dụ, một thành phần có thể trông chờ -8- những gì từ các thành phần khác và cái gì nên được cung cấp tới chúng? Một framework định nghĩa các dịch vụ lựa chọn, và cung cấp một giải thích cho việc định nghĩa thành phần nào là một thành phần cung cấp. Như thế, một thành phần sẽ có khả năng được mở rộng rất lớn và các thành phần mới có thể tương tác mạnh mẽ với những cái đã có. Chúng cộng tác với các chi tiết, khía cạnh cụ thể của các vấn đề được cân nhắc bởi framework. Các thành phần ứng dụng có thể còn chứng minh cho tính tương thích với các vấn đề khác, như ngữ nghĩa của dữ liệu mà chúng chuyển qua. Các bộ phận phụ thuộc có thể được giới thiệu như là các thành phần của framework. Sự thi hành các thành phần này có thể cùng framework xác định một dịch vụ và cung cấp các dịch vụ này cho các thành phần khác. 1.1.3. Phân biệt framework với các khái niệm khác Một mẫu thiết kế khác với một framework ở ba điểm. Thứ nhất, một mẫu thiết kế là trừu tượng hơn một framework, bởi vì một framework được bao gồm cả mã, trong khi đó chỉ các mẫu thiết kế mới cần được mã hóa. Các mẫu thiết kế thậm chí chỉ mô tả mục đích, việc cân bằng các yếu tố khác để đạt được sự kết hợp tốt nhất và các kết quả của một thiết kế. Trong trường hợp này có nghĩa là nó chưa thể là một thành phần của một framework. Thứ hai, các mẫu thiết kế là những kiến trúc nhỏ hơn so với các framework. Do vậy, một framework có thể chứa một số các mẫu thiết kế, nhưng điều ngược lại là không thể. Do vậy, các mẫu thiết kế không có ảnh hưởng lớn tới kiến trúc của ứng dụng. Cuối cùng, các framework được chuyên môn hóa hơn so với các mẫu thiết kế. Các framework luôn luôn liên quan đến một miền ứng dụng cụ thể, trong khi đó các mẫu thiết kế là chung và có thể được ứng dụng trong bất kỳ miền ứng dụng nào. Các ngôn ngữ mẫu khác với framework theo cách mà một ngôn ngữ mẫu miêu tả: làm như thế nào để tạo ra một thiết kế. Trong khi đó, một framework hướng đối tượng là một thiết kế. Các ngôn ngữ mẫu bổ sung cho một framework, do chúng có thể hướng dẫn các kỹ sư phần mềm sử dụng framework như thế nào, và mô tả tại sao nó lại được thiết kế như vậy. -9- Một ứng dụng hướng đối tượng khác với một framework ở chỗ, một ứng dụng mô tả một chương trình thực hiện phức tạp mà thỏa mãn các yêu cầu cụ thể đặt ra. Framework đạt được các tính năng của một ứng dụng nhưng nó không thể thi hành được bởi vì nó không bao gồm các tương tác trong trường hợp ứng dụng cụ thể. Các framework khác với các thư viện lớp ở chỗ: chúng nhắm tới các miền ứng dụng cụ thể. Trong khi đó, các thư viện lớp cung cấp cho người sử dụng các sự thực hiện trước của thuật toán. Các thư viện lớp là thụ động, người sử dụng gọi đến các phương pháp trong thư viện lớp để thực hiện một số hoạt động. Trong khi đó các framework định nghĩa khung khổ cho một ứng dụng thực tế và quản lý các luồng điều khiển trong ứng dụng. Các framework có thể khác so với thư viện lớp, nhưng chúng có thể sử dụng các thư viện lớp đã có sẵn để thực hiện các thuật toán chung và các cấu trúc dữ liệu. Các thành phần phần mềm ban đầu đã được dự định là các thành phần chức năng riêng lẻ mà có thể được đầu tư từ nhà cung cấp và tích hợp vào trong các ứng dụng. Các framework dường như là những thành phần mà có thể được đầu tư từ nhà cung cấp và nhiều hơn một framework có thể được sử dụng trong một ứng dụng. Tuy nhiên, một điểm khác dễ nhận thấy giữa chúng là các framework cung cấp một bộ rộng hơn các dịch vụ so với các thành phần phần mềm. Chúng có khả năng tùy biến nhiều hơn, có các giao diện phức tạp hơn và điều quan trọng hơn là chúng thực sự định nghĩa cho một họ ứng dụng hoặc một diện rộng của các ứng dụng. Do vậy, các framework là khó học hơn đối với các nhà phát triển, nhưng một khi đã hiểu được hết framework thì sẽ có được sự linh động cao hơn và với một framework được thiết kế tốt thì có thể giảm được các nỗ lực cần bỏ ra để xây dựng một ứng dụng đã được tùy biến một cách đáng kể. Trong khi các framework và các thành phần là các kỹ thuật khác nhau, chúng nên được xem và được sử dụng như các kỹ thuật cộng tác với nhau. Với các framework có thể sử dụng các thành phần và các ứng dụng được phát triển sử dụng các framework thậm chí có thể tiện dụng hơn các thành phần. Ví dụ, một ứng dụng Visual C++ được tạo với MFC framework, thậm chí có thể sử dụng các thành phần -10- ActiveX trong giao diện của nó giống như việc trao đổi với các thành phần ActiveX được đóng gói trong MFC framework. Một ví dụ khác cho sự phụ thuộc lẫn nhau giữa các framework và thành phần là việc sử dụng các framework để tạo các thành phần mới, ví dụ, framework Active Template Library (ATL) của Microsoft được sử dụng rộng rãi trong việc tạo các thành phần ActiveX. 1.1.4. Các đặc điểm của framework Một framework hướng đối tượng có bốn đặc điểm chính sau :  Khả năng môđun hóa  Khả năng sử dụng lại  Khả năng mở rộng  Sự đổi chiều của điều khiển Về đặc điểm thứ nhất, các framework tăng cường khả năng môđun hóa bằng cách đóng gói các chi tiết thực hiện không chắc chắn đằng sau các giao diện chắc chắn. Khả năng này giúp cho việc tăng cường chất lượng của phần mềm bằng cách cục bộ hóa các tác động của những thay đổi về kiến trúc và sự thực hiện. Sự cục bộ hóa này giảm các nỗ lực được yêu cầu để hiểu và duy trì phần mềm hiện có. Mặt khác, các giao diện chắc chắn được cung cấp bởi các framework còn tăng cường khả năng sử dụng lại bằng cách định nghĩa các thành phần chung mà có thể được áp dụng để tạo ra các ứng dụng mới. Khả năng sử dụng lại của framework tăng cường kiến thức của miền ứng dụng và các nỗ lực của các nhà phát triển có kinh nghiệm để tránh việc tạo và làm lại các giải pháp chung cho các yêu cầu của ứng dụng lặp lại và cũng như các thách thức tiến hành trong thiết kế phần mềm. Việc sử dụng lại các thành phần thiết kế có thể là một sự cải tiến đáng kể trong sản xuất chương trình, cũng như tốt cho việc nâng cao chất lượng, tính hiệu quả, độ tin cậy và tính sẵn sàng của phần mềm. Về khả năng mở rộng, một framework tăng cường khả năng mở rộng bằng cách cung cấp các điểm nóng tường minh cho phép các ứng dụng mở rộng các giao -11- diện chắc chắn và cách ứng xử của vùng ứng dụng với các thay đổi được yêu cầu cho các trường hợp của ứng dụng trong một ngữ cảnh cụ thể. Khả năng mở rộng của framework là cần thiết để đảm bảo các sự điều chỉnh có tính thời gian của các dịch vụ và tính năng ứng dụng mới. Cuối cùng, đặc điểm của kiến trúc cho thời gian chạy của một framework là sự đổi chiều của điều khiển, thường được gọi là “Nguyên tắc Hollywood”- Đừng gọi cho chúng tôi, chúng tôi sẽ gọi cho bạn. Kiến trúc này cho phép ứng dụng hợp với các quy tắc tiêu chuẩn nhờ việc điều chỉnh từng bước các xử lý thông qua các đối tượng quản lý sự kiện mà được tham chiếu đến do cơ chế gửi kích họat ngược trở lại của framework. Khi các sự kiện xảy ra, framework gửi lại kích hoạt bằng cách chỉ dẫn phương pháp móc nối trên các đối tượng quản lý sự kiện đã được đăng ký trước để thực hiện việc xử lý ứng dụng cụ thể dựa trên các sự kiện. Việc đổi chiều điều khiển này cho phép framework định nghĩa một tập các phương pháp ứng dụng cụ thể để đáp ứng với các sự kiện ở bên ngoài. 1.2. Phân loại khung làm việc Framework hướng đối tượng có thể được phân loại theo nhiều chiều khác nhau, trong đó những chiều quan trọng nhất là vùng vấn đề mà framework trỏ tới, cấu trúc bên trong của framework và việc nó dự định sử dụng như thế nào. Với cách phân loại thứ nhất, người ta chia các khung làm việc thành các khung làm việc ứng dụng, khung làm việc miền ứng dụng và khung làm việc trợ giúp. Với phân loại theo cách thức dự định sử dụng, các khung làm việc chia thành các khung làm việc hộp đen, các khung làm việc hộp trắng và các khung làm việc hộp xám. 1.2.1. Phân loại framework theo vùng vấn đề Việc phân loại theo vùng vấn đề chia các framework ba loại là các khung làm việc ứng dụng, các khung làm việc miền ứng dụng và các khung làm việc hỗ trợ. -12- Một khung làm việc ứng dụng là một tập của các thành phần với một thiết kế ứng dụng có thể được sử dụng lại. Điều này có nghĩa rằng, người dùng không những nhận được một tập con mã chức năng mà còn bắt đầu với cả một thiết kế về cách mà chúng làm việc như thế nào. Điều này cũng có nghĩa là, một framework ứng dụng có thể cung cấp nhiều tính năng hơn các thư viện hàm, vì về cơ bản các thư viện hàm là không phụ thuộc vào nhau. Loại thứ hai là phân loại khung làm việc theo vùng vấn đề của một miền ứng dụng. Các framework này đạt được kiến thức và sự tinh thông trong một vùng vấn đề cụ thể. Loại cuối cùng theo cách phân loại này là các khung làm việc hỗ trợ. Các framework hỗ trợ là các framework mà phục vụ cho các dịch vụ mức thấp của hệ thống như các trình điều khiển cho các thiết bị và bộ điều khiển truy nhập tệp. Nhà phát triển ứng dụng sử dụng các framework hỗ trợ trực tiếp hoặc sử dụng các sự điều chỉnh được tạo ra bởi các trình cung cấp của hệ thống. Các framework hỗ trợ có thể được tùy biến, ví dụ khi phát triển một hệ thống mới hoặc trình điều khiển thiết bị mới. 1.2.2. Phân loại framework theo cấu trúc nội bộ Nếu như cấu trúc nội tại của framework được miêu tả thì nó có thể làm cho việc hiểu cách ứng xử của framework dễ dàng hơn. Cấu trúc nội tại của một framework liên quan tới các khái niệm về các kiến trúc phần mềm. Những kiến trúc này được gọi là “các khung làm việc kiến trúc”, do chúng được thiết kế theo cách để đạt được cấu trúc vững chắc của một kiến trúc phần mềm hướng đối tượng. Nguyên tắc tổng thể cho cấu trúc nội tại của một framework được mô tả qua đặc trưng kiến trúc của nó. Các framework có tính kiến trúc đã được mô tả là: Layered (kiến trúc phân tầng), giúp cho cấu trúc các ứng dụng có thể được phân rã thành các nhóm của các công việc con với mức trừu tượng khác nhau định vị ở tầng khác nhau. Pipes and Filters (kiến trúc ống và bộ lọc), có thể được dùng để cấu trúc các ứng dụng có thể được chia thành một vài các công việc con hoàn toàn độc lập, được thực hiện theo trình tự nối tiếp hoặc song song đã được xác định một cách rõ ràng. -13- Model-View-Controller (kiến trúc MVC), định nghĩa một kiến trúc cho các ứng dụng có tính tương tác, chia tách giữa giao diện của ứng dụng với các chức năng chủ yếu của nó: mô hình xử lý và dữ liệu. Presentation-Abstraction-Controller (kiến trúc trình diễn-Trừu tượng-Điều khiển), kiến trúc này là thích hợp để cấu trúc các hệ thống phần mềm mà có tính tương tác cao với người sử dụng, cho phép những điều khiển và trình diễn của các mô hình trừu tượng của hệ thống có thể được tạo bên ngoài các chức năng con và độc lập với mỗi cái khác. Reflective (kiến trúc phản ánh), có khả năng áp dụng cho các ứng dụng mà cần phải cân nhắc về một sự thích nghi trong tương lai do sự thay đổi môi trường, công nghệ và các yêu cầu khác, mà không cần phải thay đổi về kiến trúc và cách thực hiện của nó. Microkernel là phù hợp cho các hệ thống phần mềm cần cung cấp các khung nhìn khác nhau dựa trên các chức năng của chúng và phải thích nghi với các yêu cầu của hệ thống. Ví dụ của microkernel của các hệ điều hành. Blackboard (kiến trúc bảng đen), giúp để cấu trúc các ứng dụng phức tạp mà liên quan tới một vài hệ thống con chuyên biệt cho các lĩnh vực khác nhau. Các hệ thống con này phải hợp tác để xây dựng các giải pháp cho việc giải quyết các vấn đề. Broker (kiến trúc môi giới), cấu trúc các hệ thống phần mềm phân tán, trong đó các thành phần tương tác khác nhau giao tiếp với nhau khi vận hành thông qua truyền thông như trong một mô hình chủ khách. Việc sử dụng các kiến trúc này như là một nguyên tắc thiết kế chủ yếu cho một framework. Điều đó có nghĩa là, các kiến trúc này là các ứng cử viên tốt cho việc ứng dụng các mẫu thiết kế hướng đối tượng cũng như cho việc phát triển framework.
- Xem thêm -

Tài liệu liên quan