SlideShare une entreprise Scribd logo
1  sur  65
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƢỜNG ĐẠI HỌC DÂN LẬP HẢI PHÒNG
-------o0o-------
ĐỒ ÁN TỐT NGHIỆP
NGÀNH CÔNG NGHỆ THÔNG TIN
HẢI PHÒNG 2013
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƢỜNG ĐẠI HỌC DÂN LẬP HẢI PHÒNG
-------o0o-------
PHÁT TRIỂN ỨNG DỤNG TRÊN NỀN ECLIPSE
ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công nghệ Thông tin
HẢI PHÒNG - 2013
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƢỜNG ĐẠI HỌC DÂN LẬP HẢI PHÒNG
-------o0o-------
PHÁT TRIỂN ỨNG DỤNG TRÊN NỀN ECLIPSE
ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công nghệ Thông tin
Sinh viên thực hiện: Phạm Viết Mạnh
Giáo viên hƣớng dẫn:ThS Nguyễn Trịnh Đông
Mã số sinh viên: 1351010041
HẢI PHÒNG - 2013
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƢỜNG ĐẠI HỌC DÂN LẬP HẢI PHÒNG
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập - Tự do - Hạnh phúc
-------o0o-------
NHIỆM VỤ THIẾT KẾ TỐT NGHIỆP
Sinh viên: Phạm Viết Mạnh Mã SV: 1351010041
Lớp: CT1301 Ngành: Công nghệ Thông tin
Tên đề tài: Phát triển ứng dụng trên nền Eclipse
NHIỆM VỤ ĐỀ TÀI
1. Nội dung và các yêu cầu cần giải quyết trong nhiệm vụ đề tài tốt nghiệp
a. Nội dung
 T×m hiÓu kiÕn tróc cña Eclipse
 T×m hiÓu ph¸t triÓn phÇn mÒm theo h-íng thµnh phÇn
 Ph¸t triÓn phÇn mÒm víi Plugin
 X©y dùng øng dông thùc nghiÖm
b. Các yêu cầu cần giải quyết
Các phần mềm cần thiết để xây dựng
 Web Server: Xampp
 Hệ quản trị cơ sở dữ liệu MySQL
 Phần mềm Eclipse.
CÁN BỘ HƢỚNG DẪN ĐỀ TÀI TỐT NGHIỆP
Ngƣời hƣớng dẫn thứ nhất:
Họ và tên:Nguyễn Trịnh Đông
Học hàm, học vị: Thạc Sĩ
Cơ quan công tác: Trƣờng Đại Học Dân Lập Hải Phòng
Nội dung hƣớng dẫn: ……………………………………………………..
…………………………………………………………………………………
…………………………………………………………………………………
Ngƣời hƣớng dẫn thứ hai:
Họ và tên:………………………………………………………………………
Học hàm, học vị: ………………………………………………………………
Cơ quan công tác: ……………………………………………………………..
Nội dung hƣớng dẫn: ………………………………………………………….
…………………………………………………………………………………
…………………………………………………………………………………
Đề tài tốt nghiệp đƣợc giao ngày tháng năm 2013
Yêu cầu phải hoàn thành trƣớc ngày tháng năm 2013
Đã nhận nhiệm vụ: Đ.T.T.N
Sinh viên
Đã nhận nhiệm vụ: Đ.T.T.N
Cán bộ hƣớng dẫn Đ.T.T.N
ThS Nguyễn Trịnh Đông
Hải Phòng, ngày ............tháng.........năm 2013
HIỆU TRƢỞNG
GS.TS.NGƯT Trần Hữu Nghị
Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng
Phạm Viết Mạnh – CT1301 2
PHẦN NHẬN XÉT TÓM TẮT CỦA CÁN BỘ HƢỚNG DẪN
1.Tinh thần thái độ của sinh viên trong quá trình làm đề tài tốt nghiệp:
........................................................................................................................
........................................................................................................................
........................................................................................................................
........................................................................................................................
........................................................................................................................
........................................................................................................................
2.Đánh giá chất lƣợng của đề tài tốt nghiệp (so với nội dung yêu cầu đã
đề ra trong nhiệm vụ đề tài tốt nghiệp)
........................................................................................................................
........................................................................................................................
........................................................................................................................
........................................................................................................................
........................................................................................................................
........................................................................................................................
........................................................................................................................
3. Cho điểm của cán bộ hƣớng dẫn:
( Điểm ghi bằng số và chữ )
........................................................................................................................
........................................................................................................................
Ngày.......tháng.........năm 2013
Cán bộ hƣớng dẫn chính
( Ký, ghi rõ họ tên )
Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng
Phạm Viết Mạnh – CT1301 3
Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng
Phạm Viết Mạnh – CT1301 4
PHẦN NHẬN XÉT ĐÁNH GIÁ CỦA CÁN BỘ CHẤM PHẢN BIỆN ĐỀ TÀI TỐT
NGHIỆP
1. Đánh giá chất lƣợng đề tài tốt nghiệp (về các mặt nhƣ cơ sở lý luận, thuyết minh
chƣơng trình, giá trị thực tế, ...)
..................................................................................................................................................
..................................................................................................................................................
..................................................................................................................................................
..................................................................................................................................................
..................................................................................................................................................
..................................................................................................................................................
..................................................................................................................................................
..................................................................................................................................................
..................................................................................................................................................
..................................................................................................................................................
..................................................................................................................................................
..................................................................................................................................................
..................................................................................................................................................
2. Cho điểm của cán bộ phản biện
( Điểm ghi bằng số và chữ )
..................................................................................................................................................
Ngày.......tháng.........năm 2013
Cán bộ chấm phản biện
( Ký, ghi rõ họ tên )
Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng
Phạm Viết Mạnh – CT1301 5
MỤC LỤC
MỤC LỤC................................................................................................. 1
DANH MỤC CÁC HÌNH......................................................................... 8
DANH SÁCH THUẬT NGỮ................................................................. 10
LỜI CẢM ƠN ......................................................................................... 11
GIỚI THIỆU ........................................................................................... 12
CHƢƠNG 1: MỞ ĐẦU.......................................................................... 13
1.1 Giới thiệu Eclipse .......................................................................... 13
1.2 Lịch sử phát triển ........................................................................... 15
1.3 Kiến trúc Eclipse............................................................................ 16
CHƢƠNG 2: KIẾN TRÚC CỦA PLUGIN TRONG ECLIPSE............ 22
2.1 Giới thiệu ....................................................................................... 22
2.2 Phát triển phần mềm dựa trên thành phần ..................................... 23
2.2.1 Mô hình trừu tƣợng.................................................................. 23
2.2.2 Cú pháp.................................................................................... 24
2.2.3 Ngữ nghĩa ................................................................................ 24
2.2.4 Kết hợp (composition)............................................................. 25
2.3 Kiến trúc Plugin trong Eclipse....................................................... 26
2.3.1 Giới thiệu về Plugin và extension point .................................. 26
2.3.2 Điểm mở rộng Plugin (Plugin Extension Points).................... 28
2.3.3 Tiến trình làm việc của Plugin................................................. 28
2.3.4 Tập tin cấu hình (manifest) của Plugin.................................... 29
2.3.5 Plugin fragment và feature ...................................................... 31
2.3.6 Đóng gói Plugin....................................................................... 32
Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng
Phạm Viết Mạnh – CT1301 6
2.3.7 Perspective, views, editor ........................................................ 32
2.4 Ngôn ngữ lập trình java ................................................................. 33
2.4.1 Lịch sử phát triển của Java ...................................................... 33
2.4.2 Máy ảo Java (Java Virtual Machine)....................................... 33
2.4.3 Một số đặc điểm ngôn ngữ lập trình Java ............................. 35
CHƢƠNG 3: CHƢƠNG TRÌNH THỬ NGHIỆM................................. 36
3.1 Mô tả yêu cầu bài toán................................................................... 36
3.2 Xác định mô hình nghiệp vụ.......................................................... 37
3.2.1 Các chức năng nghiệp vụ......................................................... 37
3.2.2 Biểu đồ use case tổng quan...................................................... 38
3.2.3 Mô tả khái quát các quan hệ con ............................................. 38
3.2.4 Các mô hình ca sử dụng chi tiết .............................................. 39
3.3 Phân tích hệ thống.......................................................................... 42
3.3.1 Phân tích gói ca sử dụng “Cập nhật dữ liệu”........................... 42
3.3.2 Phân tích gói ca sử dụng “Lập thời khóa biểu”....................... 48
3.4 Thiết kế hệ thống ........................................................................... 50
3.5 Thuật toán sử dụng......................................................................... 51
3.6 Kết quả của chƣơng trình minh họa............................................... 51
3.7. Giao diện của chƣơng trình........................................................... 52
3.7.1. Giao diện chính của chƣơng trình. ......................................... 52
3.7.2 Giao diện đăng nhập................................................................ 52
3.7.3 Giao diện phòng học................................................................ 53
3.7.4 Giao diện học phần.................................................................. 54
3.7.5 Giao diện khoa viện................................................................. 55
3.2.6 Giao diện niên khóa................................................................. 56
Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng
Phạm Viết Mạnh – CT1301 7
3.7.7 Giao diện trang thiết bị ............................................................ 57
3.7.8 Giao diện thời khóa biểu.......................................................... 58
KẾT LUẬN............................................................................................. 59
TÀI LIỆU THAM KHẢO....................................................................... 60
Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng
Phạm Viết Mạnh – CT1301 8
DANH MỤC CÁC HÌNH
Hình 1: Mô hình Eclipse........................................................................ 13
Hình 2: Kiến trúc tổng quan Eclipse....................................................... 17
Hình 3: Kiến trúc Plugin......................................................................... 22
Hình 4: Mô hình trừu tƣợng của thành phần .......................................... 23
Hình 5:Ví dụ về thành phần với các kiểu đầu vào - ra ........................... 24
Hình 6: Sự kết hợp các thành phần trong hệ thống................................. 25
Hình 7: Plugin và extension.................................................................... 26
Hình 8: Plugin trong Workbench và Workspace.................................... 26
Hình 9: Tiến trình làm việc của Plugin................................................... 28
Hình 10: Kiến trúc Java Virtual Machine............................................... 34
Hình 11: Biểu đồ Use case tổng quan..................................................... 38
Hình 12: Biểu đồ ca sử dụng gói “Cập nhật dữ liệu” ............................. 39
Hình 13: Biểu đồ ca sử dụng gói “Lập thời khóa biểu”.......................... 41
Hình 14: Biểu đồ tuần tự thực thi ca sử dụng “Cập nhật phòng học” .... 42
Hình 15: Biểu đồ cộng tác thực thi ca sử dụng “Cập nhật phòng học”.. 43
Hình 16: Biểu đồ tuần tự thực thi ca sử dụng “Cập nhật thiết bị”.......... 43
Hình 17: Biểu đồ cộng tác thực thi ca sử dụng “Cập nhật thiết bị” ....... 44
Hình 18: Biểu đồ tuần tự thực thi ca sử dụng “Cập nhật niên khóa” ..... 44
Hình 19: Biểu đồ cộng tác thực thi ca sử dụng “Cập nhật niên khóa”... 45
Hình 20: Biểu đồ tuần tự thực thi ca sử dụng “Cập nhật học phần” ...... 45
Hình 21: Biểu đồ cộng tác thực thi ca sử dụng “Cập nhật học phần”.... 46
Hình 22: Biểu đồ tuần tự thực thi ca sử dụng “Cập nhật khoa” ............. 46
Hình 23: Biểu đồ cộng tác thực thi ca sử dụng “Cập nhật khoa”........... 47
Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng
Phạm Viết Mạnh – CT1301 9
Hình 24: Mô hình phân tích gói ca ”Cập nhật dữ liệu ”......................... 47
Hình 25: Biểu đồ tuần tự thực thi ca sử dụng “Sắp thời khóa biểu” ...... 48
Hình 26: Biểu đồ cộng tác thực thi ca sử dụng “Sắp thời khóa biểu”.... 48
Hình 27: Biểu đồ tuần tự thực thi ca sử dụng “In thời khóa biểu”......... 49
Hình 28: Biểu đồ cộng tác thực thi ca sử dụng “In thời khóa biểu”....... 49
Hình 29: Mô hình phân tích gói ca “Lập thời khóa biểu” ...................... 50
Hình 30: Mô hình cơ sở dữ liệu.............................................................. 50
Hình 31: Giao diện chính của Plugin thời khóa biểu.............................. 52
Hình 32: Giao diện đăng nhập ................................................................ 52
Hình 33: Giao diện phòng học................................................................ 53
Hình 34 Giao diện học phần ................................................................... 54
Hình 35: Giao diện khoa viện................................................................. 55
Hình 36: Giao diện niên khóa ................................................................. 56
Hình 37: Giao diện trang thiết bị ............................................................ 57
Hình 38:Giao diện thông tin thời khóa biểu ........................................... 58
Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng
Phạm Viết Mạnh – CT1301 10
DANH SÁCH THUẬT NGỮ
STT Thuật ngữ Mô tả
1 Eclipse Public License (EPL) Giấy phép công cộng Eclipse
2 Integrated Development
Enviroment (IDE)
Môi trƣờng phát triển Java tích
hợp Java
3 Plugin Development Environment
(PDE)
Môi trƣờng phát triển trình cắm
thêm
4 Java Runtime Environment (JRE) Môi trƣờng thời gian thực
5 Java Developer Kit (JDK) Bộ công cụ cho lập trình viên
Java
6 The Platform runtime Nền tảng thời gian thực thi
7 Extension point Điểm mở rộng
8 Workbench Bàn làm việc
Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng
Phạm Viết Mạnh – CT1301 11
LỜI CẢM ƠN
Trƣớc hết em xin bày tỏ tình cảm và lòng biết ơn đối với Th.S Nguyễn
Trịnh Đông – Khoa Công nghệ thông tin – Trƣờng Đại học Dân Lập Hải
Phòng, ngƣời đã dành cho em rất nhiều thời gian quý báu, trực tiếp hƣớng dẫn
tận tình giúp đỡ, chỉ bảo em trong suốt quá trình làm đồ án tốt nghiệp.
Em xin chân thành cảm ơn tất cả các thầy cô giáo trong Khoa Công nghệ
thông tin - Trƣờng ĐHDL Hải Phòng, chân thành cảm ơn các thầy giáo, cô
giáo tham gia giảng dạy và truyền đạt những kiến thức quý báu trong suốt
thời gian em học tập tại trƣờng, đã đọc và phản biện đồ án của em giúp em
hiểu rõ hơn các vấn đề mình nghiên cứu, để em có thể hoàn thành đồ án này.
Em xin cảm ơn GS.TS.NGƢT Trần Hữu Nghị Hiệu trƣởng Trƣờng Đại
học Dân lập Hải Phòng, Ban giám hiệu nhà trƣờng, Bộ môn tin học, các
Phòng ban nhà trƣờng đã tạo điều kiện tốt nhất trong suốt thời gian học tập và
làm tốt nghiệp.
Tuy có nhiều cố gắng trong quá trình học tập, trong thời gian thực tập
cũng nhƣ trong quá trình làm đồ án nhƣng không thể tránh khỏi những thiếu
sót, em rất mong đƣợc sự góp ý quý báu của tất cả các thầy giáo, cô giáo cũng
nhƣ tất cả các bạn để kết quả của em đƣợc hoàn thiện hơn.
Em xin chân thành cảm ơn.
Hải Phòng, tháng 12 năm 2012
Sinh viên
Phạm Viết Mạnh
Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng
Phạm Viết Mạnh – CT1301 12
GIỚI THIỆU
Ngày nay, các hệ thống thông tin có khuynh hƣớng ngày càng phức tạp,
quản lý hầu hết các lĩnh vực trong đời sống xã hội, đƣợc triển khai trên nhiều
nền tảng công nghệ khác nhau. Việc phát triển những hệ thống nhƣ thế đòi
hỏi mất nhiều chi phí, thời gian, nguồn lực tài chính cũng nhƣ con ngƣời. Một
xu hƣớng xây dựng những hệ thống phức tạp dựa trên các thành phần phần
mềm có sẵn đang đƣợc các nhà nghiên cứu quan tâm và nhiều công ty lớn
trên thế giới đầu tƣ phát triển. Phát triển các phần mềm dựa trên thành phần
có nhiều ƣu điểm nhƣ: Giảm chi phí, rút ngắn thời gian triển khai, triển khai
đƣợc trên nhiều nền tảng công nghệ khác nhau. Cụ thể, các thành phần phần
mềm đƣợc nhiều hãng phần mềm cung cấp. Khi xây dựng hệ thống mới các
nhà thiết kế chỉ cần kiểm tra xem thành phần phần mềm nào phù hợp với yêu
cầu của hệ thống mới thì sẽ lựa chọn và ghép chúng lại với nhau. Các Plugin
trong Eclipse là một hƣớng xây dựng phần mềm dựa trên thành phần.Eclipse
cung cấp nhiều tính năng cho ngƣời phát triển bằng các ngôn ngữ lập trình
phổ biến hiện nayJava, C, C++, Python, …. Eclipse trở thành lõi để phát triển
ứng dụng. Việc mở rộng các tính năng của Eclipse bằng các Plugin đã đem lại
cho Eclipse sức mạnh và tính thích nghi cao trong lĩnh vực phát triển phần
mềm. Vì vậy, trong đợt tốt nghiệp này em chọn đề tài: “Phát triển ứng dụng
trên nền Eclipse”để tìm hiểu và nghiên cứu.
Nội dung khóa luận gồm có các phần sau:
Chƣơng 1:Giới thiệu sự phát triển chung về phát triển phần mềm dựa
trên thành phần, đặc biệt sự phát triển các Plugin trong
Eclipse.
Chƣơng 2: Trình bày về kiến trúc của Plugin trong Eclipse
Chƣơng 3: Trình bày chương trình thử nghiệm sắp xếp thời khóa
biểubằng plugin của eclipse.
Kết luận
Tài liệu tham khảo
Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng
Phạm Viết Mạnh – CT1301 13
CHƢƠNG 1: MỞ ĐẦU
Trong chƣơng này, khóa luận trình bày về chƣơng trình Eclipse, lịch sử
phát triển của Eclipse và kiến trúc nền tảng của Eclipse.
1.1Giới thiệu Eclipse
Eclipse là một nền tảng có kiến trúc mở dựa trên Java, có thể mở rộng để
phát triển các ứng dụng. Eclipse bao gồm tập hợp các dịch vụ dùngđể xây
dựng các ứng dụng dựa trên các thành phần cắm thêm (Plugin)vàcho phép các
thành phần cắm thêm tạo thành ứng dụng riêng biệt cho từng mục đích khác
nhau, trong đó phải kể đến bộ công cụ phát triển Java (JDT - Java
Development Tools).
Các ứng dứng
Plugin
1
Plugin
2
Plugin
3
Plugin n
Eclipse
Java Virtual Machine
Linux MacOS Window
Nứn tứng
khác
Hình 1: Mô hình Eclipse
Eclipse sử dụng môi trƣờng phát triển thành phần cắm thêm (PDE-
Plugin Development Environment)bao gồm một không gian làm việc cơ bản
và một hệ thống thành phần cắm thêm mở rộng tƣơng thích với mọi môi
trƣờng và mọi hệ điều hành. Eclipsecòn cho phép xây dựng các ứng dụng,
công cụ tích hợp vào môi trƣờng Eclipse.Điều đó trở thành mối quan tâm chủ
yếu của những nhà phát triển muốn mở rộng Eclipse. Nhà phát triển sẽ giảm
chi phí đầu tƣ phát triển ứng dụng, rút ngắn thời gian triển khai ứng dụng khi
áp dụng trên nhiều nền tảng công nghệ khác nhau.
Sự bình đẳng và nhất quán luôn có trong Java. Eclipse đƣợc viết bằng
ngôn ngữ lập trình Java và đƣợc sử dụng để phát triển các ứng dụnghỗ trợ cho
các ngôn ngữ lập trình (Ada,C, C++,COBOL,Fortran,Haskell,JavaScript,
Lasso,Perl, PHP, Python, R, Ruby...) cũng nhƣ môi trƣờng phát triển nhƣ
Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng
Phạm Viết Mạnh – CT1301 14
Eclipse Java development tools (JDT) cho JavavàScala, EclipseCDT
cho C/C++ và Eclipse PDT cho PHP,Android Development Tools (ADT)
Plugin cho Android.
Eclipse là mã nguồn mở
Phần mềm mã nguồn mở là phần mềm đƣợc phát hành với giấy phép
nhằm bảo đảm cấp cho ngƣời dùng các quyền tự do nghiên cứu, chỉnh sửa và
phân phối lại phần mềm. Nói chung, luật bản quyền (copyright) cho phép tác
giả cấm ngƣời khác tái tạo, sửa đổihoặc phân phối các bản sao tác phẩm của
tác giả đó. Ngƣợc lại, một tác giả, nhờ mô hình cấp phép copyleft, sẽ trao cho
mọi ngƣời bản sao tác phẩm với quyền tái tạo, sửa đổi hoặc phân phối tác
phẩm miễn là tất cả những bản sao hoặc bản sửa đổi mới đó cũng phải bị ràng
buộc bởi mô hình cấp phép copyleft. Vì điều này trên thực tế đã đặt mục đích
của bản quyền lên đầu, sử dụng quyền tác giả để cấp quyền cho ngƣời dùng,
thay vì dành riêng chúng cho các nhà phát triển phần mềm. Copyleft thƣờng
đƣợc miêu tả là "giữ bản quyền".
OSI-Open Software Initiative là một tổ chức phi lợi nhuận định nghĩa
nguồn mở một cách rõ ràng và cấp các chứng nhận cho các giấy phép đáp ứng
đƣợc các tiêu chuẩn của nó. Eclipse đƣợc cấp phép theo Giấy phép công cộng
Eclipse (EPL- Eclipse Public License) phiên bản V1.0 đƣợc OSI phê duyệt.
Điều đótạo điều kiện thuận lợi cho việc sử dụng Eclipse phục vụ mục đích
thƣơng mại trong khi vẫn bảo đảm bản quyền tác giả theo giấy phép mã
nguồn mở.
Các nàh phát triển tạo ra các thành phần cắm thêm cho Eclipse hoặc
những ngƣời sử dụng Eclipse làm cơ sở cho phát triển phần mềm ứng dụng
đƣợc phép phát hành bất kỳ mã Eclipse nào mà họ sử dụng hoặc sửa đổi theo
EPL.
Bản chất mã nguồn mở làm cho Eclipse sẵn dùng, miễn phí. Mã nguồn
mở khuyến khích sự đổi mới và mang đến một cơ hội cho các nhà phát triển,
ngay cả với các nhà phát triển thƣơng mại.Đồng thời, có thể đóng góp trở lại
cơ sở mã nguồn mở chung. Có nhiều nguyên nhân, nhƣng có lẽ điều quan
trọng nhất là càng nhiều nhà phát triển nhiều đóng góp cho dự án, dự án càng
Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng
Phạm Viết Mạnh – CT1301 15
trở nên có giá trị hơn cho mọi ngƣời. Khi dự án càng trở nên có ích hơn, càng
nhiều nhà phát triển sẽ sử dụng nó và tạo ra một cộng đồng xung quanh nó,
giống nhƣ những cộng đồng đã đƣợc tạo nên xung quanh Apache và Linux.
1.2Lịch sử phát triển
Dự án Eclipse (EclipseProject) ban đầu đƣợc IBM thành lập vào tháng
11 năm 2001 và đƣợc hiệp hội các nhà cung cấp phần mềm hỗ trợ. Quỹ
Eclipse đã đƣợc thành lập vào tháng 1 năm 2004 nhƣ là một tổ chức phi lợi
nhuận, hoạt động độc lập. Nó đƣợc thành lập nhằm cho phép một cộng đồng
minh bạch, mở và trung lập đối với các nhà phát triển phần mềmcó sử
dụngnền tảngEclipse. Hiện nay, cộng đồng Eclipse hội tụ nhiều cá nhân và tổ
chức từ nhiều lĩnh vực trong công nghiệp phần mềm.
Nhiều chƣơng trình của Eclipse đã đƣợc triển khai bởi IBM trƣớc khi dự
án Eclipse đƣợc tạo ra. Ngƣời tiền nhiệm của Eclipse là VisualAge đã đƣợc
xây dựng có sử dụng Smalltalk trong một môi trƣờng phát triển đƣợc gọi là
Envy. Sau khi Java xuất hiện vào những năm 90, IBM đã phát triển mộtmáy
ảo mà nó đã làm việc với cả Smalltalk và Java. Sự phát triển nhanh chóng của
Java và những ƣu điểm của nó cùng với sự mở rộng của mạng lƣới Internet đã
buộc IBM phải xem xét tới việc bỏ máy ảo đôi này và xây dựng một nền tảng
mới dựa trên Java từ đầu. Sản phẩm cuối cùng là Eclipseđã tiêu tốn của IBM
khoảng 40 triệu USD vào năm 2001.
Cuối năm 2001, IBMhợp tácBorland tạo ra quỹ Eclipse phi lợi nhuận,
mở ra với thế giới phần mềm nguồn mở. Nhóm các doanh nghiệp này đã dần
dần liên kết đƣợc với các công ty phát triển phần mềm toàn cầu quan trọng
nhƣ: Oracle, Rational Software, Red Hat, SuSE, HP, Serena, Ericson và
Novell. Trong đó hai công ty lớn cạnh tranh với IBM là Microsoft và Sun
Microsystem.Microsoft đã bị loại bỏ vì sự độc quyền của hãng đối với thị
trƣờng và Sun Microsystem đã có IDE của riêng hãngvới sản phẩm cạnh
tranh là NetBeans. Trên thực tế, cái tên Eclipse đã đƣợc chọn vì mục tiêu là
để tạo ra một IDE có khả năng cạnh tranh với Visual Studio (của Microsoft)
và NetBeans (của Sun Microsystem).
Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng
Phạm Viết Mạnh – CT1301 16
Phiên bản ổn định mới nhất của Eclipse là sẵn sàng cho các hệ điều hành
Windows, Linux, Solaris, AIX, HP-UX và Mac OS X. Tất cả các phiên bản
của Eclipse cần phải có một máy chủ ảo Java – JVM (Java Virtual Machine)
đƣợc cài đặt trong hệ thống, môi trƣờng thực thi Java - JRE (Java Runtime
Environment) hoặc bộ công cụ cho lập trình viên Java - JDK (Java Developer
Kit) của Sun.
1.3 Kiến trúc Eclipse
Kiến trúc của Eclipse đƣợc xây dựng dựa trên hai thành phần chính:
thành phần lõi (core) và các thành phần gắn thêm (plugin).
 Thành phần lõibao gồm các chức năng, dịch vụ mà các hệ phát
triển ứng dụng phải có nhƣ chức năng cung cấp giao diện, trình
soạn thảo văn bản, gỡ lỗi… cần cho mọi nền tảng lập trình (cần
cho các plugin).
 Thành phần gắn thêm bao gồm nhiều thành phần dễ dàng tích hợp
vào nhiều ứng dụng chạy trên nền Eclipse.Các chức năng của
thành phần lõi tách biệt với các chức năng của phần giao diện.
Kiến trúc Eclipse đƣợc thiết kế và xây dựng để đáp ứng các yêu cầu sau:
 Hỗ trợ việc xây dựng các công cụ khác nhau để phát triển ứng
dụng.
 Hỗ trợ các công cụ để thao tác trên bất kỳ loại nội dung nào.Ví
dụ:HTML, Java, C, C++, JSP, PHP, EJB, XML và GIF.
 Hỗ trợ tích hợp các công cụ một cách dễ dàng.
 Hỗ trợ môi trường phát triển ứng dụng giao diện và không giao
diện.
 Chạy được trên nhiều hệ điều hành, gồm Window, Linux,
Android,…
Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng
Phạm Viết Mạnh – CT1301 17
Kiến trúc nền tảng Eclipse cung cấp các công cụ cùng cơ chế sử dụng và
quy định để có thể tích hợp các công cụ một cách dễ dàng. Những cơ chế này
đƣợc thể hiện thông qua giao diện API, lớp và phƣơng thức. Ngoài ra, nền
tảng Eclipse còn cung cấp các framework để dễ dàng phát triển các công cụ
mới.
EclipseSDKbao gồm 3 phần chính:
 Platform
 JavaDevelopment Toolkit (JDT)
 PluginDevelopment Environment (PDE)
Với JDT, Eclipse là một môi trƣờng hỗ trợ phát triển Java. JDT cũng có
thể đƣợc coi nhƣ là một Plugin cho Eclipse nhƣ là một môi trƣờng lập trình
tích hợp (Java IDE -Integrated Development Enviroment).PDE hỗ trợ việc
mở rộng Eclipse, tích hợp các Plugin vào EclipsePlatform.
EclipsePlatform là nền tảng của toàn bộ phần mềm Eclipse, cung cấp
những dịch vụ cần thiết cho việc tích hợp những bộ công cụ phát triển phần
mềm dƣới dạng Plugin.EclipsePlatform đƣợc xây dựng dựa trên cơ chếphát
hiện, tích hợp và chạy các thành phần gắn thêm. Plugin là thành phần gắn
thêm có thể hoạt động độc lập hoặc cùng với các thành phần khác. Thông
thƣờng, một ứng dụng có thể tổ hợp nhiều thành phần gắn thêm, mỗi thành
phần gắn thêm này lại nối với các thành phần gắn thêm khác tùy vào mục
đích sử dụng
Hình2: Kiến trúc tổng quan Eclipse
Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng
Phạm Viết Mạnh – CT1301 18
1. Nền tảng thời gian thựcthi (The Platform runtime):
Công việc chính của nền tảng thời gian thực thilà quản lýPlugin đang có
trong thƣ mục Plugin của Eclipse.Mỗi Plugin đều có 1 tập tin Manifest liệt kê
những kết nối mà Plugin cần.Plugin chỉ đƣợc tải vào Eclipse khi thực sự cần
thiết để giảm lƣợng tài nguyên yêu cầu và thời gian khởi tạo.
2. Không gian làm việc (The Workspace) :
Không gian làm việc quản lý tài nguyên ngƣời dùng đƣợc tổ chức dƣới
dạng Project. Mỗi dự án là một thƣ mục con trong thƣ mục Không gian làm
việc. Mỗi dự án có chứa các tập tin và thao tác của ngƣời dùng. Tất cả các file
trong không gian làm việc đƣợc trực tiếp tiếp cận với các chƣơng trình chuẩn
và công cụ cơ bản của hệ điều hành. Các công cụ tích hợp với nền tảng đƣợc
cung cấp API để xử lý nguồn tài nguyên trong không gian làm việc (các dự
án, các tập tin, và thƣ mục). Tài nguyên đƣợc đại diện bởi các đối tƣợng thích
ứng để các bên khác có thể mở rộng hành vi của họ.
Không gian làm việc bảo quản cấp thấp lịch sử những sự thay đổi tài
nguyên, tránh thất thoát tài nguyên ngƣời dùng. Tài nguyên đƣợc tổ chức dƣới
dạng cấu trúc cây rất hữu ích và hiệu quả.Từ đó, mỗi nút dữ liệu chỉ ra nơi mà
các công cụ cần thêm, loại bỏ, hoặc làm mới.
Không gian làm việcthông báo những công cụ cần thiết cho việc thay đổi
tài nguyên. Đặc tính này cho phép các nhà xây dựng một số dự án mở rộng
đƣợc đăng ký trên cùng một dự án và cung cấp nhiều cách để kích hoạt toàn
dự án và không gian làm việc với dự án. Một không gian làm việctự độngxây
dựng các tính năng, tự động kích hoạt các hoạt động cần thiết trong quá trình
xây dựngsau mỗi lần sửa đổi tài nguyên (hoặc hàng loạt hoạt động).
3. Bàn làm việc (Workbench):
Bàn làm việc là giao diện đồ họa ngƣời dùng của Eclipse, gồm có
Standard Widget Toolkit (SWT) và JFace. Eclipse không hoàn toàn bắt buộc
phải sử dụng SWT hay JFace để lập trình giao diện, ngƣời lập trình vẫn có thể
sử dụngAWT hay SWING của Java thông qua việc cài đặt các Plugins.
Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng
Phạm Viết Mạnh – CT1301 19
SWT (Standard Widget Toolkit) là một gói công cụ mã nguồn mở đƣợc
phát triển bởi IBM, cung cấp cho các lập trình viên Java giải pháp để phát
triển giao diện đồ họa ngƣời dùng. SWT cung cấp một hệ điều hành độc lập
thông thƣờng API cho các vật dụng và đồ họa thực hiện một cách mà cho
phép tích hợp chặt chẽ với hệ thống cửa sổ cơ bản. Toàn bộ giao diện ngƣời
dùng của EclipsePlatform, và các thành phần cắm vào nó, đều sử dụng SWT
để trình bày thông tin cho ngƣời sử dụng.
JFace là gói công cụ để xây dựng giao diện ngƣời dùng cấp cao, JFace
là tầng trên cùng của SWT, cung cấp các lớp thuộc mô hình MVC (Model-
View- Controller) để phát triển các ứng dụng đồ họa dễ dàng hơn.
Cơ chế hoạt động cho phép ngƣời sử dụng các lệnh đƣợc xác định độc
lập từ các điều khiển trong giao diện ngƣời dùng. Một hành động đại diện cho
một lệnh có thể đƣợc kích hoạt bởi ngƣời dùng thông qua một nút,menu, hoặc
các núttrên một thanh công cụ.
Bàn làm việc
Không giống nhƣ SWT và JFace, đƣợc cả hai mục đích chung giao diện
ngƣời dùng bộ công cụ, bàn làm việc cung cấp các tính cách giao diện ngƣời
dùng của nền tảng Eclipse và cung cấp các cấu trúc trong đó các công cụ
tƣơng tác với ngƣời sử dụng. Bởi vì điều này và xác định vai trò trung tâm,
bàn làm việclà đồng nghĩa với Nền tảng Eclipse giao diện ngƣời dùng nhƣ
một toàn thể và với các cửa sổ chính của ngƣời dùng thấy khi các nền tảng
đang chạy. Các APIWorkbench phụ thuộc vào các APISWTít hơn vào các
APIJFace. Việc thực hiện Workbenchđƣợc xây dựng bằng cách sử dụng cả
hai SWT và JFace; Java AWT và Swing không đƣợc sử dụng
Trong EclipsePlatform, giao diện ngƣời dùng dựa trên các trình soạn
thảo, khung nhìn, và phối cảnh. Từ quan điểm của ngƣời dùng, các mẫu và
khung nhìn cần đƣợc nhìn thấy trên màn hình.
Trình soạn thảocho phép ngƣời dùng mở, chỉnh sửa và lƣu các đối
tƣợng. Một vòng đời đƣợc mở, lƣu gần giống nhƣ các công cụ hệ thống tập
tin, nhƣng đƣợc tích hợp chặt chẽ hơn vào khung làm việc. Khi hoạt động,
Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng
Phạm Viết Mạnh – CT1301 20
một trình soạn thảocó thể bổ sung các lệnh lên thanh menuvà thanh công cụ.
Nền tảng này cung cấp một trình soạn thảo tiêu chuẩn cho các nguồn tài
nguyên văn bản, nhiều trình soạn thảocụ thể đƣợc cung cấp bởi các Plugins.
Khung nhìn cung cấp thông tin về một số đối tƣợng mà ngƣời dùng đang
làm việc tại khung làm việc. Một khung nhìn có thể hỗ trợ một mẫu bằng cách
cung cấp thông tin về các tài liệu đang đƣợc chỉnh sửa. Một khung nhìn có thể
làm tăng thêm các cách nhìn khác nhau bằng cách cung cấp thông tin về các
đối tƣợng đang đƣợc chọn.
Một cửa sổ làm việc có thể có một số khung nhìn riêng biệt, chỉ một
trong số đó có thể nhìn thấy tại bất kỳ thời điểm nào. Mỗi điểm có khung nhìn
riêng và mẫu của nó đƣợc sắp xếp để trình bày trên màn hình
4. Đội hỗ trợ (Team support):
Nền tảng Eclipse cho phép một dự án trong vùng làm việc đặt theo phiên
bản và quản lý cấu hình với một nhóm thƣ mục liên quan. Nền tảng này có
các điểm mở rộng và một API cung cấp kho lƣu trữ cho phép các thành
phầnmới đƣợc gắn vào.
Các chức năng đƣợc cung cấp bởi một sản phẩm cụ thểluôn ảnh hƣởng
đến công việc của ngƣời dùng, ví dụ, bằng cách thêm vào các bƣớc công khai
để lấy tập tin từ các kho lƣu trữ, trả lại các tập tin đƣợc cập nhật vào kho, và
để so sánh các phiên bản tập tin khác nhau. Theo đó, các nền tảng Eclipse có
một cái nhìn tổng quan và cho phép mỗi nhà cung cấp một số thƣ mục để xác
định công việc riêng của mình để ngƣời dùng quen thuộc với nhóm sản phẩm
lƣu trữ có thể nhanh chóng học cách sử dụng nó từ bên trong Eclipse.
5. Trợ giúp (Help):
Cung cấp hệ thống tài liệu mở rộng, có thể là định dạng HTML hay
XML.Những ngƣời muốn phát triển Eclipse sẽ sử dụng PDE
(PluginDevelopmentEnvironment)để bổ sung thêm các Plugin mới.
Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng
Phạm Viết Mạnh – CT1301 21
TIỂU KẾT CHƢƠNG 1
Chƣơng 1 đã cung cấp thông tin tổng quát về lịch sử phát triển và ƣu
nhƣợc điểm của Eclipse. Các đặc điểm này đƣợc tóm tắt nhƣ sau:
Ưu điểm sau:
 Khả năng mở rộng, phụ thuộc vào các thành phần gắn thêm
 Các thành phần gắn thêmđƣợc xây dựng thích nghi với việc phát
triển trênmọi ứng dụng, từ ứng dụng trong doanh nghiệp, ứng
dụng trên máy tính cá nhân cho đến các ứng dụng nhúng cho các
thiết bị.
 Những ngƣời phát triển có thể tự phát triển các thành phần gắn
thêm theo yêu cầu riêng của họ.
Nhược điểm:
Ngƣời phát triển cần có hiểu biết về kiến trúc Eclipse để biết khi
nàocần gắn thêm (hay gỡ ra) hoặc gắn thêm thành phần nào.
Ngoài ra, các thành phần gắn thêm (các dự án) không ngừng phát
triển nên phải biết lúc nào thì nâng cấp lên phiên bản mới hơn.
Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng
Phạm Viết Mạnh – CT1301 22
CHƢƠNG 2:KIẾN TRÚC CỦA PLUGIN TRONG ECLIPSE
Trong chƣơng này,khóa luận trình bày về kiến trúc Plugin nói
chung,kiến trúc Plugin trong Eclipse, phát triển phần mềm dựa trên các thành
phần phần mềm.
2.1 Giới thiệu
Plugin còn đƣợc gọi là trình cắm, hay phần bổ trợ là một thành phần
giúp phần mềm ứng dụng thêm những tính năng cụ thể. Nếu đƣợc hỗ trợ,
Plugin cho phép tùy biến các chức năng của một ứng dụng.
Các phần mềm ứng dụng hỗ trợPlugin vì nhiều lý do. Một số lý do chính
bao gồm:
 Cho phép các nhà phát triển thứ ba tạo ra các tính năng để mở
rộng phần mềm đó.
 Hỗ trợ một cách dễ dàng trong việc bổ sung thêm các tính năng
mới.
 Giảm kích thƣớc của một ứng dụng.
 Tách mã nguồn từ một ứng dụng vì giấy phép phần mềm
không tƣơng thích.
Kiến trúc chung của Plugin
Hình3: Kiến trúc Plugin
Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng
Phạm Viết Mạnh – CT1301 23
Ứngdụng chính cung cấp dịch vụ mà các Plugin có thể sử dụng, bao gồm
cách để Plugin đăng ký với ứng dụng chính và một giao thức cho việc trao đổi
dữ liệu. Plugin phụ thuộc vào các dịch vụ cung cấp bởi các ứng dụng chính và
thƣờng không tự hoạt động. Ngƣợc lại, các ứng dụng chính hoạt động độc lập
với Plugin.
Giao diện lập trình ứng dụng (API) mã nguồn mở cung cấp một giao
diện tiêu chuẩn, cho phép các hãng thứ ba để tạo ra các Plugin tƣơng tác với
các ứng dụng chính. Một API ổn định cho phép Plugin của hãng thứ ba tiếp
tục hoạt động nhƣ các thay đổi đối với phiên bản gốc và để mở rộng vòng đời
của các ứng dụng đã lỗi thời.
2.2 Phát triển phần mềm dựa trên thành phần
Công nghệ phần mềm phát triển qua nhiều giai đoạn và từng giai đoạn
luôn có những công nghệ mới xuất hiện giúp phát triển phần mềm thuận lợi
và bền vững. Đó là Component-Based Development (CBD – Phát triển dựa
trên các thành phần).
Ƣu điểm của phát triển dựa trên các thành phần là khả năng sử dụng lại
và thời gian phát triển ngắn. Tuy nhiên có những trở ngại mà phát triển dựa
trên các thành phần phải vƣợt qua nhƣ: Tính tƣơng thích với môi trƣờng, tính
kết hợp các thành phần với nhau, tính làm mịn của các thành phần phần mềm.
2.2.1 Mô hình trừu tƣợng
Mô hình trừu tƣợng đƣợc dùng để mô tả các thành phần. Mô hình này
đƣa ra một vài định nghĩa chung và tổng quát gồm: cú pháp (syntax), ngữ
nghĩa (semantics) và tính kết hợp (composition).
Tên
Interface
Mã nguứn
Đứu vào Đứu ra
Thành phứn
Hình4: Mô hình trừu tượng của thành phần
Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng
Phạm Viết Mạnh – CT1301 24
2.2.2 Cú pháp
Ngôn ngữ lập trình cấu tạo nên thành phần phần mềm sẽ quyết định cấu
trúccủa nó. Trong các thành phần phần mềmhiện có, ngôn ngữ của thành phần
là ngôn ngữ lập trình. Ví dụ: EJB tạo bằng ngôn ngữ lập trình Java và là một
Java class.
2.2.3 Ngữ nghĩa
Thành phần là một đơn vị phần mềm gồm có tên, giao tiếp (interface) và
mã nguồn. Mã nguồn cài đặt các dịch vụ của thành phần đƣợc giấu kín bên
trong thành phần. Interface là phần giao tiếp bên ngoài, cung cấp những thông
tin để các thành phần có thể kết nối với nhau bao gồm những dịch vụ đầu vào
và các yếu tố cung cấp dịch vụ đầu ra. Nếu có nhiều đầu vào và nhiều đầu ra,
thành phần phải xác định quan hệ giữa các đầu vào và đầu ra.
Hình5:Ví dụ về thành phần với các kiểu đầu vào - ra
Thành phần là một đơn vị chức năng chƣa hoàn chỉnh. Một hệ thống sẽ
bao gồm nhiều thành phần nối ghép lại. Đầu vào của thành phần này sẽ ghép
với đầu ra của thành phần khác.Tƣơng tự, đầu ra của thành phần cũng có thể
là đầu ra của hệ thống hoặc là đầu vào của một thành phần khác (hình 4).
Hiện nay, thành phần có xu hƣớng chính là các đối tƣợng trong kiểu lập
trình hƣớng đối tƣợng. Các dịch vụ đầu ra là các phƣơng thức. Các dịch vụ
đầu vào đƣợc quản lý và cung cấp bằng các bộ chứa (container) nơi chứa các
đối tƣợng cũng nhƣ quản lý sự tiếp cận và tƣơng tác đến chúng.
Ví dụ: JavaBean đƣợc quản lý bởi bộ chứa nhƣ BeanBox và nó kết nối
các JavaBean thông qua sự kiện (event). Trong khi đó, EJB đƣợc quản lý bởi
chƣơng trình máy chủ J2EE và EJB đƣợc tiếp cận thông qua 2 interface là
“home” và “remote” hoặc đƣợc gọi trực tiếp bởi máy chủ J2EE.
Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng
Phạm Viết Mạnh – CT1301 25
2.2.4 Kết hợp (composition)
Trong phát triển phần mềm dựa trên thành phần, sự kết hợp các thành
phần với nhau tạo thành hệ thống hoàn chỉnh là vấn đề cốt lõi (các thành phần
có thể kết hợp với nhau để tạo thành thành phần phức hợp). Vấn đề nảy sinh
là hiện nay chƣa có một ngôn ngữ kết hợp đảm bảo tƣơng thích về ngữ nghĩa
và cú pháp cho các thành phần EJB, COM, ...
Sự kết hợp thành phần có thể xảy ra ở hai giai đoạn chính trong vòng đời
của thành phần là thiết kế (design) và triển khai (deployment).
Thành phứn 1
Hứthứng
Thành phứn kứt hứp
Thành phứn K Thành phứn L Thành phứn M Thành phứn Z
Hình6: Sự kết hợp các thành phần trong hệ thống
Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng
Phạm Viết Mạnh – CT1301 26
2.3Kiến trúc Plugin trong Eclipse
2.3.1Giới thiệu về Plugin và extension point
Hình7: Plugin và extension
Mỗi Plugin trong Eclipse phải sử dụng các nhân APIEclipse (core
APIEclipse) để xác định các lớp mới để chạy nhƣ một thành phần của cơ sở
Platform.
Hình8: Plugin trong Workbench và Workspace
Mỗi Plugin có một hay nhiều extension point và có thể tùy ý khai báo
một điểm mở rộng mới. Mỗi Plugin phụ thuộc vào một hoặc nhiều Plugin
Plugin: là một thành phần(component) cung cấp
một số chức năng [5]
Ví dụ plugin lớn: HTML editor
Ví dụ plugin nhỏ: Action để tạo file zip
Extension point:Điểm mở rộng. [5]
Điểm mở rộng là 1 cơ chế cho phép 1 plugin có
thể thêm các chức năng từ 1 plugin khác. [5]
Ví dụ: Điểm mở rộng cho giao diện ngƣời dùng
workbench. [5]
Extension: một chức năng
Ví dụ: các chức năng của HTML editor
Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng
Phạm Viết Mạnh – CT1301 27
khác. Trong Eclipse, Plugin phải sử dụng một trong số Plugin hệ thống
(Plugin system)nhƣnguồn lƣu trữ (projects, folders và các files), thành phần
giao diện ngƣời dùng để thực hiện công việc (Workbench user interface
components), các Plugin có sẵn, trình gỡ lỗi (debugging), công cụ phát triển
Java (JDT), môi trƣờng phát triển thành phần cắm thêm (PDE) [4].
PDE cho phép các nhà phát triển dễ cài đặt Plugin trong Eclipse hơn là
thông qua một công cụ bên ngoài. PDE chính là một Plugin và dựa vào sự hỗ
trợ cùng một cốt lõi để thực hiện nhiệm vụ của mình nhƣ mỗi Plugin khác
Eclipse extensions đƣợc chia làm 3 loại:
 Plugin
 Fragment
 Feature
Pluginlà một công cụbổ sung thêm chức năng để Eclipse sử dụng các
điểm mở rộng. Chu trình sống của Plugin đƣợc điều khiển bởi Workbench.
Plugin đƣợc thêm vào Eclipse khi Eclipse khởi động mà không đƣợc load
ngay lập tức, Plugin chỉ đƣợc load khi cần thiết. Trong suốt quá trình load,
Elipse sẽ gọi phƣơng thức startup() và trƣớc khi unload thì gọi shutdown().
Hai phƣơng thức load và unload có thể đƣợc coi nhƣ là hàm khởi tạo init() và
hàm hủy destroy().
Fragment là tập hợp các bộ mã tạo nên một Plugin. Khi một fragment
đƣợc thực thi, Eclipse sẽ kết hợp các đoạn mã fragment với Plugin tạo nên sự
rõ ràng trong hành vihay phƣơng thức của Plugin.
Feature là một tập hợp các Plugin mà đại diện cho tập các chức năng.
Feature đƣợc cài đặt bằng tay hay sử dụng quản lý cập nhật (Update Manage).
Các Plugin và các tập tin hỗ trợ (supporting files) đƣợc đóng gói vào một tập
tin lƣu trữ tính năng (feature archive) bao gồm một tính năng tập tin cấu hình,
Feature.xml, mô tả nội dung của kho lƣu trữ và các liên kết Plugin. Khi một
Plugin đƣợc đóng gói thành một công cụ hoàn chỉnh, fragmentgồm mã cập
nhật cho một Plugin chỉ là một đóng gói của một tập hợp các Pluginđể dễ
dàng cài đặt vào Eclipse [4].
Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng
Phạm Viết Mạnh – CT1301 28
2.3.2 Điểm mở rộng Plugin (Plugin Extension Points)
Một số lƣợng lớn các điểm mở rộngPluginđƣợc Eclipse xác định có sẵn.
Các điểm mở rộngPluginđƣợc chia thành các lĩnh vực sau:
 Platform runtime: Sử dụng một trong hai điểm mở rộng (extension
points), có thể xác định toàn bộ hành vi của Eclipse.
 Không gian làm việc: Điểm mở rộngchịu trách nhiệm quản lý tài
nguyên ngƣời dùng đƣợc tổ chức dƣới dạng Project.
 Bàn làm việc:giao diện đồ họa ngƣời dùng của Eclipsecó số lƣợng
lớn nhất các điểm mở rộng. Một mẫu cho các điểm mở rộngbao
gồm sự hỗ trợ cho các khung nhìn (view) và trình biên tập, các tổ
hợp phím, hỗ trợ kéo thả giữa các khung nhìn và bổ sung bảng
điều khiển (panels) cho hộp thoại Preferences.
 Gỡ lỗi: Các điểm mở rộngđể gỡ lỗi giữa các hành vi và sử dụng
điểm giao diện (interface points)
 Trợ giúp: Các điểm mở rộngđƣợc tích hợp vào công cụ tìm kiếm
trợ giúp của Eclipse. Các trợ giúp đƣợc hiển thị dƣới dạng bảng
hoặc sử dụng thêm những Plugin mang tính đặc thù để trợ giúp.
2.3.3 Tiến trình làm việc của Plugin
Hình9: Tiến trình làm việc của Plugin
Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng
Phạm Viết Mạnh – CT1301 29
Về mặt kỹ thuật, một Plugin là một Java Archive (JAR) độc lập và tự
khởi tạo. Plugin độc lập vì Plugin chứa mã và tài nguyên các Pluginkhác cần
để chạy. Plugin tự khởi tạo bởi vì nó bao gồm các thông tin của Plugin, tài
nguyên Plugin, công dụng của nó. Trong một Plugin, hai tập tin mô tả là
MANIFEST.MF và Plugin.xml.
2.3.4Tập tin cấu hình (manifest) của Plugin
Thông tin mô tả chi tiết Plugin nằm trong tập tin manifest (Plugin.xml).
Eclipse sử dụng tập tin cấu hình để tích hợp Plugin vào framework.
Tập tin manifest chứa những thông tin chung về Plugin bao gồm: tên
Plugin, phiên bản, tên lớp, tên file JAR. Ngoài ra, tập tin cấu hình còn chứa
danh sách những Plugin mà Plugin hiện tại sử dụng.
Ví dụ về tập tin manifest
//Thông tin về Plugin
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Tkb
Bundle-SymbolicName: Tkb;singleton:=true
Bundle-Version: 1.0.0.qualifier
Bundle-Activator: tkb.Activator
/* Các Plugin cần dùng */
Require-Bundle: org.Eclipse.ui,
org.Eclipse.core.runtime,
Pluginsql
//Môi trường chạy Plugin
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
Bundle-ActivationPolicy: lazy
<?xml version="1.0" encoding="UTF-8"?>
/* Thuộc tính định dạng Plugin */
<?Eclipse version="3.4"?>
Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng
Phạm Viết Mạnh – CT1301 30
/* Thông tin Plugin */
<Plugin
id="com.example.TKB"
name="TKB Plug-in"
version="1.0.0"
provIDEr-name="EXAMPLE"
class="com.example.Tkb.TKBPlugin">
//Khai báo chức năng mà Plugin cung cấp
<extension
point="org.Eclipse.ui.actionSets">
<actionSet
label="Sample Action Set"
visible="true"
id="Tkb.actionSet">
<menu
label="&amp;Thờikhóabiểu"
id="sampleMenu">
<separator
name="sampleGroup">
</separator>
</menu>
<action
class="view.Help"
icon="icons/sample.gif"
id="view.Help"
label="&amp;Trợgiúp"
menubarPath="sampleMenu/sampleGroup"
toolbarPath="sampleGroup"
tooltip="Trợgiúp">
</action>
</actionSet>
</extension>
Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng
Phạm Viết Mạnh – CT1301 31
</Plugin>
Hai Plugin quan trọng trong Eclipse là PluginWorkspace
(org.Eclipse.core.resources) và PluginWorkbench (org.elipse.ui).
Một trong những extension quan trọng là extension có thuộc tính
point=org.Eclipse.ui.actionSets. Một actionSet là một nhóm các chức năng
mà Plugin sẽ thêm vào giao diện Workbench, ví dụ nhƣ là menus, menu
items, và toolbars.ActionSet sẽ gom nhóm các chức năng để ngƣời dùng có
thể quản lý chúng một cách dễ dàng. Một actionSet có thể chứa 2 thẻ: thẻ
menu mô tả nơi item xuất hiện và cách hiển thị của nó trên Workbench; thẻ
action mô tả một item sẽ thực hiện chức năng gì và lớp xử lý action để thực
hiện chức năng đó.
2.3.5 Plugin fragment và feature
Plugin fragment: đƣợc hình thành từ một phần của Plugin. Plugin
fragment có ích khi muốn sử dụng một phần của Plugin độc lập với phần còn
lại của Plugin.
Plugin fragment đƣợc dùng để thêm các đặc điểm nào đó vào một Plugin
đang có mà không cần build lại Plugin đó hoặc đƣợc dùng để cung cấp chức
năng cho một nền tảng nào đó.
Plugin fragment gần giống với Plugin thông thƣờng, chỉ khác ở một vài
đặc điểm sau:
 Thông tin mô tả Plugin đƣợc lƣu trong tập tin fragment.xml thay
vì Plugin.xml.
 Trong tập tin fragment.xml, nút gốc là <fragment>và nút này có 2
thuộc tính là Plugin-id và Plugin-version dùng để chỉ ra định danh
và phiên bản của Plugin cha.
 Plugin fragment sẽ tự động kế thừa các nút <requires> của Plugin
cha và có thể thêm các nút <requires> khác nếu cần thiết.
Plugin feature: Trong kiến trúc Eclipse, feature là việc đóng gói một
nhóm các Plugin có liên quan lại thành một sản phẩm tích hợp. Plugin feature
Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng
Phạm Viết Mạnh – CT1301 32
không có chứa code. Ví dụ: Java Development Tooling (JDT) là một feature
project đƣợc tạo thành bởi các Plugin nhƣ: Java editor, debugger, và console.
Tập tin đặc tả feature project là feature.xml, tập tin này chứa tham chiếu
đến các Plugin và các tài nguyên khác của feature project, đồng thời chứa các
thông tin về việc update, copyright và license.
2.3.6 Đóng gói Plugin
Eclipse quyết định Plugin nào đƣợc load bằng cách kiểm tra thƣ mục
Plugins vào thời điểm khởi động. Để cài đặt một Plugin thì cần tạo một thƣ
mục con trong thƣ mục Plugins, sau đó chép tất cả các tập tin chƣơng trình và
tập tin manifest vào. Nên đặt tên thƣ mục chứa Plugin theo chuẩn: tên của
Plugin đƣợc theo sau bởi dấu gạch dƣới và chỉ số phiên bản, ví dụ:
C:EclipsePluginscom.example.hello. Sau đó, nén thƣ mục con vừa đƣợc tạo
thành tập tin JAR.
Tạo tập tin JAR bằng giao diện Eclipse: menu File Export. Sau đó
khởi động lại Eclipse để Eclipse có thể nhận ra Plugin mới.
2.3.7Perspective,views, editor
Vào một thời điểm bất kỳ, Workbench là một cửa sổ ứng dụng đơn chứa
một số lƣợng các kiểu ô cửa sổ (pane) khác nhau hay còn đƣợc gọi là các
khung nhìn (views), và một view đặc biệt là trình soạn thảo (editor). Trong
một số tình huống, một ô cửa sổ đơn có thể chứa một nhóm các ô cửa sổ khác
dƣới dạng các thẻ (tabs). Tùy vào từng perspective, một ô cửa sổ có thể chứa
cửa sổ thực thi lệnh trong khi ô cửa sổ khác chứa một bản phác thảo của dự án
đang làm việc. Tuy nhiên, trình soạn thảo là một thành phần căn bản không
thể thiếu của tất cả các phối cảnh.
Vì có nhiều loại tài liệu khác nhau, nên có nhiều loại trình soạn thảo
khác nhau. Khi một tài liệu đƣợc mở ra hoặc đƣợc tạo mới, Eclipse tìm đến
trình soạn thảo thích hợp nhất để ngƣời dùng thao tác trên tài liệu này. Nếu
một tài liệu là một văn bản thông thƣờng (text document), trình soạn thảo văn
bản cài đặt sẵn trong Eclipse đƣợc lựa chọn. Nếu tài liệu là một tập tin java
nguồn, trình soạn thảo Java của JDT đƣợc lựa chọn, trình soạn thảo này có
Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng
Phạm Viết Mạnh – CT1301 33
nhiều tính năng đặc biệt nhƣ kiểm tra cú pháp của các mã lệnh đƣợc soạn,
hoàn thành mã lệnh tự động (code completion)… Nếu tài liệu là một văn bản
Microsoft Word trên Windows và chƣơng trình Word đã đƣợc cài đặt trên
máy đang sử dụng, tài liệu đƣợc mở bởi Word trong Eclipse bằng kỹ thuật kết
nối và nhúng đối tƣợng (Object Linking and Embedding – OLE).
2.4Ngôn ngữ lập trình java
2.4.1 Lịch sử phát triển của Java
Java đƣợc khởi đầu bởi James Gosling và bạn đồng nghiệp
ở SunMicrosystemsnăm 1991. Ban đầu ngôn ngữ này đƣợc gọi là Oak.
Sauđókhônglâungônngữ mới vớitên gọilà Java ra đời và đƣợc giới thiệu năm
1995.
2.4.2 Máy ảo Java (Java Virtual Machine)
Tất cả các chƣơng trình muốn thực thi đƣợc thì phải đƣợc biên dịch ra
mã máy. Mã máy của từng kiến trúc CPU của mỗi máy tính là khác nhau (tập
lệnh mã máy của CPU Intel, CPU Solarix, CPU Macintosh … là khác nhau),
vì vậy trƣớc đây một chƣơng trình sau khi đƣợc biên dịch xong chỉ có thể
chạy đƣợc trên một kiến trúc CPU cụ thể nào đó. CPU Intel có thể chạy các
hệ điều hành nhƣ Microsoft Windows, Unix, Linux, OS/2, … Chƣơng trình
thực thi đƣợc trên Windows đƣợc biên dịch dƣới dạng file có phần mở rộng
*.EXE còn trên Linux thì đƣợc biên dịch dƣới dạng file có đuôi *.ELF, vì vậy
trƣớc đây một chƣơng trình chạy đƣợc trên Windows muốn chạy đƣợc trên hệ
điều hành khác nhƣ Linux thì phải chỉnh sửa và biên dịch lại. Ngôn ngữ lập
trình Java ra đời, nhờ vào máy ảo Java mà khó khăn nêu trên đã đƣợc khắc
phục. Một chƣơng trình viết bằng ngôn ngữ lập trình Java sẽ đƣợc biên dịch
ra mã của máy ảo java (mã java bytecode). Sau đó máy ảo Java chịu trách
nhiệm chuyển mã java bytecode thành mã máy tƣơng ứng. Sun Microsystem
chịu trách nhiệm phát triển các máy ảo Java chạy trên các hệ điều hành trên
các kiến trúc CPU khác nhau
Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng
Phạm Viết Mạnh – CT1301 34
Hình 10: Kiến trúc Java Virtual Machine
JVM bao gồm các thành phần chính:
 Class Loader: là một hệ thống con của JVM, làm nhiệm vụ tải các
lớp đƣợc xác định.
 Class Area: lƣu trữ cấu trúc của các lớp, thuộc tính, phƣơng thức
của lớp, và code của các phƣơng thức.
 Heap &Java Stack:
- Heap: là vùng nhớ lƣu trử các đối tƣợng đƣợc khởi tạo trong
quá trình thực thi.
- Stack: chứa các frame. Mỗi frame chứa các biến cục bộ và thực
thi một hàm gọi và trả kết quả về. Mỗi tiến trình có một Stack
riêng, đƣợc khởi tạo cùng lúc với tiến trình. Mỗi frame sẽ đƣợc
tạo khi một hàm đƣợc gọi và hủy khi việc gọi hàm kết thúc
 Programming Counter Register: chứa địa chỉ của máy chủ ảo đang
thực thi.
 Native Method Stack: chứa các hàm của hệ thống đƣợc sử dụng
trong chƣơng trình
 Execution Engine: là một hệ thống bao gồm: bộ xử lý ảo, trình
thông dịch (đọc Java byte code và thực thi các chỉ thị), JIT
compiler biên dịch mã byte code sang mã máy.
Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng
Phạm Viết Mạnh – CT1301 35
2.4.3 Một số đặc điểm ngôn ngữ lập trình Java
Java là một ngôn ngữ lập trình hƣớng đối tƣợng vừa biên dịch vừa thông
dịch. Chƣơng trình nguồn viết bằng ngôn ngữ lập trình Java có đuôi *.java
đầu tiên đƣợc biên dịch thành tập tin có đuôi *.class và sau đó sẽ đƣợc trình
thông dịch thông dịch thànhmã máy.
Một chƣơng trình viết bằng ngôn ngữ lậptrình Java sẽ đƣợc biên dịch ra
mã của máy ảojava (mã java bytecode). Sau đó máy ảoJava chịu trách nhiệm
chuyển mã java bytecode thành mã máy tƣơng ứng. Sun
Microsystempháttriểncác máyảoJava chạy trên các hệ điều hành trên các kiến
trúc CPU khác nhau.
Một chƣơng trình, ứng dụng viết bằng ngôn ngữ Java có thể chạy trên
nhiều máy tính có hệ điều hành khác nhau (Windows, MacOS, Linux, …) có
cài đặt máy ảojava (Java Virtual Machine). Vì thế chƣơng trình chỉ cần viết
một lầnchạy mọi nơi (write once run any where).
Java hỗ trợ lập trình đa nhiệm, đa luồng cho phép nhiều tiến
trìnhcóthểchạysongsongcùng mộtthờiđiểmvà tƣơng tác với nhau.
Java hỗ trợ mạnh cho việc phát triển ứng dụng. Công nghệ Java phát
triển mạnh mẽ do Sun Microsystem cung cấp nhiều công cụ, thƣ viện lập trình
phong phú hỗ trợ cho việc phát triển nhiều loại hình ứng dụng khác nhau, cụ
thể nhƣ: J2SE (Java 2 Standard Edition) hỗ trợ phát triển những ứng dụng
đơn, ứng dụng client-server; J2EE (Java 2 Enterprise Edition) hỗ trợ phát
triển các ứng dụng thƣơng mại, J2ME Java 2 Micro Edition) hỗ trợ phát triển
các ứng dụng trên các thiết bị di động, không dây, …
Eclipselà chƣơng trình chạy trên môi trƣờng Java. Plugin là thành phần
cắm thêm trong Eclipse. Vì thế chƣơng trình viết dƣới dạng Plugin chỉ cần
xây dựng 1 lần mà có thể chạy trên nhiều nền tảng khác nhau.
Các Plugin trong Eclipse có thể tƣơng tác với nhau, hỗ trợ cho nhau và
có thể chạy songsong cùng một thời điểm do Java hỗ trợ đa nhiệm, đa luồng.
Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng
Phạm Viết Mạnh – CT1301 36
CHƢƠNG 3: CHƢƠNG TRÌNH THỬ NGHIỆM
Trong chƣơng này, khóa luận trình bày vềứng dụng sắp xếp thời khóa
biểu đƣợc xây dựng bằng thành phần cắm thêm (Plugin) trên Eclipse. Plugin
này đƣợc cài đặt bằng ngôn ngữ lập trình Java. Một số bƣớc trong phân tích
thiết kế phân hệ sắp thời khóa biểu đƣợc giản lƣợc nhƣng không mất tính tổng
quát của mục tiêu đề tài là xây dựng thử nghiệm Plugin dựa trên nền Eclipse.
3.1 Mô tả yêu cầu bài toán
Chƣơng trình thử nghiệm hỗ trợ sắp xếp thời khóa biểu với đầu vào là
các thông tin nhƣ: lớp học (mã môn học, số tín chỉ, buổi học, số lƣợng sinh
viên tối đa), phòng học (địa chỉ, số lƣợng sinh viên, trang thiết bị giảng dạy đi
kèm)... Việc sắp xếp thời khóa biểu cần tuân theo các ràng buộc:
Về thời gian:
 Có ít nhất 1 buổi học của 1 môn phải có 2 tiết trở lên
 Các môn học trong 1 khóa chỉ xếp vào buổi sáng hoặc buổi chiều
trong tuần.
Về phòng học:
 Số lƣợng sinh viên trong lớp học phải phù hợp với số lƣợng sinh
viên phòng học có thể chứa.
 Khi sắp xếp, ƣu tiên xếp phòng học có trang thiết bị phù hợp cho
các môn có yêu cầu đặc biệt về trang thiết bị.
 Tại một thời điểm, chỉ đƣợc sắp xếp 1 lớp học tại 1 phòng học
Yêu cầu:
 Sử dụng mô hình MVC (Model-View-Controller).
 Hệ thống thuần túy là hƣớng đối tƣợng, không chấp nhận các cách tiếp
cận khác.
 Thiết kế CSDL hợp lý đảm bảo các ràng buộc.
 Chƣơng trình thử nghiệm làthành phần cắm thêm trong Eclipse
 Bài toán nhấn mạnh vào việc truy xuất dữ liệu và thuật toán xếp lịch và
xây dựng các chức năng:
- Cập nhật, thêm mới, xóa, lƣu … các thông tin nói trên.
Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng
Phạm Viết Mạnh – CT1301 37
- Thống kê, báo cáo, in thời khóa biểu dƣới dạng excel.
- Đối với ngƣời quản lý: theo dõi lịch học của các lớp trong khoa,
trong trƣờng, xếp thời khóa biểu.
3.2Xác định mô hình nghiệp vụ
3.2.1 Các chức năng nghiệp vụ
Ta có thể xác định các chức năng nghiệp vụ của hệ thống nhƣ sau:
Tham chiếu Chức năng
R1 Cập nhật dữ liệu
R11 Cập nhật thông tin phòng học
R12 Cập nhật thông tin thiết bị
R13 Cập nhật thông tin niên khóa
R14 Cập nhật thông tin học phần
R15 Cập nhật thông tin khoa
R2 Lập thời khóa biểu
R21 Sắp thời khóa biểu
R22 In thời khóa biểu
Tác nhân là một bộ phận bên ngoài hệ thống nhƣng có tƣơng tác với hệ
thống. Nó chính là đối tƣợng mà hệ thống phục vụ hoặc cần cung cấp dữ liệu.
Hệ thống gồm có tác nhân là ngƣời quản lý.
Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng
Phạm Viết Mạnh – CT1301 38
3.2.2Biểu đồ use case tổng quan
Hình11: Biểu đồ Use case tổng quan
Chƣơng trình thử nghiệm sắp thời khóa biểu xác định đƣợc các ca sử
dụng và tác nhân nhƣ sau:
Gói ca sử
dụng
Các ca sử dụng chi tiết Tác nhân
1. Cập nhật
dữ liệu
UC1Cập nhật thông tin phòng học
UC2Cập nhật thông tin thiết bị
UC3Cập nhật thông tin niên khóa
UC4Cập nhật thông tin học phần
UC5Cập nhật thông tin khoa
Ngƣời quản lý
2. Lập thời
khóa biểu
UC6Sắp thời khóa biểu
UC7 In thời khóa biểu
Ngƣời quản lý
3.2.3 Mô tả khái quát các quan hệ con
Hệ thống gồm hai hệ con:
 Cập nhật dữ liệu:có tác nhân duy nhất là ngƣời quản lý. Có tác
dụng cập nhật thông tin đầu vào nhƣ: phòng học, thiết bị, niên
khóa, học phần, khoa.
 Lập thời khóa biểu: có tác nhân duy nhất là ngƣời quản lý, có tác
dụng lập và in thời khóa biểu.
Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng
Phạm Viết Mạnh – CT1301 39
3.2.4Các mô hình ca sử dụng chi tiết
a. Gói ca sử dụng “Cập nhật dữ liệu”
Hình12: Biểu đồ ca sử dụng gói “Cập nhật dữ liệu”
Mô tả chi tiết ca sử dụng
 Ca sử dụng “Cập nhật phòng học”
Tên ca sử dụng Cập nhật phòng học
Tác nhân Ngƣời quản lý
Mục đích Cập nhật thông tin phòng học
Mô tả khái quát Ngƣời quản lý cập nhật thông tin phòng học
Các tham chiếu R11
Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng
Phạm Viết Mạnh – CT1301 40
 Ca sử dụng “Cập nhậtthiết bị”
Tên ca sử dụng Cập nhật thiết bị
Tác nhân Ngƣời quản lý
Mục đích Cập nhật thông tin thiết bị
Mô tả khái quát Ngƣời quản lý cập nhật thông tin thiết bị trong phòng
học
Các tham chiếu R12
 Ca sử dụng “Cập nhật niên khóa ”
Tên ca sử dụng Cập nhật niên khóa
Tác nhân Ngƣời quản lý
Mục đích Cập nhật thông tin niên khóa
Mô tả khái quát Ngƣời quản lý cập nhật thông tin niên khóa
Các tham chiếu R13
 Ca sử dụng “Cập nhật học phần”
Tên ca sử dụng Cập nhật học phần
Tác nhân Ngƣời quản lý
Mục đích Cập nhật thông học phần
Mô tả khái quát Ngƣời quản lý cập nhật thông tin học phần trong kỳ
Các tham chiếu R14
Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng
Phạm Viết Mạnh – CT1301 41
 Ca sử dụng “Cập nhật khoa”
Tên ca sử dụng Cập nhật khoa
Tác nhân Ngƣời quản lý
Mục đích Cập nhật thông tin khoa
Mô tả khái quát Ngƣời quản lý cập nhật thông tin khoa
Các tham chiếu R15
b. Gói ca sử dụng “Lập thời khóa biểu”
Hình13: Biểu đồ ca sử dụng gói “Lập thời khóa biểu”
Mô tả chi tiết ca sử dụng
 Ca sử dụng “Sắp thời khóa biểu”
Tên ca sử dụng Sắp thời khóa biểu
Tác nhân Ngƣời quản lý
Mục đích Sắp thời khóa biểu
Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng
Phạm Viết Mạnh – CT1301 42
Mô tả khái quát Ngƣời quản lý sắp thời khóa biểu
Các tham chiếu R21
 Ca sử dụng “In thời khóa biểu”
Tên ca sử dụng In thời khóa biểu
Tác nhân Ngƣời quản lý
Mục đích In thời khóa biểu
Mô tả khái quát Ngƣời quản lý muốn in thời khóa biểu dƣới dạng excel
Các tham chiếu R22
3.3 Phân tích hệ thống
3.3.1 Phân tích gói ca sử dụng “Cập nhật dữ liệu”
a.Ca sử dụng “Cập nhật phòng học”
 Biểu đồ tuần tự thực thi ca sử dụng
Hình 14: Biểu đồ tuần tự thực thi ca sử dụng “Cập nhật phòng học”
Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng
Phạm Viết Mạnh – CT1301 43
 Biểu đồ cộng tác thực thi ca sử dụng
Hình 15: Biểu đồ cộng tác thực thi ca sử dụng “Cập nhật phòng học”
b.Ca sử dụng “Cập nhật thiết bị”
 Biểu đồ tuần tự thực thi ca sử dụng
Hình16: Biểu đồ tuần tự thực thi ca sử dụng “Cập nhật thiết bị”
Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng
Phạm Viết Mạnh – CT1301 44
 Biểu đồ cộng tác thực thi ca sử dụng
Hình17: Biểu đồ cộng tác thực thi ca sử dụng “Cập nhật thiết bị”
c.Ca sử dụng “Cập nhật niên khóa”
 Biểu đồ tuần tự thực thi ca sử dụng
Hình 18: Biểu đồ tuần tự thực thi ca sử dụng “Cập nhật niên khóa”
Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng
Phạm Viết Mạnh – CT1301 45
 Biểu đồ cộng tác thực thi ca sử dụng
Hình19: Biểu đồ cộng tác thực thi ca sử dụng “Cập nhật niên khóa”
d.Ca sử dụng “Cập nhật học phần”
 Biểu đồ tuần tự thực thi ca sử dụng
Hình20: Biểu đồ tuần tự thực thi ca sử dụng “Cập nhật học phần”
: Nguoi quan ly: Nguoi quan ly : Form_Hocphan: Form_Hocphan : Controller: Controller : Hocphan: Hocphan
1: Yeu cau cap nhat hp()
2: Cap nhat thong tin HP()
3: Cap nhat()
4: Hien thi KQ()
Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng
Phạm Viết Mạnh – CT1301 46
 Biểu đồ cộng tác thực thi ca sử dụng
Hình21: Biểu đồ cộng tác thực thi ca sử dụng “Cập nhật học phần”
e.Ca sử dụng “Cập nhật khoa”
 Biểu đồ tuần tự thực thi ca sử dụng
Hình22: Biểu đồ tuần tự thực thi ca sử dụng “Cập nhật khoa”
: Nguoi quan ly
: Hocphan
: Form_Hocphan : Controller
1: Yeu cau cap nhat hp()
2: Cap nhat thong tin HP()
3: Cap nhat()
4: Hien thi KQ()
: Nguoi quan ly: Nguoi quan ly : Form_Khoa: Form_Khoa : Controller: Controller : Khoa: Khoa
1: Yeu cau thong tin Khoa()
2: Cap nhat khoa
3: Cap nhat
4: Hien thi KQ()
Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng
Phạm Viết Mạnh – CT1301 47
 Biểu đồ cộng tác thực thi ca sử dụng
Hình23: Biểu đồ cộng tác thực thi ca sử dụng “Cập nhật khoa”
f. Mô hình phân tích gói ca “Cập nhật dữ liệu”
Hình 24: Mô hình phân tích gói ca ”Cập nhật dữ liệu ”
: Nguoi quan ly : Khoa
: Form_Khoa : Controller
1: Yeu cau thong tin Khoa()
2: Cap nhat khoa
3: Cap nhat
4: Hien thi KQ()
: Controller
: Phong hoc: Controller: Form_PhongHoc
2: Cap nhat phong hoc() 3: Cap nhat phong hoc()
4: Hien thi KQ()
: Nguoi quan ly
: Hocphan: Form_Hocphan : Controller
8: Cap nhat()
: Controller: Form_Nienkhoa : Nienkhoa
10: Cap nhat nien khoa()
11: Hien thi KQ()
12: Cap nhat nien khoa()
: Khoa: Form_Khoa : Controller
14: Cap nhat khoa()
15: Hien thi KQ()
16: Cap nhat khoa()
6: Cap nhat thong tin HP()
7: Hien thi KQ()
: Form_Thietbi : Thietbi
18: Cap nhat thiet bi()
19: Hien thi KQ()
20: Cap nhat thiet bi()
1: Yeu cau cap nhat PH()
9: Yeu cau cap nhat nien khoa()
5: Yeu cau cap nhat hp()
13: Yeu cau thong tin Khoa()
17: Yeu cau cap nhat thiet bi()
Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng
Phạm Viết Mạnh – CT1301 48
3.3.2 Phân tích gói ca sử dụng “Lập thời khóa biểu”
a.Ca sử dụng “Sắp thời khóa biểu”
 Biểu đồ tuần tự thực thi ca sử dụng
Hình 25: Biểu đồ tuần tự thực thi ca sử dụng “Sắp thời khóa biểu”
 Biểu đồ cộng tác thực thi ca sử dụng
Hình 26: Biểu đồ cộng tác thực thi ca sử dụng “Sắp thời khóa biểu”
: Nguoi quan ly: Nguoi quan ly : Form_thoikhoabieu: Form_thoikhoabieu : Controller: Controller : Thoikhoabieu: Thoikhoabieu: Lophocphan: Lophocphan : Baoloi: Baoloi
1: Chon sap tkb()
2: Yeu cau sap tkb()
4: Sap tkb()
7: Luu tkb()
8: Hien thi tkb()
3: Luu cac lop HP()
5: Luu cac lop bi loi()
6: Hien thi loi()
: Nguoi quan ly
: Controller: Form_thoikhoabieu
: Thoikhoabieu : Baoloi
: Lophocphan
2: Yeu cau sap tkb() 3: Luu cac lop HP()
4: Sap tkb()
5: Luu cac lop bi loi()
6: Hien thi loi()
7: Luu tkb()
8: Hien thi tkb()
1: Chon sap tkb()
Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng
Phạm Viết Mạnh – CT1301 49
b.Ca sử dụng “In thời khóa biểu”
 Biểu đồ tuần tự thực thi ca sử dụng
Hình27: Biểu đồ tuần tự thực thi ca sử dụng “In thời khóa biểu”
 Biểu đồ cộng tác thực thi ca sử dụng
Hình 28: Biểu đồ cộng tác thực thi ca sử dụng “In thời khóa biểu”
: Nguoi quan ly: Nguoi quan ly : Form_thoikhoabieu: Form_thoikhoabieu : Controller: Controller
: Thoikhoabieu: Thoikhoabieu
1: Chon chuc nang in tkb()
2: Yeu cau in tbk()
3: Lay tt()
4: in va hien danh sach tkb()
: Nguoi quan ly : Form_thoikhoabieu : Controller : Thoikhoabieu
1: Chon chuc nang in tkb() 2: Yeu cau in tbk() 3: Lay tt()
4: in va hien danh sach tkb()
Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng
Phạm Viết Mạnh – CT1301 50
c. Mô hình phân tích gói ca “Lập thời khóa biểu”
Hình29: Mô hình phân tích gói ca “Lập thời khóa biểu”
3.4 Thiết kế hệ thống
Hình30: Mô hình cơ sở dữ liệu
: Nguoi quan ly
: Controller: Form_thoikhoabieu
: Thoikhoabieu
: Baoloi
: Lophocphan
4: Sap tkb()
7: Luu tkb()
3: Luu cac lop HP()
5: Luu cac lop bi loi()
2: Yeu cau sap tkb()
6: Hien thi loi()
8: Hien thi tkb()
: Form_thoikhoabieu : Controller : Thoikhoabieu
10: Yeu cau in tbk()
11: in va hien danh sach tkb()
12: Lay tt()
1: Chon sap tkb()
9: Chon chuc nang in tkb()
Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng
Phạm Viết Mạnh – CT1301 51
3.5Thuật toán sử dụng.
Thuật toán sắp xếp dựa trên các điều kiện ràng buộc về số sinh viên,
trang thiết bị yêu cầu. Thu nhỏ không gian tìm kiếm bằng việc loại trừ các
trƣờng hợp không thỏa mãn.
Cụ thể:
Duyệt các lớp học phần sau khi chia học phần thành các lớp học phần.
Kiểm tra điều kiện số tiết học còn lại (chƣa đƣợc xếp vào phòng học) nếu
khác 0 thì tìm phòng xếp cho lớp học phần đó, nếu không thì bỏ qua.
Với các phòng thì chia trạng thái phòng đó thành các thứ từ thứ 2 đến thứ
6; mỗi thứ có 6 tiết một buổi học. Sau khi xếp 1 lớp học phần vào một phòng
và một thứ cụ thể thì số tiết trống của phòng đó vào ngày thứ đó giảm đi cho
tới khi bằng 0 thì chuyển sang xét tiếp ngày thứ khác. Khi một phòng đầy hết
từ thứ 2 đến thứ 6 thì chuyển sang phòng kế tiếp.
Các lớp học phần không tìm đƣợc phòng học thỏa mãn sẽ đƣợc lƣu riêng
ra một bảng trong CSDL để thông báo cho ngƣời quản trị.
Sử dụngcách truy vẫn trực tiếp vào CSDL để lƣu, sửa hoặc kết xuất dữ
liệu nhanh.
Các thông tin sau khi sắp xếp sẽ lƣu vào bảng thoikhoabieu trong CSDL
rồi in ra giao diện đồ họa.
3.6Kết quả của chƣơng trình minh họa.
- Chƣơng trình đã giải quyết đƣợc vấn đề cơ bản mà bài toán đƣa ra là
sắp xếp lịch học đơn giản, chƣơng trình chạy ổn định, ít phát sinh lỗi.
- Chƣơng trình đã xây dựng đƣợc các chức năng cơ bản mà bài toán đƣa
ra:
Sắp xếp thời khóa biểu thỏa mãn các ràng buộc của bài toán.
 Cập nhật, thêm mới, xóa, lưu các thông tin về phòng học, học phần,
lớp học…
Cho phép người quản lý sắp xếp thời khóa biểu tự động, xem thời khóa
biểu
Có chức năng xuất thời khóa biểu ra file excel.
Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng
Phạm Viết Mạnh – CT1301 52
3.7. Giao diện của chƣơng trình.
3.7.1.Giao diện chính của chƣơng trình.
Hình31: Giao diện chính của Plugin thời khóa biểu
3.7.2 Giao diện đăng nhập
- Ngƣời quản lý nhập tên đăng nhập và mật khẩu để kết nối với cơ sở dữ
liệu MySQL và chọn đăng nhập để sử dụng chƣơng trình.
Hình32: Giao diện đăng nhập
Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng
Phạm Viết Mạnh – CT1301 53
3.7.3 Giao diện phòng học
Hình33: Giao diện phòng học
 Chức năng Mới: sẽ reset mã phòng và địa chỉ phòng trên giao diện.
 Chức năng Thêm: Khi ngƣời quản lý muốn thêm phòng học vào cơ sở
dữ liệu. Ngƣời quản lý sẽ nhập vào mã phòng và địa chỉ phòng tƣơng ứng.
Click chuột vào chức năng thêm, chƣơng trình sẽ thêm vào cơ sở dữ liệu và
hiển thị kết quả ở bảng danh sách các phòng trên giao diện nếu dữ liệu nhập
vào không trùng với dữ liệu đã có.
 Chức năng Xóa: giúp ngƣời quản lý xóa phòng học. Nhập mã phòng
của phòng muốn xóa, chọn Xóa thì các thông tin của phòng này sẽ bị xóa, nếu
đang có trong cơ sở dữ liệu. Kết quả đƣợc hiển thị trên bảng.
 Chức năng Thoát: Thoát khỏi giao diện phòng học.
Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng
Phạm Viết Mạnh – CT1301 54
3.7.4 Giao diện học phần
Hình34 Giao diện học phần
 Chức năng Làm mới: sẽ reset mã học phần, tên học phần, số sinh viên,
số tín chỉ, số tiết trên giao diện.
 Chức năng Thêm: Khi ngƣời quản lý muốn thêm học phần vào cơ sở
dữ liệu. Ngƣời quản lý sẽ nhập vào mã học phần, tên học phần, số sinh viên,
số tín chỉ, số tiết, khóa học, thiết bị, khoa viện tƣơng ứng. Click chuột vào
chức năng thêm, chƣơng trình sẽ thêm vào cơ sở dữ liệu và hiển thị kết quả ở
bảng danh sách các phòng trên giao diện nếu dữ liệu nhập vào không trùng
với dữ liệu đã có.
 Chức năng Xóa: giúp ngƣời quản lý xóa họcp phần. Nhập mã học phần
của học phần muốn xóa, chọn Xóa thì các thông tin của phòng này sẽ bị xóa
trong cơ sở dữ liệu. Kết quả đƣợc hiển thị trên bảng.
 Chức năng Thoát: Thoát khỏi giao diện học phần
Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng
Phạm Viết Mạnh – CT1301 55
3.7.5 Giao diện khoa viện
Hình35: Giao diện khoa viện
 Chức năng Làm mới: sẽ reset mã khoa viện, tên khoa viện, niên
khóatrên giao diện.
 Chức năng Thêm: Khi ngƣời quản lý muốn thêm thông tin khoa viện
vào cơ sở dữ liệu. Ngƣời quản lý sẽ nhập vào mã khoa viện, tên khoa viện,
niên khóatƣơng ứng. Click chuột vào chức năng thêm, chƣơng trình sẽ thêm
vào cơ sở dữ liệu và hiển thị kết quả ở bảng danh sách các khoa trên giao diện
nếu dữ liệu nhập vào không trùng với dữ liệu đã có.
 Chức năng Xóa: giúp ngƣời quản lý xóa thông tin khoa viện. Nhập mã
khoa viện của học phần muốn xóa, chọn Xóa thì các thông tin của khoa viện
này sẽ bị xóa trong cơ sở dữ liệu. Kết quả đƣợc hiển thị trên bảng.
 Chức năng Thoát: Thoát khỏi giao diện học phần
Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng
Phạm Viết Mạnh – CT1301 56
3.2.6 Giao diện niên khóa
Hình36: Giao diện niên khóa
 Chức năng Mới: sẽ reset mã khóa, tên khóa trên giao diện.
 Chức năng Thêm: Khi ngƣời quản lý muốn thêm thông tin niên khóa
vào cơ sở dữ liệu. Ngƣời quản lý sẽ nhập vào mã khóa, tên khóa tƣơng ứng và
chọn kip học. Click chuột vào chức năng thêm, chƣơng trình sẽ thêm vào cơ
sở dữ liệu và hiển thị kết quả ở bảng danh sách các niên khóa trên giao diện
nếu dữ liệu nhập vào không trùng với dữ liệu đã có.
 Chức năng Xóa: giúp ngƣời quản lý xóa thông tin niên khóa. Nhập mã
niên khóa của học phần muốn xóa, chọn Xóa thì các thông tin của niên khóa
này sẽ bị xóa trong cơ sở dữ liệu. Kết quả đƣợc hiển thị trên bảng.
 Chức năng Thoát: Thoát khỏi giao diện học phần
Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng
Phạm Viết Mạnh – CT1301 57
3.7.7 Giao diện trang thiết bị
Hình37: Giao diện trang thiết bị
 Chức năng Làm mới: sẽ reset mã thiết bị, tên thiết bị trên giao diện.
 Chức năng Thêm: Khi ngƣời quản lý muốn thêm thông tin trang thiết
bị vào cơ sở dữ liệu. Ngƣời quản lý sẽ nhập vào mã thiết bị, tên thiết bị tƣơng
ứng. Click chuột vào chức năng thêm, chƣơng trình sẽ thêm vào cơ sở dữ liệu
và hiển thị kết quả ở bảng danh sách các thiết bị trên giao diện nếu dữ liệu
nhập vào không trùng với dữ liệu đã có.
 Chức năng Xóa: giúp ngƣời quản lý xóa thông tin thiết bị. Nhập
mãthiết bị của thiết bị muốn xóa, chọn Xóa thì các thông tin của thiết bị này
sẽ bị xóa trong cơ sở dữ liệu. Kết quả đƣợc hiển thị trên bảng.
 Chức năng Thoát: Thoát khỏi giao diện thiết bị
Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng
Phạm Viết Mạnh – CT1301 58
3.7.8 Giao diện thời khóa biểu
- Giao diện thời khóa biểu với các chức năng: xếp tự động, xếp tay, xóa,
lƣu, excel, thoát.
 Xếp tự động: Hiển thị thời khóa biểu đƣợc chƣơng trình sắp xếp.
 Lƣu: Lƣu thời khóa biểu đã đƣợc sắp xếp.
 Excel: Xuất thời khóa biểu ra fiel excel.
 Thoát: Thoát khỏi giao diện thời khóa biểu.
Hình38:Giao diện thông tin thời khóa biểu
Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng
Phạm Viết Mạnh – CT1301 59
KẾT LUẬN
Phát triển ứng dụng trên nền Eclipseđang đƣợc các nhà phát triển quan
tâm. Trong quá trình nghiên cứu, tìm hiểu, phân tích đề tài, khóa luận đã đạt
đƣợc một số kết quả sau:
- Trình bày về sự phát triển các ứng dụng dựa trên Eclipse;
- Kiến trúc của Plugin trong Eclipse;
- Xây dựng ứng dụng thử nghiệm;
- Xu hƣớng phát triển phần mềm dựa trên thành phần phần mềm.
- và thời gian thực hiện khóa luận giúp em hiểu biết nhiều kiến thức về
lĩnh vực phát triển phần mềm dựa trên thành phần cũng nhƣ củng cố
kiến thức đã học trong trƣờng;
Bài toán sắp thời khóa biểu đƣợc xây dựng bằng Plugin đã thể hiện một
cách xây dựng ứng dụng phần mềm có thể cài đặt trên nhiều platform khác
nhau mà không phụ thuộc vào hệ thống cài đặt chúng. Đồng thời, ứng dụng
bƣớc đầu đạt đƣợc một số chức năng chính, có thể sắp thời khóa biểu cho các
lớp vào đầu mỗi học kỳ, hầu hết các chức năng sau khi xử lý xong đều hoạt
động tốt, đáp ứng đƣợc yêu cầu đặt ra. Nhƣng vẫn còn nhiều hạn chế: giải
thuật chƣa đƣợc tối ƣu nên đôi khi kết quả đạt đƣợc chƣa thỏa mãn, chƣa tạo
đƣợc sự linh động trong việc hỗ trợ các mức độ ƣu tiên, chƣa có chức năng
tinh chỉnh thời khóa biểu
Em mong nhận đƣợc nhiều ý kiến đóng góp để Plugin thời khóa biểu
đƣợc phát triển hơn trong thời gian tới và đáp ứng đầy đủ mọi yêu cầu
Mặc dù em đã cố gắng rất nhiều trong quá trình tìm hiểu và phân tích đề
tài nhƣng không tránh khỏi những thiếu sót.Vì vậy em mong quý thầy cô cũng
nhƣ những ai quan tâm đến đề tài này chỉ dẫn và góp ý kiến cho em để em
hoàn thiện ứng dụng này một cách đầy đủ.
Mong muốn của em là phát triển ứng dụng này tối ƣu và nhiều tính năng
hơn.
Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng
Phạm Viết Mạnh – CT1301 60
TÀI LIỆU THAM KHẢO
[1] Nguyễn Văn Vỵ (2002), Phân tích thiết kế các hệ thống thông tin
hiện đại, hƣớng cấu trúc vàhƣớng đối tƣợng, NXB Thống kê, Hà Nội.
[2] Đoàn Văn Ban (2003), Phân tích thiết kế hƣớng đối tƣợng bằng
UML, NXB Thống kê.
[3] Đặng Văn Đức (2000), Phân tích hƣớng đối tƣợng bằng UML, NXB
Giáo dục, Hà Nội.
[4] Carlos Valcarcel (2005), Eclipse KickStart (Ver 3.0)
[5] David Gallardo (developerWorks, 12. 2002), Getting started with the
EclipsePlatform
[6] Dr Alex Blewitt, Eclipse 4 Plug-in Development by Example

Contenu connexe

Tendances

3.1. thiết kế mạng cục bộ
3.1. thiết kế mạng cục bộ3.1. thiết kế mạng cục bộ
3.1. thiết kế mạng cục bộ
Kun Din
 
Báo cáo bài tập lớn phân tích thiết kế hệ thống
Báo cáo bài tập lớn phân tích thiết kế hệ thốngBáo cáo bài tập lớn phân tích thiết kế hệ thống
Báo cáo bài tập lớn phân tích thiết kế hệ thống
Jojo Kim
 
Bao cao athena cuoi ky backtrack và các công cụ kiểm tra an ninh mạng -trần...
Bao cao athena cuoi ky   backtrack và các công cụ kiểm tra an ninh mạng -trần...Bao cao athena cuoi ky   backtrack và các công cụ kiểm tra an ninh mạng -trần...
Bao cao athena cuoi ky backtrack và các công cụ kiểm tra an ninh mạng -trần...
Danh Tran
 

Tendances (20)

Luận văn: Lập trình nhúng ARM trên Linux, HOT, 9đ
Luận văn: Lập trình nhúng ARM trên Linux, HOT, 9đLuận văn: Lập trình nhúng ARM trên Linux, HOT, 9đ
Luận văn: Lập trình nhúng ARM trên Linux, HOT, 9đ
 
Tiếng anh chuyên ngành công nghệ thông tin
Tiếng anh chuyên ngành công nghệ thông tinTiếng anh chuyên ngành công nghệ thông tin
Tiếng anh chuyên ngành công nghệ thông tin
 
Bài tập lớn xây dựng phần mềm quản lý đoàn viên
Bài tập lớn xây dựng phần mềm quản lý đoàn viênBài tập lớn xây dựng phần mềm quản lý đoàn viên
Bài tập lớn xây dựng phần mềm quản lý đoàn viên
 
Phân tích thiết kế hệ thống thông tin quản lý bán hàng của công ty Zenco Việt...
Phân tích thiết kế hệ thống thông tin quản lý bán hàng của công ty Zenco Việt...Phân tích thiết kế hệ thống thông tin quản lý bán hàng của công ty Zenco Việt...
Phân tích thiết kế hệ thống thông tin quản lý bán hàng của công ty Zenco Việt...
 
3.1. thiết kế mạng cục bộ
3.1. thiết kế mạng cục bộ3.1. thiết kế mạng cục bộ
3.1. thiết kế mạng cục bộ
 
Đề tài: Xây dựng ứng dụng Android truy xuất cơ sở dữ liệu, HAY
Đề tài: Xây dựng ứng dụng Android truy xuất cơ sở dữ liệu, HAYĐề tài: Xây dựng ứng dụng Android truy xuất cơ sở dữ liệu, HAY
Đề tài: Xây dựng ứng dụng Android truy xuất cơ sở dữ liệu, HAY
 
Báo cáo thực tập tốt nghiệp xây dựng website bằng laravel
Báo cáo thực tập tốt nghiệp xây dựng website bằng laravelBáo cáo thực tập tốt nghiệp xây dựng website bằng laravel
Báo cáo thực tập tốt nghiệp xây dựng website bằng laravel
 
Luận văn: Tìm hiểu chuẩn mật mã dữ liệu (DES) và ứng dụng, HOT
Luận văn: Tìm hiểu chuẩn mật mã dữ liệu (DES) và ứng dụng, HOTLuận văn: Tìm hiểu chuẩn mật mã dữ liệu (DES) và ứng dụng, HOT
Luận văn: Tìm hiểu chuẩn mật mã dữ liệu (DES) và ứng dụng, HOT
 
Luận văn Thạc sĩ Tìm hiểu QRcode và ứng dụng cho bài toán check-in tự động
Luận văn Thạc sĩ Tìm hiểu QRcode và ứng dụng cho bài toán check-in tự độngLuận văn Thạc sĩ Tìm hiểu QRcode và ứng dụng cho bài toán check-in tự động
Luận văn Thạc sĩ Tìm hiểu QRcode và ứng dụng cho bài toán check-in tự động
 
Báo cáo bài tập lớn phân tích thiết kế hệ thống
Báo cáo bài tập lớn phân tích thiết kế hệ thốngBáo cáo bài tập lớn phân tích thiết kế hệ thống
Báo cáo bài tập lớn phân tích thiết kế hệ thống
 
Đề tài: Nghiên cứu hệ thống giám sát trên nền Camera IP, HOT
Đề tài: Nghiên cứu hệ thống giám sát trên nền Camera IP, HOTĐề tài: Nghiên cứu hệ thống giám sát trên nền Camera IP, HOT
Đề tài: Nghiên cứu hệ thống giám sát trên nền Camera IP, HOT
 
Giới thiệu về Rational Rose và Các diagram
Giới thiệu về Rational Rose và Các diagramGiới thiệu về Rational Rose và Các diagram
Giới thiệu về Rational Rose và Các diagram
 
Luận văn: Xây dựng website quản lý nhà hàng, HOT
Luận văn: Xây dựng website quản lý nhà hàng, HOTLuận văn: Xây dựng website quản lý nhà hàng, HOT
Luận văn: Xây dựng website quản lý nhà hàng, HOT
 
Đề tài: Xây dựng phần mềm quản lý thông tin nhân sự ĐH Hải Phòng
Đề tài: Xây dựng phần mềm quản lý thông tin nhân sự ĐH Hải PhòngĐề tài: Xây dựng phần mềm quản lý thông tin nhân sự ĐH Hải Phòng
Đề tài: Xây dựng phần mềm quản lý thông tin nhân sự ĐH Hải Phòng
 
Đề tài: Xây dựng ứng dụng game Android đoán lá bài đã chọn
Đề tài: Xây dựng ứng dụng game Android đoán lá bài đã chọnĐề tài: Xây dựng ứng dụng game Android đoán lá bài đã chọn
Đề tài: Xây dựng ứng dụng game Android đoán lá bài đã chọn
 
NGHIÊN CỨU PHƯƠNG PHÁP QUAY LUI VÀ ỨNG DỤNG GIẢI BÀI TOÁN SUDOKU
NGHIÊN CỨU PHƯƠNG PHÁP QUAY LUI VÀ ỨNG DỤNG GIẢI BÀI TOÁN SUDOKU NGHIÊN CỨU PHƯƠNG PHÁP QUAY LUI VÀ ỨNG DỤNG GIẢI BÀI TOÁN SUDOKU
NGHIÊN CỨU PHƯƠNG PHÁP QUAY LUI VÀ ỨNG DỤNG GIẢI BÀI TOÁN SUDOKU
 
Bao cao athena cuoi ky backtrack và các công cụ kiểm tra an ninh mạng -trần...
Bao cao athena cuoi ky   backtrack và các công cụ kiểm tra an ninh mạng -trần...Bao cao athena cuoi ky   backtrack và các công cụ kiểm tra an ninh mạng -trần...
Bao cao athena cuoi ky backtrack và các công cụ kiểm tra an ninh mạng -trần...
 
Báo cáo đồ án đề tài xây dựng trợ lý ảo bằng python
Báo cáo đồ án đề tài xây dựng trợ lý ảo bằng pythonBáo cáo đồ án đề tài xây dựng trợ lý ảo bằng python
Báo cáo đồ án đề tài xây dựng trợ lý ảo bằng python
 
Luận văn Thạc sĩ xây dựng ứng dụng chat trong android với firebase
Luận văn Thạc sĩ xây dựng ứng dụng chat trong android với firebaseLuận văn Thạc sĩ xây dựng ứng dụng chat trong android với firebase
Luận văn Thạc sĩ xây dựng ứng dụng chat trong android với firebase
 
Luận văn: Phương pháp tấn công chữ ký số: Rsa,Elgamal,Dss
Luận văn: Phương pháp tấn công chữ ký số: Rsa,Elgamal,DssLuận văn: Phương pháp tấn công chữ ký số: Rsa,Elgamal,Dss
Luận văn: Phương pháp tấn công chữ ký số: Rsa,Elgamal,Dss
 

Similaire à Luận văn tốt nghiệp: Phát triển ứng dụng trên nền Eclipse, HOT

Similaire à Luận văn tốt nghiệp: Phát triển ứng dụng trên nền Eclipse, HOT (20)

Luận văn: Hệ thống quản lý phiên bản văn bản, HAY
Luận văn: Hệ thống quản lý phiên bản văn bản, HAYLuận văn: Hệ thống quản lý phiên bản văn bản, HAY
Luận văn: Hệ thống quản lý phiên bản văn bản, HAY
 
Đề tài: Hệ thống quản lý phiên bản văn bản, HOT, 9đ
Đề tài: Hệ thống quản lý phiên bản văn bản, HOT, 9đĐề tài: Hệ thống quản lý phiên bản văn bản, HOT, 9đ
Đề tài: Hệ thống quản lý phiên bản văn bản, HOT, 9đ
 
Luận văn: Ứng dụng POS trong hệ thống bán lẻ, HAY
Luận văn: Ứng dụng POS trong hệ thống bán lẻ, HAYLuận văn: Ứng dụng POS trong hệ thống bán lẻ, HAY
Luận văn: Ứng dụng POS trong hệ thống bán lẻ, HAY
 
Đề tài: Phương pháp trích chọn đặc trưng nhận dạng chữ viết
Đề tài: Phương pháp trích chọn đặc trưng nhận dạng chữ viếtĐề tài: Phương pháp trích chọn đặc trưng nhận dạng chữ viết
Đề tài: Phương pháp trích chọn đặc trưng nhận dạng chữ viết
 
Đề tài: Phương pháp trích chọn đặc trưng cho nhận dạng chữ viết
Đề tài: Phương pháp trích chọn đặc trưng cho nhận dạng chữ viếtĐề tài: Phương pháp trích chọn đặc trưng cho nhận dạng chữ viết
Đề tài: Phương pháp trích chọn đặc trưng cho nhận dạng chữ viết
 
Đề tài: Thuật toán quy hoạch động cho tính khoảng cách, HOT
Đề tài: Thuật toán quy hoạch động cho tính khoảng cách, HOTĐề tài: Thuật toán quy hoạch động cho tính khoảng cách, HOT
Đề tài: Thuật toán quy hoạch động cho tính khoảng cách, HOT
 
Đề tài: Tìm hiểu thuật toán quy hoạch động cho tính khoảng cách
Đề tài: Tìm hiểu thuật toán quy hoạch động cho tính khoảng cáchĐề tài: Tìm hiểu thuật toán quy hoạch động cho tính khoảng cách
Đề tài: Tìm hiểu thuật toán quy hoạch động cho tính khoảng cách
 
Đề tài: Tìm hiểu cơ chế đăng nhập một lần và thử nghiệm, HOT
Đề tài: Tìm hiểu cơ chế đăng nhập một lần và thử nghiệm, HOTĐề tài: Tìm hiểu cơ chế đăng nhập một lần và thử nghiệm, HOT
Đề tài: Tìm hiểu cơ chế đăng nhập một lần và thử nghiệm, HOT
 
Đề tài: Kỹ thuật giấu tin thuận nghịch sử dụng thuật toán maxmin
Đề tài: Kỹ thuật giấu tin thuận nghịch sử dụng thuật toán maxminĐề tài: Kỹ thuật giấu tin thuận nghịch sử dụng thuật toán maxmin
Đề tài: Kỹ thuật giấu tin thuận nghịch sử dụng thuật toán maxmin
 
Đề tài: Tìm hiểu phần mềm nguồn mở Nuke Viet và ứng dụng, HOT
Đề tài: Tìm hiểu phần mềm nguồn mở Nuke Viet và ứng dụng, HOTĐề tài: Tìm hiểu phần mềm nguồn mở Nuke Viet và ứng dụng, HOT
Đề tài: Tìm hiểu phần mềm nguồn mở Nuke Viet và ứng dụng, HOT
 
Đề tài: Đặc trưng lồi 3D và bài toán phát hiện mặt người trong ảnh
Đề tài: Đặc trưng lồi 3D và bài toán phát hiện mặt người trong ảnhĐề tài: Đặc trưng lồi 3D và bài toán phát hiện mặt người trong ảnh
Đề tài: Đặc trưng lồi 3D và bài toán phát hiện mặt người trong ảnh
 
Đề tài: Chương trình quản lý nhân sự tiền lương tại doanh nghiệp
Đề tài: Chương trình quản lý nhân sự tiền lương tại doanh nghiệpĐề tài: Chương trình quản lý nhân sự tiền lương tại doanh nghiệp
Đề tài: Chương trình quản lý nhân sự tiền lương tại doanh nghiệp
 
Đề tài: Chương trình quản lý nhân sự ại doanh nghiệp tư nhân
Đề tài: Chương trình quản lý nhân sự ại doanh nghiệp tư nhânĐề tài: Chương trình quản lý nhân sự ại doanh nghiệp tư nhân
Đề tài: Chương trình quản lý nhân sự ại doanh nghiệp tư nhân
 
luan van thac si xay dung ung dung quan ly cho vay von cua lien doan lao dong
luan van thac si xay dung ung dung quan ly cho vay von cua lien doan lao dongluan van thac si xay dung ung dung quan ly cho vay von cua lien doan lao dong
luan van thac si xay dung ung dung quan ly cho vay von cua lien doan lao dong
 
Đề tài: Ứng dụng LabVIEW điều khiển lò nhiệt ghép nối với máy tính
Đề tài: Ứng dụng LabVIEW điều khiển lò nhiệt ghép nối với máy tínhĐề tài: Ứng dụng LabVIEW điều khiển lò nhiệt ghép nối với máy tính
Đề tài: Ứng dụng LabVIEW điều khiển lò nhiệt ghép nối với máy tính
 
Đề tài: Ứng dụng LabVIEW điều khiển lò nhiệt ghép nối với máy tính
Đề tài: Ứng dụng LabVIEW điều khiển lò nhiệt ghép nối với máy tínhĐề tài: Ứng dụng LabVIEW điều khiển lò nhiệt ghép nối với máy tính
Đề tài: Ứng dụng LabVIEW điều khiển lò nhiệt ghép nối với máy tính
 
Đề tài: Thiết kế mạng truyền hình cáp huyện An Dương, Hải Phòng
Đề tài: Thiết kế mạng truyền hình cáp huyện An Dương, Hải PhòngĐề tài: Thiết kế mạng truyền hình cáp huyện An Dương, Hải Phòng
Đề tài: Thiết kế mạng truyền hình cáp huyện An Dương, Hải Phòng
 
Đề tài: Khả năng hấp phụ sắt của vật liệu hấp phụ chế tạo từ rơm
Đề tài: Khả năng hấp phụ sắt của vật liệu hấp phụ chế tạo từ rơmĐề tài: Khả năng hấp phụ sắt của vật liệu hấp phụ chế tạo từ rơm
Đề tài: Khả năng hấp phụ sắt của vật liệu hấp phụ chế tạo từ rơm
 
Luận văn: Kỹ thuật giấu tin trong tệp văn bản, HOT
Luận văn: Kỹ thuật giấu tin trong tệp văn bản, HOTLuận văn: Kỹ thuật giấu tin trong tệp văn bản, HOT
Luận văn: Kỹ thuật giấu tin trong tệp văn bản, HOT
 
Chuyên Đề Thực Tập Xây Dựng Kế Hoạch Kinh Doanh Công Ty
Chuyên Đề Thực Tập Xây Dựng Kế Hoạch Kinh Doanh Công TyChuyên Đề Thực Tập Xây Dựng Kế Hoạch Kinh Doanh Công Ty
Chuyên Đề Thực Tập Xây Dựng Kế Hoạch Kinh Doanh Công Ty
 

Plus de Dịch vụ viết bài trọn gói ZALO: 0909232620

Plus de Dịch vụ viết bài trọn gói ZALO: 0909232620 (20)

Danh Sách 200 Đề Tài Tiểu Luận Chuyên Viên Chính Về Bảo Hiểm Xã Hội Mới Nhất
Danh Sách 200 Đề Tài Tiểu Luận Chuyên Viên Chính Về Bảo Hiểm Xã Hội Mới NhấtDanh Sách 200 Đề Tài Tiểu Luận Chuyên Viên Chính Về Bảo Hiểm Xã Hội Mới Nhất
Danh Sách 200 Đề Tài Tiểu Luận Chuyên Viên Chính Về Bảo Hiểm Xã Hội Mới Nhất
 
Danh Sách 200 Đề Tài Luận Văn Thạc Sĩ Quản Trị Nguồn Nhân Lực, 9 Điểm
Danh Sách 200 Đề Tài Luận Văn Thạc Sĩ Quản Trị Nguồn Nhân Lực, 9 ĐiểmDanh Sách 200 Đề Tài Luận Văn Thạc Sĩ Quản Trị Nguồn Nhân Lực, 9 Điểm
Danh Sách 200 Đề Tài Luận Văn Thạc Sĩ Quản Trị Nguồn Nhân Lực, 9 Điểm
 
Danh Sách 200 Đề Tài Luận Văn Thạc Sĩ Quản Lý Văn Hóa Giúp Bạn Thêm Ý Tưởng
Danh Sách 200 Đề Tài Luận Văn Thạc Sĩ Quản Lý Văn Hóa Giúp Bạn Thêm Ý TưởngDanh Sách 200 Đề Tài Luận Văn Thạc Sĩ Quản Lý Văn Hóa Giúp Bạn Thêm Ý Tưởng
Danh Sách 200 Đề Tài Luận Văn Thạc Sĩ Quản Lý Văn Hóa Giúp Bạn Thêm Ý Tưởng
 
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Quản Lý Giáo Dục Dễ Làm Điểm Cao
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Quản Lý Giáo Dục Dễ Làm Điểm CaoDanh Sách 200 Đề Tài Báo Cáo Thực Tập Quản Lý Giáo Dục Dễ Làm Điểm Cao
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Quản Lý Giáo Dục Dễ Làm Điểm Cao
 
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Quan Hệ Lao Động Từ Sinh Viên Giỏi
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Quan Hệ Lao Động Từ Sinh Viên GiỏiDanh Sách 200 Đề Tài Báo Cáo Thực Tập Quan Hệ Lao Động Từ Sinh Viên Giỏi
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Quan Hệ Lao Động Từ Sinh Viên Giỏi
 
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Nuôi Trồng Thủy Sản Dễ Làm Nhất
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Nuôi Trồng Thủy Sản Dễ Làm NhấtDanh Sách 200 Đề Tài Báo Cáo Thực Tập Nuôi Trồng Thủy Sản Dễ Làm Nhất
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Nuôi Trồng Thủy Sản Dễ Làm Nhất
 
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Sư, Mới Nhất, Điểm Cao
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Sư, Mới Nhất, Điểm CaoDanh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Sư, Mới Nhất, Điểm Cao
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Sư, Mới Nhất, Điểm Cao
 
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Phòng, Chống Hiv, Mới Nhất, Điểm Cao
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Phòng, Chống Hiv, Mới Nhất, Điểm CaoDanh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Phòng, Chống Hiv, Mới Nhất, Điểm Cao
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Phòng, Chống Hiv, Mới Nhất, Điểm Cao
 
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Phá Sản, Mới Nhất
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Phá Sản, Mới NhấtDanh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Phá Sản, Mới Nhất
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Phá Sản, Mới Nhất
 
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Nhà Ở, Điểm Cao
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Nhà Ở, Điểm CaoDanh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Nhà Ở, Điểm Cao
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Nhà Ở, Điểm Cao
 
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Ngân Hàng, Mới Nhất
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Ngân Hàng, Mới NhấtDanh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Ngân Hàng, Mới Nhất
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Ngân Hàng, Mới Nhất
 
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Môi Trường, Mới Nhất
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Môi Trường, Mới NhấtDanh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Môi Trường, Mới Nhất
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Môi Trường, Mới Nhất
 
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Hộ Tịch, Điểm Cao
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Hộ Tịch, Điểm CaoDanh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Hộ Tịch, Điểm Cao
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Hộ Tịch, Điểm Cao
 
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Hình Sự , Dễ Làm Điểm Cao
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Hình Sự , Dễ Làm Điểm CaoDanh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Hình Sự , Dễ Làm Điểm Cao
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Hình Sự , Dễ Làm Điểm Cao
 
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Hành Chính, Dễ Làm Điểm Cao
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Hành Chính, Dễ Làm Điểm CaoDanh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Hành Chính, Dễ Làm Điểm Cao
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Hành Chính, Dễ Làm Điểm Cao
 
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Giáo Dục, Điểm Cao
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Giáo Dục, Điểm CaoDanh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Giáo Dục, Điểm Cao
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Giáo Dục, Điểm Cao
 
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Đấu Thầu, Từ Sinh Viên Khá Giỏi
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Đấu Thầu, Từ Sinh Viên Khá GiỏiDanh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Đấu Thầu, Từ Sinh Viên Khá Giỏi
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Đấu Thầu, Từ Sinh Viên Khá Giỏi
 
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Đầu Tư, Dễ Làm Điểm Cao
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Đầu Tư, Dễ Làm Điểm CaoDanh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Đầu Tư, Dễ Làm Điểm Cao
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Đầu Tư, Dễ Làm Điểm Cao
 
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Đầu Tư Công, Dễ Làm Điểm Cao
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Đầu Tư Công, Dễ Làm Điểm CaoDanh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Đầu Tư Công, Dễ Làm Điểm Cao
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Đầu Tư Công, Dễ Làm Điểm Cao
 
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Đất Đai, Từ Sinh Viên Khá Giỏi
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Đất Đai, Từ Sinh Viên Khá GiỏiDanh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Đất Đai, Từ Sinh Viên Khá Giỏi
Danh Sách 200 Đề Tài Báo Cáo Thực Tập Luật Đất Đai, Từ Sinh Viên Khá Giỏi
 

Dernier

26 Truyện Ngắn Sơn Nam (Sơn Nam) thuviensach.vn.pdf
26 Truyện Ngắn Sơn Nam (Sơn Nam) thuviensach.vn.pdf26 Truyện Ngắn Sơn Nam (Sơn Nam) thuviensach.vn.pdf
26 Truyện Ngắn Sơn Nam (Sơn Nam) thuviensach.vn.pdf
ltbdieu
 
SLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdf
SLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdfSLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdf
SLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdf
hoangtuansinh1
 
Bài tập nhóm Kỹ Năng Gỉai Quyết Tranh Chấp Lao Động (1).pptx
Bài tập nhóm Kỹ Năng Gỉai Quyết Tranh Chấp Lao Động (1).pptxBài tập nhóm Kỹ Năng Gỉai Quyết Tranh Chấp Lao Động (1).pptx
Bài tập nhóm Kỹ Năng Gỉai Quyết Tranh Chấp Lao Động (1).pptx
DungxPeach
 
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...
ChuThNgnFEFPLHN
 
bài tập lớn môn kiến trúc máy tính và hệ điều hành
bài tập lớn môn kiến trúc máy tính và hệ điều hànhbài tập lớn môn kiến trúc máy tính và hệ điều hành
bài tập lớn môn kiến trúc máy tính và hệ điều hành
dangdinhkien2k4
 

Dernier (20)

xemsomenh.com-Vòng Lộc Tồn - Vòng Bác Sĩ và Cách An Trong Vòng Lộc Tồn.pdf
xemsomenh.com-Vòng Lộc Tồn - Vòng Bác Sĩ và Cách An Trong Vòng Lộc Tồn.pdfxemsomenh.com-Vòng Lộc Tồn - Vòng Bác Sĩ và Cách An Trong Vòng Lộc Tồn.pdf
xemsomenh.com-Vòng Lộc Tồn - Vòng Bác Sĩ và Cách An Trong Vòng Lộc Tồn.pdf
 
Giáo trình xây dựng thực đơn. Ths Hoang Ngoc Hien.pdf
Giáo trình xây dựng thực đơn. Ths Hoang Ngoc Hien.pdfGiáo trình xây dựng thực đơn. Ths Hoang Ngoc Hien.pdf
Giáo trình xây dựng thực đơn. Ths Hoang Ngoc Hien.pdf
 
ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...
ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...
ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...
 
Kiến thức cơ bản về tư duy số - VTC Net Viet
Kiến thức cơ bản về tư duy số - VTC Net VietKiến thức cơ bản về tư duy số - VTC Net Viet
Kiến thức cơ bản về tư duy số - VTC Net Viet
 
60 CÂU HỎI ÔN TẬP LÝ LUẬN CHÍNH TRỊ NĂM 2024.docx
60 CÂU HỎI ÔN TẬP LÝ LUẬN CHÍNH TRỊ NĂM 2024.docx60 CÂU HỎI ÔN TẬP LÝ LUẬN CHÍNH TRỊ NĂM 2024.docx
60 CÂU HỎI ÔN TẬP LÝ LUẬN CHÍNH TRỊ NĂM 2024.docx
 
Bài học phòng cháy chữa cháy - PCCC tại tòa nhà
Bài học phòng cháy chữa cháy - PCCC tại tòa nhàBài học phòng cháy chữa cháy - PCCC tại tòa nhà
Bài học phòng cháy chữa cháy - PCCC tại tòa nhà
 
xemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdf
xemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdfxemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdf
xemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdf
 
26 Truyện Ngắn Sơn Nam (Sơn Nam) thuviensach.vn.pdf
26 Truyện Ngắn Sơn Nam (Sơn Nam) thuviensach.vn.pdf26 Truyện Ngắn Sơn Nam (Sơn Nam) thuviensach.vn.pdf
26 Truyện Ngắn Sơn Nam (Sơn Nam) thuviensach.vn.pdf
 
SLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdf
SLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdfSLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdf
SLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdf
 
Giáo trình nhập môn lập trình - Đặng Bình Phương
Giáo trình nhập môn lập trình - Đặng Bình PhươngGiáo trình nhập môn lập trình - Đặng Bình Phương
Giáo trình nhập môn lập trình - Đặng Bình Phương
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
TUYỂN TẬP 50 ĐỀ LUYỆN THI TUYỂN SINH LỚP 10 THPT MÔN TOÁN NĂM 2024 CÓ LỜI GIẢ...
TUYỂN TẬP 50 ĐỀ LUYỆN THI TUYỂN SINH LỚP 10 THPT MÔN TOÁN NĂM 2024 CÓ LỜI GIẢ...TUYỂN TẬP 50 ĐỀ LUYỆN THI TUYỂN SINH LỚP 10 THPT MÔN TOÁN NĂM 2024 CÓ LỜI GIẢ...
TUYỂN TẬP 50 ĐỀ LUYỆN THI TUYỂN SINH LỚP 10 THPT MÔN TOÁN NĂM 2024 CÓ LỜI GIẢ...
 
TUYỂN TẬP ĐỀ THI GIỮA KÌ, CUỐI KÌ 2 MÔN VẬT LÍ LỚP 11 THEO HÌNH THỨC THI MỚI ...
TUYỂN TẬP ĐỀ THI GIỮA KÌ, CUỐI KÌ 2 MÔN VẬT LÍ LỚP 11 THEO HÌNH THỨC THI MỚI ...TUYỂN TẬP ĐỀ THI GIỮA KÌ, CUỐI KÌ 2 MÔN VẬT LÍ LỚP 11 THEO HÌNH THỨC THI MỚI ...
TUYỂN TẬP ĐỀ THI GIỮA KÌ, CUỐI KÌ 2 MÔN VẬT LÍ LỚP 11 THEO HÌNH THỨC THI MỚI ...
 
Bài tập nhóm Kỹ Năng Gỉai Quyết Tranh Chấp Lao Động (1).pptx
Bài tập nhóm Kỹ Năng Gỉai Quyết Tranh Chấp Lao Động (1).pptxBài tập nhóm Kỹ Năng Gỉai Quyết Tranh Chấp Lao Động (1).pptx
Bài tập nhóm Kỹ Năng Gỉai Quyết Tranh Chấp Lao Động (1).pptx
 
BỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdf
BỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdfBỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdf
BỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdf
 
Đề thi tin học HK2 lớp 3 Chân Trời Sáng Tạo
Đề thi tin học HK2 lớp 3 Chân Trời Sáng TạoĐề thi tin học HK2 lớp 3 Chân Trời Sáng Tạo
Đề thi tin học HK2 lớp 3 Chân Trời Sáng Tạo
 
ĐỀ KIỂM TRA CUỐI KÌ 2 BIÊN SOẠN THEO ĐỊNH HƯỚNG ĐỀ BGD 2025 MÔN TOÁN 10 - CÁN...
ĐỀ KIỂM TRA CUỐI KÌ 2 BIÊN SOẠN THEO ĐỊNH HƯỚNG ĐỀ BGD 2025 MÔN TOÁN 10 - CÁN...ĐỀ KIỂM TRA CUỐI KÌ 2 BIÊN SOẠN THEO ĐỊNH HƯỚNG ĐỀ BGD 2025 MÔN TOÁN 10 - CÁN...
ĐỀ KIỂM TRA CUỐI KÌ 2 BIÊN SOẠN THEO ĐỊNH HƯỚNG ĐỀ BGD 2025 MÔN TOÁN 10 - CÁN...
 
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...
 
20 ĐỀ DỰ ĐOÁN - PHÁT TRIỂN ĐỀ MINH HỌA BGD KỲ THI TỐT NGHIỆP THPT NĂM 2024 MÔ...
20 ĐỀ DỰ ĐOÁN - PHÁT TRIỂN ĐỀ MINH HỌA BGD KỲ THI TỐT NGHIỆP THPT NĂM 2024 MÔ...20 ĐỀ DỰ ĐOÁN - PHÁT TRIỂN ĐỀ MINH HỌA BGD KỲ THI TỐT NGHIỆP THPT NĂM 2024 MÔ...
20 ĐỀ DỰ ĐOÁN - PHÁT TRIỂN ĐỀ MINH HỌA BGD KỲ THI TỐT NGHIỆP THPT NĂM 2024 MÔ...
 
bài tập lớn môn kiến trúc máy tính và hệ điều hành
bài tập lớn môn kiến trúc máy tính và hệ điều hànhbài tập lớn môn kiến trúc máy tính và hệ điều hành
bài tập lớn môn kiến trúc máy tính và hệ điều hành
 

Luận văn tốt nghiệp: Phát triển ứng dụng trên nền Eclipse, HOT

  • 1. BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƢỜNG ĐẠI HỌC DÂN LẬP HẢI PHÒNG -------o0o------- ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ THÔNG TIN HẢI PHÒNG 2013
  • 2. BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƢỜNG ĐẠI HỌC DÂN LẬP HẢI PHÒNG -------o0o------- PHÁT TRIỂN ỨNG DỤNG TRÊN NỀN ECLIPSE ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Công nghệ Thông tin HẢI PHÒNG - 2013
  • 3. BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƢỜNG ĐẠI HỌC DÂN LẬP HẢI PHÒNG -------o0o------- PHÁT TRIỂN ỨNG DỤNG TRÊN NỀN ECLIPSE ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Công nghệ Thông tin Sinh viên thực hiện: Phạm Viết Mạnh Giáo viên hƣớng dẫn:ThS Nguyễn Trịnh Đông Mã số sinh viên: 1351010041 HẢI PHÒNG - 2013
  • 4. BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƢỜNG ĐẠI HỌC DÂN LẬP HẢI PHÒNG CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập - Tự do - Hạnh phúc -------o0o------- NHIỆM VỤ THIẾT KẾ TỐT NGHIỆP Sinh viên: Phạm Viết Mạnh Mã SV: 1351010041 Lớp: CT1301 Ngành: Công nghệ Thông tin Tên đề tài: Phát triển ứng dụng trên nền Eclipse
  • 5. NHIỆM VỤ ĐỀ TÀI 1. Nội dung và các yêu cầu cần giải quyết trong nhiệm vụ đề tài tốt nghiệp a. Nội dung  T×m hiÓu kiÕn tróc cña Eclipse  T×m hiÓu ph¸t triÓn phÇn mÒm theo h-íng thµnh phÇn  Ph¸t triÓn phÇn mÒm víi Plugin  X©y dùng øng dông thùc nghiÖm b. Các yêu cầu cần giải quyết Các phần mềm cần thiết để xây dựng  Web Server: Xampp  Hệ quản trị cơ sở dữ liệu MySQL  Phần mềm Eclipse.
  • 6. CÁN BỘ HƢỚNG DẪN ĐỀ TÀI TỐT NGHIỆP Ngƣời hƣớng dẫn thứ nhất: Họ và tên:Nguyễn Trịnh Đông Học hàm, học vị: Thạc Sĩ Cơ quan công tác: Trƣờng Đại Học Dân Lập Hải Phòng Nội dung hƣớng dẫn: …………………………………………………….. ………………………………………………………………………………… ………………………………………………………………………………… Ngƣời hƣớng dẫn thứ hai: Họ và tên:……………………………………………………………………… Học hàm, học vị: ……………………………………………………………… Cơ quan công tác: …………………………………………………………….. Nội dung hƣớng dẫn: …………………………………………………………. ………………………………………………………………………………… ………………………………………………………………………………… Đề tài tốt nghiệp đƣợc giao ngày tháng năm 2013 Yêu cầu phải hoàn thành trƣớc ngày tháng năm 2013 Đã nhận nhiệm vụ: Đ.T.T.N Sinh viên Đã nhận nhiệm vụ: Đ.T.T.N Cán bộ hƣớng dẫn Đ.T.T.N ThS Nguyễn Trịnh Đông Hải Phòng, ngày ............tháng.........năm 2013 HIỆU TRƢỞNG GS.TS.NGƯT Trần Hữu Nghị
  • 7. Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng Phạm Viết Mạnh – CT1301 2 PHẦN NHẬN XÉT TÓM TẮT CỦA CÁN BỘ HƢỚNG DẪN 1.Tinh thần thái độ của sinh viên trong quá trình làm đề tài tốt nghiệp: ........................................................................................................................ ........................................................................................................................ ........................................................................................................................ ........................................................................................................................ ........................................................................................................................ ........................................................................................................................ 2.Đánh giá chất lƣợng của đề tài tốt nghiệp (so với nội dung yêu cầu đã đề ra trong nhiệm vụ đề tài tốt nghiệp) ........................................................................................................................ ........................................................................................................................ ........................................................................................................................ ........................................................................................................................ ........................................................................................................................ ........................................................................................................................ ........................................................................................................................ 3. Cho điểm của cán bộ hƣớng dẫn: ( Điểm ghi bằng số và chữ ) ........................................................................................................................ ........................................................................................................................ Ngày.......tháng.........năm 2013 Cán bộ hƣớng dẫn chính ( Ký, ghi rõ họ tên )
  • 8. Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng Phạm Viết Mạnh – CT1301 3
  • 9. Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng Phạm Viết Mạnh – CT1301 4 PHẦN NHẬN XÉT ĐÁNH GIÁ CỦA CÁN BỘ CHẤM PHẢN BIỆN ĐỀ TÀI TỐT NGHIỆP 1. Đánh giá chất lƣợng đề tài tốt nghiệp (về các mặt nhƣ cơ sở lý luận, thuyết minh chƣơng trình, giá trị thực tế, ...) .................................................................................................................................................. .................................................................................................................................................. .................................................................................................................................................. .................................................................................................................................................. .................................................................................................................................................. .................................................................................................................................................. .................................................................................................................................................. .................................................................................................................................................. .................................................................................................................................................. .................................................................................................................................................. .................................................................................................................................................. .................................................................................................................................................. .................................................................................................................................................. 2. Cho điểm của cán bộ phản biện ( Điểm ghi bằng số và chữ ) .................................................................................................................................................. Ngày.......tháng.........năm 2013 Cán bộ chấm phản biện ( Ký, ghi rõ họ tên )
  • 10. Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng Phạm Viết Mạnh – CT1301 5 MỤC LỤC MỤC LỤC................................................................................................. 1 DANH MỤC CÁC HÌNH......................................................................... 8 DANH SÁCH THUẬT NGỮ................................................................. 10 LỜI CẢM ƠN ......................................................................................... 11 GIỚI THIỆU ........................................................................................... 12 CHƢƠNG 1: MỞ ĐẦU.......................................................................... 13 1.1 Giới thiệu Eclipse .......................................................................... 13 1.2 Lịch sử phát triển ........................................................................... 15 1.3 Kiến trúc Eclipse............................................................................ 16 CHƢƠNG 2: KIẾN TRÚC CỦA PLUGIN TRONG ECLIPSE............ 22 2.1 Giới thiệu ....................................................................................... 22 2.2 Phát triển phần mềm dựa trên thành phần ..................................... 23 2.2.1 Mô hình trừu tƣợng.................................................................. 23 2.2.2 Cú pháp.................................................................................... 24 2.2.3 Ngữ nghĩa ................................................................................ 24 2.2.4 Kết hợp (composition)............................................................. 25 2.3 Kiến trúc Plugin trong Eclipse....................................................... 26 2.3.1 Giới thiệu về Plugin và extension point .................................. 26 2.3.2 Điểm mở rộng Plugin (Plugin Extension Points).................... 28 2.3.3 Tiến trình làm việc của Plugin................................................. 28 2.3.4 Tập tin cấu hình (manifest) của Plugin.................................... 29 2.3.5 Plugin fragment và feature ...................................................... 31 2.3.6 Đóng gói Plugin....................................................................... 32
  • 11. Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng Phạm Viết Mạnh – CT1301 6 2.3.7 Perspective, views, editor ........................................................ 32 2.4 Ngôn ngữ lập trình java ................................................................. 33 2.4.1 Lịch sử phát triển của Java ...................................................... 33 2.4.2 Máy ảo Java (Java Virtual Machine)....................................... 33 2.4.3 Một số đặc điểm ngôn ngữ lập trình Java ............................. 35 CHƢƠNG 3: CHƢƠNG TRÌNH THỬ NGHIỆM................................. 36 3.1 Mô tả yêu cầu bài toán................................................................... 36 3.2 Xác định mô hình nghiệp vụ.......................................................... 37 3.2.1 Các chức năng nghiệp vụ......................................................... 37 3.2.2 Biểu đồ use case tổng quan...................................................... 38 3.2.3 Mô tả khái quát các quan hệ con ............................................. 38 3.2.4 Các mô hình ca sử dụng chi tiết .............................................. 39 3.3 Phân tích hệ thống.......................................................................... 42 3.3.1 Phân tích gói ca sử dụng “Cập nhật dữ liệu”........................... 42 3.3.2 Phân tích gói ca sử dụng “Lập thời khóa biểu”....................... 48 3.4 Thiết kế hệ thống ........................................................................... 50 3.5 Thuật toán sử dụng......................................................................... 51 3.6 Kết quả của chƣơng trình minh họa............................................... 51 3.7. Giao diện của chƣơng trình........................................................... 52 3.7.1. Giao diện chính của chƣơng trình. ......................................... 52 3.7.2 Giao diện đăng nhập................................................................ 52 3.7.3 Giao diện phòng học................................................................ 53 3.7.4 Giao diện học phần.................................................................. 54 3.7.5 Giao diện khoa viện................................................................. 55 3.2.6 Giao diện niên khóa................................................................. 56
  • 12. Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng Phạm Viết Mạnh – CT1301 7 3.7.7 Giao diện trang thiết bị ............................................................ 57 3.7.8 Giao diện thời khóa biểu.......................................................... 58 KẾT LUẬN............................................................................................. 59 TÀI LIỆU THAM KHẢO....................................................................... 60
  • 13. Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng Phạm Viết Mạnh – CT1301 8 DANH MỤC CÁC HÌNH Hình 1: Mô hình Eclipse........................................................................ 13 Hình 2: Kiến trúc tổng quan Eclipse....................................................... 17 Hình 3: Kiến trúc Plugin......................................................................... 22 Hình 4: Mô hình trừu tƣợng của thành phần .......................................... 23 Hình 5:Ví dụ về thành phần với các kiểu đầu vào - ra ........................... 24 Hình 6: Sự kết hợp các thành phần trong hệ thống................................. 25 Hình 7: Plugin và extension.................................................................... 26 Hình 8: Plugin trong Workbench và Workspace.................................... 26 Hình 9: Tiến trình làm việc của Plugin................................................... 28 Hình 10: Kiến trúc Java Virtual Machine............................................... 34 Hình 11: Biểu đồ Use case tổng quan..................................................... 38 Hình 12: Biểu đồ ca sử dụng gói “Cập nhật dữ liệu” ............................. 39 Hình 13: Biểu đồ ca sử dụng gói “Lập thời khóa biểu”.......................... 41 Hình 14: Biểu đồ tuần tự thực thi ca sử dụng “Cập nhật phòng học” .... 42 Hình 15: Biểu đồ cộng tác thực thi ca sử dụng “Cập nhật phòng học”.. 43 Hình 16: Biểu đồ tuần tự thực thi ca sử dụng “Cập nhật thiết bị”.......... 43 Hình 17: Biểu đồ cộng tác thực thi ca sử dụng “Cập nhật thiết bị” ....... 44 Hình 18: Biểu đồ tuần tự thực thi ca sử dụng “Cập nhật niên khóa” ..... 44 Hình 19: Biểu đồ cộng tác thực thi ca sử dụng “Cập nhật niên khóa”... 45 Hình 20: Biểu đồ tuần tự thực thi ca sử dụng “Cập nhật học phần” ...... 45 Hình 21: Biểu đồ cộng tác thực thi ca sử dụng “Cập nhật học phần”.... 46 Hình 22: Biểu đồ tuần tự thực thi ca sử dụng “Cập nhật khoa” ............. 46 Hình 23: Biểu đồ cộng tác thực thi ca sử dụng “Cập nhật khoa”........... 47
  • 14. Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng Phạm Viết Mạnh – CT1301 9 Hình 24: Mô hình phân tích gói ca ”Cập nhật dữ liệu ”......................... 47 Hình 25: Biểu đồ tuần tự thực thi ca sử dụng “Sắp thời khóa biểu” ...... 48 Hình 26: Biểu đồ cộng tác thực thi ca sử dụng “Sắp thời khóa biểu”.... 48 Hình 27: Biểu đồ tuần tự thực thi ca sử dụng “In thời khóa biểu”......... 49 Hình 28: Biểu đồ cộng tác thực thi ca sử dụng “In thời khóa biểu”....... 49 Hình 29: Mô hình phân tích gói ca “Lập thời khóa biểu” ...................... 50 Hình 30: Mô hình cơ sở dữ liệu.............................................................. 50 Hình 31: Giao diện chính của Plugin thời khóa biểu.............................. 52 Hình 32: Giao diện đăng nhập ................................................................ 52 Hình 33: Giao diện phòng học................................................................ 53 Hình 34 Giao diện học phần ................................................................... 54 Hình 35: Giao diện khoa viện................................................................. 55 Hình 36: Giao diện niên khóa ................................................................. 56 Hình 37: Giao diện trang thiết bị ............................................................ 57 Hình 38:Giao diện thông tin thời khóa biểu ........................................... 58
  • 15. Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng Phạm Viết Mạnh – CT1301 10 DANH SÁCH THUẬT NGỮ STT Thuật ngữ Mô tả 1 Eclipse Public License (EPL) Giấy phép công cộng Eclipse 2 Integrated Development Enviroment (IDE) Môi trƣờng phát triển Java tích hợp Java 3 Plugin Development Environment (PDE) Môi trƣờng phát triển trình cắm thêm 4 Java Runtime Environment (JRE) Môi trƣờng thời gian thực 5 Java Developer Kit (JDK) Bộ công cụ cho lập trình viên Java 6 The Platform runtime Nền tảng thời gian thực thi 7 Extension point Điểm mở rộng 8 Workbench Bàn làm việc
  • 16. Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng Phạm Viết Mạnh – CT1301 11 LỜI CẢM ƠN Trƣớc hết em xin bày tỏ tình cảm và lòng biết ơn đối với Th.S Nguyễn Trịnh Đông – Khoa Công nghệ thông tin – Trƣờng Đại học Dân Lập Hải Phòng, ngƣời đã dành cho em rất nhiều thời gian quý báu, trực tiếp hƣớng dẫn tận tình giúp đỡ, chỉ bảo em trong suốt quá trình làm đồ án tốt nghiệp. Em xin chân thành cảm ơn tất cả các thầy cô giáo trong Khoa Công nghệ thông tin - Trƣờng ĐHDL Hải Phòng, chân thành cảm ơn các thầy giáo, cô giáo tham gia giảng dạy và truyền đạt những kiến thức quý báu trong suốt thời gian em học tập tại trƣờng, đã đọc và phản biện đồ án của em giúp em hiểu rõ hơn các vấn đề mình nghiên cứu, để em có thể hoàn thành đồ án này. Em xin cảm ơn GS.TS.NGƢT Trần Hữu Nghị Hiệu trƣởng Trƣờng Đại học Dân lập Hải Phòng, Ban giám hiệu nhà trƣờng, Bộ môn tin học, các Phòng ban nhà trƣờng đã tạo điều kiện tốt nhất trong suốt thời gian học tập và làm tốt nghiệp. Tuy có nhiều cố gắng trong quá trình học tập, trong thời gian thực tập cũng nhƣ trong quá trình làm đồ án nhƣng không thể tránh khỏi những thiếu sót, em rất mong đƣợc sự góp ý quý báu của tất cả các thầy giáo, cô giáo cũng nhƣ tất cả các bạn để kết quả của em đƣợc hoàn thiện hơn. Em xin chân thành cảm ơn. Hải Phòng, tháng 12 năm 2012 Sinh viên Phạm Viết Mạnh
  • 17. Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng Phạm Viết Mạnh – CT1301 12 GIỚI THIỆU Ngày nay, các hệ thống thông tin có khuynh hƣớng ngày càng phức tạp, quản lý hầu hết các lĩnh vực trong đời sống xã hội, đƣợc triển khai trên nhiều nền tảng công nghệ khác nhau. Việc phát triển những hệ thống nhƣ thế đòi hỏi mất nhiều chi phí, thời gian, nguồn lực tài chính cũng nhƣ con ngƣời. Một xu hƣớng xây dựng những hệ thống phức tạp dựa trên các thành phần phần mềm có sẵn đang đƣợc các nhà nghiên cứu quan tâm và nhiều công ty lớn trên thế giới đầu tƣ phát triển. Phát triển các phần mềm dựa trên thành phần có nhiều ƣu điểm nhƣ: Giảm chi phí, rút ngắn thời gian triển khai, triển khai đƣợc trên nhiều nền tảng công nghệ khác nhau. Cụ thể, các thành phần phần mềm đƣợc nhiều hãng phần mềm cung cấp. Khi xây dựng hệ thống mới các nhà thiết kế chỉ cần kiểm tra xem thành phần phần mềm nào phù hợp với yêu cầu của hệ thống mới thì sẽ lựa chọn và ghép chúng lại với nhau. Các Plugin trong Eclipse là một hƣớng xây dựng phần mềm dựa trên thành phần.Eclipse cung cấp nhiều tính năng cho ngƣời phát triển bằng các ngôn ngữ lập trình phổ biến hiện nayJava, C, C++, Python, …. Eclipse trở thành lõi để phát triển ứng dụng. Việc mở rộng các tính năng của Eclipse bằng các Plugin đã đem lại cho Eclipse sức mạnh và tính thích nghi cao trong lĩnh vực phát triển phần mềm. Vì vậy, trong đợt tốt nghiệp này em chọn đề tài: “Phát triển ứng dụng trên nền Eclipse”để tìm hiểu và nghiên cứu. Nội dung khóa luận gồm có các phần sau: Chƣơng 1:Giới thiệu sự phát triển chung về phát triển phần mềm dựa trên thành phần, đặc biệt sự phát triển các Plugin trong Eclipse. Chƣơng 2: Trình bày về kiến trúc của Plugin trong Eclipse Chƣơng 3: Trình bày chương trình thử nghiệm sắp xếp thời khóa biểubằng plugin của eclipse. Kết luận Tài liệu tham khảo
  • 18. Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng Phạm Viết Mạnh – CT1301 13 CHƢƠNG 1: MỞ ĐẦU Trong chƣơng này, khóa luận trình bày về chƣơng trình Eclipse, lịch sử phát triển của Eclipse và kiến trúc nền tảng của Eclipse. 1.1Giới thiệu Eclipse Eclipse là một nền tảng có kiến trúc mở dựa trên Java, có thể mở rộng để phát triển các ứng dụng. Eclipse bao gồm tập hợp các dịch vụ dùngđể xây dựng các ứng dụng dựa trên các thành phần cắm thêm (Plugin)vàcho phép các thành phần cắm thêm tạo thành ứng dụng riêng biệt cho từng mục đích khác nhau, trong đó phải kể đến bộ công cụ phát triển Java (JDT - Java Development Tools). Các ứng dứng Plugin 1 Plugin 2 Plugin 3 Plugin n Eclipse Java Virtual Machine Linux MacOS Window Nứn tứng khác Hình 1: Mô hình Eclipse Eclipse sử dụng môi trƣờng phát triển thành phần cắm thêm (PDE- Plugin Development Environment)bao gồm một không gian làm việc cơ bản và một hệ thống thành phần cắm thêm mở rộng tƣơng thích với mọi môi trƣờng và mọi hệ điều hành. Eclipsecòn cho phép xây dựng các ứng dụng, công cụ tích hợp vào môi trƣờng Eclipse.Điều đó trở thành mối quan tâm chủ yếu của những nhà phát triển muốn mở rộng Eclipse. Nhà phát triển sẽ giảm chi phí đầu tƣ phát triển ứng dụng, rút ngắn thời gian triển khai ứng dụng khi áp dụng trên nhiều nền tảng công nghệ khác nhau. Sự bình đẳng và nhất quán luôn có trong Java. Eclipse đƣợc viết bằng ngôn ngữ lập trình Java và đƣợc sử dụng để phát triển các ứng dụnghỗ trợ cho các ngôn ngữ lập trình (Ada,C, C++,COBOL,Fortran,Haskell,JavaScript, Lasso,Perl, PHP, Python, R, Ruby...) cũng nhƣ môi trƣờng phát triển nhƣ
  • 19. Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng Phạm Viết Mạnh – CT1301 14 Eclipse Java development tools (JDT) cho JavavàScala, EclipseCDT cho C/C++ và Eclipse PDT cho PHP,Android Development Tools (ADT) Plugin cho Android. Eclipse là mã nguồn mở Phần mềm mã nguồn mở là phần mềm đƣợc phát hành với giấy phép nhằm bảo đảm cấp cho ngƣời dùng các quyền tự do nghiên cứu, chỉnh sửa và phân phối lại phần mềm. Nói chung, luật bản quyền (copyright) cho phép tác giả cấm ngƣời khác tái tạo, sửa đổihoặc phân phối các bản sao tác phẩm của tác giả đó. Ngƣợc lại, một tác giả, nhờ mô hình cấp phép copyleft, sẽ trao cho mọi ngƣời bản sao tác phẩm với quyền tái tạo, sửa đổi hoặc phân phối tác phẩm miễn là tất cả những bản sao hoặc bản sửa đổi mới đó cũng phải bị ràng buộc bởi mô hình cấp phép copyleft. Vì điều này trên thực tế đã đặt mục đích của bản quyền lên đầu, sử dụng quyền tác giả để cấp quyền cho ngƣời dùng, thay vì dành riêng chúng cho các nhà phát triển phần mềm. Copyleft thƣờng đƣợc miêu tả là "giữ bản quyền". OSI-Open Software Initiative là một tổ chức phi lợi nhuận định nghĩa nguồn mở một cách rõ ràng và cấp các chứng nhận cho các giấy phép đáp ứng đƣợc các tiêu chuẩn của nó. Eclipse đƣợc cấp phép theo Giấy phép công cộng Eclipse (EPL- Eclipse Public License) phiên bản V1.0 đƣợc OSI phê duyệt. Điều đótạo điều kiện thuận lợi cho việc sử dụng Eclipse phục vụ mục đích thƣơng mại trong khi vẫn bảo đảm bản quyền tác giả theo giấy phép mã nguồn mở. Các nàh phát triển tạo ra các thành phần cắm thêm cho Eclipse hoặc những ngƣời sử dụng Eclipse làm cơ sở cho phát triển phần mềm ứng dụng đƣợc phép phát hành bất kỳ mã Eclipse nào mà họ sử dụng hoặc sửa đổi theo EPL. Bản chất mã nguồn mở làm cho Eclipse sẵn dùng, miễn phí. Mã nguồn mở khuyến khích sự đổi mới và mang đến một cơ hội cho các nhà phát triển, ngay cả với các nhà phát triển thƣơng mại.Đồng thời, có thể đóng góp trở lại cơ sở mã nguồn mở chung. Có nhiều nguyên nhân, nhƣng có lẽ điều quan trọng nhất là càng nhiều nhà phát triển nhiều đóng góp cho dự án, dự án càng
  • 20. Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng Phạm Viết Mạnh – CT1301 15 trở nên có giá trị hơn cho mọi ngƣời. Khi dự án càng trở nên có ích hơn, càng nhiều nhà phát triển sẽ sử dụng nó và tạo ra một cộng đồng xung quanh nó, giống nhƣ những cộng đồng đã đƣợc tạo nên xung quanh Apache và Linux. 1.2Lịch sử phát triển Dự án Eclipse (EclipseProject) ban đầu đƣợc IBM thành lập vào tháng 11 năm 2001 và đƣợc hiệp hội các nhà cung cấp phần mềm hỗ trợ. Quỹ Eclipse đã đƣợc thành lập vào tháng 1 năm 2004 nhƣ là một tổ chức phi lợi nhuận, hoạt động độc lập. Nó đƣợc thành lập nhằm cho phép một cộng đồng minh bạch, mở và trung lập đối với các nhà phát triển phần mềmcó sử dụngnền tảngEclipse. Hiện nay, cộng đồng Eclipse hội tụ nhiều cá nhân và tổ chức từ nhiều lĩnh vực trong công nghiệp phần mềm. Nhiều chƣơng trình của Eclipse đã đƣợc triển khai bởi IBM trƣớc khi dự án Eclipse đƣợc tạo ra. Ngƣời tiền nhiệm của Eclipse là VisualAge đã đƣợc xây dựng có sử dụng Smalltalk trong một môi trƣờng phát triển đƣợc gọi là Envy. Sau khi Java xuất hiện vào những năm 90, IBM đã phát triển mộtmáy ảo mà nó đã làm việc với cả Smalltalk và Java. Sự phát triển nhanh chóng của Java và những ƣu điểm của nó cùng với sự mở rộng của mạng lƣới Internet đã buộc IBM phải xem xét tới việc bỏ máy ảo đôi này và xây dựng một nền tảng mới dựa trên Java từ đầu. Sản phẩm cuối cùng là Eclipseđã tiêu tốn của IBM khoảng 40 triệu USD vào năm 2001. Cuối năm 2001, IBMhợp tácBorland tạo ra quỹ Eclipse phi lợi nhuận, mở ra với thế giới phần mềm nguồn mở. Nhóm các doanh nghiệp này đã dần dần liên kết đƣợc với các công ty phát triển phần mềm toàn cầu quan trọng nhƣ: Oracle, Rational Software, Red Hat, SuSE, HP, Serena, Ericson và Novell. Trong đó hai công ty lớn cạnh tranh với IBM là Microsoft và Sun Microsystem.Microsoft đã bị loại bỏ vì sự độc quyền của hãng đối với thị trƣờng và Sun Microsystem đã có IDE của riêng hãngvới sản phẩm cạnh tranh là NetBeans. Trên thực tế, cái tên Eclipse đã đƣợc chọn vì mục tiêu là để tạo ra một IDE có khả năng cạnh tranh với Visual Studio (của Microsoft) và NetBeans (của Sun Microsystem).
  • 21. Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng Phạm Viết Mạnh – CT1301 16 Phiên bản ổn định mới nhất của Eclipse là sẵn sàng cho các hệ điều hành Windows, Linux, Solaris, AIX, HP-UX và Mac OS X. Tất cả các phiên bản của Eclipse cần phải có một máy chủ ảo Java – JVM (Java Virtual Machine) đƣợc cài đặt trong hệ thống, môi trƣờng thực thi Java - JRE (Java Runtime Environment) hoặc bộ công cụ cho lập trình viên Java - JDK (Java Developer Kit) của Sun. 1.3 Kiến trúc Eclipse Kiến trúc của Eclipse đƣợc xây dựng dựa trên hai thành phần chính: thành phần lõi (core) và các thành phần gắn thêm (plugin).  Thành phần lõibao gồm các chức năng, dịch vụ mà các hệ phát triển ứng dụng phải có nhƣ chức năng cung cấp giao diện, trình soạn thảo văn bản, gỡ lỗi… cần cho mọi nền tảng lập trình (cần cho các plugin).  Thành phần gắn thêm bao gồm nhiều thành phần dễ dàng tích hợp vào nhiều ứng dụng chạy trên nền Eclipse.Các chức năng của thành phần lõi tách biệt với các chức năng của phần giao diện. Kiến trúc Eclipse đƣợc thiết kế và xây dựng để đáp ứng các yêu cầu sau:  Hỗ trợ việc xây dựng các công cụ khác nhau để phát triển ứng dụng.  Hỗ trợ các công cụ để thao tác trên bất kỳ loại nội dung nào.Ví dụ:HTML, Java, C, C++, JSP, PHP, EJB, XML và GIF.  Hỗ trợ tích hợp các công cụ một cách dễ dàng.  Hỗ trợ môi trường phát triển ứng dụng giao diện và không giao diện.  Chạy được trên nhiều hệ điều hành, gồm Window, Linux, Android,…
  • 22. Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng Phạm Viết Mạnh – CT1301 17 Kiến trúc nền tảng Eclipse cung cấp các công cụ cùng cơ chế sử dụng và quy định để có thể tích hợp các công cụ một cách dễ dàng. Những cơ chế này đƣợc thể hiện thông qua giao diện API, lớp và phƣơng thức. Ngoài ra, nền tảng Eclipse còn cung cấp các framework để dễ dàng phát triển các công cụ mới. EclipseSDKbao gồm 3 phần chính:  Platform  JavaDevelopment Toolkit (JDT)  PluginDevelopment Environment (PDE) Với JDT, Eclipse là một môi trƣờng hỗ trợ phát triển Java. JDT cũng có thể đƣợc coi nhƣ là một Plugin cho Eclipse nhƣ là một môi trƣờng lập trình tích hợp (Java IDE -Integrated Development Enviroment).PDE hỗ trợ việc mở rộng Eclipse, tích hợp các Plugin vào EclipsePlatform. EclipsePlatform là nền tảng của toàn bộ phần mềm Eclipse, cung cấp những dịch vụ cần thiết cho việc tích hợp những bộ công cụ phát triển phần mềm dƣới dạng Plugin.EclipsePlatform đƣợc xây dựng dựa trên cơ chếphát hiện, tích hợp và chạy các thành phần gắn thêm. Plugin là thành phần gắn thêm có thể hoạt động độc lập hoặc cùng với các thành phần khác. Thông thƣờng, một ứng dụng có thể tổ hợp nhiều thành phần gắn thêm, mỗi thành phần gắn thêm này lại nối với các thành phần gắn thêm khác tùy vào mục đích sử dụng Hình2: Kiến trúc tổng quan Eclipse
  • 23. Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng Phạm Viết Mạnh – CT1301 18 1. Nền tảng thời gian thựcthi (The Platform runtime): Công việc chính của nền tảng thời gian thực thilà quản lýPlugin đang có trong thƣ mục Plugin của Eclipse.Mỗi Plugin đều có 1 tập tin Manifest liệt kê những kết nối mà Plugin cần.Plugin chỉ đƣợc tải vào Eclipse khi thực sự cần thiết để giảm lƣợng tài nguyên yêu cầu và thời gian khởi tạo. 2. Không gian làm việc (The Workspace) : Không gian làm việc quản lý tài nguyên ngƣời dùng đƣợc tổ chức dƣới dạng Project. Mỗi dự án là một thƣ mục con trong thƣ mục Không gian làm việc. Mỗi dự án có chứa các tập tin và thao tác của ngƣời dùng. Tất cả các file trong không gian làm việc đƣợc trực tiếp tiếp cận với các chƣơng trình chuẩn và công cụ cơ bản của hệ điều hành. Các công cụ tích hợp với nền tảng đƣợc cung cấp API để xử lý nguồn tài nguyên trong không gian làm việc (các dự án, các tập tin, và thƣ mục). Tài nguyên đƣợc đại diện bởi các đối tƣợng thích ứng để các bên khác có thể mở rộng hành vi của họ. Không gian làm việc bảo quản cấp thấp lịch sử những sự thay đổi tài nguyên, tránh thất thoát tài nguyên ngƣời dùng. Tài nguyên đƣợc tổ chức dƣới dạng cấu trúc cây rất hữu ích và hiệu quả.Từ đó, mỗi nút dữ liệu chỉ ra nơi mà các công cụ cần thêm, loại bỏ, hoặc làm mới. Không gian làm việcthông báo những công cụ cần thiết cho việc thay đổi tài nguyên. Đặc tính này cho phép các nhà xây dựng một số dự án mở rộng đƣợc đăng ký trên cùng một dự án và cung cấp nhiều cách để kích hoạt toàn dự án và không gian làm việc với dự án. Một không gian làm việctự độngxây dựng các tính năng, tự động kích hoạt các hoạt động cần thiết trong quá trình xây dựngsau mỗi lần sửa đổi tài nguyên (hoặc hàng loạt hoạt động). 3. Bàn làm việc (Workbench): Bàn làm việc là giao diện đồ họa ngƣời dùng của Eclipse, gồm có Standard Widget Toolkit (SWT) và JFace. Eclipse không hoàn toàn bắt buộc phải sử dụng SWT hay JFace để lập trình giao diện, ngƣời lập trình vẫn có thể sử dụngAWT hay SWING của Java thông qua việc cài đặt các Plugins.
  • 24. Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng Phạm Viết Mạnh – CT1301 19 SWT (Standard Widget Toolkit) là một gói công cụ mã nguồn mở đƣợc phát triển bởi IBM, cung cấp cho các lập trình viên Java giải pháp để phát triển giao diện đồ họa ngƣời dùng. SWT cung cấp một hệ điều hành độc lập thông thƣờng API cho các vật dụng và đồ họa thực hiện một cách mà cho phép tích hợp chặt chẽ với hệ thống cửa sổ cơ bản. Toàn bộ giao diện ngƣời dùng của EclipsePlatform, và các thành phần cắm vào nó, đều sử dụng SWT để trình bày thông tin cho ngƣời sử dụng. JFace là gói công cụ để xây dựng giao diện ngƣời dùng cấp cao, JFace là tầng trên cùng của SWT, cung cấp các lớp thuộc mô hình MVC (Model- View- Controller) để phát triển các ứng dụng đồ họa dễ dàng hơn. Cơ chế hoạt động cho phép ngƣời sử dụng các lệnh đƣợc xác định độc lập từ các điều khiển trong giao diện ngƣời dùng. Một hành động đại diện cho một lệnh có thể đƣợc kích hoạt bởi ngƣời dùng thông qua một nút,menu, hoặc các núttrên một thanh công cụ. Bàn làm việc Không giống nhƣ SWT và JFace, đƣợc cả hai mục đích chung giao diện ngƣời dùng bộ công cụ, bàn làm việc cung cấp các tính cách giao diện ngƣời dùng của nền tảng Eclipse và cung cấp các cấu trúc trong đó các công cụ tƣơng tác với ngƣời sử dụng. Bởi vì điều này và xác định vai trò trung tâm, bàn làm việclà đồng nghĩa với Nền tảng Eclipse giao diện ngƣời dùng nhƣ một toàn thể và với các cửa sổ chính của ngƣời dùng thấy khi các nền tảng đang chạy. Các APIWorkbench phụ thuộc vào các APISWTít hơn vào các APIJFace. Việc thực hiện Workbenchđƣợc xây dựng bằng cách sử dụng cả hai SWT và JFace; Java AWT và Swing không đƣợc sử dụng Trong EclipsePlatform, giao diện ngƣời dùng dựa trên các trình soạn thảo, khung nhìn, và phối cảnh. Từ quan điểm của ngƣời dùng, các mẫu và khung nhìn cần đƣợc nhìn thấy trên màn hình. Trình soạn thảocho phép ngƣời dùng mở, chỉnh sửa và lƣu các đối tƣợng. Một vòng đời đƣợc mở, lƣu gần giống nhƣ các công cụ hệ thống tập tin, nhƣng đƣợc tích hợp chặt chẽ hơn vào khung làm việc. Khi hoạt động,
  • 25. Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng Phạm Viết Mạnh – CT1301 20 một trình soạn thảocó thể bổ sung các lệnh lên thanh menuvà thanh công cụ. Nền tảng này cung cấp một trình soạn thảo tiêu chuẩn cho các nguồn tài nguyên văn bản, nhiều trình soạn thảocụ thể đƣợc cung cấp bởi các Plugins. Khung nhìn cung cấp thông tin về một số đối tƣợng mà ngƣời dùng đang làm việc tại khung làm việc. Một khung nhìn có thể hỗ trợ một mẫu bằng cách cung cấp thông tin về các tài liệu đang đƣợc chỉnh sửa. Một khung nhìn có thể làm tăng thêm các cách nhìn khác nhau bằng cách cung cấp thông tin về các đối tƣợng đang đƣợc chọn. Một cửa sổ làm việc có thể có một số khung nhìn riêng biệt, chỉ một trong số đó có thể nhìn thấy tại bất kỳ thời điểm nào. Mỗi điểm có khung nhìn riêng và mẫu của nó đƣợc sắp xếp để trình bày trên màn hình 4. Đội hỗ trợ (Team support): Nền tảng Eclipse cho phép một dự án trong vùng làm việc đặt theo phiên bản và quản lý cấu hình với một nhóm thƣ mục liên quan. Nền tảng này có các điểm mở rộng và một API cung cấp kho lƣu trữ cho phép các thành phầnmới đƣợc gắn vào. Các chức năng đƣợc cung cấp bởi một sản phẩm cụ thểluôn ảnh hƣởng đến công việc của ngƣời dùng, ví dụ, bằng cách thêm vào các bƣớc công khai để lấy tập tin từ các kho lƣu trữ, trả lại các tập tin đƣợc cập nhật vào kho, và để so sánh các phiên bản tập tin khác nhau. Theo đó, các nền tảng Eclipse có một cái nhìn tổng quan và cho phép mỗi nhà cung cấp một số thƣ mục để xác định công việc riêng của mình để ngƣời dùng quen thuộc với nhóm sản phẩm lƣu trữ có thể nhanh chóng học cách sử dụng nó từ bên trong Eclipse. 5. Trợ giúp (Help): Cung cấp hệ thống tài liệu mở rộng, có thể là định dạng HTML hay XML.Những ngƣời muốn phát triển Eclipse sẽ sử dụng PDE (PluginDevelopmentEnvironment)để bổ sung thêm các Plugin mới.
  • 26. Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng Phạm Viết Mạnh – CT1301 21 TIỂU KẾT CHƢƠNG 1 Chƣơng 1 đã cung cấp thông tin tổng quát về lịch sử phát triển và ƣu nhƣợc điểm của Eclipse. Các đặc điểm này đƣợc tóm tắt nhƣ sau: Ưu điểm sau:  Khả năng mở rộng, phụ thuộc vào các thành phần gắn thêm  Các thành phần gắn thêmđƣợc xây dựng thích nghi với việc phát triển trênmọi ứng dụng, từ ứng dụng trong doanh nghiệp, ứng dụng trên máy tính cá nhân cho đến các ứng dụng nhúng cho các thiết bị.  Những ngƣời phát triển có thể tự phát triển các thành phần gắn thêm theo yêu cầu riêng của họ. Nhược điểm: Ngƣời phát triển cần có hiểu biết về kiến trúc Eclipse để biết khi nàocần gắn thêm (hay gỡ ra) hoặc gắn thêm thành phần nào. Ngoài ra, các thành phần gắn thêm (các dự án) không ngừng phát triển nên phải biết lúc nào thì nâng cấp lên phiên bản mới hơn.
  • 27. Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng Phạm Viết Mạnh – CT1301 22 CHƢƠNG 2:KIẾN TRÚC CỦA PLUGIN TRONG ECLIPSE Trong chƣơng này,khóa luận trình bày về kiến trúc Plugin nói chung,kiến trúc Plugin trong Eclipse, phát triển phần mềm dựa trên các thành phần phần mềm. 2.1 Giới thiệu Plugin còn đƣợc gọi là trình cắm, hay phần bổ trợ là một thành phần giúp phần mềm ứng dụng thêm những tính năng cụ thể. Nếu đƣợc hỗ trợ, Plugin cho phép tùy biến các chức năng của một ứng dụng. Các phần mềm ứng dụng hỗ trợPlugin vì nhiều lý do. Một số lý do chính bao gồm:  Cho phép các nhà phát triển thứ ba tạo ra các tính năng để mở rộng phần mềm đó.  Hỗ trợ một cách dễ dàng trong việc bổ sung thêm các tính năng mới.  Giảm kích thƣớc của một ứng dụng.  Tách mã nguồn từ một ứng dụng vì giấy phép phần mềm không tƣơng thích. Kiến trúc chung của Plugin Hình3: Kiến trúc Plugin
  • 28. Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng Phạm Viết Mạnh – CT1301 23 Ứngdụng chính cung cấp dịch vụ mà các Plugin có thể sử dụng, bao gồm cách để Plugin đăng ký với ứng dụng chính và một giao thức cho việc trao đổi dữ liệu. Plugin phụ thuộc vào các dịch vụ cung cấp bởi các ứng dụng chính và thƣờng không tự hoạt động. Ngƣợc lại, các ứng dụng chính hoạt động độc lập với Plugin. Giao diện lập trình ứng dụng (API) mã nguồn mở cung cấp một giao diện tiêu chuẩn, cho phép các hãng thứ ba để tạo ra các Plugin tƣơng tác với các ứng dụng chính. Một API ổn định cho phép Plugin của hãng thứ ba tiếp tục hoạt động nhƣ các thay đổi đối với phiên bản gốc và để mở rộng vòng đời của các ứng dụng đã lỗi thời. 2.2 Phát triển phần mềm dựa trên thành phần Công nghệ phần mềm phát triển qua nhiều giai đoạn và từng giai đoạn luôn có những công nghệ mới xuất hiện giúp phát triển phần mềm thuận lợi và bền vững. Đó là Component-Based Development (CBD – Phát triển dựa trên các thành phần). Ƣu điểm của phát triển dựa trên các thành phần là khả năng sử dụng lại và thời gian phát triển ngắn. Tuy nhiên có những trở ngại mà phát triển dựa trên các thành phần phải vƣợt qua nhƣ: Tính tƣơng thích với môi trƣờng, tính kết hợp các thành phần với nhau, tính làm mịn của các thành phần phần mềm. 2.2.1 Mô hình trừu tƣợng Mô hình trừu tƣợng đƣợc dùng để mô tả các thành phần. Mô hình này đƣa ra một vài định nghĩa chung và tổng quát gồm: cú pháp (syntax), ngữ nghĩa (semantics) và tính kết hợp (composition). Tên Interface Mã nguứn Đứu vào Đứu ra Thành phứn Hình4: Mô hình trừu tượng của thành phần
  • 29. Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng Phạm Viết Mạnh – CT1301 24 2.2.2 Cú pháp Ngôn ngữ lập trình cấu tạo nên thành phần phần mềm sẽ quyết định cấu trúccủa nó. Trong các thành phần phần mềmhiện có, ngôn ngữ của thành phần là ngôn ngữ lập trình. Ví dụ: EJB tạo bằng ngôn ngữ lập trình Java và là một Java class. 2.2.3 Ngữ nghĩa Thành phần là một đơn vị phần mềm gồm có tên, giao tiếp (interface) và mã nguồn. Mã nguồn cài đặt các dịch vụ của thành phần đƣợc giấu kín bên trong thành phần. Interface là phần giao tiếp bên ngoài, cung cấp những thông tin để các thành phần có thể kết nối với nhau bao gồm những dịch vụ đầu vào và các yếu tố cung cấp dịch vụ đầu ra. Nếu có nhiều đầu vào và nhiều đầu ra, thành phần phải xác định quan hệ giữa các đầu vào và đầu ra. Hình5:Ví dụ về thành phần với các kiểu đầu vào - ra Thành phần là một đơn vị chức năng chƣa hoàn chỉnh. Một hệ thống sẽ bao gồm nhiều thành phần nối ghép lại. Đầu vào của thành phần này sẽ ghép với đầu ra của thành phần khác.Tƣơng tự, đầu ra của thành phần cũng có thể là đầu ra của hệ thống hoặc là đầu vào của một thành phần khác (hình 4). Hiện nay, thành phần có xu hƣớng chính là các đối tƣợng trong kiểu lập trình hƣớng đối tƣợng. Các dịch vụ đầu ra là các phƣơng thức. Các dịch vụ đầu vào đƣợc quản lý và cung cấp bằng các bộ chứa (container) nơi chứa các đối tƣợng cũng nhƣ quản lý sự tiếp cận và tƣơng tác đến chúng. Ví dụ: JavaBean đƣợc quản lý bởi bộ chứa nhƣ BeanBox và nó kết nối các JavaBean thông qua sự kiện (event). Trong khi đó, EJB đƣợc quản lý bởi chƣơng trình máy chủ J2EE và EJB đƣợc tiếp cận thông qua 2 interface là “home” và “remote” hoặc đƣợc gọi trực tiếp bởi máy chủ J2EE.
  • 30. Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng Phạm Viết Mạnh – CT1301 25 2.2.4 Kết hợp (composition) Trong phát triển phần mềm dựa trên thành phần, sự kết hợp các thành phần với nhau tạo thành hệ thống hoàn chỉnh là vấn đề cốt lõi (các thành phần có thể kết hợp với nhau để tạo thành thành phần phức hợp). Vấn đề nảy sinh là hiện nay chƣa có một ngôn ngữ kết hợp đảm bảo tƣơng thích về ngữ nghĩa và cú pháp cho các thành phần EJB, COM, ... Sự kết hợp thành phần có thể xảy ra ở hai giai đoạn chính trong vòng đời của thành phần là thiết kế (design) và triển khai (deployment). Thành phứn 1 Hứthứng Thành phứn kứt hứp Thành phứn K Thành phứn L Thành phứn M Thành phứn Z Hình6: Sự kết hợp các thành phần trong hệ thống
  • 31. Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng Phạm Viết Mạnh – CT1301 26 2.3Kiến trúc Plugin trong Eclipse 2.3.1Giới thiệu về Plugin và extension point Hình7: Plugin và extension Mỗi Plugin trong Eclipse phải sử dụng các nhân APIEclipse (core APIEclipse) để xác định các lớp mới để chạy nhƣ một thành phần của cơ sở Platform. Hình8: Plugin trong Workbench và Workspace Mỗi Plugin có một hay nhiều extension point và có thể tùy ý khai báo một điểm mở rộng mới. Mỗi Plugin phụ thuộc vào một hoặc nhiều Plugin Plugin: là một thành phần(component) cung cấp một số chức năng [5] Ví dụ plugin lớn: HTML editor Ví dụ plugin nhỏ: Action để tạo file zip Extension point:Điểm mở rộng. [5] Điểm mở rộng là 1 cơ chế cho phép 1 plugin có thể thêm các chức năng từ 1 plugin khác. [5] Ví dụ: Điểm mở rộng cho giao diện ngƣời dùng workbench. [5] Extension: một chức năng Ví dụ: các chức năng của HTML editor
  • 32. Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng Phạm Viết Mạnh – CT1301 27 khác. Trong Eclipse, Plugin phải sử dụng một trong số Plugin hệ thống (Plugin system)nhƣnguồn lƣu trữ (projects, folders và các files), thành phần giao diện ngƣời dùng để thực hiện công việc (Workbench user interface components), các Plugin có sẵn, trình gỡ lỗi (debugging), công cụ phát triển Java (JDT), môi trƣờng phát triển thành phần cắm thêm (PDE) [4]. PDE cho phép các nhà phát triển dễ cài đặt Plugin trong Eclipse hơn là thông qua một công cụ bên ngoài. PDE chính là một Plugin và dựa vào sự hỗ trợ cùng một cốt lõi để thực hiện nhiệm vụ của mình nhƣ mỗi Plugin khác Eclipse extensions đƣợc chia làm 3 loại:  Plugin  Fragment  Feature Pluginlà một công cụbổ sung thêm chức năng để Eclipse sử dụng các điểm mở rộng. Chu trình sống của Plugin đƣợc điều khiển bởi Workbench. Plugin đƣợc thêm vào Eclipse khi Eclipse khởi động mà không đƣợc load ngay lập tức, Plugin chỉ đƣợc load khi cần thiết. Trong suốt quá trình load, Elipse sẽ gọi phƣơng thức startup() và trƣớc khi unload thì gọi shutdown(). Hai phƣơng thức load và unload có thể đƣợc coi nhƣ là hàm khởi tạo init() và hàm hủy destroy(). Fragment là tập hợp các bộ mã tạo nên một Plugin. Khi một fragment đƣợc thực thi, Eclipse sẽ kết hợp các đoạn mã fragment với Plugin tạo nên sự rõ ràng trong hành vihay phƣơng thức của Plugin. Feature là một tập hợp các Plugin mà đại diện cho tập các chức năng. Feature đƣợc cài đặt bằng tay hay sử dụng quản lý cập nhật (Update Manage). Các Plugin và các tập tin hỗ trợ (supporting files) đƣợc đóng gói vào một tập tin lƣu trữ tính năng (feature archive) bao gồm một tính năng tập tin cấu hình, Feature.xml, mô tả nội dung của kho lƣu trữ và các liên kết Plugin. Khi một Plugin đƣợc đóng gói thành một công cụ hoàn chỉnh, fragmentgồm mã cập nhật cho một Plugin chỉ là một đóng gói của một tập hợp các Pluginđể dễ dàng cài đặt vào Eclipse [4].
  • 33. Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng Phạm Viết Mạnh – CT1301 28 2.3.2 Điểm mở rộng Plugin (Plugin Extension Points) Một số lƣợng lớn các điểm mở rộngPluginđƣợc Eclipse xác định có sẵn. Các điểm mở rộngPluginđƣợc chia thành các lĩnh vực sau:  Platform runtime: Sử dụng một trong hai điểm mở rộng (extension points), có thể xác định toàn bộ hành vi của Eclipse.  Không gian làm việc: Điểm mở rộngchịu trách nhiệm quản lý tài nguyên ngƣời dùng đƣợc tổ chức dƣới dạng Project.  Bàn làm việc:giao diện đồ họa ngƣời dùng của Eclipsecó số lƣợng lớn nhất các điểm mở rộng. Một mẫu cho các điểm mở rộngbao gồm sự hỗ trợ cho các khung nhìn (view) và trình biên tập, các tổ hợp phím, hỗ trợ kéo thả giữa các khung nhìn và bổ sung bảng điều khiển (panels) cho hộp thoại Preferences.  Gỡ lỗi: Các điểm mở rộngđể gỡ lỗi giữa các hành vi và sử dụng điểm giao diện (interface points)  Trợ giúp: Các điểm mở rộngđƣợc tích hợp vào công cụ tìm kiếm trợ giúp của Eclipse. Các trợ giúp đƣợc hiển thị dƣới dạng bảng hoặc sử dụng thêm những Plugin mang tính đặc thù để trợ giúp. 2.3.3 Tiến trình làm việc của Plugin Hình9: Tiến trình làm việc của Plugin
  • 34. Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng Phạm Viết Mạnh – CT1301 29 Về mặt kỹ thuật, một Plugin là một Java Archive (JAR) độc lập và tự khởi tạo. Plugin độc lập vì Plugin chứa mã và tài nguyên các Pluginkhác cần để chạy. Plugin tự khởi tạo bởi vì nó bao gồm các thông tin của Plugin, tài nguyên Plugin, công dụng của nó. Trong một Plugin, hai tập tin mô tả là MANIFEST.MF và Plugin.xml. 2.3.4Tập tin cấu hình (manifest) của Plugin Thông tin mô tả chi tiết Plugin nằm trong tập tin manifest (Plugin.xml). Eclipse sử dụng tập tin cấu hình để tích hợp Plugin vào framework. Tập tin manifest chứa những thông tin chung về Plugin bao gồm: tên Plugin, phiên bản, tên lớp, tên file JAR. Ngoài ra, tập tin cấu hình còn chứa danh sách những Plugin mà Plugin hiện tại sử dụng. Ví dụ về tập tin manifest //Thông tin về Plugin Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: Tkb Bundle-SymbolicName: Tkb;singleton:=true Bundle-Version: 1.0.0.qualifier Bundle-Activator: tkb.Activator /* Các Plugin cần dùng */ Require-Bundle: org.Eclipse.ui, org.Eclipse.core.runtime, Pluginsql //Môi trường chạy Plugin Bundle-RequiredExecutionEnvironment: JavaSE-1.7 Bundle-ActivationPolicy: lazy <?xml version="1.0" encoding="UTF-8"?> /* Thuộc tính định dạng Plugin */ <?Eclipse version="3.4"?>
  • 35. Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng Phạm Viết Mạnh – CT1301 30 /* Thông tin Plugin */ <Plugin id="com.example.TKB" name="TKB Plug-in" version="1.0.0" provIDEr-name="EXAMPLE" class="com.example.Tkb.TKBPlugin"> //Khai báo chức năng mà Plugin cung cấp <extension point="org.Eclipse.ui.actionSets"> <actionSet label="Sample Action Set" visible="true" id="Tkb.actionSet"> <menu label="&amp;Thờikhóabiểu" id="sampleMenu"> <separator name="sampleGroup"> </separator> </menu> <action class="view.Help" icon="icons/sample.gif" id="view.Help" label="&amp;Trợgiúp" menubarPath="sampleMenu/sampleGroup" toolbarPath="sampleGroup" tooltip="Trợgiúp"> </action> </actionSet> </extension>
  • 36. Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng Phạm Viết Mạnh – CT1301 31 </Plugin> Hai Plugin quan trọng trong Eclipse là PluginWorkspace (org.Eclipse.core.resources) và PluginWorkbench (org.elipse.ui). Một trong những extension quan trọng là extension có thuộc tính point=org.Eclipse.ui.actionSets. Một actionSet là một nhóm các chức năng mà Plugin sẽ thêm vào giao diện Workbench, ví dụ nhƣ là menus, menu items, và toolbars.ActionSet sẽ gom nhóm các chức năng để ngƣời dùng có thể quản lý chúng một cách dễ dàng. Một actionSet có thể chứa 2 thẻ: thẻ menu mô tả nơi item xuất hiện và cách hiển thị của nó trên Workbench; thẻ action mô tả một item sẽ thực hiện chức năng gì và lớp xử lý action để thực hiện chức năng đó. 2.3.5 Plugin fragment và feature Plugin fragment: đƣợc hình thành từ một phần của Plugin. Plugin fragment có ích khi muốn sử dụng một phần của Plugin độc lập với phần còn lại của Plugin. Plugin fragment đƣợc dùng để thêm các đặc điểm nào đó vào một Plugin đang có mà không cần build lại Plugin đó hoặc đƣợc dùng để cung cấp chức năng cho một nền tảng nào đó. Plugin fragment gần giống với Plugin thông thƣờng, chỉ khác ở một vài đặc điểm sau:  Thông tin mô tả Plugin đƣợc lƣu trong tập tin fragment.xml thay vì Plugin.xml.  Trong tập tin fragment.xml, nút gốc là <fragment>và nút này có 2 thuộc tính là Plugin-id và Plugin-version dùng để chỉ ra định danh và phiên bản của Plugin cha.  Plugin fragment sẽ tự động kế thừa các nút <requires> của Plugin cha và có thể thêm các nút <requires> khác nếu cần thiết. Plugin feature: Trong kiến trúc Eclipse, feature là việc đóng gói một nhóm các Plugin có liên quan lại thành một sản phẩm tích hợp. Plugin feature
  • 37. Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng Phạm Viết Mạnh – CT1301 32 không có chứa code. Ví dụ: Java Development Tooling (JDT) là một feature project đƣợc tạo thành bởi các Plugin nhƣ: Java editor, debugger, và console. Tập tin đặc tả feature project là feature.xml, tập tin này chứa tham chiếu đến các Plugin và các tài nguyên khác của feature project, đồng thời chứa các thông tin về việc update, copyright và license. 2.3.6 Đóng gói Plugin Eclipse quyết định Plugin nào đƣợc load bằng cách kiểm tra thƣ mục Plugins vào thời điểm khởi động. Để cài đặt một Plugin thì cần tạo một thƣ mục con trong thƣ mục Plugins, sau đó chép tất cả các tập tin chƣơng trình và tập tin manifest vào. Nên đặt tên thƣ mục chứa Plugin theo chuẩn: tên của Plugin đƣợc theo sau bởi dấu gạch dƣới và chỉ số phiên bản, ví dụ: C:EclipsePluginscom.example.hello. Sau đó, nén thƣ mục con vừa đƣợc tạo thành tập tin JAR. Tạo tập tin JAR bằng giao diện Eclipse: menu File Export. Sau đó khởi động lại Eclipse để Eclipse có thể nhận ra Plugin mới. 2.3.7Perspective,views, editor Vào một thời điểm bất kỳ, Workbench là một cửa sổ ứng dụng đơn chứa một số lƣợng các kiểu ô cửa sổ (pane) khác nhau hay còn đƣợc gọi là các khung nhìn (views), và một view đặc biệt là trình soạn thảo (editor). Trong một số tình huống, một ô cửa sổ đơn có thể chứa một nhóm các ô cửa sổ khác dƣới dạng các thẻ (tabs). Tùy vào từng perspective, một ô cửa sổ có thể chứa cửa sổ thực thi lệnh trong khi ô cửa sổ khác chứa một bản phác thảo của dự án đang làm việc. Tuy nhiên, trình soạn thảo là một thành phần căn bản không thể thiếu của tất cả các phối cảnh. Vì có nhiều loại tài liệu khác nhau, nên có nhiều loại trình soạn thảo khác nhau. Khi một tài liệu đƣợc mở ra hoặc đƣợc tạo mới, Eclipse tìm đến trình soạn thảo thích hợp nhất để ngƣời dùng thao tác trên tài liệu này. Nếu một tài liệu là một văn bản thông thƣờng (text document), trình soạn thảo văn bản cài đặt sẵn trong Eclipse đƣợc lựa chọn. Nếu tài liệu là một tập tin java nguồn, trình soạn thảo Java của JDT đƣợc lựa chọn, trình soạn thảo này có
  • 38. Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng Phạm Viết Mạnh – CT1301 33 nhiều tính năng đặc biệt nhƣ kiểm tra cú pháp của các mã lệnh đƣợc soạn, hoàn thành mã lệnh tự động (code completion)… Nếu tài liệu là một văn bản Microsoft Word trên Windows và chƣơng trình Word đã đƣợc cài đặt trên máy đang sử dụng, tài liệu đƣợc mở bởi Word trong Eclipse bằng kỹ thuật kết nối và nhúng đối tƣợng (Object Linking and Embedding – OLE). 2.4Ngôn ngữ lập trình java 2.4.1 Lịch sử phát triển của Java Java đƣợc khởi đầu bởi James Gosling và bạn đồng nghiệp ở SunMicrosystemsnăm 1991. Ban đầu ngôn ngữ này đƣợc gọi là Oak. Sauđókhônglâungônngữ mới vớitên gọilà Java ra đời và đƣợc giới thiệu năm 1995. 2.4.2 Máy ảo Java (Java Virtual Machine) Tất cả các chƣơng trình muốn thực thi đƣợc thì phải đƣợc biên dịch ra mã máy. Mã máy của từng kiến trúc CPU của mỗi máy tính là khác nhau (tập lệnh mã máy của CPU Intel, CPU Solarix, CPU Macintosh … là khác nhau), vì vậy trƣớc đây một chƣơng trình sau khi đƣợc biên dịch xong chỉ có thể chạy đƣợc trên một kiến trúc CPU cụ thể nào đó. CPU Intel có thể chạy các hệ điều hành nhƣ Microsoft Windows, Unix, Linux, OS/2, … Chƣơng trình thực thi đƣợc trên Windows đƣợc biên dịch dƣới dạng file có phần mở rộng *.EXE còn trên Linux thì đƣợc biên dịch dƣới dạng file có đuôi *.ELF, vì vậy trƣớc đây một chƣơng trình chạy đƣợc trên Windows muốn chạy đƣợc trên hệ điều hành khác nhƣ Linux thì phải chỉnh sửa và biên dịch lại. Ngôn ngữ lập trình Java ra đời, nhờ vào máy ảo Java mà khó khăn nêu trên đã đƣợc khắc phục. Một chƣơng trình viết bằng ngôn ngữ lập trình Java sẽ đƣợc biên dịch ra mã của máy ảo java (mã java bytecode). Sau đó máy ảo Java chịu trách nhiệm chuyển mã java bytecode thành mã máy tƣơng ứng. Sun Microsystem chịu trách nhiệm phát triển các máy ảo Java chạy trên các hệ điều hành trên các kiến trúc CPU khác nhau
  • 39. Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng Phạm Viết Mạnh – CT1301 34 Hình 10: Kiến trúc Java Virtual Machine JVM bao gồm các thành phần chính:  Class Loader: là một hệ thống con của JVM, làm nhiệm vụ tải các lớp đƣợc xác định.  Class Area: lƣu trữ cấu trúc của các lớp, thuộc tính, phƣơng thức của lớp, và code của các phƣơng thức.  Heap &Java Stack: - Heap: là vùng nhớ lƣu trử các đối tƣợng đƣợc khởi tạo trong quá trình thực thi. - Stack: chứa các frame. Mỗi frame chứa các biến cục bộ và thực thi một hàm gọi và trả kết quả về. Mỗi tiến trình có một Stack riêng, đƣợc khởi tạo cùng lúc với tiến trình. Mỗi frame sẽ đƣợc tạo khi một hàm đƣợc gọi và hủy khi việc gọi hàm kết thúc  Programming Counter Register: chứa địa chỉ của máy chủ ảo đang thực thi.  Native Method Stack: chứa các hàm của hệ thống đƣợc sử dụng trong chƣơng trình  Execution Engine: là một hệ thống bao gồm: bộ xử lý ảo, trình thông dịch (đọc Java byte code và thực thi các chỉ thị), JIT compiler biên dịch mã byte code sang mã máy.
  • 40. Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng Phạm Viết Mạnh – CT1301 35 2.4.3 Một số đặc điểm ngôn ngữ lập trình Java Java là một ngôn ngữ lập trình hƣớng đối tƣợng vừa biên dịch vừa thông dịch. Chƣơng trình nguồn viết bằng ngôn ngữ lập trình Java có đuôi *.java đầu tiên đƣợc biên dịch thành tập tin có đuôi *.class và sau đó sẽ đƣợc trình thông dịch thông dịch thànhmã máy. Một chƣơng trình viết bằng ngôn ngữ lậptrình Java sẽ đƣợc biên dịch ra mã của máy ảojava (mã java bytecode). Sau đó máy ảoJava chịu trách nhiệm chuyển mã java bytecode thành mã máy tƣơng ứng. Sun Microsystempháttriểncác máyảoJava chạy trên các hệ điều hành trên các kiến trúc CPU khác nhau. Một chƣơng trình, ứng dụng viết bằng ngôn ngữ Java có thể chạy trên nhiều máy tính có hệ điều hành khác nhau (Windows, MacOS, Linux, …) có cài đặt máy ảojava (Java Virtual Machine). Vì thế chƣơng trình chỉ cần viết một lầnchạy mọi nơi (write once run any where). Java hỗ trợ lập trình đa nhiệm, đa luồng cho phép nhiều tiến trìnhcóthểchạysongsongcùng mộtthờiđiểmvà tƣơng tác với nhau. Java hỗ trợ mạnh cho việc phát triển ứng dụng. Công nghệ Java phát triển mạnh mẽ do Sun Microsystem cung cấp nhiều công cụ, thƣ viện lập trình phong phú hỗ trợ cho việc phát triển nhiều loại hình ứng dụng khác nhau, cụ thể nhƣ: J2SE (Java 2 Standard Edition) hỗ trợ phát triển những ứng dụng đơn, ứng dụng client-server; J2EE (Java 2 Enterprise Edition) hỗ trợ phát triển các ứng dụng thƣơng mại, J2ME Java 2 Micro Edition) hỗ trợ phát triển các ứng dụng trên các thiết bị di động, không dây, … Eclipselà chƣơng trình chạy trên môi trƣờng Java. Plugin là thành phần cắm thêm trong Eclipse. Vì thế chƣơng trình viết dƣới dạng Plugin chỉ cần xây dựng 1 lần mà có thể chạy trên nhiều nền tảng khác nhau. Các Plugin trong Eclipse có thể tƣơng tác với nhau, hỗ trợ cho nhau và có thể chạy songsong cùng một thời điểm do Java hỗ trợ đa nhiệm, đa luồng.
  • 41. Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng Phạm Viết Mạnh – CT1301 36 CHƢƠNG 3: CHƢƠNG TRÌNH THỬ NGHIỆM Trong chƣơng này, khóa luận trình bày vềứng dụng sắp xếp thời khóa biểu đƣợc xây dựng bằng thành phần cắm thêm (Plugin) trên Eclipse. Plugin này đƣợc cài đặt bằng ngôn ngữ lập trình Java. Một số bƣớc trong phân tích thiết kế phân hệ sắp thời khóa biểu đƣợc giản lƣợc nhƣng không mất tính tổng quát của mục tiêu đề tài là xây dựng thử nghiệm Plugin dựa trên nền Eclipse. 3.1 Mô tả yêu cầu bài toán Chƣơng trình thử nghiệm hỗ trợ sắp xếp thời khóa biểu với đầu vào là các thông tin nhƣ: lớp học (mã môn học, số tín chỉ, buổi học, số lƣợng sinh viên tối đa), phòng học (địa chỉ, số lƣợng sinh viên, trang thiết bị giảng dạy đi kèm)... Việc sắp xếp thời khóa biểu cần tuân theo các ràng buộc: Về thời gian:  Có ít nhất 1 buổi học của 1 môn phải có 2 tiết trở lên  Các môn học trong 1 khóa chỉ xếp vào buổi sáng hoặc buổi chiều trong tuần. Về phòng học:  Số lƣợng sinh viên trong lớp học phải phù hợp với số lƣợng sinh viên phòng học có thể chứa.  Khi sắp xếp, ƣu tiên xếp phòng học có trang thiết bị phù hợp cho các môn có yêu cầu đặc biệt về trang thiết bị.  Tại một thời điểm, chỉ đƣợc sắp xếp 1 lớp học tại 1 phòng học Yêu cầu:  Sử dụng mô hình MVC (Model-View-Controller).  Hệ thống thuần túy là hƣớng đối tƣợng, không chấp nhận các cách tiếp cận khác.  Thiết kế CSDL hợp lý đảm bảo các ràng buộc.  Chƣơng trình thử nghiệm làthành phần cắm thêm trong Eclipse  Bài toán nhấn mạnh vào việc truy xuất dữ liệu và thuật toán xếp lịch và xây dựng các chức năng: - Cập nhật, thêm mới, xóa, lƣu … các thông tin nói trên.
  • 42. Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng Phạm Viết Mạnh – CT1301 37 - Thống kê, báo cáo, in thời khóa biểu dƣới dạng excel. - Đối với ngƣời quản lý: theo dõi lịch học của các lớp trong khoa, trong trƣờng, xếp thời khóa biểu. 3.2Xác định mô hình nghiệp vụ 3.2.1 Các chức năng nghiệp vụ Ta có thể xác định các chức năng nghiệp vụ của hệ thống nhƣ sau: Tham chiếu Chức năng R1 Cập nhật dữ liệu R11 Cập nhật thông tin phòng học R12 Cập nhật thông tin thiết bị R13 Cập nhật thông tin niên khóa R14 Cập nhật thông tin học phần R15 Cập nhật thông tin khoa R2 Lập thời khóa biểu R21 Sắp thời khóa biểu R22 In thời khóa biểu Tác nhân là một bộ phận bên ngoài hệ thống nhƣng có tƣơng tác với hệ thống. Nó chính là đối tƣợng mà hệ thống phục vụ hoặc cần cung cấp dữ liệu. Hệ thống gồm có tác nhân là ngƣời quản lý.
  • 43. Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng Phạm Viết Mạnh – CT1301 38 3.2.2Biểu đồ use case tổng quan Hình11: Biểu đồ Use case tổng quan Chƣơng trình thử nghiệm sắp thời khóa biểu xác định đƣợc các ca sử dụng và tác nhân nhƣ sau: Gói ca sử dụng Các ca sử dụng chi tiết Tác nhân 1. Cập nhật dữ liệu UC1Cập nhật thông tin phòng học UC2Cập nhật thông tin thiết bị UC3Cập nhật thông tin niên khóa UC4Cập nhật thông tin học phần UC5Cập nhật thông tin khoa Ngƣời quản lý 2. Lập thời khóa biểu UC6Sắp thời khóa biểu UC7 In thời khóa biểu Ngƣời quản lý 3.2.3 Mô tả khái quát các quan hệ con Hệ thống gồm hai hệ con:  Cập nhật dữ liệu:có tác nhân duy nhất là ngƣời quản lý. Có tác dụng cập nhật thông tin đầu vào nhƣ: phòng học, thiết bị, niên khóa, học phần, khoa.  Lập thời khóa biểu: có tác nhân duy nhất là ngƣời quản lý, có tác dụng lập và in thời khóa biểu.
  • 44. Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng Phạm Viết Mạnh – CT1301 39 3.2.4Các mô hình ca sử dụng chi tiết a. Gói ca sử dụng “Cập nhật dữ liệu” Hình12: Biểu đồ ca sử dụng gói “Cập nhật dữ liệu” Mô tả chi tiết ca sử dụng  Ca sử dụng “Cập nhật phòng học” Tên ca sử dụng Cập nhật phòng học Tác nhân Ngƣời quản lý Mục đích Cập nhật thông tin phòng học Mô tả khái quát Ngƣời quản lý cập nhật thông tin phòng học Các tham chiếu R11
  • 45. Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng Phạm Viết Mạnh – CT1301 40  Ca sử dụng “Cập nhậtthiết bị” Tên ca sử dụng Cập nhật thiết bị Tác nhân Ngƣời quản lý Mục đích Cập nhật thông tin thiết bị Mô tả khái quát Ngƣời quản lý cập nhật thông tin thiết bị trong phòng học Các tham chiếu R12  Ca sử dụng “Cập nhật niên khóa ” Tên ca sử dụng Cập nhật niên khóa Tác nhân Ngƣời quản lý Mục đích Cập nhật thông tin niên khóa Mô tả khái quát Ngƣời quản lý cập nhật thông tin niên khóa Các tham chiếu R13  Ca sử dụng “Cập nhật học phần” Tên ca sử dụng Cập nhật học phần Tác nhân Ngƣời quản lý Mục đích Cập nhật thông học phần Mô tả khái quát Ngƣời quản lý cập nhật thông tin học phần trong kỳ Các tham chiếu R14
  • 46. Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng Phạm Viết Mạnh – CT1301 41  Ca sử dụng “Cập nhật khoa” Tên ca sử dụng Cập nhật khoa Tác nhân Ngƣời quản lý Mục đích Cập nhật thông tin khoa Mô tả khái quát Ngƣời quản lý cập nhật thông tin khoa Các tham chiếu R15 b. Gói ca sử dụng “Lập thời khóa biểu” Hình13: Biểu đồ ca sử dụng gói “Lập thời khóa biểu” Mô tả chi tiết ca sử dụng  Ca sử dụng “Sắp thời khóa biểu” Tên ca sử dụng Sắp thời khóa biểu Tác nhân Ngƣời quản lý Mục đích Sắp thời khóa biểu
  • 47. Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng Phạm Viết Mạnh – CT1301 42 Mô tả khái quát Ngƣời quản lý sắp thời khóa biểu Các tham chiếu R21  Ca sử dụng “In thời khóa biểu” Tên ca sử dụng In thời khóa biểu Tác nhân Ngƣời quản lý Mục đích In thời khóa biểu Mô tả khái quát Ngƣời quản lý muốn in thời khóa biểu dƣới dạng excel Các tham chiếu R22 3.3 Phân tích hệ thống 3.3.1 Phân tích gói ca sử dụng “Cập nhật dữ liệu” a.Ca sử dụng “Cập nhật phòng học”  Biểu đồ tuần tự thực thi ca sử dụng Hình 14: Biểu đồ tuần tự thực thi ca sử dụng “Cập nhật phòng học”
  • 48. Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng Phạm Viết Mạnh – CT1301 43  Biểu đồ cộng tác thực thi ca sử dụng Hình 15: Biểu đồ cộng tác thực thi ca sử dụng “Cập nhật phòng học” b.Ca sử dụng “Cập nhật thiết bị”  Biểu đồ tuần tự thực thi ca sử dụng Hình16: Biểu đồ tuần tự thực thi ca sử dụng “Cập nhật thiết bị”
  • 49. Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng Phạm Viết Mạnh – CT1301 44  Biểu đồ cộng tác thực thi ca sử dụng Hình17: Biểu đồ cộng tác thực thi ca sử dụng “Cập nhật thiết bị” c.Ca sử dụng “Cập nhật niên khóa”  Biểu đồ tuần tự thực thi ca sử dụng Hình 18: Biểu đồ tuần tự thực thi ca sử dụng “Cập nhật niên khóa”
  • 50. Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng Phạm Viết Mạnh – CT1301 45  Biểu đồ cộng tác thực thi ca sử dụng Hình19: Biểu đồ cộng tác thực thi ca sử dụng “Cập nhật niên khóa” d.Ca sử dụng “Cập nhật học phần”  Biểu đồ tuần tự thực thi ca sử dụng Hình20: Biểu đồ tuần tự thực thi ca sử dụng “Cập nhật học phần” : Nguoi quan ly: Nguoi quan ly : Form_Hocphan: Form_Hocphan : Controller: Controller : Hocphan: Hocphan 1: Yeu cau cap nhat hp() 2: Cap nhat thong tin HP() 3: Cap nhat() 4: Hien thi KQ()
  • 51. Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng Phạm Viết Mạnh – CT1301 46  Biểu đồ cộng tác thực thi ca sử dụng Hình21: Biểu đồ cộng tác thực thi ca sử dụng “Cập nhật học phần” e.Ca sử dụng “Cập nhật khoa”  Biểu đồ tuần tự thực thi ca sử dụng Hình22: Biểu đồ tuần tự thực thi ca sử dụng “Cập nhật khoa” : Nguoi quan ly : Hocphan : Form_Hocphan : Controller 1: Yeu cau cap nhat hp() 2: Cap nhat thong tin HP() 3: Cap nhat() 4: Hien thi KQ() : Nguoi quan ly: Nguoi quan ly : Form_Khoa: Form_Khoa : Controller: Controller : Khoa: Khoa 1: Yeu cau thong tin Khoa() 2: Cap nhat khoa 3: Cap nhat 4: Hien thi KQ()
  • 52. Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng Phạm Viết Mạnh – CT1301 47  Biểu đồ cộng tác thực thi ca sử dụng Hình23: Biểu đồ cộng tác thực thi ca sử dụng “Cập nhật khoa” f. Mô hình phân tích gói ca “Cập nhật dữ liệu” Hình 24: Mô hình phân tích gói ca ”Cập nhật dữ liệu ” : Nguoi quan ly : Khoa : Form_Khoa : Controller 1: Yeu cau thong tin Khoa() 2: Cap nhat khoa 3: Cap nhat 4: Hien thi KQ() : Controller : Phong hoc: Controller: Form_PhongHoc 2: Cap nhat phong hoc() 3: Cap nhat phong hoc() 4: Hien thi KQ() : Nguoi quan ly : Hocphan: Form_Hocphan : Controller 8: Cap nhat() : Controller: Form_Nienkhoa : Nienkhoa 10: Cap nhat nien khoa() 11: Hien thi KQ() 12: Cap nhat nien khoa() : Khoa: Form_Khoa : Controller 14: Cap nhat khoa() 15: Hien thi KQ() 16: Cap nhat khoa() 6: Cap nhat thong tin HP() 7: Hien thi KQ() : Form_Thietbi : Thietbi 18: Cap nhat thiet bi() 19: Hien thi KQ() 20: Cap nhat thiet bi() 1: Yeu cau cap nhat PH() 9: Yeu cau cap nhat nien khoa() 5: Yeu cau cap nhat hp() 13: Yeu cau thong tin Khoa() 17: Yeu cau cap nhat thiet bi()
  • 53. Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng Phạm Viết Mạnh – CT1301 48 3.3.2 Phân tích gói ca sử dụng “Lập thời khóa biểu” a.Ca sử dụng “Sắp thời khóa biểu”  Biểu đồ tuần tự thực thi ca sử dụng Hình 25: Biểu đồ tuần tự thực thi ca sử dụng “Sắp thời khóa biểu”  Biểu đồ cộng tác thực thi ca sử dụng Hình 26: Biểu đồ cộng tác thực thi ca sử dụng “Sắp thời khóa biểu” : Nguoi quan ly: Nguoi quan ly : Form_thoikhoabieu: Form_thoikhoabieu : Controller: Controller : Thoikhoabieu: Thoikhoabieu: Lophocphan: Lophocphan : Baoloi: Baoloi 1: Chon sap tkb() 2: Yeu cau sap tkb() 4: Sap tkb() 7: Luu tkb() 8: Hien thi tkb() 3: Luu cac lop HP() 5: Luu cac lop bi loi() 6: Hien thi loi() : Nguoi quan ly : Controller: Form_thoikhoabieu : Thoikhoabieu : Baoloi : Lophocphan 2: Yeu cau sap tkb() 3: Luu cac lop HP() 4: Sap tkb() 5: Luu cac lop bi loi() 6: Hien thi loi() 7: Luu tkb() 8: Hien thi tkb() 1: Chon sap tkb()
  • 54. Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng Phạm Viết Mạnh – CT1301 49 b.Ca sử dụng “In thời khóa biểu”  Biểu đồ tuần tự thực thi ca sử dụng Hình27: Biểu đồ tuần tự thực thi ca sử dụng “In thời khóa biểu”  Biểu đồ cộng tác thực thi ca sử dụng Hình 28: Biểu đồ cộng tác thực thi ca sử dụng “In thời khóa biểu” : Nguoi quan ly: Nguoi quan ly : Form_thoikhoabieu: Form_thoikhoabieu : Controller: Controller : Thoikhoabieu: Thoikhoabieu 1: Chon chuc nang in tkb() 2: Yeu cau in tbk() 3: Lay tt() 4: in va hien danh sach tkb() : Nguoi quan ly : Form_thoikhoabieu : Controller : Thoikhoabieu 1: Chon chuc nang in tkb() 2: Yeu cau in tbk() 3: Lay tt() 4: in va hien danh sach tkb()
  • 55. Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng Phạm Viết Mạnh – CT1301 50 c. Mô hình phân tích gói ca “Lập thời khóa biểu” Hình29: Mô hình phân tích gói ca “Lập thời khóa biểu” 3.4 Thiết kế hệ thống Hình30: Mô hình cơ sở dữ liệu : Nguoi quan ly : Controller: Form_thoikhoabieu : Thoikhoabieu : Baoloi : Lophocphan 4: Sap tkb() 7: Luu tkb() 3: Luu cac lop HP() 5: Luu cac lop bi loi() 2: Yeu cau sap tkb() 6: Hien thi loi() 8: Hien thi tkb() : Form_thoikhoabieu : Controller : Thoikhoabieu 10: Yeu cau in tbk() 11: in va hien danh sach tkb() 12: Lay tt() 1: Chon sap tkb() 9: Chon chuc nang in tkb()
  • 56. Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng Phạm Viết Mạnh – CT1301 51 3.5Thuật toán sử dụng. Thuật toán sắp xếp dựa trên các điều kiện ràng buộc về số sinh viên, trang thiết bị yêu cầu. Thu nhỏ không gian tìm kiếm bằng việc loại trừ các trƣờng hợp không thỏa mãn. Cụ thể: Duyệt các lớp học phần sau khi chia học phần thành các lớp học phần. Kiểm tra điều kiện số tiết học còn lại (chƣa đƣợc xếp vào phòng học) nếu khác 0 thì tìm phòng xếp cho lớp học phần đó, nếu không thì bỏ qua. Với các phòng thì chia trạng thái phòng đó thành các thứ từ thứ 2 đến thứ 6; mỗi thứ có 6 tiết một buổi học. Sau khi xếp 1 lớp học phần vào một phòng và một thứ cụ thể thì số tiết trống của phòng đó vào ngày thứ đó giảm đi cho tới khi bằng 0 thì chuyển sang xét tiếp ngày thứ khác. Khi một phòng đầy hết từ thứ 2 đến thứ 6 thì chuyển sang phòng kế tiếp. Các lớp học phần không tìm đƣợc phòng học thỏa mãn sẽ đƣợc lƣu riêng ra một bảng trong CSDL để thông báo cho ngƣời quản trị. Sử dụngcách truy vẫn trực tiếp vào CSDL để lƣu, sửa hoặc kết xuất dữ liệu nhanh. Các thông tin sau khi sắp xếp sẽ lƣu vào bảng thoikhoabieu trong CSDL rồi in ra giao diện đồ họa. 3.6Kết quả của chƣơng trình minh họa. - Chƣơng trình đã giải quyết đƣợc vấn đề cơ bản mà bài toán đƣa ra là sắp xếp lịch học đơn giản, chƣơng trình chạy ổn định, ít phát sinh lỗi. - Chƣơng trình đã xây dựng đƣợc các chức năng cơ bản mà bài toán đƣa ra: Sắp xếp thời khóa biểu thỏa mãn các ràng buộc của bài toán.  Cập nhật, thêm mới, xóa, lưu các thông tin về phòng học, học phần, lớp học… Cho phép người quản lý sắp xếp thời khóa biểu tự động, xem thời khóa biểu Có chức năng xuất thời khóa biểu ra file excel.
  • 57. Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng Phạm Viết Mạnh – CT1301 52 3.7. Giao diện của chƣơng trình. 3.7.1.Giao diện chính của chƣơng trình. Hình31: Giao diện chính của Plugin thời khóa biểu 3.7.2 Giao diện đăng nhập - Ngƣời quản lý nhập tên đăng nhập và mật khẩu để kết nối với cơ sở dữ liệu MySQL và chọn đăng nhập để sử dụng chƣơng trình. Hình32: Giao diện đăng nhập
  • 58. Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng Phạm Viết Mạnh – CT1301 53 3.7.3 Giao diện phòng học Hình33: Giao diện phòng học  Chức năng Mới: sẽ reset mã phòng và địa chỉ phòng trên giao diện.  Chức năng Thêm: Khi ngƣời quản lý muốn thêm phòng học vào cơ sở dữ liệu. Ngƣời quản lý sẽ nhập vào mã phòng và địa chỉ phòng tƣơng ứng. Click chuột vào chức năng thêm, chƣơng trình sẽ thêm vào cơ sở dữ liệu và hiển thị kết quả ở bảng danh sách các phòng trên giao diện nếu dữ liệu nhập vào không trùng với dữ liệu đã có.  Chức năng Xóa: giúp ngƣời quản lý xóa phòng học. Nhập mã phòng của phòng muốn xóa, chọn Xóa thì các thông tin của phòng này sẽ bị xóa, nếu đang có trong cơ sở dữ liệu. Kết quả đƣợc hiển thị trên bảng.  Chức năng Thoát: Thoát khỏi giao diện phòng học.
  • 59. Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng Phạm Viết Mạnh – CT1301 54 3.7.4 Giao diện học phần Hình34 Giao diện học phần  Chức năng Làm mới: sẽ reset mã học phần, tên học phần, số sinh viên, số tín chỉ, số tiết trên giao diện.  Chức năng Thêm: Khi ngƣời quản lý muốn thêm học phần vào cơ sở dữ liệu. Ngƣời quản lý sẽ nhập vào mã học phần, tên học phần, số sinh viên, số tín chỉ, số tiết, khóa học, thiết bị, khoa viện tƣơng ứng. Click chuột vào chức năng thêm, chƣơng trình sẽ thêm vào cơ sở dữ liệu và hiển thị kết quả ở bảng danh sách các phòng trên giao diện nếu dữ liệu nhập vào không trùng với dữ liệu đã có.  Chức năng Xóa: giúp ngƣời quản lý xóa họcp phần. Nhập mã học phần của học phần muốn xóa, chọn Xóa thì các thông tin của phòng này sẽ bị xóa trong cơ sở dữ liệu. Kết quả đƣợc hiển thị trên bảng.  Chức năng Thoát: Thoát khỏi giao diện học phần
  • 60. Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng Phạm Viết Mạnh – CT1301 55 3.7.5 Giao diện khoa viện Hình35: Giao diện khoa viện  Chức năng Làm mới: sẽ reset mã khoa viện, tên khoa viện, niên khóatrên giao diện.  Chức năng Thêm: Khi ngƣời quản lý muốn thêm thông tin khoa viện vào cơ sở dữ liệu. Ngƣời quản lý sẽ nhập vào mã khoa viện, tên khoa viện, niên khóatƣơng ứng. Click chuột vào chức năng thêm, chƣơng trình sẽ thêm vào cơ sở dữ liệu và hiển thị kết quả ở bảng danh sách các khoa trên giao diện nếu dữ liệu nhập vào không trùng với dữ liệu đã có.  Chức năng Xóa: giúp ngƣời quản lý xóa thông tin khoa viện. Nhập mã khoa viện của học phần muốn xóa, chọn Xóa thì các thông tin của khoa viện này sẽ bị xóa trong cơ sở dữ liệu. Kết quả đƣợc hiển thị trên bảng.  Chức năng Thoát: Thoát khỏi giao diện học phần
  • 61. Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng Phạm Viết Mạnh – CT1301 56 3.2.6 Giao diện niên khóa Hình36: Giao diện niên khóa  Chức năng Mới: sẽ reset mã khóa, tên khóa trên giao diện.  Chức năng Thêm: Khi ngƣời quản lý muốn thêm thông tin niên khóa vào cơ sở dữ liệu. Ngƣời quản lý sẽ nhập vào mã khóa, tên khóa tƣơng ứng và chọn kip học. Click chuột vào chức năng thêm, chƣơng trình sẽ thêm vào cơ sở dữ liệu và hiển thị kết quả ở bảng danh sách các niên khóa trên giao diện nếu dữ liệu nhập vào không trùng với dữ liệu đã có.  Chức năng Xóa: giúp ngƣời quản lý xóa thông tin niên khóa. Nhập mã niên khóa của học phần muốn xóa, chọn Xóa thì các thông tin của niên khóa này sẽ bị xóa trong cơ sở dữ liệu. Kết quả đƣợc hiển thị trên bảng.  Chức năng Thoát: Thoát khỏi giao diện học phần
  • 62. Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng Phạm Viết Mạnh – CT1301 57 3.7.7 Giao diện trang thiết bị Hình37: Giao diện trang thiết bị  Chức năng Làm mới: sẽ reset mã thiết bị, tên thiết bị trên giao diện.  Chức năng Thêm: Khi ngƣời quản lý muốn thêm thông tin trang thiết bị vào cơ sở dữ liệu. Ngƣời quản lý sẽ nhập vào mã thiết bị, tên thiết bị tƣơng ứng. Click chuột vào chức năng thêm, chƣơng trình sẽ thêm vào cơ sở dữ liệu và hiển thị kết quả ở bảng danh sách các thiết bị trên giao diện nếu dữ liệu nhập vào không trùng với dữ liệu đã có.  Chức năng Xóa: giúp ngƣời quản lý xóa thông tin thiết bị. Nhập mãthiết bị của thiết bị muốn xóa, chọn Xóa thì các thông tin của thiết bị này sẽ bị xóa trong cơ sở dữ liệu. Kết quả đƣợc hiển thị trên bảng.  Chức năng Thoát: Thoát khỏi giao diện thiết bị
  • 63. Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng Phạm Viết Mạnh – CT1301 58 3.7.8 Giao diện thời khóa biểu - Giao diện thời khóa biểu với các chức năng: xếp tự động, xếp tay, xóa, lƣu, excel, thoát.  Xếp tự động: Hiển thị thời khóa biểu đƣợc chƣơng trình sắp xếp.  Lƣu: Lƣu thời khóa biểu đã đƣợc sắp xếp.  Excel: Xuất thời khóa biểu ra fiel excel.  Thoát: Thoát khỏi giao diện thời khóa biểu. Hình38:Giao diện thông tin thời khóa biểu
  • 64. Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng Phạm Viết Mạnh – CT1301 59 KẾT LUẬN Phát triển ứng dụng trên nền Eclipseđang đƣợc các nhà phát triển quan tâm. Trong quá trình nghiên cứu, tìm hiểu, phân tích đề tài, khóa luận đã đạt đƣợc một số kết quả sau: - Trình bày về sự phát triển các ứng dụng dựa trên Eclipse; - Kiến trúc của Plugin trong Eclipse; - Xây dựng ứng dụng thử nghiệm; - Xu hƣớng phát triển phần mềm dựa trên thành phần phần mềm. - và thời gian thực hiện khóa luận giúp em hiểu biết nhiều kiến thức về lĩnh vực phát triển phần mềm dựa trên thành phần cũng nhƣ củng cố kiến thức đã học trong trƣờng; Bài toán sắp thời khóa biểu đƣợc xây dựng bằng Plugin đã thể hiện một cách xây dựng ứng dụng phần mềm có thể cài đặt trên nhiều platform khác nhau mà không phụ thuộc vào hệ thống cài đặt chúng. Đồng thời, ứng dụng bƣớc đầu đạt đƣợc một số chức năng chính, có thể sắp thời khóa biểu cho các lớp vào đầu mỗi học kỳ, hầu hết các chức năng sau khi xử lý xong đều hoạt động tốt, đáp ứng đƣợc yêu cầu đặt ra. Nhƣng vẫn còn nhiều hạn chế: giải thuật chƣa đƣợc tối ƣu nên đôi khi kết quả đạt đƣợc chƣa thỏa mãn, chƣa tạo đƣợc sự linh động trong việc hỗ trợ các mức độ ƣu tiên, chƣa có chức năng tinh chỉnh thời khóa biểu Em mong nhận đƣợc nhiều ý kiến đóng góp để Plugin thời khóa biểu đƣợc phát triển hơn trong thời gian tới và đáp ứng đầy đủ mọi yêu cầu Mặc dù em đã cố gắng rất nhiều trong quá trình tìm hiểu và phân tích đề tài nhƣng không tránh khỏi những thiếu sót.Vì vậy em mong quý thầy cô cũng nhƣ những ai quan tâm đến đề tài này chỉ dẫn và góp ý kiến cho em để em hoàn thiện ứng dụng này một cách đầy đủ. Mong muốn của em là phát triển ứng dụng này tối ƣu và nhiều tính năng hơn.
  • 65. Đồ án tốt nghiệp Trƣờng ĐH Dân Lập Hải Phòng Phạm Viết Mạnh – CT1301 60 TÀI LIỆU THAM KHẢO [1] Nguyễn Văn Vỵ (2002), Phân tích thiết kế các hệ thống thông tin hiện đại, hƣớng cấu trúc vàhƣớng đối tƣợng, NXB Thống kê, Hà Nội. [2] Đoàn Văn Ban (2003), Phân tích thiết kế hƣớng đối tƣợng bằng UML, NXB Thống kê. [3] Đặng Văn Đức (2000), Phân tích hƣớng đối tƣợng bằng UML, NXB Giáo dục, Hà Nội. [4] Carlos Valcarcel (2005), Eclipse KickStart (Ver 3.0) [5] David Gallardo (developerWorks, 12. 2002), Getting started with the EclipsePlatform [6] Dr Alex Blewitt, Eclipse 4 Plug-in Development by Example