Báo cáo Kỹ thuật phần mềm
Trang 1MỤC LỤCLỜI NÓI ĐẦU
I TÌM HIỀU YÊU CẦU
1.1 Phương pháp nghiên cứu tài liệu, bản mẫu
2.1 Sơ đồ phân cấp chức năng FD
2.2 Biểu đồ luồng dữ liệu DFD
.2.1 DFD mức ngữ cảnh.
.2.2 DFD mức đỉnh.
.2.3 DFD mức dưới đỉnh.
III THIẾT KẾ HỆ THỐNG
3.1 Thiết kế cơ sở dữ liệu
3.1.1 Phân tích yêu cầu.
3.1.2 Nhận diện thực thể.
3.1.3 Sơ đồ thực thể liên kết 3.1.4 Nhận diện khóa chính.
3.1.5 Các giả thiết phụ thuộc hàm.
3.1.6 Chuẩn hóa cơ sở dữ liệu.
3.1.7 Sơ đồ thực thể liên kết (ERD) 3.1.8 Khai báo phạm vi các thuộc tính.
3.1.9 Các quy tắc đảm bảo toàn vẹn dữ liệu.
3.2 Lưu đồ thuật toán một số chức năng cơ bản
IV TRIỂN KHAI
4.1 Môi trường phát triển, công cụ xây dựng CSDL và ngôn ngữlập trình
4.2 Phân công công việc
V TÀI LIỆU NGƯỜI DÙNG
5.1 Hướng dẫn cài đặt
5.2 Hướng dẫn sử dụng.
VI KẾT LUẬN VÀ KIẾN NGHỊ CHO MÔN HỌC
Trang 2LỜI NÓI ĐẦU
Trong những năm gần đây ngành công nghệ thông tin nói chung và kĩ thuật phần mềm nói riêng đã có những bước phát triển mạnh mẽ Các phần mềm ngày càng được ứng dụng rộng rãi trong mọi lĩnh vực của cuộc sống mà trong đó các phần mềm quản lý đã đặc biệt chứng tỏ được tính ưu việt và tiện ích của mình.
Sự ra đời của các phần mềm quản lý đã góp phần quan trọng giải quyết vấn đề quản lý nhân lực mà một ví dụ cụ thể là quản lý sinh viên các trường đại học Với các trường đại học lớn như Đại học Bách Khoa Hà Nội việc quản lý thông tin, xử lý học tập với hàng chục ngàn sinh viên thực sự sẽ mất rất nhiều thời gian và công sức nếu thiếu đi những phần mềm quản lý Nhưng với những phần mềm quản lý hiện nay các cán bộ đào tạo chỉ cần vài thao tác đơn giản là
có thể tìm được những thông tin mong muốn trong khoảng thời gian rất ngắn
và rất chính xác.
Với những lý do đó nhóm sinh viên GD2K chọn mảng đề tài Quản lý sinh viên cho bài tập lớn môn Kỹ thuật phần mềm với mong muốn với những kiến thức và kinh nghiệm có được sau khi hoàn thành bài tập lớn này chúng em
sẽ có thể áp dụng được vào các công việc của mình sau này đặc biệt liên quan đến vấn đề quản lý.
Trong phạm vi bài tập lớn này chúng em sẽ xây dựng phần mềm quản lý sinh viên với những chức năng cơ bản là quản lý thông tin sinh viên, xử lý kết
quả học tập và các báo cáo sử dụng hai công cụ chủ yếu là Microsoft Visual Basic 6.0 và Microsoft Access 2003.
Đơn vị áp dụng: khoa Điện Tử-Viễn Thông, trường Đại học Bách Khoa
Phương pháp phát triển: do đây chỉ là một dự án nhỏ, yêu cầu trong
phạm vi bài tập lớn được thực hiện trong một kì học với những kiến thức được cung cấp sau mỗi tuần học chúng em xin lựa chọn phương pháp phát triển theo
mô hình tuyến tính.
Trang 3I TÌM HIỂU YÊU CẦU
Trong quá trình thực hiện xây dựng phần mềm khâu đầu tiên là tìm hiểu nghiên cứu yêu cầu của người sử dụng Nhóm GD2K chúng em lựa chọn phương pháp tìm hiểu yêu cầu của người sử dụng là nghiên cứu tài liệu có sẵn trên cơ sở chính những tài liệu học tập của các thành viên trong nhóm.
1.1 Phương pháp nghiên cứu tài liệu, bản mẫu.
Phương pháp nghiên cứu các bản mẫu có trước cho phép tìm hiểu sâu hơn về những yêu cầu cụ thể của bài toán với từng chức năng của hệ thống.
Tên tài liệu: Danh sách sinh viên
11 20051072 Nguyễn Hoàng Hải
12 20051085 Nguyễn Thanh Hải
Trang 4Tên tài liệu: Bảng điểm thi học kỳ
Bản mẫu:
Trang 5Tên tài liệu: Hồ sơ sinh viên
SHSV Họ và tên Ngày sinh Điểm
TBL1 Mức học bổng Số tiền được lĩnh Ghi chú
Trang 61.2 Đặc tả yêu cầu
1.2.1 Đặc tả yêu cầu thực tế.
Quá trình học tập của mỗi sinh viên khoa Điện Tử-Viễn Thông được chia làm 2 giai đoạn: giai đoạn đại cương (2 năm đầu) và giai đoạn chuyên nghành (3 năm cuối)
Ở mỗi giai đoạn có những đặc thù riêng, ví dụ như phần lớn các môn đại cương là do các khoa khác trong trường phụ trách còn các kỳ chuyên ngành hầu hết là giảng viên khoa Điện Tử-Viễn Thông đảm nhận Trong phương pháp tính điểm tốt nghiệm đang áp dụng điểm trung bình các kỳ đại cương và chuyên nghành sẽ được nhân hệ số khác nhau do vậy trong phần mềm quản lý cần phải có các chức năng quản lý điểm của các kỳ học đại cương, chuyên nghành riêng, tránh sự nhầm lẫn trong khâu tính toán điểm tốt nghiệp sau này.
Một đặc thù nữa ở khoa Điện Tử-Viễn Thông là sang kỳ 9, tức là năm cuối sinh viên sẽ được đăng ký để chọn các chuyên ngành hẹp là: Điện tử Viễn Thông, Điện Tử Tin học, Điện Tử Y Sinh và Điện tử Hàng Không.
Hiện nay trường Đại học Bách Khoa Hà Nội đã bắt đầu áp dụng chế độ học tín chỉ, ở khoa Điện Tử Viễn thông năm nay có K52 đã áp dụng hình thức học này với các cách tính điểm, quản lý lớp, xử lý học tập theo quy chế mới
Với những đặc thù đó đỏi hỏi phần mềm quản lý sinh viên áp dụng cho khoa phải tổng hợp được tất cả các yêu cầu đó, đưa ra các chức năng quản lý cụ thể, hiệu quả, phù hợp với từng đặc điểm, giai đoạn, với từng khóa học khác nhau để mang lại kết quả chính xác và hiệu quả tối đa.
Như đã nói ở trên, trong phạm vi bài tập lớn và những kiến thức còn hạn chế, nhóm GD2K chỉ mới xây dựng được một phần mềm quản lý sinh viên với những chức năng cơ bản nhất Những chức năng quản lý phức tạp, nâng cao sẽ được nhóm tiếp tục tìm hiểu và hoàn thiện trong thời gian tới.
1.2.2 Đặc tả chức năng của phần mềm .
Một hệ thống quản lý sinh viên cho khoa Điện tử - Viễn thông cần các thông tin sau: Số hiệu sinh viên, Họ và tên sinh viên, Khoá, Tên lớp, Mã lớp, Ngày tháng năm sinh, Giới tính, Dân tộc, Tôn giáo, Chứng minh thư nhân dân, Đối tượng, Quê quán, Hộ khẩu thường trú, Địa chỉ liên hệ, Họ tên bố, Nghề
Trang 7 Quản lý điểm, nhập vào điểm và có khả năng lọc ra danh sách sinh viên đạt học bổng, sinh viên thi lại, học lại dựa vào các điều kiện cho trước
Xuất ra các loại báo cáo khi cần thiết như: Bảng điểm, danh sách lớp, Hồ sơ sinh viên, danh sách học lại, danh sách thi lại…
1.1.3 Đặc tả yêu cầu phi chức năng
Tiêu chí 1 : Không quá đơn giản nhưng dễ sử dụng, chứa đầy đủ các
thông tin cần thiết, tránh các thao tác rườm rà, sự dư thừa dữ liệu và phải phục vụ tối đa cho mục đích quản lý sinh viên.
Tiêu chí 2 : Các quá trình xử lý đảm bảo nhanh chóng, tiện lợi và thật
chính xác Cập nhật đầy đủ các chức năng cần thiết, các thông tin tổng hợp phục vụ cho công việc quản lý theo từng giai đoạn cụ thể.
Tiêu chí 3 : Đáp ứng được tối đa yêu cầu của người sử dụng và có khả
năng nâng cấp khi phát sinh yêu cầu mới.
Tiêu chí 4 : Giao diện đẹp mắt và thân thiện với người dùng Có hướng
dẫn cài đặt và hướng dẫn sử dụng chi tiết, cụ thể, hướng dẫn xử lý khi xảy ra một số sự cố có thể xảy ra
Trang 8II PHÂN TÍCH HỆ THỐNG
2.1 Sơ đồ phân cấp chức năng – FD
Trang 92.2 Biểu đồ luồng dữ liệu
2.2.1 DFD mức ngữ cảnh
2.2.2 DFD mức đỉnh
Trang 102.2.3 DFD mức dưới đỉnh
2.2.3.1 DFD mức 2-mức dưới đỉnh của chức năng 1 (quản lý thông tin )
Trang 122.2.3.2 DFD mức 2-mức dưới đỉnh của chức năng 2 (Xử lý học tập)
2.2.3.3 DFD mức 2-mức dưới đỉnh của chức năng 3 (Quản lý báo cáo)
Trang 132.2.3.4 DFD mức 3-phân rã của chức năng 1.1 (Quản lý thông tin
cá nhân sinh viên)
2.2.3.5 DFD mức 3-phân rã của chức năng 1.2 (Quản lý thông tin lớp học)
Trang 142.2.3.6 DFD mức 3-phân rã của chức năng 1.3 (Quản lý thông tin môn học)
2.2.3.7 DFD mức 3-phân rã của chức năng 1.4 (Quản lý điểm)
Trang 15III THIẾT KẾ HỆ THỐNG
3.1 THIẾT KẾ CƠ SỞ DỮ LIỆU
3.1.1 Phân tích các yêu cầu (đã thực hiện trong bước tìm hiểu yêu cầu)
3.1.2 Nhận diện các thực thể
Tên đầy đủ Tên viết tắt
*Số hiệu sinh viên SHSV
Họ tên sinh viên TENSV
Ngày tháng năm sinh NGAYSINH
Chứng minh thư nhân dân CMTND
Hộ khẩu thường trú HKTHUONGTRU
Địa chỉ liên hệ DCLIENHE
Điểm vào trường ĐIEMDH
Ngày vào Đoàn NVDOAN
Ngày vào Đảng NVDANG
Lớp trước khi phân ngành LOPTPN
Trang 16Học kì đại cương HKDC
Mã môn đại cương MAMONDC
Môn học đại cương MONDC
Điểm đại cương lần 1 DIEMDC1
Điểm đại cương lần 2 DIEMDC2
Điểm đại cương lần cao nhất DIEMDCCN
Học kì chuyên ngành HKCN
Mã môn chuyên ngành MAMONCN
Môn học chuyên ngành MONCN
Điểm chuyên ngành lần 1 DIEMCN1
Điểm chuyên ngành lần 2 DIEMCN2
Điểm chuyên ngành lần cao nhất DIEMCNCN
Số đơn vị học trình SODVHT
3.1.3 Sơ đồ thực thể liên kết
Trang 183.1.4 Nhận diện khóa chính
Khóa chính của bảng chưa chuẩn hóa là SHSV do các thuộc tính còn
lại đều phụ thuộc hàm vào thuộc tính này
3.1.5 Các giả thiết phụ thuộc hàm
Giả thiết 1:
Một số hiệu sinh viên xác định duy nhất thông tin về một sinh viên
và tại một thời điểm sinh viên học duy nhất tại một lớp thuộc một khoa nhất
định Vì vậy các thông tin về sinh viên bao gồm 17 thuộc tính còn lại đều
phụ thuộc hàm vào thuộc tính SHSV
Để đảm bảo số hiệu sinh viên là duy nhất ta biểu diễn số hiệu sinh
viên như sau: bốn số đầu là năm vào trường ví dụ 2005 và bốn số sau là
thứ tự của sinh viên đó trong danh sách sinh viên cùng nhập học khóa đó
(danh sách thứ tự do phòng Đào tạo đại học quản lý) ví dụ 0570
Với các sinh viên chuyển hệ từ Cao đẳng lên đại học thì bốn số cuối
có dạng Cxxx trong đó xxx là số thứ tự của sinh viên đó ví dụ C570
Như vậy ta sẽ có số hiệu sinh viên cụ thể là: 20050570 hoặc2004C570
Giả thiết 2:
Trong hai năm học đại cương, mỗi môn học chỉ học duy nhất trong
Trang 19Trong những năm học chuyên ngành, tương tự như đại cương, mỗimôn học cũng chỉ học trong một học kì Riêng kì 9 đối với sinh viên hệ đạihọc chính quy, mỗi sinh viên được phép đăng kí môn học phù hợp với
chuyên ngành riêng Do vậy cặp thuộc tính (SHSV, MONCN) sẽ xác định một kì học chuyên ngành duy nhất Như vậy thuộc tính HKCN phụ thuộc hàm đầy đủ vào thuộc tính ghép ( SHSV, MONCN ).
Giả thiết 4:
Mỗi môn học có số đơn vị học trình nhất định (kể cả đại cương lẫn
chuyên ngành) (có thể trùng nhau) Vì vậy thuộc tính SODVHT đại cương phụ thuộc hàm vào MONDC và SODVHT chuyên ngành phụ thuộc hàm vào MONCN.
Giả thiết 5:
Điểm thi hết học phần của mỗi sinh viên gồm có: Điểm lần 1, Điểm
lần 2 và Điểm lần cao nhất (tính từ lần thứ 3 trở đi), vì vậy điểm mỗi lần phụ
thuộc hàm đầy đủ vào thuộc tính ghép ( SHVH, MONDC) hoặc (SHSV,
MONCN)
Giả thiết 6:
Mỗi một tên lớp chỉ có một mã lớp duy nhất Cách đánh mã lớp như
sau: ĐT và số thứ tự lớp (từ 1 đến 12) Ví dụ: ĐT5, ĐT11…Như vậy
TENLOP phụ thuộc hàm vào thuộc tính MALOP.
Giả thiết7:
Cả ở đại cương và chuyên ngành thì mỗi mã môn học cũng đều xác
định một môn học duy nhất nên thuộc tính MONDC phụ thuộc hàm vào thuộc MAMONDC và MONCN phụ thuộc hàm vào MAMONCN.
Trang 203.1.6 Chuẩn hóa cơ sở dữ liệu
a Tại sao phải chuẩn hóa cơ sở dữ liệu
- Mô hình quan hệ chỉ chấp nhận duy nhất các quan hệ thỏa mãn điềukiện “ mọi giá trị trong quan hệ - nghĩa là tất cả giá trị của các thuộctính trong tất cả các bộ đều phải là nguyên tố (nghĩa là không chia nhỏđược)”
- Nói cách khác tại mỗi vị trí cắt nhau của một hàng và một cột trongbảng tồn tại đúng một giá trị và không bao giờ được là một tập các giátrị
- Áp dụng vào bài toán quản lý sinh viên ở đây ta thấy:
- Theo các giả thiết phụ thuộc hàm ở trên ta có mỗi SHSV xác định duy
nhất các 17 thuộc tính còn lại, tức là xác định duy nhất một sinh viên
- Tuy nhiên mỗi sinh viên học nhiều học kỳ, mỗi học kỳ lại học nhiềumôn, mỗi môn lại có thể có nhiều điểm (lần 1, 2…) do vậy không đảmbảo tính nguyên tố trong mô hình quan hệ
- Để khắc phục hiện tượng trên ta cần tiến hành chuẩn hóa cơ sở dữ liệutheo các bước sau
3.1.6.1 Chuẩn hóa dạng 1NF (tất cả các miền đều chứa giá trị nguyên tố)
Thuộc tính khoá chính của bảng chưa chuẩn hoá là: SHSV
Để chuyển thành 1NF ta sử dụng phương pháp tách nhóm lặp Sau khitách các thuộc tính lặp ta thu được bảng: ĐIỂMĐC, ĐIỂMCN,THÔNGTINSV
* Số hiệu sinh viên ĐiểmĐC
Trang 21
* Số hiệu sinh viên
* Mã môn chuyên ngành Môn học chuyên ngành
Số đơn vị học trình Học kỳ chuyên ngành Điểm chuyên ngành lần 1 Điểm chuyên ngành lần 2 Điểm chuyên ngành lần cao nhất ĐiểmCN
Trang 22
* Số hiệu sinh viên Khóa
Mã lớp Tên lớp
Họ tên sinh viên Ngày tháng năm sinh Giới tính
Dân tộc ThôngtinSV
Tôn giáo Chứng minh nhân dân Đối tượng
Quê quán
Hộ khẩu thường trú Địa chỉ liên hệ
Họ và tên bố Nghề nghiệp bố
Họ và tên mẹ Nghề nghiệp mẹ Năm tốt nghiệp Xếp loại TN PTTH Năm vào trường
Số báo danh Điểm vào trường Ngày vào Đoàn Ngày vào Đảng Lớp trước phân ngành Ngành học
3.1.6.2 Chuẩn hóa dạng 2NF (tách các phụ thuộc hàm vào từng tập con
Trang 23thuộc khóa chính nên chưa ở dạng 2NF Ta tách thành bảng: ĐIỂMCN,MÔNCN.
Trong bảng THÔNGTINSV: khóa chính là SHSV – khoá đơn, cácthuộc tính không khoá đều phụ thuộc hàm đầy đủ vào khoá chính nên đã ởdạng 2NF
* Số hiệu sinh viên
* Mã môn đại cương Điểm đại cương lần 1 Điểm đại cương lần 2 Điểm đại cương lần cao nhất ĐiểmĐC
* Mã môn đại cương Môn học đại cương
Số đơn vị học trình Học kỳ đại cương MônĐC
* Số hiệu sinh viên
* Mã môn chuyên ngành Điểm chuyên ngành lần 1 Điểm chuyên ngành lần 2 Điểm chuyên ngành lần cao nhất ĐiểmCN
* Mã môn chuyên ngành Môn học chuyên ngành
Số đơn vị học trình Học kỳ chuyên ngành MônCN
Trang 24
* Số hiệu sinh viên Khóa
Mã lớp Tên lớp
Họ tên sinh viên Ngày tháng năm sinh Giới tính
Dân tộc ThôngtinSV
Tôn giáo Chứng minh nhân dân Đối tượng
Quê quán
Hộ khẩu thường trú Địa chỉ liên hệ
Họ và tên bố Nghề nghiệp bố
Họ và tên mẹ Nghề nghiệp mẹ Năm tốt nghiệp Xếp loại TN PTTH Năm vào trường
Số báo danh Điểm vào trường Ngày vào Đoàn Ngày vào Đảng Lớp trước phân ngành Ngành học
Trang 25Trong bảng MÔNĐC: khóa chính là khoá đơn – Mã môn đại cương,các thuộc tính đều phụ thuộc hàm trực tiếp vào khoá chính nên đã ở dạng3NF.
Trong bảng ĐIỂMCN: mọi thuộc tính không khoá là Điểm chuyênngành lần 1, Điểm chuyên ngành lần 2, Điểm chuyên ngành lần cao nhất đềuphụ thuộc hàm trực tiếp vào khoá chính (SHSV, MAMONCN) nên đã ởdạng 3NF
Trong bảng MÔNCN: khóa chính là khoá đơn – Mã môn đại chuyênngành, các thuộc tính không khóa đều phụ thuộc hàm trực tiếp vào khoáchính nên đã ở dạng 3NF
Trong bảng THÔNGTINSV: thuộc tính Tên lớp phụ thuộc hàm bắccầu vào khóa chính Số hiệu sinh viên thông qua thuộc tính không khoá là
Mã lớp nên chưa ở dạng 3NF Ta tách thành bảng: THÔNGTINSV và LỚP
Ta có các bảng ở dạng 3NF sau:
* Số hiệu sinh viên
* Mã môn đại cương Điểm đại cương lần 1 Điểm đại cương lần 2 Điểm đại cương lần cao nhất ĐiểmĐC
* Mã môn đại cương Môn học đại cương
Số đơn vị học trình Học kỳ đại cương MônĐC
Trang 26
* Số hiệu sinh viên
* Mã môn chuyên ngành Điểm chuyên ngành lần 1 Điểm chuyên ngành lần 2 Điểm chuyên ngành lần cao nhất ĐiểmCN
* Mã môn chuyên ngành Môn học chuyên ngành
Số đơn vị học trình Học kỳ chuyên ngành MônCN
Trang 27Dân tộc ThôngtinSV
Tôn giáo Chứng minh nhân dân Đối tượng
Quê quán
Hộ khẩu thường trú Địa chỉ liên hệ
Họ và tên bố Nghề nghiệp bố
Họ và tên mẹ Nghề nghiệp mẹ Năm tốt nghiệp Xếp loại TN PTTH Năm vào trường
Số báo danh Điểm vào trường Ngày vào Đoàn Ngày vào Đảng Lớp trước phân ngành Ngành học
* Mã lớp Tên lớp Lớp
3.1.6.4 Chuẩn hóa dạng BCNF
Trang 28Trong các bảng MÔNĐC, MÔNCN, THÔNGTINSV, LỚP: các khoáchính đều là khoá đơn nên các bảng này đã ở dạng BCNF.
Trong bảng ĐIỂMĐC: khoá chính (SHSV, MAMONDC) là thuộctính quyết định vì các thuộc tính không khoá đều phụ thuộc hàm đầy đủ vào
nó, đồng thời nó cũng là khoá ứng cử nên đã ở dạng BCNF
Trong bảng ĐIỂMCN: khóa chính (SHSV, MAMONCN) là thuộctính quyết định vì các thuộc tính khác đều phụ thuộc hàm đầy đủ vào nóđồng thời nó cũng là khoá ứng cử nên đã ở dạng BCNF
Vậy các bảng ở dạng chuẩn hóa 3NF ở trên cũng chính là các bảng ởdạng chuẩn hoá BCNF
3.1.7 Sơ đồ liên kết thực thể (ERD)