Tải bản đầy đủ (.pdf) (84 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.71 MB, 84 trang )

-i-

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
















































ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
=====  =====





PHẠM DUY HỌC






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




LUẬN VĂN THẠC SĨ: CÔNG NGHỆ THÔNG TIN










THÁI NGUYÊN - 2013



-ii-

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên







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






ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
=====  =====





PHẠM DUY HỌC



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

Chuyên ngành: Khoa học máy tính
Mã số: 60 48 01

LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH


NGƯỜI HƯỚNG DẪN KHOA HỌC:
PGS.TS. Nguyễn Văn Vỵ






Thái Nguyên – Năm 2013

-iii-


Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên


-iv-

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

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
-v-

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

MỤC LỤC
LỜI CẢM ƠN i
LỜI CAM ĐOAN iv
MỤC LỤC v
MỞ ĐẦU 1
1. Cơ sở khoa học và thực tiễn của đề tài 1
2. Đối tƣợng và phạm vi nghiên cứu 2
3. Cấu trúc của luận văn 2

Chƣơng 1: TỔNG QUAN VỀ FRAMEWORK 4
1.1. Khái niệm về framework 4
1.1.1. Định nghĩa về framework 5
1.1.2. Cấu trúc của một framework 6
1.1.3. Phân biệt framework với các khái niệm khác 8
1.1.4. Các đặc điểm của framework 10
1.2. Phân loại khung làm việc 11
1.2.1. Phân loại framework theo vùng vấn đề 11
1.2.2. Phân loại framework theo cấu trúc nội bộ 12
1.3. Các phƣơng pháp phát triển framework 14
1.3.1. Quy trình phát triển dựa trên các kinh nghiệm ứng dụng 14
1.3.2. Quy trình phát triển framework dựa trên phân tích miền vấn đề 15
1.3.3. Quy trình phát triển framework sử dụng các mẫu thiết kế 16
1.3.4. Quy trình phát triển framework chung 16
1.4. Giới thiệu khung làm việc Higgin Trust 18
1.4.1. Tổng quan về khung làm việc Higgin Trust 18
1.4.2. Các thành phần của Higgins 19
1.4.3. Mô hình dữ liệu của Higgins 23
1.5. Khung làm việc View-Model-Controler (VMC) 26
1
.5.1. MVC là gì? 26
1.5.2. Lịch sử MVC 26
1.5.3. Vai trò của các thành phần M-V-C trong Web framework 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
-vi-


Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

2.3. Đặc tả nghiệp vụ của bài toán tuyển sinh trực tuyến 36
2.3.1. Các tiến trình nghiệp vụ của hoạt động tuyển sinh 36
2.3.2. Các tác nhân, các đối tƣợng và các thao tác nghiệp vụ 38
2.3.3. Mô hình miền lĩnh vực 39
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. 41
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 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 56
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. 56
3.2. Mô hình cộng tác của các ca sử dụng trong gói 56
3.3. Biểu đồ tuần tự thực thi các ca sử dụng 60
3.4. Mô hình liên kết giữa các lớp 65
3.5. Mô tả chi tiết các lớp 66
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 69
4.1. Môi trƣờng cài đặt 69
4.1.1. Yêu cầu cấu hình phần cứng 69
4.1.2. Môi trƣờng phát triển, vận hành 69
4.2. Giới thiệu chƣơng trình 69
4.2.1. Các hệ con và chức năng 69
4.2.2. Một số giao diện chính 70
4.3. Hƣớng dẫn sử dụng một số chức năng chính 71
4.3.1. Chức năng đăng ký thi tuyển 71
4.3.2. Chức năng thông báo kết quả thi tuyển 71
4.3.3. Chức năng lịch thi, địa điểm thi, tra cứu phòng thi 71
KẾT LUẬN 72

TÀI LIỆU THAM KHẢO 74
-vii-

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên


BẢNG CÁC CHỮ VIẾT TẮT

Viết tắt
Tên đầy đủ
Ý nghĩa
CBTS
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ã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

-viii-


Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

API
Application Programming Interface

JMF
Java Media Framework

MVC
Model-View-Controller

PAC
Presentation-Abstraction-Controller

-ix-

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên


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 37
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ý 38
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 40
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 44
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 45
Hình 2.11: Mô hình miền gói tuyển sinh trực tuyến 55
Hình 3.1: Mô hình liên kết giữa các lớp trong gói đăng ký dự thi. 56
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 56
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 57
Hình 3.4: Biểu đồ cộng tác thực thi ca sử dụng xoá hồ sơ đăng ký dự thi 57
Hình 3.5: Biểu đồ cộng tác thực thi ca sử dụng thống kê báo cáo 57
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 57
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 58
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 58
Hình 3.9: Biểu đồ cộng tác thực thi ca sử dụng in giấy báo thi 58
Hình 3.10:Biểu đồ cộng tác thực thi ca sử dụng dồn túi 59
Hình 3.11: Biểu đồ cộng tác thực thi ca sử dụng cập nhật điểm 59
Hình 3.12: Biểu đồ cộng tác thực thi ca sử dụng tổng hợp điểm 59
Hình 3.13: Biểu đồ tuần tự cho thực thi ca sử dụng thêm hồ sơ 61
Hình 3.14: Biểu đồ tuần tự cho thực thi ca sử dụng tìm kiếm hồ sơ 61
Hình 3.15: Biểu đồ tuần tự cho thực thi ca sử dụng xoá hồ sơ 62
Hình 3.16: Biểu đồ tuần tự cho thực thi ca sử dụng sửa hồ sơ 62
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 63
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 63

Hình 3.19: Biểu đồ tuần tự cho thực thi ca sử dụng in giấy báo thi 64
Hình 3.20: Biểu đồ tuần tự cho thực thi ca sử dụng dồn túi 64
Hình 3.21: Biểu đồ tuần tự cho thực thi ca cập nhật điểm 65
Hình 3.22: Biểu đồ tuần tự cho thực thi ca tổng hợp điểm 65
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ơ 65
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 66
Hình 4.0: Giao diện trang chủ 70
Hình 4.1: Giao diện trang đăng ký tuyển sinh trực tuyến 71
Hình 4.2: Giao diện trang thông tin thí sinh 71

-x-

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

-1-

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

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-

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

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-

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

− 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-

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên


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-

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

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-

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

đá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:







Hình 1.1: Mối quan hệ giữa các thành phần khác nhau của framework
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
triển khai
triển khai
thừa kế
phản ánh khai
là 1 phần
-7-


Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

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-


Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

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-

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

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
-10-

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

Visual C++ đƣợc tạo với MFC framework, thậm chí có thể sử dụng các thành phần
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.
-11-

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

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
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-

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

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-

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

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.
-14-

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

1.3. Các phƣơng pháp phát triển framework
Quá trình phát triển một framework phụ thuộc vào kinh nghiệm của việc tổ chức
các thành phần trong miền vấn đề mà nó chỉ ra. Tổ chức có nhiều kinh nghiệm hơn
có thể lựa chọn quy trình phát triển hiện đại hơn vì họ sẽ có ít vấn đề hơn với miền
vấn đề. Một số quy trình khả thi cho việc phát triển framework đã đƣợc đƣa ra:
1.3.1. Quy trình phát triển dựa trên các kinh nghiệm ứng dụng
Hƣớng phát triển framework mang tính thực dụng đƣợc miêu tả [10]. Trƣớc
hết phát triển n ứng dụng, ít nhất từ hai ứng dụng trong miền vấn đề. Khi chúng làm
việc đúng thì việc lắp lại đầu tiên trong quy trình bắt đầu nhƣ hình 3.3. Phân loại
các đặc điểm chung trong cả hai ứng dụng và kiết xuất chúng thành một
framework. Để đánh giá liệu các đặc điểm đƣợc kiết xuất ra có đúng không, phát
triển lại các ứng dụng (n) dựa trên framework đó. Điều này có lẽ khá dễ dàng nếu
các đặc tính chung đƣợc phân loại đúng. Nếu việc phát triển lại các ứng dụng không
dễ dàng thì việc viết lại framework là cần thiết và sử dụng kinh nghiệm đã có để
phát triển bản tiếp theo của framework. Đây là cách thức cho lần lặp thứ hai và tất
cả các lần lặp tiếp theo cho ở trong hình 1.2. Dựa trên phiên bản mới của
framework, các ứng dụng mới có thể đƣợc phát triển. Các kinh nghiệm đạt đƣợc

thông qua các ứng dụng mới cũng đƣợc sử dụng nhƣ là đầu vào cho việc bảo trì
framework theo tiến độ. Toàn bộ quy trình đƣợc thể hiện trong hình 1.2.

Hình 1.2: Phát triển framework dựa trên kinh nghiệm ứng dụng [10]
-15-

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

1.3.2. Quy trình phát triển framework dựa trên phân tích miền vấn
đề
Một hƣớng tiếp cận phức tạp hơn cho việc phát triển một framework là phân
tích miền vấn đề. Quy trình phát triển đƣợc chỉ ra trong hình 1.3. Hoạt động đầu
tiên đó là phân tích miền vấn đề để phân loại và hiểu các thành phần trừu tƣợng nổi
bật trong miền vấn đề. Phân tích tên miền đòi hỏi phân tích các ứng dụng hiện có
(đây là một nhiệm vụ khó thực hiện) và chỉ có thể nếu tổ chức có các ứng dụng
đƣợc phát triển trong miền vấn đề. Việc phân tích các ứng dụng hiện có cũng sẽ
chiếm một tỷ lệ lớn ngân sách.

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]
Sau khi các lớp trìu tƣợng đƣợc nhận biết, phát triển framework cùng với một
ứng dụng kiểm tra, (sử dụng mũi tên nhƣ trong hình 1.3), sau đó điều chỉnh khung
làm việc nếu cần thiết. Tiếp theo, phát triển một ứng dụng thứ hai dựa trên
framework này. Thay đổi framework nếu cần thiết và sửa đổi ứng dụng đầu tiên để
nó có thể làm việc với những thay đổi đƣa ra. Hãy để framework vận hành thông
qua các hoạt động bảo trì có kế hoạch, trong khi đó tiếp tục phát triển thêm nhiều
ứng dụng dựa trên nó.

×