KHOA CÔNG NGHỆ THÔNG TIN
Tel. (84-511) 736 949, Fax. (84-511) 842 771
Website: itf.ud.edu.vn, E-mail:
NGÀNH CÔNG NGHỆ THÔNG TIN
!"#$$#
%!
&'()*
+,-./
012!"345"36
"345"74
89:;<=>?!$@A"@A4""B5$CA"@A4""B
/!(DEF
/E
G! "34
)! H/I
J"@A4""B
,K
Chúng tôi xin chân thành cảm ơn các thầy cô trong khoa Công
nghệ thông tin cũng như các thầy cô giảng dạy trong trường Đại học
Bách khoa Đà Nẵng đã truyền đạt những kiến thức quý báu cho chúng
tôi trong những năm học vừa qua.
Đặc biệt, chúng tôi xin chân thành cảm ơn thầy Đặng Thiên Bình,
khoa Công nghệ thông tin, trường Đại học Bách khoa đã tận tình
hướng dẫn, động viên và giúp đỡ chúng tôi trong suốt thời gian thực
hiện đề tài.
Và để có được kết quả như ngày hôm nay, chúng tôi rất biết ơn gia
đình đã động viên, khích lệ, tạo mọi điều kiện thuận lợi nhất trong suốt
quá trình học tập cũng như quá trình thực hiện đề tài tốt nghiệp này.
Xin chân thành cám ơn các bạn trong khoa Công nghệ thông tin –
khóa 04, đặc biệt là các bạn lớp 04T2 đã ủng hộ, giúp đỡ, chia sẻ kiến
thức, kinh nghiệm và tài liệu có được cho nhóm chúng tôi trong quá
trình nghiên cứu và thực hiện đề tài.
Một lần nữa xin chân thành cám ơn!
Đà Nẵng, Ngày 20 tháng 5 năm 2009
Sinh viên thực hiện
Nguyễn Công Chức
Lê Văn Thông
Chúng tôi xin cam đoan :
1 Những nội dung trong luận văn 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 Đặng Thiên Bình.
2 Mọi tham khảo dùng trong luận văn đều được trích dẫn rõ
ràng tên tác giả, tên công trình, thời gian và đị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á, tôi xin chịu hoàn toàn trách nhiệm.
Sinh viên
Nguyễn Công Chức
Lê Văn Thông
LL
MNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO$
O2PQ<RSTUV9POOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO$
OWQTXQSOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO$
OYZR8R8SP[RQ\]OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO4
KM-(^OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO3
O_>9O`abcdef=bgOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO3
OhSiRS7jZkl7jc:ebmOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOC
O8hRR8ndhSiRSSocVS2R8RSpVOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO$"
'q^^OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO$6
OSrRVXQSS?VS2R8OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO$6
OSPsVgsOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@4
&'()*KI^+,tOOOOOOOOOOOOOOOC4
O&r:uvR8QSYwR8VbiRSOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOC4
OsVx]<TyVTYzQOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOCC
^OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO6$
O{RS8P{gsVx]<OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO6$
OYZR8kS{VVbP|ROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO6$
}$~•R8€R\QOSrRVXQSVSPsVgsYZR8T2PVYzR8;•R8OS9
‚]pV;<RP{=)WQJ9ƒP4""4J46#VbOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO64
}4~8]:„RScRSiRSOSrRVXQS>9VSPsVgsS?VS2R8SYZR8T2PVYzR8O
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO64
}7~Sydn]ScR8O…VS]†Vj†kVbiRS\R8uWR8_OeVO†k4JV†k75
S9‚]pV;<Rc=ƒR8‡&0SƒPOJ4""4OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO64
}3~ =R: =bVSb]k cRu ScfR ˆPjuebd]VSJ fPVS Pjj :cR =‰
bcRudcVebO PQb=1=‰V O` a`ˆ 4O" kkjPQcVP=R
)e>ej=kdeRVa=]RuVP=RO];jP1Seu ;:PQb=1=‰V be11 5 )P>P1P=R =‰
PQb=1=‰V =bk=bcVP=R 5 RePQb=1=‰V ˆc:‡ eud=RuJˆc1SPR8V=R
B6"#45@7BBOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO64
}#~ cVVSef OV=eQgeb cRu 1Ve>e ŠOVePRJ fPVS =R: =bVSb]kO
PQb=1=‰VO`a`ˆ4O"ˆPRu=f15c1eujPeRV)e>ej=kdeRVO
];jP1Seu;:PQb=1=‰Vbe115)P>P1P=R=‰PQb=1=‰V=bk=bcVP=R5Re
PQb=1=‰Vˆc:‡eud=RuJˆc1SPR8V=RB6"#45@7BBOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO64
}@~Še11eP;ebV:Ob=8bcdPR8_O];jP1Seb!‹ePjj:JaPb1V`uPVP=RŠ]j:
4""$J!"5#B@5""$$C5CJ@6"VbOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO64
}C~bcR8fe;!fffOQ=uekb=ŒeQVOQ=dOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO64
}6~bcR8fe;!SVVk!AAu]bPcR8b=]kOf=bukbe11OQ=dOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO64
}B~bcR8fe;!SVVk!AAu=VOReVO>ROOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO64
}$"~bcR8fe;!SVVk!AAfffOQ=R8u=R8VPRS=QOQ=dOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO64
)LI•
I$!NŽO`a`ˆOOOOOOOOOOOOOOOOOOO#
I4!EI7GOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO6
I7!Nt•/OOOOOOOOOOOOOOOOOOOOOOOO$7
I3!K•``OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO$6
I#!K•‘OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO4$
I@!K•N*OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO44
IC!IOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO44
I6!K•‘/G)’OOOOOOOOOOOOOO4C
IB!K•‘“”)’OOOOOOOOOOOOO46
I$"!K•‘&•)’OOOOOOOOOOOOOOOOOOOOOOOOO4B
I$$!K•N*/G)’OOOOOOOOOOOOOOOOOOO7"
I$4!K•N*“”)’OOOOOOOOOOOOOOOOOO7"
I$7!K•N*&•)’OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO7$
I$3!K•G)’OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO7$
I$#!I+,-)’OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO74
I$@!I/G)’OOOOOOOOOOOOOOOOOOOOOOOOOOOOO77
I$C!I“”)’OOOOOOOOOOOOOOOOOOOOOOOOOOOO7#
I$6!E&&•)’OOOOOOOOOOOOOOOO7@
I$B!K•‘/G.OOOOOOOOOOOOOOOOOOOOO3$
I4"!K•‘“”.OOOOOOOOOOOOOOOOOOO34
I4$!K•‘&•.OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO37
I44!K•‘&•^.OOOOOOOOOOOOOOOOOOOOOOOO33
I47!K•N*/G.OOOOOOOOOOOOOOOOOOOOOOOOOOO3#
I43!K•N*“”.OOOOOOOOOOOOOOOOOOOOOOOOOO3#
I4#!K•N*&•.OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO3@
I4@!K•N*&•^.OOOOOOOOOOOOOOOOOOOOOOOOOOOOOO3@
I4C!K•G.OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO3C
I46!I+,-.`GOOOOOOOOOOOOOOOOOOO3C
I4B!I+,-.`/OOOOO36
I7"!I/G.OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO3B
I7$!I“”.OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO#$
I74!E&&•.OOOOOOOOOOOOOOOOOOOOOOOO#7
I77!E&&•^.OOOOOOOOOOOOOOO#7
I73!K•‘&`I^OOOOOOOOOOOOOOOOOOOOOOOO#3
I7#!K•N*&`I^OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO#3
I7@!I&`I^OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO##
I7C!K•‘”OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO#C
I76!K•N*”OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO#6
I7B!I”OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO#6
I3"!K•‘/OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@"
I3$!K•N*/OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@$
I34!^+,//OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@$
I37!I/.OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@4
I33!K•–OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@7
I3#!`OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@7
I3@!`)LOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@3
I3C!`'+(%OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@3
I36!`FOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@#
I3B!`/OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@#
I#"!`qOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@#
I#$!`t—OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@
I#4!t•+OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOC$
I#7!+,-)’OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOCC
I#3!&•)’OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOC6
I##!˜&^.OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOC6
I#@!/G.OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOC6
I#C!&•.OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOCB
I#6!”OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOCB
I#B!I^.OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO6"
I@"!I^™OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO6"
)L,–
,$!)OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO$B
,4!)'OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO4"
,7!,H,OOOOOOOOOOOOOOOOOOOOOOOOOO47
,3!,H,I+,-)’OOOOO74
,#!,H,I/G)’O 73
,@!,H,I“”)’ 7@
,C!,H,I+,-.OOOOOOOOOOOO3B
,6!,H,I/G.OOOOOOOOO#"
,B!,H,I“”.OOOOOOOO#4
,$"!,H,I&`I^OOOOOOOOOOO##
,$$!,)`FŽ•OOOOOOOOOOOOOOOO@7
,$4!,E,`OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@7
,$7!,E,`)LOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@3
,$3!,E,`'+(%OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@3
,$#!,E,`FOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@#
,$@!,E,`/OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@#
,$C!,E,`qOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@
,$6!,E,`t—OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@@
,$B!,)’OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@C
,4"!,.OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@6
,4$!,FLOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@6
,44!,OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@B
,47!,GOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@B
,43!,EOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@B
,4#!,•)’OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO@B
,4@!,+(%OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOC"
,4C!,+(%Ž•)’OOOOOOOOOOOOOOOOOOOOOOC"
,46!,/OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOC"
MN
O 2PQ<RSTUV9P
Với sự phát triển nhanh và mạnh mẽ của công nghệ thông tin của nước ta hiện
nay, việc ứng dụng tin học vào đời sống, công việc và học tập đã trở nên rất phổ
biến và cần thiết. Tin học đã làm thay đổi phương pháp làm việc một cách mạnh
mẽ và mang lại kết quả công việc tốt hơn. Trong đó việc ứng dụng tin học vào
việc giảng dạy và quản lý ở các trường đại học là hết sức quan trọng và cần thiết.
Qua nghiên cứu và tìm hiểu ở các trường đại học trên địa bàn Đà Nẵng nói
chung và trường đại học Bách Khoa nói riêng, chúng em nhận thấy rằng việc
quản lý và sắp xếp lịch thi ở các trường còn mang tính thủ công, điều này làm
cho việc sắp xếp lịch thi phải mất rất nhiều thời gian và thường xuyên xảy ra tình
trạng trùng phòng, trùng giờ thi ở các lớp thi. Chính vì vậy chúng em đã quyết
định xây dựng phần mềm quản lý và sắp xếp lịch thi ở trường đại học Bách Khoa
để làm đề tài tốt nghiệp của mình.
Bài toán đặt ra lúc này là Xây dựng một hệ thống quản lý và sắp xếp lịch thi
để đảm bảo việc quản lý và phân lịch thi một cách trực quan, thuận tiện và chính
xác. Cụ thể là hệ thống phải có các chức năng sau:
− Quản lý giáo viên.
− Quản lý lịch thi và sắp xếp lịch thi một cách trực quan, thuận tiện và
chính xác.
− Gửi mail thông báo lịch thi cho các giáo viên bộ môn.
O WQTXQS
Trong bối cảnh trên, bằng những kiến thức đã học và sự hướng dẫn tận tình
của giáo viên, chúng em thực hiện đề tài này nhằm mục đích nghiên cứu vấn đề
đang gặp phải trong việc phân lịch thi còn chưa chính xác và mất nhiều thời gian,
từ đó đưa ra giải pháp khắc phục và cuối cùng là cụ thể hóa bằng việc Xây dựng
hệ thống quản lý và sắp xếp lịch thi.
Nguyễn Công Chức – Lê Văn Thông – Lớp 04T2
O YZR8R8SP[RQ\]
OO$O hR8QW‚r:uvR8TUV9P
Sử dụng Visual studio 2005 (C#), bộ công cụ Janus WinForms Controls Suite
v3.5 for .NET, cơ sở dữ liệu Microsoft SQL Server 2000, Microsoft Visio 2003.
OO4O )vgPsRgsVx]<TyVTYzQ
Với những công cụ và kiến thức thu nhập được, chúng em xây dựng hệ thống
Quản lý lịch thi sinh viên với các chức năng dự kiến:
Quản lý giáo viên
Quản lý các thông tin của giáo viên gồm: Tên, ngày sinh, giới tính, email,
điện thoại, địa chỉ, thuộc khoa…
Với chức năng: Thêm mới, chỉnh sửa và xóa giáo viên.
Quản lý lịch thi và sắp xếp lịch thi
Quản lý lịch thi theo từng lớp, từng khoa, từng đợt thi, học kỳ và năm học.
Phân lịch thi theo từng đợt thi một cách trực quan, thuận tiện và chính xác.
Với chức năng: Thêm mới, chỉnh sửa, xóa và tìm kiếm Lịch thi.
Gửi mail thông báo lịch thi cho các giáo viên bộ môn
Báo cáo, thống kê: Các loại thống kê: Thống kê giáo viên, thống kê lịch thi
theo lớp, theo khóa, theo khoa và theo giáo viên bộ môn.
Với kết quả dự kiến đạt được của chương trình, luận văn được tổ chức thành
các chương cụ thể như sau:
šT›]! Giới thiệu tổng quan đề tài.
SYwR8$!w1šjœVS]:sV! Giới thiệu tổng quan lý thuyết và công cụ xây
dựng đề tài .
Nguyễn Công Chức – Lê Văn Thông – Lớp 04T2
Xây dựng hệ thống quản lý lịch thi sinh viên
SYwR84!SrRVXQS>9VSPsVgsS?VS2R8! Trong chương này, chúng em
trình bày phần phân tích hệ thống và thiết kế cơ sở dữ liệu.
SYwR87!&r:uvR8QSYwR8VbiRS>9gsVx]<TyVTYzQ! Trình bày phần
phát triển chương trình, hướng dẫn cài đặt và các kết quả đạt được.
sVj]†R! Đánh giá kết quả và hướng phát triển.
Nguyễn Công Chức – Lê Văn Thông – Lớp 04T2
K$
KM-(^
O _>9O`abcdef=bg
OO$O P1]cjV]uP=O`
Visual Studio.NET cung cấp một môi trường phát triển mức cao để xây dựng
các ứng dụng trên .NET Framework. Với bộ Visual Studio.NET chúng ta có thể
đơn giản hoá việc tạo, triển khai và tiếp tục phát triển các ứng dụng Web và các
dịch vụ Web có sẵn một cách an toàn, bảo mật và khả nǎng biến đổi được. Visual
Studio.NET là một bộ đa ngôn ngữ các công cụ lập trình. Ngoài C#, Visual
Studio.NET còn hỗ trợ Visual Basic, Visual C++, Visual J#.NET và các ngôn
ngữ script như VBScript và JScript. Tất cả các ngôn ngữ này đều cho phép truy
cập vào .NET Framework.
Visual C# .NET: là một ngôn ngữ lập trình đơn giản, hiện đại, hướng đối
tượng an toàn kiểu (type-safe) và có nguồn gốc từ các ngôn ngữ C và C++.
C# là một ngôn ngữ rất thân thiện với người lập trình C và C++. C# là kết quả
của việc kết hợp hiệu nǎng cao của Visual Basic và sức mạnh của C++. C#
được Microsoft giới thiệu để xây dựng với Web và đòi hỏi quyền được cung
cấp một môi trường đồng bộ với HTML[3], XML[1] và SOAP[4]. Tóm lại C#
là một ngôn ngữ lập trình hiện đại và là một môi trường phát triển đầy tiềm
nǎng để tạo ra các dịch vụ Web XML, các ứng dụng dựa trên Microsoft .NET
và cho cả nền tảng Microsoft Windows cũng như tạo ra các ứng dụng Internet
thế hệ kế tiếp một cách nhanh chóng và hiệu quả.
Visual Basic .NET (VB.NET): cho phép bạn tạo ra những ứng dụng đầy sức
mạnh cho nền tảng Microsoft Windows với thời gian ngắn nhất, kết hợp chặt
chẽ việc truy cập dữ liệu từ một phạm vi rộng của các kịch bản dữ liệu, tạo ra
những thành phần với mã nhỏ nhất và xây dựng các ứng dụng trên cơ sở Web
khi sử dụng những kỹ nǎng hiện tại
Visual C++ .NET: là phiên bản kế tiếp của Microsoft Visual C++ 6.0.
Microsoft Visual C++ là công cụ C++ hiệu quả nhất để tạo ra những ứng
Nguyễn Công Chức – Lê Văn Thông – Lớp 04T2
Xây dựng hệ thống quản lý lịch thi sinh viên
dụng hiệu nǎng cao cho Windows và cho World Wide Web. Visual C++
.NET mang đến một cấp độ mới về hiệu nǎng so với Visual C++ mà không
làm ảnh hưởng đến tính mềm dẻo, hiệu suất thực hiện cũng như điều khiển.
Visual J# .NET: là một công cụ phát triển cho các nhà phát triển ngôn ngữ
Java để xây dựng các ứng dụng và các dịch vụ trên nền Microsoft .NET
Framework. Visual J# .NET cho phép những người phát triển ngôn ngữ Java
có thể chuyển tiếp vào thế giới của các dịch vụ Web XML và cải thiện đáng
kể khả nǎng vận hành của các chương trình viết bằng ngôn ngữ Java với
những phần mềm hiện tại được viết bằng nhiều ngôn ngữ lập trình khác nhau.
JScript .NET: là bộ thực hiện của Microsoft cho JavaScript. Jscript.NET
thêm rất nhiều đặc tính mới vào Jscript, bao gồm cả việc hỗ trợ trực tiếp các
kỹ thuật lập trình hướng đối tượng.
OO4O O`abcdef=bg
.NET Framework là một tập những giao diện lập trình và là tâm điểm của nền
tảng .NET. Nó cung cấp cơ sở hạ tầng để xây dựng và chạy các dịch vụ Web.
.NET Framework bao gồm ba thành phần chính là Common Language Runtime,
Unified Progrgamming Classes và ASP. Thực chất ở phần này còn bao gồm cả
phần phát triển các ứng dụng cho Windows có tên Windows Form như được mô
tả trong hình dưới:
iRS$!{QVS9RSkS›RQ•cO`abcdef=bg
Nguyễn Công Chức – Lê Văn Thông – Lớp 04T2
Xây dựng hệ thống quản lý lịch thi sinh viên
Thực thi ngôn ngữ chung CLR (Common Language Runtime): Tất cả các
ngôn ngữ lập trình đều có một runtime (thi hành), một dịch vụ hoạt động
cùng với ngôn ngữ lập trình. CLR là một thành phần cốt lõi của .NET. Nó
cung cấp nền cơ sở mà trên đó các ứng dụng cho. NET được xây dựng. CLR
quản lí nhiều khía cạnh của chu trình phát triển theo quan điểm của người
phát triển. CLR cung cấp một runtime chung mà nó được sử dụng với tất cả
các ngôn ngữ. Thành phần này làm cho .NET có một khả nǎng "hỗ trợ mọi
ngôn ngữ" (language-free).
Các lớp lập trình hợp nhất (Unified Progrgamming Classes): Những thư
viện lớp lập trình hay các giao diện lập trình ứng dụng (API) được sử dụng
bởi nhiều ngôn ngữ khác nhau. Để sử dụng những ngôn ngữ lập trình khác
nhau, các nhà phát triển nghiên cứu các bộ thư viện lớp khác nhau để làm
việc với các ngôn ngữ lập trình khác nhau. Vấn đề này đã làm chậm quá
trình phát triển ứng dụng và làm cho công việc phát triển trở nên tẻ ngắt và
lãng phí khá nhiều thời gian. .NET cung cấp các lớp lập trình hợp nhất với
một bộ API dùng chung cho mọi ngôn ngữ lập trình. Các ngôn ngữ có thể
tương tác với một ngôn ngữ khác và các lớp lập trình hợp nhất này cho phép
các nhà phát triển lựa chọn bất cứ ngôn ngữ nào mà họ muốn trong khi chỉ
cần duy nhất một bộ API.
ASP.NET (Active Server Pages .NET): ASP.NET được sử dụng chung với
các lớp lập trình mà nó có thể tạo các ứng dụng Web một cách dễ dàng cho
người lập trình. ASP.NET cung cấp cách truy cập giao diện HTML chung và
nó chạy trên chương trình máy phục vụ nhưng thể hiện kết quả thông qua
HTML. Giao diện ASP.NET làm cho việc phát triển các ứng dụng Web trở
nên nhanh hơn do bởi các đối tượng điều khiển chung này. ASP.NET được
sử dụng ở phần trên của hai thành phần thực thi ngôn ngữ chung CLR và các
ngôn ngữ lập trình hợp nhất để tạo ra các dịch vụ Web.
OO7O 8hRR8n_
C# là một ngôn ngữ lập trình mới, và được biết đến với hai lời chào:
Nguyễn Công Chức – Lê Văn Thông – Lớp 04T2
Xây dựng hệ thống quản lý lịch thi sinh viên
Nó được thiết kế riêng để dùng cho Microsoft's .NET Framework (Một
nền khá mạnh cho sự phát triển, triển khai, hiện thực và phân phối các ứng
dụng).
Nó là một ngôn ngữ hoàn toàn hướng đối tượng được thiết kế dựa trên
kinh nghiệm của các ngôn ngữ hướng đối tượng khác.
C# là một ngôn ngữ độc lập. Nó được thiết kế để có thể sinh ra mã đích trong
môi trường .NET, nó không phải là một phần của .NET bởi vậy có một vài đặc
trưng được hỗ trợ bởi .NET nhưng C# không hỗ trợ.
C# là một ngôn ngữ rất đơn giản, với khoảng 80 từ khoá và hơn mười kiểu dữ
liệu dựng sẵn, nhưng C# có tính diễn đạt cao. C# hổ trợ lập trình có cấu trúc,
hướng đối tượng, hướng thành phần (component oriented).
Trọng tâm của ngôn ngữ hướng đối tượng là lớp. Lớp định nghĩa kiểu dữ liệu
mới, cho phép mở rộng ngôn ngữ theo hướng cần giải quyết. C# có những từ
khoá dành cho việc khai báo lớp, phương thức, thuộc tính mới. C# hổ trợ đầy đủ
khái niệm trụ cột trong lập trình hướng đối tượng: đóng gói, thừa kế, đa hình.
Ðịnh nghĩa lớp trong C# không đòi hỏi tách rời tập tin tiêu đề với tập tin cài
đặt như C++. C# hổ trợ khái niệm giao diện, một lớp chỉ có thể kế thừa duy nhất
một lớp cha nhưng có thể cài đặt nhiều giao diện.
O hSiRS7jZkl7jc:ebm
Trong phát triển ứng dụng, để dễ quản lý các thành phần của hệ thống, cũng
như không bị ảnh hưởng bởi các thay đổi, người ta hay nhóm các thành phần có
cùng chức năng lại với nhau và phân chia trách nhiệm cho từng nhóm để công
việc không bị chồng chéo và ảnh hưởng lẫn nhau. Ví dụ trong một công ty bạn có
từng phòng ban, mỗi phòng ban sẽ chịu trách nhiệm một công việc cụ thể nào đó,
phòng này không được can thiệp vào công việc nội bộ của phòng kia như Phòng
tài chính thì chỉ phát lương, còn chuyện lấy tiền đâu để phát thì không cần biết.
Trong phát triển phần mềm, người ta cũng áp dụng cách phân chia chức năng
này. Thuật ngữ kiến trúc đa tầng/nhiều lớp, mỗi lớp sẽ thực hiện một chức năng
nào đó, trong đó mô hình 3 lớp là phổ biến nhất. 3 lớp này Presentation, Business
Logic và Data Access. Các lớp này sẽ giao tiếp với nhau thông qua các dịch vụ
Nguyễn Công Chức – Lê Văn Thông – Lớp 04T2
Xây dựng hệ thống quản lý lịch thi sinh viên
mà mỗi lớp cung cấp để tạo nên ứng dụng, lớp này cũng không cần biết bên trong
lớp kia làm gì mà chỉ cần biết lớp kia cung cấp dịch vụ gì cho mình và sử dụng
nó mà thôi.
Mô hình 3 lớp mà Microsoft đề nghị dùng cho các hệ thống phát triển trên
nền .NET như sau:
iRS4!hSiRS7jZk
OO$O be1eRVcVP=Rc:eb
Lớp này làm nhiệm vụ giao tiếp với người dùng cuối để thu thập dữ liệu và
hiển thị kết quả /dữ liệu thông qua các thành phần trong giao diện người sử dụng.
Lớp này sẽ sử dụng các dịch vụ do lớp Business Logic cung cấp. Trong .NET thì
bạn có thể dùng Windows Forms, ASP.NET hay Mobile Forms để hiện thực lớp
này. Trong lớp này có 2 thành phần chính là User Interface Components và User
Interface Process Components.
UI Components: là những phần tử chịu trách nhiệm thu thập và hiển thị
thông tin cho người dùng cuối. Trong .NET thì những thành phần này có
thể là các TextBox, các Button, DataGrid
UI Process Components: là thành phần chịu trách nhiệm quản lý các qui
trình chuyển đổi giữa các UI Components.
Nguyễn Công Chức – Lê Văn Thông – Lớp 04T2
Xây dựng hệ thống quản lý lịch thi sinh viên
OO4O ]1PRe11=8PQc:eb
Lớp này thực hiện các nghiệp vụ chính của hệ thống, sử dụng các dịch vụ do
lớp Data Access cung cấp, và cung cấp các dịch vụ cho lớp Presentation. Lớp
này cũng có thể sử dụng các dịch vụ của các nhà cung cấp thứ 3 để thực hiện
công việc của mình. Trong lớp này có các thành phần chính là Business
Components, Business Entities và Service Interface.
Service Interface: là giao diện lập trình mà lớp này cung cấp cho lớp
Presentation sử dụng. Lớp Presentation chỉ cần biết các dịch vụ thông qua
giao diện này mà không cần phải quan tâm đến bên trong lớp này được
hiện thực như thế nào.
Business Entities: là những thực thể mô tả những đối tượng thông tin mà
hệ thống xử lý. Trong ứng dụng chúng ta các đối tượng này là các chuyên
mục (Category) và bản tin (News). Các business entities này cũng được
dùng để trao đổi thông tin giữa lớp Presentation và lớp Data Access.
Business Components: là những thành phần chính thực hiện các dịch vụ
mà Service Interface cung cấp, chịu trách nhiệm kiểm tra các ràng buộc
logic (constraints), các qui tắc nghiệp vụ (business rules), sử dụng các dịch
vụ bên ngoài khác để thực hiện các yêu cầu của ứng dụng.
OO7O )cVcQQe11c:eb
Lớp này thực hiện các nghiệp vụ liên quan đến lưu trữ và truy xuất dữ liệu
của ứng dụng. Thường lớp này sẽ sử dụng các dịch vụ của các hệ quản trị cơ sở
dữ liệu như SQL Server, Oracle để thực hiện nhiệm vụ của mình. Trong lớp
này có các thành phần chính là Data Access Logic, Data Sources, Servive Agents.
Data Access Logic components (DALC): là thành phần chính chịu trách
nhiệm lưu trữ vào và truy xuất dữ liệu từ các nguồn dữ liệu - Data Sources
như XML, File systems Trong .NET các DALC này thường được hiện
thực bằng cách sử dụng thư viện ADO.NET để giao tiếp với các hệ cơ sở
dữ liệu.
Service Agents: là những thành phần trợ giúp việc truy xuất các dịch vụ
bên ngòai một cách dễ dàng và đơn giản như truy xuất các dịch vụ nội tại.
Nguyễn Công Chức – Lê Văn Thông – Lớp 04T2
Xây dựng hệ thống quản lý lịch thi sinh viên
O 8hRR8ndhSiRSSocVS2R8RSpV
OO$O PZPVSP?]
.III.1.1. Vì sao phải xây dựng mô hình cho hệ thống
Mô hình hóa là cách xem xét một bài toán thông qua việc sử dụng các mô
hình. Mô hình dùng để hiểu rõ bài toán, trao đổi thông tin giữa những người liên
quan như khách hàng, chuyên gia, người phân tích, người thiết kế Mô hình giúp
cho việc xác định các yêu cầu tốt hơn, thiết kế rõ ràng hơn và khả năng bảo trì hệ
thống cao hơn.
Mô hình là sự trừu tượng hóa, mô tả mặt bản chất của một vấn đề hoặc một
cấu trúc phức tạp bằng cách loại bỏ những chi tiết không quan trọng, khiến cho
bài toán trở nên dễ hiểu và dễ nắm bắt hơn. Trừu tượng hóa là một khả năng cơ
bản của con người trong việc giải quyết các vấn đề phức tạp. Các kỹ sư, kiến trúc
sư, các nghệ sĩ đã từng xây dựng những mô hình từ hàng nghìn năm nay để thử
các thiết kế của họ trước khi thực hiện chúng. Việc phát triển các hệ thống phần
mềm cũng không ngoại lệ. Để xây dựng một hệ thống phức tạp, những người
phát triển phải trừu tượng hóa những khía cạnh (View) khác nhau của hệ thống,
xây dựng các mô hình bằng cách sử dụng các kí hiệu một cách rõ ràng, cẩn thận,
kiểm tra xem các mô hình đã thoả mãn các yêu cầu của hệ thống chưa và dần
dần thêm vào các chi tiết để có thể chuyển đổi từ mô hình sang một cài đặt cụ
thể.
Chúng ta xây dựng mô hình của những hệ thống phức tạp bởi vì chúng ta
không thể lĩnh hội một lúc toàn bộ hệ thống đó. Ví dụ như khi xây một nhà kho
chúng ta có thể bắt tay vào xây ngay, khi xây một ngôi nhà chúng ta có thể cần
bản thiết kế của ngôi nhà đó. Khi cần xây môt tòa nhà cao tầng, chúng ta chắc
chắn cần bản thiết kế của toà nhà đó. Điều này cũng đúng trong lĩnh vực phần
mềm. Hệ thống càng phức tạp thì việc xây dựng mô hình càng quan trọng. Xây
dựng mô hình cho phép người thiết kế thấy được bức tranh tổng quan của hệ
thống, thấy được các thành phần của hệ thống tương tác với nhau như thế nào
hơn là việc sa lầy vào chi tiết bên trong của các thành phần đó.
Nguyễn Công Chức – Lê Văn Thông – Lớp 04T2 10
Xây dựng hệ thống quản lý lịch thi sinh viên
Trong thế giới luôn biến động của các ứng dụng hướng đối tượng thì việc phát
triển và bảo trì các ứng dụng có chất lượng cao trong một khoảng thời gian hợp
lý ngày càng trở nên khó khăn hơn. Một tổ chức phát triển phần mềm thành công
là tổ chức xây dựng được các phần mềm có chất lượng, thoả mãn được mọi yêu
cầu của khách hàng.
Mô hình hóa là phần trung tâm trong các công việc, các hoạt động để dẫn tới
một phần mềm tốt. Chúng ta xây dựng mô hình để trao đổi, bàn bạc về cấu trúc
và ứng xử (behavior) mong muốn của hệ thống. Chúng ta xây dựng mô hình để
trực quan hóa và kiểm soát kiến trúc của hệ thống. Mô hình có thể mô tả các cấu
trúc, nhấn mạnh về mặt tổ chức của hệ thống hoặc nó có thể mô tả các hành vi,
tập trung vào mặt động của hệ thống. Chúng ta xây dựng mô hình để hiểu rõ hơn
về hệ thống mà chúng ta đang xây dựng, tạo ra cơ hội để có thể đơn giản hóa và
tái sử dụng. Chúng ta xây dựng mô hình để kiểm soát rủi ro.
Việc lập mô hình không chỉ dành cho các hệ thống lớn. Khi xây dựng mô
hình chúng ta sẽ đạt được 4 mục đích sau:
Mô hình giúp chúng ta trực quan hóa hệ thống như là nó vốn có hay
theo cách mà chúng ta muốn nó sẽ như vậy.
Mô hình cho phép chúng ta chỉ rõ cấu trúc và ứng xử của hệ thống
Mô hình cho chúng ta một khuôn mẫu để hướng dẫn chúng ta trong
quá trình xây dựng hệ thống.
Mô hình đưa ra các dẫn chứng bằng tài liệu về các quyết định mà
chúng ta đã đưa ra trong quá trình thiết kế hệ thống.
Thông qua việc mô hình hóa, chúng ta thu hẹp bài toán mà chúng ta đang
nghiên cứu bằng cách chỉ tập trung vào một khía cạnh tại một thời điểm.Mô hình
hóa là việc đơn giản hóa thực tế, loại bỏ những điểm thứ yếu, tuy nhiên ta phải
chắc chắn rằng không bỏ sót một chi tiết quan trọng nào.
.III.1.2. Lịch sử phát triển của UML
Những năm đầu của thập kỷ 90 có rất nhiều phương pháp phân tích, thiết kế
hệ thống hướng đối tượng và cùng với chúng là các ký hiệu riêng cho từng
Nguyễn Công Chức – Lê Văn Thông – Lớp 04T2 11
Xây dựng hệ thống quản lý lịch thi sinh viên
phương pháp. Số lượng các phương pháp trong khoảng từ 10 đã lên đến gần 50
trong những năm từ 1989 đến 1994. Ba phương pháp phổ biến nhất là OMT
(Object Modeling Technique) [James Rumbaugh], Booch91 [Grady Booch] và
OOSE (Object-Oriented Software Enginering) [Ivar Jacobson]. Mỗi phương pháp
đều có những điểm mạnh và yếu. Như OMT mạnh trong phân tích và yếu ở khâu
thiết kế, Booch91 thì mạnh ở thiết kế và yếu ở phân tích. OOSE mạnh ở phân
tích các ứng xử, đáp ứng của hệ thống mà yếu trong các khâu khác.
Do các phương pháp chưa hoàn thiện nên người dùng rất phân vân trong việc
chọn ra một phương pháp phù hợp nhất để giải quyết bài toán của họ. Hơn nữa,
việc các ký hiệu khác nhau của các phương pháp đã gây ra những sự mập mờ,
nhầm lẫn khi mà một ký hiệu có thể mang những ý nghĩa khác nhau trong mỗi
phương pháp. Thời kỳ này còn được biết đến với tên gọi là cuộc chiến giữa các
phương pháp. Khoảng đầu năm 94, Booch đã cải tiến phương pháp của mình
trong đó có ứng dụng những ưu điểm của các phương pháp của Rumbaugh và
Jacobson. Tương tự Rumbaugh cũng cho đăng một loạt các bài báo được biết đến
với tên gọi phương pháp OMT-2 cũng sử dụng nhiều ưu điểm của phương pháp
của Booch. Các phương pháp đã bắt đầu hợp nhất, nhưng các kí hiệu sử dụng ở
các phương pháp vẫn còn nhiều điểm khác biệt.
Cuộc chiến này chỉ kết thúc khi có sự ra đời của UML - một ngôn ngữ mô
hình hóa hợp nhất. Tại sao lại là hợp nhất? Đó là do có sự hợp nhất các cách kí
hiệu của Booch, OMT và Objectory cũng như các ý tưởng tốt nhất của một số
phương pháp khác như hình vẽ sau:
Nguyễn Công Chức – Lê Văn Thông – Lớp 04T2 12
Xây dựng hệ thống quản lý lịch thi sinh viên
iRS7!{QVS9RSkS›RSzkRSpVR[R
Bằng cách hợp nhất các kí hiệu sử dụng trong khi phân tích, thiết kế của các
phương pháp đó, UML cung cấp một nền tảng chuẩn trong việc phân tích thiết
kế. Có nghĩa là các nhà phát triển vẫn có thể tiến hành theo phương pháp mà họ
đang sử dụng hoặc là có thể tiến hành theo một phương pháp tổng hợp hơn.
Nhưng điều quan trọng là các ký hiệu giờ đây đã thống nhất và mỗi ký hiệu
chuẩn của tổ chức OMG (Object Management Group) vào tháng 7-1997.
.III.1.3. UML – Unifield Modeling Language
UML là một ngôn ngữ dùng để:
Trực quan hóa
Cụ thể hóa
Sinh mã ở dạng nguyên mẫu
Lập và cung cấp tài liệu
UML là một ngôn ngữ bao gồm một bảng từ vựng và các quy tắc để kết hợp
các từ vựng đó phục vụ cho mục đích giao tiếp. Một ngôn ngữ dùng cho việc lập
mô hình là ngôn ngữ mà bảng từ vựng (các ký hiệu) và các quy tắc của nó tập
trung vào việc thể hiện về mặt khái niệm cũng như vật lý của một hệ thống.
Nguyễn Công Chức – Lê Văn Thông – Lớp 04T2 13
uejj
Sjceb5ejj=b
;ŒeQVjP‰eQ:Qje1
`d;j:
PR8jeV=RQjc11
ŠcQ=;1=R
cbej
VcVeQScbV1
]d;c]8S
a]1P=RkebcVP=R
ue1QbPkVP=RJde11c8e
R]d;ebPR8
==QS
e:ebbe5cRu
=1VQ=RuPVP=R1
cbej
VcVeQScbV1
bcddc
abcdef=bg1J
kcVVebR1JR=Ve1
Xây dựng hệ thống quản lý lịch thi sinh viên
Mô hình hóa mang lại sự hiểu biết về một hệ thống. Một mô hình không thể
giúp chúng ta hiểu rõ một hệ thống, thường là phải xây dựng một số mô hình xét
từ những góc độ khác nhau. Các mô hình này có quan hệ với nhau. UML sẽ cho
ta biết cách tạo ra và đọc hiểu được một mô hình đươc cấu trúc tốt, nhưng nó
không cho ta biết những mô hình nào nên tạo ra và khi nào tạo ra chúng. Đó là
nhiệm vụ của quy trình phát triển phần mềm.
OO4O >9Q{Q8PcPT=yRQ•cQS]VbiRSkS{VVbP|RkS›R
dUd
.III.2.1. Giai đoạn nghiên cứu sơ bộ
UML đưa ra khái niệm Use Case để nắm bắt các yêu cầu của khách hàng
(người sử dụng). UML sử dụng biểu đồ Use case (Use Case Diagram) để nêu bật
mối quan hệ cũng như sự giao tiếp với hệ thống.
Qua phương pháp mô hình hóa Use case, các tác nhân (Actor) bên ngoài quan
tâm đến hệ thống sẽ được mô hình hóa song song với chức năng mà họ đòi hỏi từ
phía hệ thống (tức là Use case). Các tác nhân và các Use case được mô hình hóa
cùng các mối quan hệ và được miêu tả trong biểu đồ Use case của UML. Mỗi
một Use case được mô tả trong tài liệu, và nó sẽ đặc tả các yêu cầu của khách
hàng: Anh ta hay chị ta chờ đợi điều gì ở phía hệ thống mà không hề để ý đến
việc chức năng này sẽ được thực thi ra sao.
.III.2.2. Giai đoạn phân tích
Giai đoạn phân tích quan tâm đến quá trình trừu tượng hóa đầu tiên (các lớp
và các đối tượng) cũng như cơ chế hiện hữu trong phạm vi vấn đề. Sau khi nhà
phân tích đã nhận biết được các lớp thành phần của mô hình cũng như mối quan
hệ giữa chúng với nhau, các lớp cùng các mối quan hệ đó sẽ được miêu tả bằng
công cụ biểu đồ lớp (class diagram) của UML. Sự cộng tác giữa các lớp nhằm
thực hiện các Use case cũng sẽ được miêu tả nhờ vào các mô hình động
(dynamic models) của UML. Trong giai đoạn phân tích, chỉ duy nhất các lớp có
tồn tại trong phạm vi vấn đề (các khái niệm đời thực) là được mô hình hóa. Các
lớp kỹ thuật định nghĩa chi tiết cũng như giải pháp trong hệ thống phần mềm, ví
Nguyễn Công Chức – Lê Văn Thông – Lớp 04T2 14
Xây dựng hệ thống quản lý lịch thi sinh viên
dụ như các lớp cho giao diện người dùng, cho ngân hàng dữ liệu, cho sự giao
tiếp, trùng hợp, v.v , chưa phải là mối quan tâm của giai đoạn này.
.III.2.3. Giai đoạn thiết kế
Trong giai đoạn này, kết quả của giai đoạn phân tích sẽ được mở rộng thành
một giải pháp kỹ thuật. Các lớp mới sẽ được bổ sung để tạo thành một hạ tầng cơ
sở kỹ thuật: Giao diện người dùng, các chức năng để lưu trữ các đối tượng trong
ngân hàng dữ liệu, giao tiếp với các hệ thống khác, giao diện với các thiết bị
ngoại vi và các máy móc khác trong hệ thống, Các lớp thuộc phạm vi vấn đề
có từ giai đoạn phân tích sẽ được "nhúng" vào hạ tầng cơ sở kỹ thuật này, tạo ra
khả năng thay đổi trong cả hai phương diện: Phạm vi vấn đề và hạ tầng cơ sở.
Giai đoạn thiết kế sẽ đưa ra kết quả là bản đặc tả chi tiết cho giai đoạn xây dựng
hệ thống.
.III.2.4. Giai đoạn xây dựng
Trong giai đoạn xây dựng (giai đoạn lập trình), các lớp của giai đoạn thiết kế
sẽ được biến thành những dòng code cụ thể trong một ngôn ngữ lập trình hướng
đối tượng cụ thể (không nên dùng một ngôn ngữ lập trình hướng chức năng!).
Phụ thuộc vào khả năng của ngôn ngữ được sử dụng, đây có thể là một công việc
khó khăn hay dễ dàng. Khi tạo ra các mô hình phân tích và thiết kế trong UML,
tốt nhất nên cố gắng né tránh việc ngay lập tức biến đổi các mô hình này thành
các dòng code. Trong những giai đoạn trước, mô hình được sử dụng để dễ hiểu,
dễ giao tiếp và tạo nên cấu trúc của hệ thống; vì vậy, vội vàng đưa ra những kết
luận về việc viết code có thể sẽ thành một trở ngại cho việc tạo ra các mô hình
chính xác và đơn giản. Giai đoạn xây dựng là một giai đoạn riêng biệt, nơi các
mô hình được chuyển thành code.
.III.2.5. Thử nghiệm
Một hệ thống phần mềm thường được thử nghiệm qua nhiều giai đoạn và với
nhiều nhóm thử nghiệm khác nhau. Các nhóm sử dụng nhiều loại biểu đồ UML
khác nhau làm nền tảng cho công việc của mình: Thử nghiệm đơn vị sử dụng
biểu đồ lớp (class diagram) và đặc tả lớp, thử nghiệm tích hợp thường sử dụng
Nguyễn Công Chức – Lê Văn Thông – Lớp 04T2 15