LỜI CẢM ƠN
Em xin chân thành cảm ơn Khoa Công nghệ thông tin, trường Đại học Quang
Trung đã tạo điều kiện cho em thực hiện Báo cáo đồ án tốt nghiệp này.
Xin gửi lời cảm ơn chân thành đến thầy giáo TS. Nguyễn Văn Phong đã tận tình
hướng dẫn, chỉ bảo trong suốt thời gian thực hiện đồ án tốt nghiệp. Trong quá trình
thực hiện chuyên đề em đã học hỏi được nhiều kiến thức bổ ích và kinh nghiệm quý
báu làm nền tảng cho quá trình làm việc và nghiên cứu sau này.
Em cũng xin chân thành cảm ơn quý Thầy Cô trong Khoa Công nghệ thông tin
đã tận tình giảng dạy, trang bị cho em những kiến thức quan trọng trong những năm
học vừa qua.
Xin chân thành cảm ơn các bạn, đặc biệt là các thành viên trong lớp C10TH đã
cùng đoàn kết, ủng hộ, giúp đỡ em trong suốt thời gian học tập tại trường và thời gian
thực hiện đề tài này.
Mặc dù đã cố gắng hoàn chỉnh chuyê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, rất mong nhận được sự thông
cảm, góp ý của quý Thầy Cô và các bạn.
Em xin chân thành cảm ơn!
Quy Nhơn, ngày 14 tháng 4 năm 2017
Sinh viên thực hiện
Nguyễn Thành Vũ
SVTH: Nguyễn Thành Vũ
i
LỜI CAM ĐOAN
Tôi xin cam đoan:
1. Những nội dung trong báo cáo này là do tôi thực hiện dưới sự hướng dẫn
trực tiếp của thầy giáo TS. Nguyễn Văn Phong.
2. Mọi tham khảo dùng trong báo cáo này đều được trích dẫn rõ ràng tên
tác giả, tên công trình, thời gian, địa điểm công bố.
3. Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá, chúng
tôi xin chịu hoàn toàn trách nhiệm.
Sinh viên
Nguyễn Thành Vũ
SVTH: Nguyễn Thành Vũ
ii
MỤC LỤC
LỜI CẢM ƠN
i
LỜI CAM ĐOAN ii
MỤC LỤC
iii
DANH MỤC HÌNH ẢNH vi
DANH MỤC BẢNG
viii
DANH MỤC TỪ VIẾT TẮT
MỞ ĐẦU
ix
1
I. Lý do chọn đề tài 1
II. Mục đích nghiên cứu của đề tài 1
III. Đối tượng và phạm vi nghiên cứu
IV. Phương pháp nghiên cứu
1
1
CHƯƠNG 1 TỔNG QUAN VỀ ĐỀ TÀI 3
1.1 Mô tả về đề tài....................................................................................................3
1.2 Một số mẫu thời khóa biểu THCS....................................................................3
1.3 Bảng tổng hợp danh sách môn học THCS........................................................5
1.4 Quy trình tạo thời khóa biểu tại trường...........................................................5
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
7
2.1 Khái quát phân tích hệ thống hướng đối tượng..............................................7
2.1.1 Giới thiệu UML 7
2.1.2 Mục đích của UML
7
2.1.3 Công dụng của UML
7
2.1.4 Các đặc trưng và khả năng của UML 8
2.1.5 Mô hình khái niệm của UML 9
SVTH: Nguyễn Thành Vũ
iii
2.1.6 Kiến trúc hệ thống trong UML 17
2.2 Ngôn ngữ lập trình C#.....................................................................................18
2.2.1 Giới thiệu về ngôn ngữ lập trình C# 18
2.2.2 Console application
20
2.2.3 Windows Form Application
23
2.3 Giải thuật di truyền và Tính tiến hóa.............................................................28
2.3.1 Giải thuật di truyền
2.3.2 Tính tiến hóa
28
36
CHƯƠNG 3 PHÂN TÍCH THIẾT KẾ HỆ THỐNG
45
3.1 Áp dụng thuật toán vào bài toán thời khóa biểu............................................45
3.1.1 Thuật toán tiến hóa cải tiến
45
3.1.2 Nhiễm sắc thể của bài toán Thời khóa biểu 45
3.1.3 Quần thể 47
3.1.4 Thuật toán sắp xếp thời khóa biểu
3.1.5 Khởi tạo quần thể
47
48
3.1.6 Thuật toán đánh giá độ thích nghi
50
3.1.7 Thuật toán Đột biến, Biến dị, Lai ghép Nhiễm sắc thể
52
3.1.8 Thuật toán khử vi phạm số buổi học của một môn học
52
3.1.9 Thuật toán khử vi phạm trùng lịch giáo viên 53
3.1.10 Thuật toán cân bằng số lượng tiết dạy của giáo viên
3.1.11 Các bước lập lịch
55
56
3.2 Đặc tả chức năng của hệ thống........................................................................57
3.2.1 Yêu cầu chức năng
57
3.2.2 Yêu cầu phi chức năng 57
SVTH: Nguyễn Thành Vũ
iv
3.3 Phân tích thiết kế hệ thống..............................................................................57
3.2.1 Biểu đồ Ca sử dụng
3.2.2 Biểu đồ lớp
57
59
3.2.3 Biểu đồ hoạt động
61
3.2.4 Biểu đồ tuần tự 63
3.2.5 Mô hình cơ sở dữ liệu 64
CHƯƠNG 4 XÂY DỰNG ỨNG DỤNG 67
4.1 Trang chính.......................................................................................................67
4.2 Các chức năng trong phần mềm.....................................................................67
4.2.1 Cấu hình Server 67
4.2.2 Trang dữ liệu phòng học
4.2.3 Trang dữ liệu lớp học
68
68
4.2.4 Trang dữ liệu giáo viên 69
4.2.5 Trang dữ liệu môn học 69
4.2.6 Trang phân thời khóa biểu
70
4.2.7 Trang thời khóa biểu lớp học 70
4.2.8 Trang lịch dạy giáo viên71
4.2.9 Trang quản lý người dùng
71
KẾT LUẬN 71
DANH MỤC TÀI LIỆU THAM KHẢO 73
SVTH: Nguyễn Thành Vũ
v
DANH MỤC HÌNH ẢNH
Hình 1: Thời khóa biểu lớp 6.........................................................................................3
Hình 2: Thời khóa biểu lớp 7.........................................................................................4
Hình 3: Thời khóa biểu lớp 8.........................................................................................4
Hình 4: Thời khóa biểu lớp 9.........................................................................................4
Hình 5: Quy trình tạo TKB tại trường THCS.................................................................6
Hình 6: Lớp.................................................................................................................. 10
Hình 7: Giao diện.........................................................................................................10
Hình 8: Cộng tác..........................................................................................................10
Hình 9: Ca sử dụng......................................................................................................11
Hình 10: Lớp hoạt động...............................................................................................11
Hình 11: Thành phần....................................................................................................11
Hình 12: Nút................................................................................................................11
Hình 13: Thông điệp....................................................................................................12
Hình 14: Máy trạng thái...............................................................................................12
Hình 15: Gói................................................................................................................12
Hình 16: Biểu đồ CA...................................................................................................14
Hình 17: Biểu đồ cộng tác...........................................................................................15
Hình 18: Thuật toán chương trình................................................................................30
Hình 19: Bánh xe xổ số................................................................................................32
Hình 20: Sơ đồ hình cây của hai NST v1 và v2...........................................................40
Hình 21: Hướng tiếp cận của GA cổ điển....................................................................43
Hình 22: Hướng tiếp cận của Eps................................................................................43
Hình 23: Cấu trúc Nhiễm sắc thể (thời khóa biểu) và các đoạn Gens..........................46
Hình 24: Cấu trúc hoàn chỉnh của một Nhiễm sắc thể.................................................47
Hình 25: Quần thể........................................................................................................47
Hình 26: Thuật toán phân thời khóa biểu.....................................................................48
Hình 27: Thuật toán tạo quần thể.................................................................................49
Hình 28: Quy định tiết được học trong thời khóa biểu.................................................50
Hình 29: Thuật toán tính độ thích nghi của Quần thể và NST.....................................51
Hình 30: Thuật toán khử vi phạm số buổi NST...........................................................53
Hình 31: Thuật toán khử vi phạm trùng lịch giáo viên.................................................54
SVTH: Nguyễn Thành Vũ
vi
Hình 32: Thời khóa biểu trùng lịch dạy môn Toán.......................................................54
Hình 33: Thời khóa biểu sau khi hoán đổi hai môn Toán và Ngoại ngữ......................55
Hình 34: Thuật toán lập lịch........................................................................................56
Hình 35: Biểu đồ Ca sử dụng.......................................................................................58
Hình 36: Biểu đồ lớp....................................................................................................59
Hình 37: Biểu đồ hoạt động.........................................................................................61
Hình 38: Biểu đồ tuần tự..............................................................................................63
Hình 39: Mô hình cơ sở dữ liệu...................................................................................64
Hình 40: Giao diện trang chính....................................................................................67
Hình 41: Giao diện cấu hình Server.............................................................................67
Hình 42: Giao diện dữ liệu phòng học.........................................................................68
Hình 43: Giao diện dữ liệu lớp học..............................................................................68
Hình 44: Giao diện dữ liệu giáo viên...........................................................................69
Hình 45: Giao diện dữ liệu môn học............................................................................69
Hình 46: Giao diện phân thời khóa biểu......................................................................70
Hình 47: Giao diện thời khóa biểu lớp học..................................................................70
Hình 48: Giao diện lịch dạy giáo viên.........................................................................71
Hình 49: Giao diện quản lý người dùng.......................................................................71
SVTH: Nguyễn Thành Vũ
vii
DANH MỤC BẢNG
Bảng 1: Từ khóa của ngôn ngữ C#..............................................................................19
Bảng 2: Kiểu dữ liệu trong C#.....................................................................................20
Bảng 3: Ký tự đặc biệt trong C#..................................................................................20
Bảng 4: Thao tác trên chuỗi.........................................................................................22
Bảng 5: Các thuộc tính của Lable................................................................................24
Bảng 6: Các thuộc tính của TextBox............................................................................24
Bảng 7: Các thuộc tính của Button..............................................................................25
Bảng 8: Các thuộc tính của CheckBox.........................................................................25
Bảng 9: Các thuộc tính của Combobox........................................................................26
Bảng 10: Các thuộc tính của ListBox..........................................................................26
Bảng 11: Các thuộc tính giống nhau của Control.........................................................27
Bảng 12: Các sự kiện của Control................................................................................28
Bảng 13: Mô tả các hoạt động của bánh xe xổ số........................................................33
Bảng 14: Bảng giáo viên..............................................................................................64
Bảng 15: Bảng môn học...............................................................................................65
Bảng 16: Bảng lớp học................................................................................................65
Bảng 17: Bảng phòng học............................................................................................66
Bảng 18: Bảng thời khóa biểu......................................................................................66
SVTH: Nguyễn Thành Vũ
viii
DANH MỤC TỪ VIẾT TẮT
Từ viết tắt
Ý nghĩa
THCS
Trung học cơ sở
GA
Genetic Algorithm (giải thuật di truyền)
DNA
Deoxyribonucleic acid (vật liệu di truyền)
NST
Nhiễm sắc thể
TKB
Thời khóa biểu
GV
Giáo viên
SVTH: Nguyễn Thành Vũ
ix
MỞ ĐẦU
I. Lý do chọn đề tài
Để đáp ứng mục tiêu cơ bản của các dự án Tin học hoá quản lý trong ngành giáo
dục, là tạo được một hệ thống thông tin thống nhất phục vụ điều hành và quản lý, tôi
chọn hướng phát triển phần mềm sắp xếp thời khóa biểu cho các trường THCS nhằm:
1. Tổ chức quản lý, lưu trữ dữ liệu trên hệ thống máy vi tính làm tăng tính an
toàn.
2. Sắp xếp, tính toán, phân chia TKB một cách nhanh chóng và chính xác.
3. Chi phí đào tạo sử dụng phần mềm không tốn kém.
4. Tổ chức quản lý, phù hợp với các ứng dụng triển khai trên diện rộng.
5. Bảo trì, phát triển phần mềm, phát triển ứng dụng và tích hợp với các ứng
dụng khác một cách dễ dàng nhanh chóng; nên việc mở rộng ít tốn kém nhất.
II. Mục đích nghiên cứu của đề tài
Hệ thống dữ liệu đảm bảo việc nhập dữ liệu, quản lý, khai thác dữ liệu được
nhanh chóng, thuận tiện.
Phần mềm giúp sắp xếp thời khóa biểu nhanh chóng giảm thiểu tối đa thời gian
và công sức so với việc thực hiện thủ công.
Phần mềm có giao diện hài hòa, dễ nhìn, linh hoạt, năng động hơn và đáp ứng
được yêu cầu ngày càng cao trong công tác quản lý giáo viên, lớp học, môn học… và
nhu cầu của người sử dụng.
III. Đối tượng và phạm vi nghiên cứu
Cán bộ giáo viên được phân công phụ trách lập TKB tại các trường THCS, các
thành phần tin học liên quan đến công tác quản lý bao gồm: hệ quản trị cơ sở dữ liệu,
phân tích thiết kế hệ thống, ngôn ngữ lập trình C#.
IV. Phương pháp nghiên cứu
- Nghiên cứu thực tế: Tìm hiểu thực tế quy trình phân công TKB, thu thập dữ liệu
từ cán bộ giáo viên phụ trách phân công TKB, để có được cái nhìn khái quát và hiệu
chỉnh cho phù hợp với hệ thống.
- Nghiên cứu tài liệu: Tài liệu hệ quản trị cơ sở dữ liệu SQL Server và ngôn ngữ
lập trình C#.
SVTH: Nguyễn Thành Vũ
1
Cấu trúc đề tài bao gồm những phần sau:
Chương 1: Tổng quan về đề tài
Chương 2: Cơ sở lý thuyết
Chương 3: Phân tích thiết kế hệ thống
Chương 4: Xây dựng ứng dụng
SVTH: Nguyễn Thành Vũ
2
CHƯƠNG 1 TỔNG QUAN VỀ ĐỀ TÀI
1.1 Mô tả về đề tài
Đề tài sẽ thực hiện nghiên cứu các tài liệu thu thập được từ trường THCS, khảo
sát thực tế trường học để hiểu được các nội dung trong việc quản lý dữ liệu, phần chia
thời khóa biểu. Phân tích khả năng có tiết kiệm được thời gian, công sức trước và sau
khi đề tài có khả năng áp dụng vào thực tế hay không.
Đầu tiên, dữ liệu thô sẽ được cấu trúc hóa để lưu trữ trong hệ quản trị CSDL SQL
Server, dữ liệu được thiết kế có những thành phần ngoài khảo sát nhưng sẽ giúp việc
quản lý và lập trình dễ dàng hơn.
Sau đó, sẽ thiết kế giao diện để quản lý những danh mục dữ liệu đã thiết kế trước
đó. Dữ liệu lưu trữ thời khóa biểu sẽ được thiết kế riêng theo thuật toán.
Thuật toán sẽ thiết kế sau đó thử nghiệm và chỉnh sửa, cuối cùng sẽ có một
thuật toán được đưa vào sử dụng. Thuật toán sẽ lấy dữ liệu từ danh mục dữ liệu trước
đó, thực thi theo các bước để tạo thành một thời khóa biểu học và dạy ban đầu. Người
sử dụng có được thời khóa biểu sẽ có thể sửa lại thủ công theo ý muốn của mình mà
không phụ thuộc vào thuật toán. Lúc này khả năng chồng chéo về lịch dạy và học có
thể xảy ra.
Để giải quyết vấn đề trùng lịch học hoặc dạy, tôi sẽ thiết kế một thuật toán khác
chỉ nhằm một mục đích là cảnh báo những chồng chéo đang xảy ra cho người sử dụng
dễ thiết lập và quản lý.
1.2 Một số mẫu thời khóa biểu THCS
- Thời khóa biểu lớp 6:
Hình 1: Thời khóa biểu lớp 6
SVTH: Nguyễn Thành Vũ
3
- Thời khóa biểu lớp 7:
Hình 2: Thời khóa biểu lớp 7
- Thời khóa biểu lớp 8:
Hình 3: Thời khóa biểu lớp 8
- Thời khóa biểu lớp 9:
Hình 4: Thời khóa biểu lớp 9
SVTH: Nguyễn Thành Vũ
4
1.3 Bảng tổng hợp danh sách môn học THCS
Danh sách môn học THCS
Khối 6
Khối 7
Khối 8
Khối 9
Văn (4T) (3B)
Văn (4T) (3B)
Văn (5T)(4B)
Văn (5T)(4B)
Sử (1T)
Sử (2T) (2B)
Sử (2T)(2B)
Sử (1T)
Địa(1T)
Địa(2T) (2B)
Địa(1T)
Địa(1T)
Toán (4T) (3B)
Toán (4T) (3B)
Toán(5T)(4B)
Toán(5T)(4B)
Lý (1T)
Lý (1T)
Lý(1T)
Lý(2T)(2B)
Sinh(2T)(2B)
Sinh(2T)(2B)
Sinh(2T)(2B)
Sinh(2T)(2B)
Anh(3T)(3B)
Anh(3T)(3B)
Anh(2T)(2B)
Anh(3T)(3B)
Tin(1T)
Tin(1T)
Tin(1T)
Tin(1T)
Mỹ thuật(1T)
Mỹ thuật(1T)
Mỹ thuật(1T)
Âm nhạc(1T)
Âm nhạc(1T)
Âm nhạc(1T)
Thể dục(2T)
Thể dục(2T)
Thể dục(2T)
Thể dục(2T)
Công nghệ(2T)
Công nghệ(1T)
Công nghệ(1T)
Công nghệ(1T)
Công dân(1T)
Công dân(1T)
Công dân(1T)
Công dân(1T)
Hóa(2T)(2B)
Hóa(2T)(2B)
25T chính, 4T
phụ
26T chính, 4T
phụ
25 tiết chính, 4T
phụ
25T chính, 4T phụ
Bảng 1: Danh sách môn học THCS
1.4 Quy trình tạo thời khóa biểu tại trường
- Bước 1: thu thập thông tin về lớp, phòng học, môn học và giáo viên.
- Bước 2: Cán bộ giáo viên được phân công tiến hành lập TKB bằng phương
pháp thủ công; chọn lớp, phòng học, môn học và giáo viên hợp lý.
- Bước 3: trình TKB vừa lập cho Hiệu trưởng kiểm tra nếu sai Sót thì điều
chỉnh lại cho hợp lý rồi ban hành TKB cho học sinh và giáo viên.
SVTH: Nguyễn Thành Vũ
5
Bắt đầu
Lớp
Phòng
Môn
Giáo Viên
CBGV phân công
TKB
Quá TrìnhTạo Thời Khóa Biểu
Chọn Lớp
Chọn Phòng Học
Chọn Môn
Chọn Giáo Viên
Thời Khóa Biểu
Hiệu trưởng kiểm
tra TKB
N
Y
Kết
Thúc
Hình 5: Quy trình tạo TKB tại trường THCS
SVTH: Nguyễn Thành Vũ
6
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
2.1 Khái quát phân tích hệ thống hướng đối tượng
2.1.1 Giới thiệu UML
UML là ngôn ngữ mô hình hợp nhất, nó được hiểu như một ngôn ngữ thống nhất
những xu hướng và hình thái của cuộc cách mạng tri thức trong lĩnh vực CNTT. Nó là
một phương tiện giúp cho các tổ chức có thể nhận thức một cách tốt nhất lợi thế cạnh
tranh thông qua việc nắm bắt, truyền đạt, trao đổi và nâng cao tri thức trong lĩnh vực
công nghệ phần mềm. Chính xác hơn UML là ngôn ngữ mô hình hoá chuẩn để thiết kế
phần mềm hướng đối tượng, được dùng để đặc tả, trực quan hoá, xây dựng và làm tài
liệu cho các hệ thống phần mềm. UML là ngôn ngữ đồ hoạ với các tập quy tắc và ngữ
nghĩa. Các quy tắc và ngữ nghĩa của một mô hình được thể hiện bằng tiếng anh gọi là
Ngôn ngữ rang buộc đối tượng (OCL – Object Constraint Language). OCL là ngôn
ngữ đặc tả sử dụng logic đơn giản để đặc tả các đặc tính của hệ thống.
2.1.2 Mục đích của UML
- Mô hình hoá các hệ thống và sử dụng các khái niệm hướng đối tượng một cách
thống nhất.
- Cho phép đặc tả, hỗ trợ đặc tả tường minh mối quan hệ giữa các khái niệm
trong hệ thống, đồng thời mô tả được mọi trạng thái hoạt động (tĩnh và động) của hệ
thống.
- Hỗ trợ khả năng sử dụng lại và kế thừa ở phạm vi rộng để xây dựng những hệ
thống phức tạp và nhạy cảm như: hệ thống tự động, hệ thống thời gian thực.
- Tạo ra ngôn ngữ mô hình hoá sử dụng được cho cả người và máy tính.
2.1.3 Công dụng của UML
- UML là ngôn ngữ chuẩn để viết kế hoạch chi tiết phần mềm.
- Vạch ra cho hệ thống những chức năng chính của nó sử dụng các mô hình tình
huống sử dụng và các tác nhân.
- Minh hoạ các use case bằng các biểu đồ tương tác (interaction diagram)
SVTH: Nguyễn Thành Vũ
7
- Mô tả cấu trúc tĩnh của một hệ thống sử dụng các biểu đồ lớp (class diagram).
- Mô hình hoá trạng thái của đối tượng bằng các biểu đồ chuyển tiếp trạng thái.
- Minh hoạ cấu trúc thi hành vật lý bằng các biểu đồ thành phần và triển khai Mở
rộng chức năng bằng các mầu cung cấp sẵn (stereotype).
2.1.4 Các đặc trưng và khả năng của UML
UML là ngôn ngữ mô hình đồ hoạ:
Ngôn ngữ cung cấp bảng từ vựng và tập các quy tắc để kết hợp các từ trong bảng
từ vựng để giao tiếp. Ngôn ngữ mô hình là ngôn ngữ có từ vựng và quy tắc tập trung
vào các biểu diễn về mặt vật lý và khái niệm của hệ thống. UML là ngôn ngữ chuẩn
công nghiệp để lập kế hoạch chi tiết phần mềm.
Ngôn ngữ phải cho phép biểu diễn nhiều khung nhìn (views) khác nhau của kiến
trúc hệ thống trong suốt quá trình phát triển phần mềm. Từ vựng và quy tắc ngôn ngữ
UML cho ta cách thức xây dựng mô hình và đọc mô hình, nhưng không cho biết mô
hình nào cần phải được lập và khi nào lập chúng mà phải dựa vào quy trình phát triển
phần mềm. Các biểu diễn mô hình trong UML là các biểu diễn bằng đồ hoạ.
UML là ngôn ngữ đặc tả có cấu trúc:
Đặc tả là xây dựng mô hình chính xác, rõ rang, không nhập nhằng, hoàn thiện và
đầy đủ những điểm mấu chốt của vấn đề. UML hướng tới đặc tả thiết kế, phân tích và
quyết định cài đặt trong quá trình phát triển và triển khai hệ thống phần mềm.
UML là ngôn ngữ trực quan:
Bằng hệ thống các kí hiệu đồ hoạ và các biểu đồ với các chú giải đi kèm, UML
cho ta hình dung được hệ thống đang cần xây dựng từ nhiều góc độ khác nhau.
UML là ngôn ngữ làm tài liệu
UML hướng tới làm tài liệu kiến trúc hệ thống và các chi tiết của nó. UML cho
khả năng biểu diễn yêu cầu, thử nghiệm, mô hình hoá các hoạt động lập kế hoạch và
quản lý sản phẩm.
Thông qua UC biểu đồ trường hợp sử dụng, tác nhân để biết giới hạn và các
chức năng chính của hệ thống.
SVTH: Nguyễn Thành Vũ
8
Trong UML UC (User case) được miêu tả bằng biểu đồ logic. Sử dụng biểu đồ
UC, tác nhân (Actor) có thể chia dự án thành các dự án nhỏ có thể quản lý được. Nhìn
vào biểu đồ đó và các tài liệu mô tả, người phân tích có thể biết hệ thống có khả năng
làm gì.
Biểu diễn cấu trúc tĩnh của hệ thống bằng biểu đồ lớp. Sử dụng biểu đồ trình tự
và cộng tác để thấy được trình tự và logic toàn bộ hệ thống và các thông báo giữa các
đối tượng.
Mô hình hoá các hành vi đối tượng bằng biểu đồ chuyển trạng thái.
Phản ánh kiến trúc cài đặt vật lý bằng biểu đồ thành phần và biểu đồ triển khai.
Mở rộng chức năng bằng stereotypes.
2.1.5 Mô hình khái niệm của UML
Để hiểu, đọc được UML và tạo ra một số mô hình cơ bản ta phải hình dung được
mô hình khái niệm của ngôn ngữ. Muốn vậy đòi hỏi chúng ta phải nắm được ba vấn đề
chính bao gồm:
Các khối cơ bản để xây dựng mô hình
Các quy tắc liên kết
Các cơ chế chung được sử dụng cho ngôn ngữ
Các khối cơ bản xây dựng mô hình
Các khối để hình thành mô hình UML gồm ba loại:
- Phần tử
- Quan hệ (relationships)
- Biểu đồ (diagram)
Phần tử trong mô hình là căn bản, các quan hệ gắn các phần tử lại với nhau, còn
biểu đồ nhóm tập hợp các phần tử. Trong UML có 4 loại phần tử mô hình đó là cấu
trúc, hành vi, nhóm và chú thích.
SVTH: Nguyễn Thành Vũ
9
Phần tử cấu trúc
Phần tử cấu trúc là các danh từ trong mô hình UML, là bộ phận tĩnh của mô hình
để biểu diễn các thành phần khái niệm hay vật lý.
Lớp (Class)
Lớp là mô tả tập các đối tượng cùng chung thuộc tính, thao tác, quan hệ và ngữ
nghĩa. Một lớp cài đặt một hay nhiều mô hình ghép nối, biểu diễn bằng hình chữ nhật
có 3 phần tên, thuộc tính và thao tác.
Tên lớp
Thuộc tính
Thao tác
Open()
Close()
Hình 6: Lớp
Giao diện (Interface)
Giao diện là một tập hợp các thao tác đặc tả một dịch vụ của lớp hay thành phần.
Giao diện mô tả hành vi thấy được từ ngoài của thành phần. Biểu diễn toàn bộ hay một
phần hành vi của lớp và được gắn vào lớp hay thành phần thực hiện.
Hình 7: Giao diện
Cộng tác (Collaboration)
Sự cộng tác định nghĩa một tương tác và một bộ các nguyên tắc và các phần tử
khác làm việc cùng nhau để tạo ra một hành vi cộng tác lớn hơn tổng hành vi của các
phần tử.
Tên cộng tác
Hình 8: Cộng tác
SVTH: Nguyễn Thành Vũ
10
Ca sử dụng (Use case)
Ca sử dụng là tậo hợp các hành động mà hệ thống thực hiện để đạt được một kết
quả cho tác nhân cụ thể.
Tên
Use
case
Hình 9: Ca sử dụng
Lớp hoạt động (Active class)
Lớp tích cực là lớp có đối tượng làm chủ một hay nhiều tiến trình hay luồng. Đối
tượng của nó biểu diễn các thành phần có hành vi đang tương tranh với các thành phần
khác. Kí pháp đồ hoạ giống lớp thông thường nhưng biên hình chữ nhật tô đậm.
Hình 10: Lớp hoạt động
Thành phần (Component)
Thành phần biểu diễn vật lý mã nguồn, các tệp nhị phân trong quá trình phát triển
hệ thống.
Hình 11: Thành
phần
File.cpp
Nút (Node)
Là thể hiện thành phần vật lý, tồn tại khi chương trình chạy và biểu diễn các tài
nguyên tính toán. Có thể đặt tập các thành phần trên nút và chuyển từ nút này sang nút
khác.
Máy chủ
SVTH: Nguyễn Thành Vũ
11
Hình 12: Nút
Phần tử hành vi
Phần tử hành vi là bộ phận động của mô hình UML. Là các động từ của mô hình,
biểu diễn hành vi theo thời gian và không gian. Có 2 loại
Tương tác (Interaction)
Là hành vi bao gồm tập các thông điệp trao đổi giữa các đối tượng trong ngữ
cảnh cụ thể nhằm thực hiện mục đích cụ thể.
Hiển thị
Hình 13: Thông điệp
Máy trạng thái (State machine)
Máy trạng thái là hành vi chỉ ra trật tự các trạng thái mà đối tượng hay tương tác
sẽ đi qua để đáp ứng sự kiện. Hành vi của lớp hay cộng tác của lớp có thể được xác
định bằng máy trạng thái. Máy trạng thái kích hoạt nhiều phần tử, bao gồm trạng thái,
chuyển tiếp từ trạng thái này sang trạng thái khác, sự kiện và các hoạt động (đáp ứng
sự kiện).
Chờ
Hình 14: Máy trạng thái
Phần tử nhóm
Phần tử nhóm là bộ phận tổ chức của mô hình UML. Chỉ có một phần tử thuộc
nhóm này đó là gói (package). Gói là một cơ chế để tổ chức các phần tử vào các nhóm.
Các phần tử cấu trúc, phần tử hành vi thậm chí là cả phần tử nhóm khác nhau có thể
được đặt vào trong một gói. Chỉ tồn tại vào thời điểm phát triển hệ thống chứ không
tồn tại vào thời gian chạy chương trình.
Các đối tượng
GUI
SVTH: Nguyễn Thành Vũ
12
Hình 15: Gói
Chú thích (Annotational)
Phần tử chú thích là bộ phận chú giải của một mô hình UML. Là lời giải thích áp
dụng để mô tả các phần tử khác trong mô hình. Hay còn gọi là lời ghi chú.
Các quan hệ trong UML
Quan hệ phụ thuộc (dependency)
Phụ thuộc là quan hệ ngữ nghĩa giữa hai phần tử trong đó thay đổi phần tử độc
lập sẽ tác động đến ngữ nghĩa của phần tử phụ thuộc.
Quan hệ kết hợp (association)
Kết hợp là quan hệ cấu trúc để mô tả tập liên kết (một liên kết là kết nốigiữa các
đối tượng). Khi đối tượng của lớp này gửi / nhận thông điệp thì gọi chúng có quan hệ
kết hợp.
Khái quát hoá (generalization)
Khái quát hoá là quan hệ đặc biệt hoá / khái quát hoá mà trong đó đối tượng cụ
thể sẽ kế thừa các thuộc tính và phương pháp của đối tượng tổng quát hoá.
Hiện thực hoá (realization)
Hiện thực hoá là quan hệ ngữ nghĩa giữa giao diện và lớp (hay thành phần) hiện
thực lớp.
Kiểu dữ liệu
Kiểu dữ liệu không phải là phần tử mô hình trong UML. kiểu dữ liệu cơ sở là
kiểu dữ liệu không có cấu trúc.
Có các kiểu sau:
- Boolean: kiểu đếm với true/false
- Biểu thức (Expression): là xâu ký tự có cú pháp.
- Tính nhiều (Multiplicity): tập không rỗng của các số nguyên dương và ký tự *.
- Tên (Name): là xâu ký tự có khả năng đẩct phần tử.
SVTH: Nguyễn Thành Vũ
13
- Số nguyên (Integer): Là kiểu cơ bản và là phần tử của tập vô hạn các số nguyên
âm và dương.
- Xâu (String): là trật tự của các ký tự, được sử dụng làm tên.
- Thời gian (Time): xâu ký tự biểu diễn giá trị tuyệt đối hay khoảng tương đối.
- Không lý giải (Unintepreted): là cái gì đó mà ý nghĩa của nó phụ thuộc vào lĩnh
vực.
Biểu đồ trong UML
Biểu đồ là biểu diễn đồ hoạ tập các phần tử mô hình. Vẽ biểu đồ để biểu diễn hệ
thống đang xây dựng dưới các góc độ quan sát khác nhau. UML cho khả năng xây
dựng một vài kiểu biểu đồ trực quan để biểu diễn các khía cạnh khác nhau của hệ
thống, bao gồm:
Biểu đồ ca sử dụng (Use case diagram)
Chỉ ra tương tác giữa các UC và các tác nhân. UC biểu diễn các chức năng hệ
thống. Tác nhân là con ngườig hay hệ thống khác cung cấp hay thu nhận thông tin từ
hệ thống đang được xây dựng. Chỉ ra tác nhân nào khởi độngUC và khi nào tác nhân
nhận thông tin từ hệ thống.
Biểu đồ UC chỉ ra chức năng tổng thể của hệ thống đang phát triển.
Enter New Order
Accounting System
Salesperson
Modify Existing Order
Hình 16: Biểu đồ CA
Biểu đồ tương tác (Interaction diagram)
Biểu đồ tương tác bao gồm hai dạng là biểu đồ trình tự và cộng tác
Biểu đồ trình tự (sequence)
SVTH: Nguyễn Thành Vũ
14
Biểu đồ trình tự chỉ ra luồng chức năng xuyên qua các UC, nó là biểu đồ mô tả
tương tác giữa các đối tượng và tập trung vào mô tả trật tự các thông điệp theo thời
gian.
Biểu đồ trình tự là biểu đồ tương tác theo trật tự thời gian của các giao tiếp bằng
thông điệp giữa các đối tượng. Biểu đồ được đọc từ đỉnh xuống đáy. Mỗi UC có nhiều
luồng dữ liệu. Mỗi biểu đồ trình tự biểu diễn một luồng.
Biểu đồ cộng tác (Collaboration)
Biểu đồ cộng tác chỉ ra các thông tin như biểu đồ trình tự nhưng theo cách khác,
nó tập trung vào tổ chức cấu trúc các đối tượng gửi và nhận thông điệp. Biểu đồ cộng
tác và trình tự có thể biến đổi qua lại.Biểu đồ cộng tác đối tượng được đặt trong hình
chữ nhật, tác nhân là người hình cây như biểu đồ trình tự. Biểu đồ cộng tác không
quan tâm đến thời gian. Các đối tượng giao tiếp với nhau thể hiện bằng đường nối
Biểu đồ cộng tác chỉ ra luồng sự kiện xuyên qua kịch bản của UC. Biểu đồ này
cho khả năng dễ quan sát các đối tượng nhưng khó quan sát về trình tự thông tin.
5: Create new, blank order
7: Save the order
Order Detail
Order
Form
#1234
6: Set the order number, customer, order item
4: Save the order
2: Open form
3: Enter order number, customer, order items
1: Create new order
Order Options
Form
: Salesperson
Hình 17: Biểu đồ cộng tác
Biểu đồ lớp (Class diagram)
Biểu đồ lớp chỉ ra tương tác giữa các lớp trong hệ thống. Các lớp được xem như
kế hoạch chi tiết của các đối tượng. Đường nối giữa các phần tử biểu đồ lớp là quan hệ
giao tiếp giữa chúng. Phía trái của một số thuộc tính và thao tác có gắn biểu tượng
khoá, có nghĩa rằng đó là các thuộc tính và thao tác riêng.
Trong biểu đồ lớp có các loại lớp sau;
SVTH: Nguyễn Thành Vũ
15
- Lớp tham số: là lớp được sử dụng để tạo ra họ các lớp khác. Còn có tên là lớp
mẫu (template)
- Lớp hiện thực: là lớp tham số mà đối số của nó có giá trị.
- Lớp tiện ích: Là tập hợp các thao tác.
- Lớp tiện ích tham số: Là lớp tham số chứa tập các thao tác. Đó là mẫu để tạo
lập ra lớp tiện ích.
- Lớp tiện ích hiện thực: là lớp tiện ích tham số mà đối số của chúng có giá trị.
- Metaclass: là lớp mà hiện thực của nó là lớp chứ không phải đối tượng.
Ngoài ra trong biểu đồ lớp, Stereotype là cơ chế để phân nhóm lớp. Lớp biên
(boundary class), Lớp thực thể (Entity class), Lớp điều khiển (Control class).
Biểu đồ chuyển trạng thái (state transition diagram)
o Biểu đồ chuyển trạng thái mô tả vòng đời của đối tượng, từ khi nó được sinh
ra đến khi bị phá huỷ. Biểu đồ cung cấp cách thức mô hình hoá các trạng thái khác
nhau của đối tượng. Trong khi biểu đồ lớp cung cấp bức tranh tĩnh về các lớp và quan
hệ thì biểu đồ chuyển trạng thái được sử dụng để mô hình hoá các hành vi động của hệ
thống, chỉ ra hành vi động của đối tượng.
Thông thường không tạo lập biểu đồ chuyển trạng thái cho mọi lớp mà chỉ cho
các lớp phức tạp.
o Biểu đồ chuyển trạng thái bao gồm các thông tin về các trạng thái khác nhau
của đối tượng, thể hiện các đối tượng chuyển đổi từ trạng thái này sang trạng thái khác
thế nào.
o Biểu đồ trạng thái có điểm khởi đầu (hình tròn đen) và vài điểm kết thúc (hình
tròn đen có đường bao). Các hoạt động trong biểu đồ thì được đặt trong chữ nhật góc
tròn.
Biểu đồ hoạt động (Activity diagram)
Biểu đồ hoạt động là một dạng đặc biệt của biểu đồ trạng thái, nó chỉ ra một
luồng các hoạt động diễn ra từ hoạt động này đến hoạt động khác. Biểu đồ hoạt động
hướng đến khung nhìn của hệ thống.
SVTH: Nguyễn Thành Vũ
16