
Ứng dụng Eclipse: Đồ án tốt nghiệp
Thông tin tài liệu
Tác giả | Phạm Viết Mạnh |
instructor | ThS Nguyễn Trịnh Đông |
Trường học | Trường Đại Học Dân Lập Hải Phòng |
Chuyên ngành | Công nghệ Thông tin |
Loại tài liệu | Đồ án tốt nghiệp |
Địa điểm | Hải Phòng |
Ngôn ngữ | Vietnamese |
Định dạng | |
Dung lượng | 1.29 MB |
Tóm tắt
I.Giới thiệu về Eclipse và Phát triển Plugin
Khóa luận tập trung vào việc phát triển ứng dụng trên nền tảng Eclipse, một IDE mã nguồn mở mạnh mẽ dựa trên Java. Ứng dụng được xây dựng dựa trên cơ chế phát triển Plugin, tận dụng PDE (Plugin Development Environment) để mở rộng chức năng. Eclipse cung cấp môi trường tích hợp với nhiều plugin sẵn có, cho phép phát triển phần mềm hiệu quả, giảm chi phí và thời gian. Khóa luận sẽ trình bày kiến trúc Eclipse, bao gồm thành phần lõi và các plugin, cũng như cách sử dụng SWT và JFace để tạo giao diện người dùng. Kiến trúc mở của Eclipse cho phép tích hợp với nhiều hệ điều hành như Windows, Linux, MacOS.
1. Tổng quan về Eclipse
Phần này giới thiệu về Eclipse, một nền tảng phát triển phần mềm mã nguồn mở dựa trên Java. Eclipse được nhấn mạnh là có kiến trúc mở, cho phép mở rộng chức năng thông qua các plugin. Nó cung cấp một tập hợp các dịch vụ để xây dựng ứng dụng dựa trên các plugin, cho phép tạo ra các ứng dụng riêng biệt cho nhiều mục đích khác nhau. Một ví dụ quan trọng được đề cập là Java Development Tools (JDT), một bộ công cụ phát triển Java tích hợp sẵn trong Eclipse. Bản thân Eclipse là phần mềm mã nguồn mở, được phát hành với giấy phép đảm bảo quyền tự do nghiên cứu, chỉnh sửa và phân phối lại. Điều này được so sánh với luật bản quyền thông thường và mô hình cấp phép copyleft, làm nổi bật lợi ích của việc sử dụng Eclipse cho mục đích thương mại trong khi vẫn bảo đảm quyền tác giả. Cuối cùng, phần này đề cập đến lịch sử phát triển của Eclipse, từ tiền thân VisualAge của IBM đến sự ra đời của dự án Eclipse vào tháng 11 năm 2001 và sự thành lập quỹ Eclipse vào tháng 1 năm 2004 như một tổ chức phi lợi nhuận, hoạt động độc lập, thúc đẩy một cộng đồng minh bạch và mở cho các nhà phát triển phần mềm.
2. Kiến trúc Eclipse và Plugin
Kiến trúc 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 plugin. Thành phần lõi cung cấp các chức năng và dịch vụ cơ bản cần thiết cho mọi nền tảng lập trình, như giao diện người dùng, trình soạn thảo văn bản và gỡ lỗi. Eclipse Platform là nền tảng của toàn bộ phần mềm, cung cấp các dịch vụ cần thiết để tích hợp các công cụ phát triển phần mềm dưới dạng plugin. 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. Kiến trúc này cho phép tích hợp các công cụ một cách dễ dàng thông qua giao diện API, lớp và phương thức. Eclipse cung cấp các framework để phát triển công cụ mới. Một phần quan trọng khác là không gian làm việc (workspace) quản lý tài nguyên người dùng dưới dạng project, cho phép tiếp cận trực tiếp với các chương trình chuẩn và công cụ của hệ điều hành. Nền tảng thời gian chạy (runtime) quản lý các plugin đang hoạt động, tải plugin khi cần thiết để tối ưu hiệu suất. SWT (Standard Widget Toolkit) và JFace là các bộ công cụ giao diện người dùng được sử dụng trong Eclipse. SWT cung cấp API cho các widget và đồ họa, cho phép tích hợp chặt chẽ với hệ thống cửa sổ cơ bản. JFace là lớp cao hơn SWT, cung cấp các lớp thuộc mô hình MVC để phát triển ứng dụng đồ họa dễ dàng hơn. Cuối cùng, phần này đề cập đến API mã nguồn mở của Eclipse, cho phép các nhà phát triển bên thứ ba tạo ra các plugin tương tác với ứng dụng chính, đảm bảo tính mở rộng và khả năng tương tác giữa các thành phần.
3. Phát triển ứng dụng trên nền tảng Eclipse
Phần này thảo luận về lợi ích của việc phát triển phần mềm dựa trên thành phần, nhấn mạnh khả năng giảm chi phí, rút ngắn thời gian triển khai và khả năng tương thích với nhiều nền tảng. Các plugin trong Eclipse được ví dụ như một hướng phát triển phần mềm dựa trên thành phần. Eclipse hỗ trợ nhiều ngôn ngữ lập trình phổ biến như Java, C, C++, Python, v.v., và 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 plugin đã làm tăng sức mạnh và tính thích nghi của nó trong lĩnh vực phát triển phần mềm. Mô hình Eclipse được minh họa bằng hình ảnh, cho thấy sự tương thích với nhiều hệ điều hành. Phần này cũng đề cập đến các khía cạnh kỹ thuật của plugin, bao gồm cách plugin được đóng gói (plugin là một Java Archive - JAR độc lập và tự khởi tạo), hai tập tin mô tả chính là MANIFEST.MF và plugin.xml. Các extension quan trọng, ví dụ như extension có thuộc tính point=org.eclipse.ui.actionSets (actionSet), được giải thích. ActionSet là nhóm các chức năng thêm vào giao diện Workbench, bao gồm menu, menu items và toolbars. Cuối cùng, phần này giới thiệu về Perspective, Views và Editor trong Eclipse, cấu trúc giao diện người dùng của Eclipse.
II.Kiến trúc Eclipse và Thành phần Plugin
Kiến trúc Eclipse dựa trên hai thành phần chính: thành phần lõi (core) cung cấp các dịch vụ cơ bản và các plugin (thành phần mở rộng). Các plugin hoạt động độc lập hoặc kết hợp với nhau để tạo ra các ứng dụng phức tạp. Quản lý plugin được thực hiện thông qua PDE, cho phép cài đặt plugin dễ dàng. Khóa luận sẽ phân tích chi tiết về plugin, cách đóng gói và triển khai chúng trong Eclipse. Không gian làm việc (workspace) và nền tảng thời gian chạy (runtime) cũng được đề cập.
1. Kiến trúc Eclipse Thành phần lõi và Plugin
Kiến trúc Eclipse được mô tả dựa trên hai thành phần chính: thành phần lõi (core) và các plugin. Thành phần lõi cung cấp các chức năng và dịch vụ nền tảng, bao gồm các chức năng giao diện người dùng, trình soạn thảo văn bản, và khả năng gỡ lỗi, cần thiết cho mọi nền tảng lập trình và làm nền tảng cho các plugin hoạt động. Eclipse Platform được giới thiệu là nền tảng chính, cung cấp dịch vụ tích hợp các công cụ phát triển phần mềm dưới dạng plugin. Plugin là các thành phần mở rộng, có thể hoạt động độc lập hoặc phối hợp với nhau, cho phép tạo ra các ứng dụng đa dạng. Khả năng tích hợp các công cụ được thực hiện thông qua giao diện API, lớp và phương thức, và Eclipse cung cấp các framework hỗ trợ phát triển công cụ mới một cách dễ dàng. Kiến trúc này cho phép mở rộng chức năng của Eclipse một cách linh hoạt.
2. Không gian làm việc Workspace và Nền tảng Thời gian Chạy Runtime
Không gian làm việc (workspace) trong Eclipse quản lý tài nguyên người dùng dưới dạng các project. Mỗi project là một thư mục con chứa các tập tin và thao tác của người dùng, cho phép truy cập trực tiếp vào 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 được cung cấp API để xử lý tài nguyên trong workspace. Workspace thông báo cho các công cụ khi có thay đổi tài nguyên, cho phép các dự án mở rộng được đăng ký và kích hoạt các hoạt động tự động trong quá trình xây dựng. Nền tảng thời gian chạy (runtime) chịu trách nhiệm quản lý các plugin trong thư mục plugin của Eclipse. Mỗi plugin có tập tin Manifest liệt kê các kết nối cần thiết, chỉ được tải khi cần thiết để tiết kiệm tài nguyên và thời gian khởi tạo. Runtime cũng quản lý lịch sử thay đổi tài nguyên ở cấp thấp, tránh mất dữ liệu. Tài nguyên được tổ chức dưới dạng cấu trúc cây hiệu quả.
3. Bàn làm việc Workbench SWT JFace và Cơ chế Hoạt động
Workbench được mô tả như giao diện người dùng chính của Eclipse, cung cấp cấu trúc để các công cụ tương tác với người dùng. Workbench sử dụng SWT (Standard Widget Toolkit) và JFace để xây dựng giao diện. SWT là bộ công cụ mã nguồn mở cung cấp API cho các widget và đồ họa, cho phép tích hợp chặt chẽ với hệ thống cửa sổ cơ bản. JFace xây dựng trên SWT, cung cấp các lớp thuộc mô hình MVC để phát triển ứng dụng đồ họa dễ dàng hơn. Cơ chế hoạt động cho phép người dùng thực hiện các lệnh độc lập thông qua nút, menu hoặc thanh công cụ. Các chức năng được cung cấp ảnh hưởng đến công việc của người dùng, ví dụ như thêm các bước để lấy tập tin từ kho lưu trữ. Eclipse cung cấp API mã nguồn mở, cho phép các hãng thứ ba tạo plugin tương tác với ứng dụng chính, đảm bảo tính ổn định và khả năng mở rộng. Plugin phụ thuộc vào dịch vụ của ứng dụng chính và thường không hoạt động độc lập, trong khi ứng dụng chính hoạt động độc lập với plugin.
4. Ngữ nghĩa và Kết hợp Thành phần
Phần này định nghĩa thành phần phần mềm như một đơn vị gồm tên, giao tiếp (interface) và mã nguồn. Mã nguồn được giấu kín bên trong, interface cung cấp thông tin kết nối giữa các thành phần, bao gồm dịch vụ đầu vào và đầu ra. Sự kết hợp (composition) các thành phần để tạo thành hệ thống hoàn chỉnh được nhấn mạnh là vấn đề cốt lõi trong phát triển phần mềm dựa trên thành phần. Tuy nhiên, 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 khác nhau (như EJB, COM...). Trong Eclipse, plugin phải sử dụng plugin hệ thống như nguồn lưu trữ (projects, folders, files), thành phần giao diện người dùng, plugin có sẵn, trình gỡ lỗi (debugging), công cụ phát triển Java (JDT), và môi trường phát triển plugin (PDE).
III.Ứng dụng Sắp xếp Thời khóa Biểu trên Eclipse
Khóa luận trình bày một ứng dụng sắp xếp thời khóa biểu được phát triển như một plugin Eclipse bằng ngôn ngữ Java. Ứng dụng này xử lý thông tin về lớp học, phòng học, và các ràng buộc để tạo ra một thời khóa biểu hợp lý. Ứng dụng đã được thử nghiệm và cho thấy khả năng hoạt động ổn định, đáp ứng được các yêu cầu cơ bản. Tuy nhiên, vẫn còn một số hạn chế, như thuật toán chưa được tối ưu và chưa hỗ trợ các mức độ ưu tiên. Ứng dụng thể hiện khả năng phát triển ứng dụng đa nền tảng nhờ cơ chế plugin của Eclipse.
1. Mô tả ứng dụng sắp xếp thời khóa biểu
Ứng dụng sắp xếp thời khóa biểu được xây dựng như một plugin trên nền tảng Eclipse, sử dụng ngôn ngữ lập trình Java. Đây là một ứng dụng thử nghiệm, một số bước trong phân tích và thiết kế được đơn giản hóa nhưng vẫn đảm bảo mục tiêu chính là xây dựng và thử nghiệm plugin trên Eclipse. Đầu vào của ứng dụng bao gồm thông tin về 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) và phòng học (địa chỉ, số lượng sinh viên, trang thiết bị). Việc sắp xếp thời khóa biểu tuân theo các ràng buộc nhất định, và thông tin sau khi sắp xếp được lưu vào cơ sở dữ liệu (CSDL) rồi hiển thị trên giao diện đồ họa. Ứng dụng nhắm đến việc tạo ra một lịch học hợp lý và hiệu quả.
2. Yêu cầu bài toán và ràng buộc
Ứng dụng cần xử lý các thông tin đầu vào về lớp học và phòng học, bao gồm mã môn học, số tín chỉ, buổi học, số lượng sinh viên tối đa, địa điểm phòng học, số lượng sinh viên tối đa cho phép trong phòng và các trang thiết bị có sẵn. Quá trình sắp xếp thời khóa biểu cần đáp ứng các ràng buộc nhất định, nhằm đảm bảo tính khả thi và hiệu quả của lịch học. Thông tin sau khi xử lý được lưu trữ trong bảng thoikhoabieu
trong CSDL và hiển thị trực quan trên giao diện người dùng. Đây là một bài toán tối ưu hóa, cần tìm ra một cách sắp xếp hợp lý đáp ứng các ràng buộc về thời gian, phòng học và nguồn lực.
3. Kết quả và chức năng của chương trình
Chương trình đã giải quyết được vấn đề sắp xếp lịch học đơn giản, chạy ổn định và ít phát sinh lỗi. Thuật toán sắp xếp được mô tả ngắn gọn: ứng dụng phân bổ lớp học vào các phòng và ngày trong tuần, ưu tiên các phòng có nhiều thời gian trống. Ứng dụng bao gồm các chức năng thêm mới dữ liệu: thêm phòng học (mã phòng và địa chỉ), thêm học phần (mã học phần, tên, số sinh viên, số tín chỉ, số tiết, khóa học, thiết bị, khoa viện), thêm thông tin khoa viện (mã, tên, niên khóa), thêm thông tin niên khóa (mã, tên, kỳ học) và thêm thông tin trang thiết bị (mã, tên). Dữ liệu được thêm vào cơ sở dữ liệu và hiển thị trên giao diện nếu không trùng lặp. Plugin được xây dựng có thể cài đặt trên nhiều nền tảng khác nhau, thể hiện lợi ích của việc phát triển phần mềm dựa trên thành phần.
4. Hạn chế và hướng phát triển
Mặc dù đạt được một số chức năng chính, ứng dụng vẫn còn nhiều hạn chế. Thuật toán sắp xếp chưa được tối ưu, dẫn đến kết quả chưa luôn thỏa mãn. Ứng dụng chưa hỗ trợ các mức độ ưu tiên khác nhau giữa các lớp học và chưa có chức năng tinh chỉnh thời khóa biểu sau khi được tạo. Tác giả mong muốn nhận được góp ý để cải thiện ứng dụng, tối ưu hóa thuật toán, bổ sung chức năng hỗ trợ ưu tiên và nâng cao tính linh hoạt của ứng dụng trong tương lai, nhằm đáp ứng đầy đủ yêu cầu của người dùng.
IV.Kết quả và Hạn chế
Ứng dụng sắp xếp thời khóa biểu đã đạt được một số chức năng chính như thêm phòng học, học phần, khoa viện, niên khóa và thiết bị. Kết quả cho thấy ứng dụng chạy ổn định và có thể sử dụng để sắp xếp lịch học đơn giản. Tuy nhiên, thuật toán cần được cải thiện để tối ưu hóa kết quả và thêm chức năng linh hoạt hơn. Khóa luận đề cập đến các hạn chế của ứng dụng và đề xuất hướng phát triển trong tương lai, bao gồm tối ưu hóa thuật toán và thêm chức năng hỗ trợ ưu tiên.
1. Kết quả đạt được của ứng dụng
Ứng dụng sắp xếp thời khóa biểu, được xây dựng dưới dạng plugin trên Eclipse, đã đạt được một số kết quả khả quan. Ứng dụng đã giải quyết được vấn đề cơ bản của bài toán, đó là sắp xếp lịch học đơn giản. Chương trình chạy ổn định và ít phát sinh lỗi, cho thấy sự ổn định của mã nguồn và thiết kế. Thuật toán sắp xếp, mặc dù chưa được tối ưu, đã có thể phân bổ lớp học vào các phòng và ngày trong tuần một cách cơ bản. Các chức năng thêm mới dữ liệu, bao gồm phòng học, học phần, khoa viện, niên khóa và thiết bị, hoạt động tốt và hiển thị kết quả trên giao diện người dùng. Việc sử dụng plugin cho phép ứng dụng có thể cài đặt trên nhiều nền tảng khác nhau mà không phụ thuộc vào hệ thống cài đặt, chứng minh tính linh hoạt và khả năng mở rộng của phương pháp phát triển dựa trên thành phần.
2. Hạn chế của ứng dụng và đề xuất cải tiến
Mặc dù đạt được những kết quả tích cực, ứng dụng vẫn còn một số hạn chế cần được khắc phục. Thuật toán sắp xếp thời khóa biểu chưa được tối ưu, đôi khi dẫn đến kết quả chưa thỏa mãn hoàn toàn. Chưa có chức năng hỗ trợ các mức độ ưu tiên khác nhau giữa các lớp học, làm giảm tính linh hoạt của ứng dụng. Ứng dụng cũng thiếu chức năng tinh chỉnh thời khóa biểu sau khi đã được tạo, hạn chế khả năng điều chỉnh và tối ưu hóa lịch học. Tác giả nhận thức được những thiếu sót này và mong muốn nhận được góp ý từ các thầy cô và những người quan tâm để hoàn thiện ứng dụng. Việc cải thiện thuật toán, bổ sung chức năng hỗ trợ ưu tiên và thêm tính năng tinh chỉnh là những hướng phát triển quan trọng cần được ưu tiên trong tương lai.