1. Trang chủ
  2. » Luận Văn - Báo Cáo

NGHIÊN cứu một số THUẬT TOÁN xếp LỊCH xây DỰNG ỨNG DỤNG xếp THỜI KHÓA BIỂU CHO TRƯỜNG THPT

73 168 2

Đ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

Định dạng
Số trang 73
Dung lượng 1,38 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TINKHOA CÔNG NGHỆ PHẦN MỀM KHÓA LUẬN TỐT NGHIỆP NGHIÊN CỨU MỘT SỐ THUẬT TOÁN XẾP LỊCH XÂY DỰNG ỨNG DỤNG XẾP THỜI KHÓA BI

Trang 1

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

KHOA CÔNG NGHỆ PHẦN MỀM

KHÓA LUẬN TỐT NGHIỆP

NGHIÊN CỨU MỘT SỐ THUẬT TOÁN XẾP LỊCH

XÂY DỰNG ỨNG DỤNG XẾP THỜI KHÓA BIỂU

CHO TRƯỜNG THPT

Giảng viên hướng dẫn: PGS TS VŨ THANH NGUYÊN

THS NGUYỄN ĐĂNG KHOA

Sinh viên thực hiện : KHƯƠNG SĨ TOÀN 07520363

LÊ NGUYỄN TẤN ĐẠT 07520076 Lớp: CÔNG NGHỆ PHẦN MỀM 02

Khóa: 2007-2012

TP Hồ Chí Minh, tháng 7 năm 2012

Trang 2

MỞ ĐẦU

Trong bối cảnh hiện nay, nhu cầu sử dụng Internet cũng như việc kinh doanh, trao đổi, mua bán, học tập, làm việc, nghiên cứu, giải trí v v…trên máy tính là vô hạn

Việc sử dụng các ứng dụng cho nhu cầu thực tế là rất nhiều Các ứng dụng CNTT

đã trnên rất phổ biến trong công việc học tập

Hiện nay các trường THPT việc ứng dụng các ứng dụng CNTT để quản lý, sắp xếp đã trở nên phổ biến Với việc các trường ngày càng đông học sinh thì việc cơ sở vật chất của mỗi trường đều phải tăng lên tương ứng Công việc xếp lịch học và giảng dạy cho học sinh và giáo viên trở nên nặng nề rắc rối đối với người xếp lịch bằng tay

Tại trường THPT Tam Phú KP5 Phường Tam Phú Quận Thủ Đức cũng gặp trường hợp như vậy Việc có nhiều lớp học, học sinh, giáo viên…đã làm nhân viên gặp khó khăn Vì vậy việc cấp thiết xây dựng một phần mềm có khả năng tự động xếp thời khóa biểu, phân công giảng dạy cho toàn trường

Chính vì vậy nhóm đề tài luận văn tốt nghiệp chúng tôi xin được trình bày báo cáo luận văn tốt nghiệp : Nghiên cứu một số thuật toán xếp lịch và xây dựng chương trình xếp thời khóa biểu ứng dụng cho trường THPT Tam Phú

Trang 3

LỜI CẢM ƠN

Chúng tôi xin chân thành cảm ơn Khoa Công nghệ Phần Mềm, trường Đại học Công Nghệ Thông Tin, Đại học Quốc gia Tp Hồ Chí Minh đã tạo điều kiện thuận lợi và tốt nhất cho chúng tôi học tập trong suốt 5 năm qua và thực hiện đề tài tốt nghiệp này

Chúng tôi xin bày tỏ lòng biết ơn sâu sắc đến thầy Vũ Thanh Nguyên và thầy Nguyễn Đăng Khoa đã tận tình, nhiệt tình hướng dẫn, chỉ bảo chúng tôi trong suốt quá trình thực hiện đề tài

Chúng tôi xin chân thành cám ơn quý Thầy Cô trong Khoa Công nghệ Phần Mềm đã tận tình giảng dạy, trang bị cho chúng tôi những kiến thức quý báu trong những năm học vừa qua

Chúng tôi cũng xin chân thành cảm ơn phòng kế hoạch trường THPT Tam Phú đã cung cấp cho chúng tôi nhiều thông tin quý báu để chúng tôi thực hiện xây dựng đề tài này

Chúng con xin chân thành cảm ơn Cha Mẹ đã luôn động viên, ủng hộ vật chất lẫn tinh thần trong suốt quãng đường đại học của chúng con

Chúng tôi xin cảm ơn sự quan tâm, giúp đỡ và ủng hộ của anh chị, bạn bè trong quá trình thực hiện khóa luận

Mặc dù đã cố gắng hoàn thành khóa luận trong phạm vi và khả năng cho phép nhưng chắc chắn sẽ không tránh khỏi những thiếu sót Chúng tôi rất mong nhận được sự thông cảm, góp ý và tận tình chỉ bảo của quý Thầy Cô và các bạn

Trang 4

NHẬN XÉT (Của giảng viên hướng dẫn)

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

TpHCM, ngày … tháng …… năm ……

Giảng viên hướng dẫn [Ký tên và ghi rõ họ tên]

Trang 5

NHẬN XÉT (Của giảng viên phản biện)

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

TpHCM, ngày … tháng …… năm ……

Giảng viên phản biện [Ký tên và ghi rõ họ tên]

Trang 6

ĐỀ CƯƠNG CHI TIẾT

Tên Đề Tài: Nghiên cứu một số thuật toán xếp lịch Ứng dụng xây dựng chương trình

xếp thời khóa biểu cho trường THPT

Giáo viên hướng dẫn:

PGS Ts Vũ Thanh Nguyên

Ths Nguyễn Đăng Khoa

Thời gian thực hiện: (từ ngày nhận đề tài đến ngày 20/8/2012 )

Sinh viên thực hiện:

Khương Sĩ Toàn 07520363

Lê Nguyễn Tấn Đạt 07520076

Loại đề tài: Tìm hiểu nghiên cứu thuật toán và xây dựng ứng dụng

Nội Dung Đề Tài:

Nghiên cứu một số thuật toán về xếp thời khóa biểu Xây dựng phần mềm xếp thời khóa biểu cho trường TPHP Tam Phú

Có thể áp dụng cho các trường THPT khác

Kế Hoạch Thực Hiện:

 15/03/2012 – 15/4/2012: Xây dựng ý tưởng và tìm hiểu thuật toán tô màu

o Khương Sĩ Toàn: Tìm hiểu thông tin về THPT Tam Phú và mô hình hóa ứng dụng xếp thời khóa biểu

Trang 7

o Lê Nguyễn Tấn Đạt: Nghiên cứu thuật toán tô màu

 Mục tiêu và kế hoạch chi tiết cho đề tài

 15/4/2012 – 15/05/2012: Thiết kế dữ liệu và xây dựng xếp lịch bán tự động

o Khương Sĩ Toàn : Thiết kế dữ liệu, xây dựng bán tự động

o Lê Nguyễn Tấn Đạt: Nghiên cứu giải thuật di truyền

 15/05/2012 – 15/06/2012: phát triển thêm cho chương trình

o Khương Sĩ Toàn : Áp dụng tự động xếp lịch

o Lê Nguyễn Tấn Đạt: Áp dụng tự động xếp lịch

 15/06/2012 – 15/07/2012: sửa lỗi và phát triển phần mềm

o Khương Sĩ Toàn : sửa lỗi và phát triển phần mềm

o Lê Nguyễn Tấn Đạt: sửa lỗi và phát triển

 5 07 20 2 – 5 08 20 2: viết báo cáo và hoàn thiện

o Khương Sĩ Toàn : viết báo cáo và hoàn thiện

o Lê Nguyễn Tấn Đạt: viết báo cáo và hoàn thiện

SV Thực hiện

Trang 8

Chương 2 THUẬT TOÁN TÔ MÀU VÀ GIẢI THUẬT DI TRUYỀN 3

2.2 Thuật toán tô màu trong xếp thời khóa biểu 7

2.4 Giải thuật di truyền trong xếp thời khóa biểu 11

Chương 3 PHẦN MỀM TỰ ĐỘNG SẮP XẾP THỜI KHÓA BIỂU 15

Trang 9

3.4.2 Các ràng buộc mềm 35

3.6 Một số thuật toán quan trọng của phần mềm 36

Chương 4 CÁC VẤN ĐỀ XẢY RA VÀ HƯỚNG GIẢI QUYẾT 47

4.1 Các vấn đề xảy ra trong quá trình phát triển 47

Trang 11

SƠ ĐỒ 3.1 Sơ đồ luồng dữ liệu yêu cầu Lập danh sách lớp học

SƠ ĐỒ 3.2 Sơ đồ luồng dữ liệu yêu cầu Lập danh sách môn học

SƠ ĐỒ 3.3 Sơ đồ luồng dữ liệu yêu cầu Lập danh sách giáo viên

SƠ ĐỒ 3.4 Sơ đồ luồng dữ liệu yêu cầu Lập danh sách khối lớp

SƠ ĐỒ 3.5 Sơ đồ luồng dữ liệu yêu cầu Phân công học tập

SƠ ĐỒ 3.6 Sơ đồ luồng dữ liệu yêu cầu Sắp xếp thời khóa biểu

SƠ ĐỒ 3.7 Sơ đồ lớp ở mức phân tích

SƠ ĐỒ 3.8 Thiết kế dữ liệu

HÌNH 3.1 Mô hình 1-tier, 3-layers

HÌNH 3.2 Việc trao đổi liên lạc giữa các layer

HÌNH 3.3 Sự phụ thuộc giữa các layer

HÌNH 3.4 Form nhập lớp học

HÌNH 3.5 Form phân các phòng dùng chung

HÌNH 3.6 Form tự động phân phòng dùng chung

HÌNH 3.7 Form phân công giảng dạy cho giáo viên

HÌNH 3.8 Form tự động phân công giảng dạy

HÌNH 3.9 Form xếp thời khóa biểu

HÌNH 3.10 Form tự động xếp thời khóa biểu

HÌNH 3.11 Form thời khóa biểu lớp học

HÌNH 3.12 Form thời khóa biểu giáo viên

Trang 12

Chương 1: TỔNG QUAN

1.1 Giới thiệu đề tài

Hiện nay trong các trường học bao gồm các cấp bậc phổ thông và chuyên nghiệp việc quản lý phân công giảng dạy và học tập đã trở nên khó khăn khi con người sử dụng bằng các phương thức thông thường Do các trường đã có nhiều học sinh, sinh viên và cơ

sở vật chất của mỗi trường đã tăng lên tương ứng Nhu cầu cấp thiết hiện tại là chúng ta cần xây dựng một ứng dụng có thể tự động phân công và sắp xếp lịch học, lịch giảng dạy sao cho hợp lý và tiết kiệm thời gian và công sức nhiều nhất có thể mà vẫn đảm bảo được tính đúng đắn như làm bằng tay

Vì vậy nhóm luận văn tốt nghiệp chúng tôi đã xây dựng phần mềm sắp xếp thời khóa biểu cho trường THPT(cụ thể là THPT Tam Phú) Dựa trên các thuật toán xếp lịch như tô màu, di truyền và một số thuật toán khác

1.2 Mục tiêu của đề tài

Mục tiêu của đề tài là tìm hiểu, nghiên cứu các thuật toán xếp lịch và ứng dụng

nó để xây dựng phần mềm có khả năng xếp thời khóa biểu tự động và bán tự động Phần mềm phải đảm bảo các yêu cầu sau:

 Lưu trữ các thông tin lớp học, môn học, giáo viên, khối lớp Cho phép sửa xóa

 Lưu trữ thông tin trường học, học kỳ…

 Lưu trữ thông tin về lịch rảnh của giáo viên: rảnh bận …

 Phân công giảng dạy cho giáo viên bao gồm tự động và bán tự động

 Sắp xếp thời khóa biểu bao gồm tự động và bán tự động

 Hiện thị thời khóa biểu lớp học, lịch dạy của giáo viên

 Lưu dữ liệu ở dạng excel

1.3 Yêu cầu

 Phần mềm cần đảm bảo các yêu cầu tối thiểu của luận văn là thực hiên phân công xếp lịch tự động mà vẫn thỏa mãn các ràng buộc

Trang 13

 Phần mềm có thể linh hoạt thích ứng với những thay đổi của trường

 Phần mềm cần có tính tiện dụng và trực quan

 Phần mềm có thể tích hợp với các ứng dụng văn phòng

Trang 14

Chương 2: THUẬT TOÁN TÔ MÀU VÀ GIẢI THUẬT DI TRUYỀN

2.1 Giới thiệu thuật toán tô màu

Bài toán tô màu đồ thị và sắc số đồ thị: cho trước một số nguyên dương P, ta nói rằng đồ thị G có P sắc có nghĩa là: chỉ bằng P màu khác nhau ta có thể tô màu tất cả các đỉnh sao cho 2 đỉnh liền kề bất kỳ có màu khác nhau Khi số p nhỏ nhất thì ta gọi P là sắc

số của đồ thị và việc tìm cách tô P màu lên đồ thị chính là bài toán tô màu đồ thị

Bậc của một đỉnh bằng số đỉnh có liên hệ với nó (liền kề với nó)

* Thuật toán:

Lặp lại các bước sau cho đến khi nào tô màu hết các đỉnh:

 Bước 1: chọn đỉnh có bậc cao nhất tô màu i

 Bước 2: hạ bậc:

o Đỉnh đã tô màu: bậc = 0

o Những đỉnh có liên hệ: bâc:= bậc – 1

 Bước 3: đánh dấu những đỉnh có liên hệ (bậc vừa trừ đi ) cấm tô màu i

2.2 Thuật toán tô màu trong bài toán xếp thời khóa biểu

Việc xếp thời khóa biểu trước hết phải thỏa mãn các yêu cầu tối thiểu, đó là không

bị trùng và không bị quá tiết trong tuần Hay nói cách khác là phải thỏa mãn các ràng buộc sau:

 Một lớp không được học hơn một môn trong cùng một tiết

 Một giáo viên không được dạy hơn một lớp trong cùng một tiết

 Một phòng chỉ có thể dùng cho một lớp trong một tiết

 Số tiết học trong tuần của một lớp không được lớn hơn số tiết học qui định trong tuần

Trang 15

Vì phòng học ở trường THPT là cố định với mỗi lớp nên ta chỉ cần quan tâm đến các phòng dùng chung (như phòng vi tính, thực hành…) trong thuật toán

Để thỏa mãn các yêu cầu trên Ta cần dùng thuật toán tô màu để phân nhóm cho các phân công (mỗi phân công là một bộ “lớp-môn-giáo viên”) Sau khi phân nhóm, các phân công cùng một nhóm phải xếp chung một tiết, các phân công khác nhóm phải xếp ở những tiết khác nhau, và số nhóm phải là nhỏ nhất để tốn ít tiết nhất có thể Sẽ có một số môn học mà học nhiều hơn tiết trong tuần, vì vậy sẽ có một số phân công mà có lớp, môn, giáo viên giống nhau và tất nhiên là không được xếp cùng một tiết

*Thuật toán:

Xem mỗi phân công là một đỉnh Bậc của một phân công là số phân công khác không được xếp cùng một tiết với nó (có cùng lớp hoặc cùng giáo viên hoặc cùng phòng dùng chung), hay nói cách khác là có liên hệ với nó

Mỗi phân công có một danh sách các nhóm trùng (không được xếp phân công đó vào các nhóm thuộc danh sách), ban đầu rỗng

Lặp lại các bước sau cho đến khi tất cả các phân công đều được xếp nhóm:

 Bước 1: Chọn phân công có bậc cao nhất xếp vào nhóm đầu tiên không có trong danh sách các nhóm trùng của nó

 Bước 2: hạ bậc:

o Phân công đã xếp nhóm: bậc = 0

o Những phân công có liên hệ: bâc:= bậc – 1

 Bước 3: Thêm nhóm tiết vừa chọn vào danh sách các nhóm trùng của các phân công có liên hệ

Trang 16

 PC5: 10C-Toán-GV01

 PC6: 10C-Sinh vật-GV03

 PC7: 10D-Ngoại ngữ-GV04

 PC8: 10D-Văn-GV02

Lúc này bậc của các phân công này sẽ là:

 PC1: bậc=3 (max), có liên hệ với PC2(cùng lớp), PC3(cùng GV), PC5(cùng GV)

Trang 20

2.3 Giới thiệu giải thuật di truyền (Genetic Algorithm - GA)

Các thuật giải di truyền được thực hiện thay đổi theo bài toán cụ thể, nhưng chúng chia sẻ chung cấu trúc tiêu biểu sau: Thuật giải hoạt động bằng cách cập nhật liên tục tập giả thuyết – được gọi là quần thể Ở mỗi lần lặp, tất cả các cá thể trong quần thể được ước lượng tương ứng với hàm thích nghi Rồi quần thể mới được tạo ra bằng cách lựa chọn có xác suất các cá thể thích nghi tốt nhất từ quần thể hiện tại Một số trong những cá thể được chọn được đưa nguyên vẹn vào quần thể kế tiếp Những cá thể khác được dùng làm cơ sở để tạo ra các cá thể con bằng cách áp dụng các tác động di truyền: lai ghép và đột biến

GA( Fitness, Fitness_threshold, p, r, m)

{

// Fitness: hàm gán thang điểm ước lượng cho một giả thuyết // Fitness_threshold: Ngưỡng xác định tiêu chuẩn dừng giài thuật tìm kiếm // p: Số cá thể trong quần thể giả thuyết

// r: Phân số cá thể trong quần thể được áp dụng toán tử lai ghép ở mỗi

bước

Trang 21

// m: Tỉ lệ cá thể bị đột biến

Khởi tạo quần thể: P  Tạo ngẫu nhiên p cá thể giả thuyết

Ước lượng: Ứng với mỗi h trong P, tính Fitness(h)

while [max Fitness(h)] < Fitness_threshold do

Tạo thế hệ mới, PS

1 Chọn cá thể: chọn theo xác suất (1 – r)p cá thể trong quần thể P

thêm vào P S Xác suất Pr(h i ) của giả thuyết h i thuộc P được tính

bởi công thức:

1

( )Pr( )

( )

i

j j

Fitness h h

Fitness h

2 Lai ghép: chọn lọc theo xác suất

2

rp cặp giả thuyết từ quần thể

P, theo Pr(h i ) đã tính ở bước trên Ứng với mỗi cặp <h 1 , h 2 >, tạo

ra hai con bằng cách áp dụng toán tử lai ghép Thêm tất các các

con vào P S

3 Đột biến: Chọn m% cá thể của PS với xác suất cho mỗi cá thể là như nhau Ứng với mỗi cá thể biến đổi một bit được chọn ngẫu nhiên trong cách thể hiện của nó

4 Cãp nhật: P  PS.

5 Ước lượng: Ứng với mỗi h trong P, tính Fitness(h)

 Trả về giả thuyết trong P có độ thích nghi cao nhất

}

Bảng 3.1 Thuật giải di truyền mẫu

Chi tiết về thuật giải di truyền xem ở phần phụ lục

2.4 Giải thuật di truyền trong việc xếp thời khóa biểu

Mục đích của việc xếp thời khóa biểu là xếp các phân công (các bộ “lớp-môn-giáo

viên”) vào các tiết trong tuần Ví dụ 27 tiết (tất nhiên số tiết này là linh động tùy thuộc vào lúc khởi tạo dữ liệu học kỳ)

Sau khi sử dụng thuật toán tô màu, ta có được 27 nhóm phân công, mỗi nhóm chứa các phân công phải xếp cùng một tiết, các phân công thuộc các nhóm khác nhau phải xếp vào các tiết khác nhau Nếu xếp 27 nhóm này vào 27 tiết thì sẽ đáp ứng được không bị trùng(trùng lớp, trùng giáo viên)

Trang 22

Vấn đề là xếp các nhóm phân công này vào các tiết theo thứ tự như thế nào để thời khóa biểu hợp lý hơn.Ví dụ 5 tiết toán cùng 1 lớp mà xếp vào 5 tiết liên tiếp thì khó cho học sinh Nói cách khác ta cần phải tìm cách xếp thỏa mãn nhiều nhất các ràng buộc mềm sau:

 Các môn học 2,3 tiết trong tuần thì một ngày chỉ có một tiết đối với một lớp, các ngày có các tiết này cách nhau ít nhất 2 ngày

 Các môn học 4 tiết trở lên trong tuần thì một ngày tối đa 3 tiết, các tiết cùng ngày liền nhau, các tiết khác ngày cách nhau ít nhất 2 ngày

Càng nhiều ràng buộc mềm được thỏa mãn thì cách xếp càng hợp lý

Xếp 27 nhóm phân công vào 27 tiết trong tuần, nghĩa là sẽ có tất cả 27! cách xếp Đây là một con số vô cùng lớn Nếu dùng phương pháp vét cạn xét hết tất cả các trường hợp để tìm cách xếp hợp lý nhất thì sẽ tốn kém tài nguyên và thời gian

Vì vậy nhóm sử dụng giải thuật di truyền để tìm ra thứ tự xếp hợp lý Kết quả tìm được không phải là kết quả tối ưu nhưng sẽ là kết quả tốt và không cần xét hết các trường hợp

Mỗi cá thể sẽ là một cách xếp, là một thứ tự thể hiện cách sắp xếp 27 nhóm phân công vào 27 tiết trong tuần Được biểu diễn bằng một danh sách có 27 vị trí lưu các tiết.Ví dụ:

Trang 23

 Tìm vị trí a2 = h2.indexOf(h1[a])

 Đổi chổ h1[a] và h2[a]

 Đổi chỗ h1[a1] và h2[a2]

Trang 24

H sau khi đột biến:

1 2 3 7 5 6 4 8 9 …

adaptive: hàm tính độ thích nghi của 1 cá thể

maxAdaptive: độ thích nghi tối đa Được tính bằng cách giả sử không có vi phạm

ràng buộc mềm nào ở tất cả các tiết trong tuần

adaptive_threshold = 0.8 * maxAdaptive: Ngưỡng xác định tiêu chuẩn dừng giài

thuật tìm kiếm

highestAdaptive: độ thích nghi cao nhất trong quần thể hiện tại

m: Tỉ lệ cá thể bị đột biến

*Thuật toán:

Khởi tạo quần thể: P  Tạo ngẫu nhiên 27 cá thể

Ước lượng: Ứng với mỗi h trong P, tính adaptive(h)

while highestAdaptive < adaptive_threshold do

Tạo thế hệ mới, PS

1 Chọn cá thể: chọn theo xác suất các cá thể trong quần thể P thêm

vào P S Xác suất chọn Pr(h i ) của cá thể h i thuộc P được tính bởi

công thức:

Pr(hi)=adaptive(hi)/maxAdaptive()

2 Lai ghép: chọn lọc theo xác suất các cặp giả thuyết từ quần thể P,

theo Pr(h i ) đã tính ở bước trên Ứng với mỗi cặp <h 1 , h 2 >, tạo ra hai

con bằng cách áp dụng toán tử lai ghép Thêm tất các các con vào

P S

3 Đột biến: Chọn m% cá thể của PS với xác suất cho mỗi cá thể là như nhau Ứng với mỗi cá thể được chọn áp dụng toán tử đột biến cho nó

4 Cãp nhật: P  PS.

Trang 25

 Trả về cá thể trong P có độ thích nghi cao nhất

Trang 26

Chương 3: PHẦN MỀM TỰ ĐỘNG SẮP XẾP THỜI KHÓA BIỂU

3.1 Giới thiệu trường THPT Tam Phú

Địa chỉ: 3 đường Phú Châu, khu phố 5, phường Tam Phú quận Thủ Đức

Email internet: c3tamphu.tphcm@moet.edu.vn

Hiệu trưởng: Ông Trần Anh Dũng

Phó Hiệu trưởng: Ông Nguyễn Văn Chiến - Ông Trần Văn Long - Bà Lê Thanh

Trang 27

Bảng 3.2 Tình hình giáo viên trường Tam Phú

Vào đầu mỗi học kỳ, trường cần xây dựng một thời khóa biểu cho việc học tập và giảng dạy Ở trường THPT thì mỗi lớp học 5 tiết một ngày, học buổi sáng hoặc chiều.Có thể sẽ có một ngày học ít hơn 5 tiết, thông thường là vào thứ 5 Ngoài ra, có một số tiết đặc biệt là tiết chào cờ và sinh hoạt lớp, thông thường là vào thứ 2 và thứ 7

Một số yêu cầu linh động của trường THPT Tam Phú

Linh động về số tiết học trong tuần: trong tuần từ thứ hai đến thứ bảy có

6 ngày, mỗi ngày học 5 tiết, như vậy trong tuần một lớp có thể học tối đa 30 tiết Tuy nhiên, thông thường còn có một số môn học đặc biệt như chào cờ, sinh hoạt lớp đã chiếm chỗ của vài tiết Ngoài ra còn có ngày học ít tiết hơn những ngày khác ( thường là vào thứ năm) Vì vậy trong tuần một lớp chỉ học khoảng 27 tiết Số tiết này là một tham số được cung cấp lúc khởi tạo

dữ liệu học kỳ, và chương trình sẽ linh động xếp thời kháo biểu theo tham

số này

Linh động về vị trí của các môn học đặc biệt: thông thường môn chào cờ

được sếp vào tiết đầu của ngày thứ hai đối với các lớp học buổi sáng, tiết cuối của ngày thứ hai đối với các lớp học buổi chiều Môn sinh hoạt lớp được xếp vào tiết cuối của ngày thứ bảy Tuy nhiên vị trí các môn này không nên xếp cố định mà cần phải có thể linh động thay đổi theo điều kiện cụ thể của trường Vì vậy, vị trí các môn đặc biệt cũng sẽ là các tham số được cung cấp lúc khởi tạo dữ liệu, và chương trình sẽ linh động theo

Trang 28

Linh động về ngày học ít: tương tự, ngày học ít tiết hơn những ngày khác

cũng là một tham số và có thể linh động được Những ngày khác sẽ học 5 tiết, và số tiết còn lại sẽ là của ngày học ít Vì vậy số tiết của ngày học ít sẽ tùy thuộc vào số tiết học trong tuần

Linh động về số tiết dạy tối đa trong tuần của giáo viên: được chia ra số

tiết dạy tối đa buổi sáng và số tiết dạy tối đa buổi chiều Khi phân công dạy học cho giáo viên, không được phân công nhiều hơn số tiết tối đa này Số tiết tối đa này cũng sẽ là tham số linh động và có thể thay đổi được

3.2 Môi trường ứng dụng phần mềm

Phần mềm được viết trên môi trường Net Framework và MS SQL Server 2005

3.3 Mô hình hóa

3.3.1 Mô hình 1-tier, 3-layers

Hình 3.1 Mô hình 1-tier, 3-layers Vai trò của các layer

Trang 29

GUI (Presentation) Layer: Nhập liệu và trình bày dữ liệu, có thể bao gồm các bước kiểm tra dữ liệu trước khi gọi Business Logic Layer

Business Logic Layer: Kiểm tra các yêu cầu nghiệp vụ trước khi cập nhật

dữ liệu, quản lý các Transaction, quản lý các concurrent access

Data Access Layer: Kết nối CSDL, tìm kiếm, thêm, xóa, sửa,…trên CSDL Việc trao đổi liên lạc giữa các layer

Hình 3.2 Việc trao đổi liên lạc giữa các layer

Sự phụ thuộc giữa các layer

Trang 30

Hình 3.3 Sự phụ thuộc giữa các layer Tính chất của mô hình 3 layer

 Giảm sự kết dính giữa các thực thể phần mềm(decoupling)

 Tái sử dụng

 Chia sẽ trách nhiệm

3.3.2 Sơ đồ luồng dữ liệu

Sơ đồ luồng dữ liệu thể hiện cho yêu cầu Lập danh sách lớp học :

Trang 31

Sơ đồ 3.1 Sơ đồ luồng dữ liệu yêu cầu Lập danh sách lớp học

Mô tả chi tiết:

 D1: thông tin do người dùng nhập(mã lớp, tên lớp)

Thiết bị nhập

Thiết bị xuất

Lập danh sách lớp học

Bộ nhớ phụ

D1 D2

D3

D4 D5 D6

Trang 32

 B5: lưu D4 vào bộ nhớ phụ

 B6: xuất danh sách ra thiết bị xuất

 B7: đóng kết nối CSDL

 B8: end

Sơ đồ luồng dữ liệu thể hiện cho yêu cầu Lập danh sách môn học :

Sơ đồ 3.2 Sơ đồ luồng dữ liệu yêu cầu Lập danh sách môn học

Mô tả chi tiết:

 D : thông tin do người dùng nhập(mã môn học, tên môn học….)

Thiết bị nhập

Thiết bị xuất

Lập danh sách môn học

Bộ nhớ phụ

D1 D2

D3

D4 D5 D6

Trang 34

Sơ đồ 3.3 Sơ đồ luồng dữ liệu yêu cầu Lập danh sách giáo viên

Mô tả chi tiết:

 D : thông tin do người dùng nhập(mã giáo viên, họ tên….)

Thiết bị nhập

Thiết bị xuất

Lập danh sách giáo viên

Bộ nhớ phụ

D1 D2

D3

D4 D5 D6

Trang 35

 B5: lưu D4 vào bộ nhớ phụ

 B6: xuất danh sách ra thiết bị xuất

 B7: đóng kết nối CSDL

 B8: end

Sơ đồ luồng dữ liệu thể hiện cho yêu cầu Lập danh sách khối lớp :

Sơ đồ 3.4 Sơ đồ luồng dữ liệu yêu cầu Lập danh sách khối lớp

Mô tả chi tiết:

 D : thông tin do người dùng nhập(mã khối , tên khối….)

Thiết bị nhập

Thiết bị xuất

Lập danh sách khối lớp

Bộ nhớ phụ

D1 D2

D3

D4 D5 D6

Trang 36

Sơ đồ luồng dữ liệu thể hiện cho yêu cầu Phân công học tập

Sơ đồ 3.5 Sơ đồ luồng dữ liệu yêu cầu phân công học tập

Người dùng thủ thư

Thiết bị nhập

Thiết bị xuất

Phân công học tập

Bộ nhớ phụ

D1 D2

D3

D4 D5 D6

Ngày đăng: 23/12/2018, 06:18

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w