1. Trang chủ
  2. » Thể loại khác

Luận văn phát triển ứng dụng trên nền eclipse

65 3 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Luận Văn Phát Triển Ứng Dụng Trên Nền Eclipse
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
Thể loại Đồ Án Tốt Nghiệp
Năm xuất bản 2013
Thành phố Hải Phòng
Định dạng
Số trang 65
Dung lượng 1,69 MB

Cấu trúc

  • CHƯƠNG 1: MỞ ĐẦU (18)
    • 1.1 Giới thiệu Eclipse (18)
    • 1.2 Lịch sử phát triển (20)
    • 1.3 Kiến trúc Eclipse (21)
  • CHƯƠNG 2: KIẾN TRÚC CỦA PLUGIN TRONG ECLIPSE (27)
    • 2.1 Giới thiệu (27)
    • 2.2 Phát triển phần mềm dựa trên thành phần (28)
      • 2.2.1 Mô hình trừu tƣợng (28)
      • 2.2.2 Cú pháp (29)
      • 2.2.3 Ngữ nghĩa (29)
      • 2.2.4 Kết hợp (composition) (30)
    • 2.3 Kiến trúc Plugin trong Eclipse (31)
      • 2.3.1 Giới thiệu về Plugin và extension point (31)
      • 2.3.2 Điểm mở rộng Plugin (Plugin Extension Points) (33)
      • 2.3.3 Tiến trình làm việc của Plugin (33)
      • 2.3.4 Tập tin cấu hình (manifest) của Plugin (34)
      • 2.3.5 Plugin fragment và feature (36)
      • 2.3.6 Đóng gói Plugin (37)
      • 2.3.7 Perspective, views, editor (37)
    • 2.4 Ngôn ngữ lập trình java (38)
      • 2.4.1 Lịch sử phát triển của Java (38)
      • 2.4.2 Máy ảo Java (Java Virtual Machine) (38)
      • 2.4.3 Một số đặc điểm ngôn ngữ lập trình Java (40)
  • CHƯƠNG 3: CHƯƠNG TRÌNH THỬ NGHIỆM (41)
    • 3.1 Mô tả yêu cầu bài toán (41)
    • 3.2 Xác định mô hình nghiệp vụ (42)
      • 3.2.1 Các chức năng nghiệp vụ (42)
      • 3.2.2 Biểu đồ use case tổng quan (43)
      • 3.2.3 Mô tả khái quát các quan hệ con (43)
      • 3.2.4 Các mô hình ca sử dụng chi tiết (44)
    • 3.3 Phân tích hệ thống (47)
      • 3.3.1 Phân tích gói ca sử dụng “Cập nhật dữ liệu” (47)
      • 3.3.2 Phân tích gói ca sử dụng “Lập thời khóa biểu” (53)
    • 3.4 Thiết kế hệ thống (55)
    • 3.5 Thuật toán sử dụng (56)
    • 3.6 Kết quả của chương trình minh họa (56)
    • 3.7. Giao diện của chương trình (57)
      • 3.7.1. Giao diện chính của chương trình (57)
      • 3.7.2 Giao diện đăng nhập (57)
      • 3.7.3 Giao diện phòng học (58)
      • 3.7.4 Giao diện học phần (59)
      • 3.7.5 Giao diện khoa viện (60)
      • 3.2.6 Giao diện niên khóa (61)
      • 3.7.7 Giao diện trang thiết bị (62)
      • 3.7.8 Giao diện thời khóa biểu (63)
  • KẾT LUẬN (17)
  • TÀI LIỆU THAM KHẢO (17)

Nội dung

KIẾN TRÚC CỦA PLUGIN TRONG ECLIPSE

Giới thiệu

Plugin, hay còn gọi là trình cắm hoặc phần bổ trợ, là một thành phần quan trọng giúp phần mềm ứng dụng mở rộng và bổ sung các tính năng cụ thể Việc sử dụng plugin giúp cải thiện hiệu suất và khả năng của ứng dụng, mang lại trải nghiệm tốt hơn cho người dùng.

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

Phạm Viết Mạnh - CT1301 23 cung cấp dịch vụ chính cho các Plugin, bao gồm cách đăng ký và giao thức trao đổi dữ liệu Các 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 có thể hoạt động mà không cần Plugin.

Giao diện lập trình ứng dụng (API) mã nguồn mở cung cấp một tiêu chuẩn cho phép các nhà phát triển tạo ra các Plugin tương tác với ứng dụng chính Một API ổn định giúp các Plugin của bên thứ ba duy trì hoạt động bất chấp các thay đổi trong phiên bản gốc, đồng thời kéo dài vòng đời của các ứng dụng đã lỗi thời.

Phát triển phần mềm dựa trên thành phần

Công nghệ phần mềm đã trải qua nhiều giai đoạn phát triển, với sự xuất hiện của các công nghệ mới như Phát triển dựa trên các thành phần (CBD) Ưu điểm nổi bật của CBD là khả năng sử dụng lại và thời gian phát triển ngắn Tuy nhiên, để áp dụng thành công phương pháp này, các nhà phát triển cần vượt qua một số thách thức như tính tương thích với môi trường, khả năng kết hợp các thành phần, và việc làm mịn các thành phần phần mềm.

Mô hình trừu tượng được sử dụng để mô tả các thành phần, bao gồm các định nghĩa chung về cú pháp, ngữ nghĩa và tính kết hợp.

Mã nguứn Đứ u vào Đứ u ra

Hình4: Mô hình trừu tượng của thành phần

Ngôn ngữ lập trình đóng vai trò quyết định trong cấu trúc của các thành phần phần mềm Mỗi thành phần phần mềm hiện tại đều được xây dựng bằng một ngôn ngữ lập trình cụ thể Chẳng hạn, EJB được phát triển bằng ngôn ngữ lập trình Java và được biểu diễn dưới dạng một lớp Java.

Thành phần là đơn vị phần mềm bao gồm tên, giao tiếp (interface) và mã nguồn, trong đó mã nguồn thực hiện các dịch vụ của thành phần và được bảo mật bên trong Giao diện bên ngoài cung cấp thông tin cần thiết để các thành phần kết nối với nhau, bao gồm dịch vụ đầu vào và yếu tố cung cấp dịch vụ đầu ra Khi có nhiều đầu vào và đầu ra, thành phần cần xác định mối quan hệ giữa chúng để đảm bảo hoạt động hiệu quả.

Hình5:Ví dụ về thành phần với các kiểu đầu vào - ra

Thành phần là đơn vị chức năng chưa hoàn chỉnh trong một hệ thống, nơi nhiều thành phần được kết nối với nhau Đầu vào của một thành phần sẽ kết hợp với đầu ra của thành phần khác, và đầu ra của thành phần có thể là đầu ra của toàn bộ hệ thống hoặc là đầu vào của một thành phần khác.

Hiện nay, trong lập trình hướng đối tượng, các đối tượng trở thành thành phần chính, với các phương thức đóng vai trò là dịch vụ đầu ra Các dịch vụ đầu vào được quản lý và cung cấp thông qua các bộ chứa (container), nơi lưu trữ các đối tượng và kiểm soát sự tiếp cận cũng như tương tác với chúng.

JavaBean được quản lý bởi bộ chứa như BeanBox, cho phép kết nối các JavaBean thông qua sự kiện Ngược lại, EJB được quản lý bởi chương trình máy chủ J2EE và có thể được truy cập thông qua hai giao diện.

“home” và “remote” hoặc đƣợc gọi trực tiếp bởi máy chủ J2EE

Trong phát triển phần mềm dựa trên thành phần, việc kết hợp các thành phần để tạo thành hệ thống hoàn chỉnh là rất quan trọng Các thành phần này có khả năng kết hợp để hình thành các thành phần phức hợp Tuy nhiên, hiện tại chưa có ngôn ngữ kết hợp nào đảm bảo tính tương thích về ngữ nghĩa và cú pháp cho các thành phần như EJB, COM, và các công nghệ khác.

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

Kiến trúc Plugin trong Eclipse

2.3.1Giới thiệu về Plugin và extension point

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]

Ví dụ: các chức năng của HTML editor

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

The plugin system offers a robust storage solution for projects, folders, and files, while providing essential user interface components through the Workbench It includes a variety of available plugins, debugging tools, and development resources to enhance productivity and streamline workflows.

Java (JDT), môi trường phát triển thành phần cắm thêm (PDE) [4]

PDE giúp các nhà phát triển dễ dàng cài đặt Plugin trong Eclipse mà không cần sử dụng công cụ bên ngoài Là một Plugin, PDE dựa vào sự hỗ trợ từ cùng một cốt lõi để thực hiện các nhiệm vụ tương tự như các Plugin khác.

Eclipse extensions đƣợc chia làm 3 loại:

Plugin là công cụ bổ sung chức năng cho Eclipse thông qua các điểm mở rộng, với chu trình sống được điều khiển bởi Workbench Khi Eclipse khởi động, các Plugin được thêm vào nhưng không được tải ngay lập tức; chúng chỉ được tải khi cần thiết Trong quá trình tải, Eclipse sẽ gọi phương thức startup(), và trước khi ngừng hoạt động, nó sẽ gọi phương thức 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à một tập hợp mã cần thiết để tạo ra một Plugin Khi được thực thi, Eclipse sẽ kết hợp các đoạn mã này với Plugin, giúp làm rõ hành vi và 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

Features can be manually installed or managed through Update Management Plugins and supporting files are packaged into a feature archive, which includes a configuration file for the feature.

File Feature.xml mô tả nội dung kho lưu trữ và các liên kết Plugin Khi một Plugin được đóng gói thành công cụ hoàn chỉnh, fragment chứa mã cập nhật cho Plugin đó chỉ là một gói bao gồm nhiều Plugin, giúp việc cài đặt vào Eclipse trở nên dễ dàng hơn.

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 của Eclipse có giao diện đồ họa người dùng với nhiều điểm mở rộng nhất, bao gồm hỗ trợ cho các khung nhìn và trình biên tập Nó cung cấp các tổ hợp phím, khả năng kéo thả giữa các khung nhìn, và cho phép bổ sung bảng điều khiển vào 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)

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, hiển thị dưới dạng bảng hoặc thông qua các Plugin đặc thù để cung cấp hỗ trợ hiệu quả.

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

Plugin là một Java Archive (JAR) độc lập và tự khởi tạo, chứa mã và tài nguyên cần thiết để hoạt động Plugin tự khởi tạo nhờ vào thông tin và tài nguyên của chính nó, cũng như công dụng mà nó cung cấp Trong cấu trúc của một Plugin, có hai tập tin mô tả quan trọng.

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 cung cấp thông tin quan trọng về Plugin, bao gồm tên, phiên bản, tên lớp và tên file JAR Bên cạnh đó, nó cũng liệt kê các Plugin mà Plugin hiện tại phụ thuộc vào.

Ví dụ về tập tin manifest

Bundle-SymbolicName: Tkb;singleton:=true

Require-Bundle: org.Eclipse.ui, org.Eclipse.core.runtime,

/* Thuộc tính định dạng Plugin */

//Khai báo chức năng mà Plugin cung cấp

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, nơi mà actionSet là nhóm chức năng mà Plugin thêm vào giao diện Workbench, bao gồm menus, menu items, và toolbars ActionSet giúp người dùng quản lý các chức năng một cách dễ dàng Mỗi actionSet có thể chứa hai thẻ: thẻ menu mô tả vị trí và cách hiển thị item trên Workbench, và thẻ action mô tả chức năng của item cùng với lớp xử lý action để thực hiện chức năng đó.

Plugin fragment là một phần của Plugin, cho phép sử dụng độc lập mà không cần phụ thuộc vào các thành phần khác của Plugin Điều này mang lại sự linh hoạt và tiện lợi cho người dùng khi chỉ cần một chức năng cụ thể.

Plugin fragment được sử dụng để bổ sung các tính năng cho một Plugin hiện có mà không cần phải xây dựng lại, hoặc để cung cấp chức năng cho một nền tảng cụ thể.

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 được định nghĩa là , với hai thuộc tính quan trọng là Plugin-id và Plugin-version, giúp xác định định danh và phiên bản của Plugin cha.

 Plugin fragment sẽ tự động kế thừa các nút của Plugin cha và có thể thêm các nút 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

Phạm Viết Mạnh – CT1301 32 does not contain code For example, the Java Development Tooling (JDT) is a feature project composed of various plugins, including the Java editor, debugger, and console.

Ngôn ngữ lập trình java

2.4.1 Lịch sử phát triển của Java

Java được phát triển bởi James Gosling và các đồng nghiệp tại Sun Microsystems vào năm 1991 Ban đầu, ngôn ngữ này mang tên Oak, nhưng sau đó đã được đổi tên thành Java và chính thức ra mắt.

2.4.2 Máy ảo Java (Java Virtual Machine)

Tất cả các chương trình cần được biên dịch thành mã máy để thực thi, và mã máy này khác nhau tùy theo kiến trúc CPU của từng máy tính Ví dụ, tập lệnh mã máy của CPU Intel, Solarix, và Macintosh là không giống nhau, do đó một chương trình chỉ có thể chạy trên một kiến trúc CPU cụ thể sau khi biên dịch CPU Intel hỗ trợ nhiều hệ điều hành như Microsoft Windows, Unix, Linux, và OS/2 Các chương trình chạy trên Windows thường được biên dịch dưới dạng file với phần mở rộng đặc trưng.

Trên Linux, các tệp thực thi có đuôi *.EXE được biên dịch thành tệp *.ELF, do đó, để chạy một chương trình từ Windows trên Linux, cần phải chỉnh sửa và biên dịch lại Sự ra đời của ngôn ngữ lập trình Java đã giải quyết vấn đề này nhờ vào máy ảo Java Chương trình viết bằng Java được biên dịch thành mã bytecode, và máy ảo Java sẽ chuyển đổi mã này thành mã máy tương ứng Sun Microsystems là đơn vị phát triển các máy ảo Java cho nhiều hệ điều hành và kiến trúc CPU khác nhau.

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: 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 là cấu trúc chứa các frame, mỗi frame lưu trữ biến cục bộ và thực thi một hàm, sau đó trả kết quả về Mỗi tiến trình có một Stack riêng, được khởi tạo đồng thời với tiến trình đó Frame sẽ được tạo ra khi một hàm được gọi và sẽ bị 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à 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ị, cùng với JIT compiler chuyển đổi mã byte code sang mã máy.

2.4.3 Một số đặc điểm ngôn ngữ lập trình Java

Java là ngôn ngữ lập trình hướng đối tượng, kết hợp giữa biên dịch và thông dịch Mã nguồn Java có đuôi *.java được biên dịch thành tập tin *.class, sau đó trình thông dịch sẽ chuyển đổi tập tin này thành mã máy.

Chương trình viết bằng ngôn ngữ lập trình Java được biên dịch thành mã bytecode Java, và máy ảo Java có nhiệm vụ chuyển đổi mã bytecode này thành mã máy tương ứng Sun Microsystems phát triển các máy ảo Java có khả năng chạy trên nhiều hệ điều hành và kiến trúc CPU khác nhau.

Một ứng dụng viết bằng ngôn ngữ Java có khả năng chạy trên nhiều hệ điều hành khác nhau như Windows, MacOS, và Linux, miễn là có cài đặt máy ảo Java (Java Virtual Machine) Điều này cho phép lập trình viên chỉ cần viết mã một lần và chương trình có thể hoạt động trên mọi nền tảng, mang lại tính linh hoạt và tiện lợi cho người dùng.

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 là một công nghệ mạnh mẽ hỗ trợ phát triển ứng dụng với nhiều công cụ và thư viện phong phú từ Sun Microsystems J2SE (Java 2 Standard Edition) giúp phát triển ứng dụng đơn và client-server, trong khi J2EE (Java 2 Enterprise Edition) tập trung vào các ứng dụng thương mại Đối với các thiết bị di động và không dây, J2ME (Java 2 Micro Edition) là lựa chọn lý tưởng.

Eclipse là một chương trình phát triển phần mềm chạy trên môi trường Java, cho phép sử dụng các plugin như những thành phần mở rộng Điều này có nghĩa là các chương trình được viết dưới dạng plugin chỉ cần được xây dựng một lần và có thể chạy trên nhiều nền tảng khác nhau.

Các Plugin trong Eclipse có khả năng tương tác và hỗ trợ lẫn nhau, đồng thời có thể hoạt động song song nhờ vào khả năng đa nhiệm và đa luồng của Java.

CHƯƠNG TRÌNH THỬ NGHIỆM

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 dựa trên các thông tin như mã môn học, số tín chỉ, buổi học và số lượng sinh viên tối đa Ngoài ra, nó còn xem xét thông tin phòng học bao gồm địa chỉ, số lượng sinh viên và trang thiết bị giảng dạy Việc sắp xếp thời khóa biểu phải tuân thủ các ràng buộc nhất định để đảm bảo hiệu quả giảng dạy.

 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

 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

 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

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

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

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

R 15 Cập nhật thông tin khoa

Tác nhân là một yếu tố bên ngoài hệ thống, tương tác trực tiếp với nó Đây là đối tượng mà hệ thống phục vụ hoặc cần cung cấp dữ liệu để hoạt động hiệu quả.

Hệ thống gồm có tác nhân là người quản lý

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

Cập nhật thông tin phòng học, thiết bị, niên khóa, học phần và khoa là những nhiệm vụ quan trọng trong quản lý giáo dục Việc duy trì thông tin chính xác và kịp thời giúp nâng cao chất lượng giảng dạy và học tập Thông qua việc cập nhật thường xuyên, các bên liên quan có thể nắm bắt được tình hình hiện tại và đưa ra các quyết định phù hợp.

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 chỉ có thể thực hiện bởi người quản lý, với chức nă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 và 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

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

 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

 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

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

 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

Mô tả khái quát Người quản lý sắp thời khóa biểu

 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

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”

 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ị”

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

 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()

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

1: Yeu cau cap nhat hp()

2: Cap nhat thong tin HP()

: Nguoi quan ly : Form_Khoa : Form_Khoa : Controller : Controller : Khoa : Khoa

1: Yeu cau thong tin Khoa()

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

1: Yeu cau thong tin Khoa()

2: Cap nhat phong hoc() 3: Cap nhat phong hoc()

6: Cap nhat thong tin HP()

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

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 : Form_thoikhoabieu : Form_thoikhoabieu : Controller : Controller : Lophocphan : Lophocphan : Thoikhoabieu : Thoikhoabieu : Baoloi : Baoloi

5: Luu cac lop bi loi() 6: Hien thi loi()

: Lophocphan 2: Yeu cau sap tkb() 3: Luu cac lop HP()

5: Luu cac lop bi loi() 6: Hien thi loi()

7: Luu tkb() 8: Hien thi tkb()

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 : Form_thoikhoabieu : Form_thoikhoabieu : Controller : Controller

: Thoikhoabieu : Thoikhoabieu 1: Chon chuc nang in tkb()

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

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”

Thiết kế hệ thống

Hình30: Mô hình cơ sở dữ liệu

5: Luu cac lop bi loi()

11: in va hien danh sach tkb()

12: Lay tt() 1: Chon sap tkb()

9: Chon chuc nang in tkb()

Thuật toán sử dụng

Thuật toán sắp xếp được thiết kế dựa trên các điều kiện ràng buộc như số lượng sinh viên và trang thiết bị cần thiết Phương pháp này giúp thu hẹp không gian tìm kiếm bằng cách loại trừ những trường hợp không phù hợp.

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 số tiết học còn lại chưa được xếp vào phòng học; nếu số tiết khác 0, tiến hành tìm phòng phù hợp cho lớp học phần đó Nếu không còn tiết học nào, sẽ bỏ qua bước này.

Mỗi phòng học được chia thành các trạng thái từ thứ Hai đến thứ Sáu, với mỗi ngày có 6 tiết học Khi một lớp học được xếp vào một phòng và một ngày cụ thể, số tiết trống của phòng đó sẽ giảm dần cho đến khi không còn tiết trống Khi phòng đã đầy từ thứ Hai đến thứ Sáu, quá trình sẽ chuyển sang phòng tiếp theo.

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.

Kết quả của chương trình minh họa

Chương trình đã hiệu quả trong việc giải quyết vấn đề sắp xếp lịch học đơn giản, với khả năng hoạt động ổn định và í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

Ngày đăng: 05/08/2021, 21:20

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[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 Khác
[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ê Khác
[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 Khác
[4] Carlos Valcarcel (2005), Eclipse KickStart (Ver 3.0) Khác
[5] David Gallardo (developerWorks, 12. 2002), Getting started with the EclipsePlatform Khác
[6] Dr Alex Blewitt, Eclipse 4 Plug-in Development by Example Khác

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w