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

Bài Tập Lớn Đề 11 Phát Triển Ứng Dụng Quản Lý Lớp Học.pdf

29 1 0
Tài liệu đã được kiểm tra trùng lặp

Đ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 29
Dung lượng 2,05 MB

Nội dung

BỘ GIÁO DỤC VÀ ĐÀO TẠOTRƯỜNG ĐẠI HỌC CÔNG NGHỆ ĐÔNG Á KHOA: CÔNG NGHỆ THÔNG TIN BÀI TẬP LỚNHỌC PHẦN: CƠ SỞ DỮ LIỆU Nhóm: 14 ĐỀ 11 PHÁT TRIỂN ỨNG DỤNG QUẢN LÝ LỚP HỌC STT Sinh viên thực h

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ĐÔNG Á KHOA: CÔNG NGHỆ THÔNG TIN

BÀI TẬP LỚNHỌC PHẦN: CÔNG NGHỆ PHẦN MỀM

ĐỀ 11 PHÁT TRIỂN ỨNG DỤNG QUẢN LÝ LỚP HỌC

Nguyễn Đức Tài DCCNTT11.10.1 11 Hoàng Minh Tâm DCCNTT11.10.1 11

Bắc Ninh, năm 2023

Trang 2

BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ĐÔNG Á

KHOA: CÔNG NGHỆ THÔNG TIN

BÀI TẬP LỚNHỌC PHẦN: CƠ SỞ DỮ LIỆU

Nhóm: 14

ĐỀ 11 PHÁT TRIỂN ỨNG DỤNG QUẢN LÝ LỚP HỌC

STT Sinh viên thực hiện Mã sinh viên Điểm bằng số Điểm bằng chữ

Trang 3

MỤC LỤC

Lời mở đầu 1

CHƯƠNG 1: TỔNG QUAN VỀ CÔNG NGHỆ PHẦN MỀM 2

1.1 Một số khái niệm cơ bản 2

1.2 Phân loại phần mềm 2

1.2.1 Phân loại theo phương thức hoạt động 2

1.2.2 Phân loại theo khả năng ứng dụng 2

1.2.3 Phân loại theo khả năng ứng dụng 2

1.3 Chất lượng phần mềm 3

1.4 Quy trình phát triển phần mềm 3

1.5 Phương pháp phát triển phần mềm 4

1.5.1 Phương pháp hướng chức năng 4

1.5.2 Phương pháp hướng dữ liệu 4

1.5.3 Phương pháp hướng đối tượng 4

1.6 Công cụ và môi trường phát triển phần mềm 4

CHƯƠNG 2: TỔNG QUAN BÀI TOÁN 6

2.1 Lý do chọn đề tài 6

2.2 Thu thập các yêu cầu bài toán 6

2.3 Lựa chọn mô hình phát triển dự án 7

CHƯƠNG 3: PHÂN TÍCH YÊU CẦU DỰ ÁN 8

3.1 Yêu cầu chức năng 8

3.2 Yêu cầu phi chức năng 8

CHƯƠNG 4: ĐẶC TẢ YÊU CẦU CỦA DỰ ÁN 10

4.1 Đặc tả Z 10

4.1.1 Chức năng quản lý sinh viên 10

4.1.2 Chức năng quản lý thời khóa biểu 11

4.1.3 Chức năng đăng ký môn học (tín chỉ) 12

4.1.4 Chức năng quản lý điểm số 13

4.1.5 Chức năng báo cáo và thống kê 15

4.1.6 Chức năng bảo mật và phân quyền 16

4.2 Đặc tả trước – sau 17

Trang 4

4.2.1 Đặc tả trước 17

4.2.2 Đặc tả sau 18

4.3 Đặc tả trạng thái máy hữu hạn 18

4.3.1 Trạng thái 18

4.3.2 Sự kiện và hành động 18

4.4 Đặc tả trừu tượng 19

CHƯƠNG 5: PHÂN TÍCH THIẾT KẾ 21

5.1 Biểu đồ Use-case 21

5.1.1 Actor: sinh viên 21

5.1.2 Actor: Giảng viên 21

5.2 Biểu đồ Sequence Diagram 22

5.3 Biểu đồ ERD 22

TÀI LIỆU THAM KHẢO 24

Trang 5

DANH MỤC HÌNH ẢNH

Hình 5.1.1 Use-case với actor là sinh viên 21Hình 5.1.2 Use-case với actor là giảng viên 22Hình 5.3 Biểu đồ ERD 23

Trang 6

LỜI MỞ ĐẦU

Trang 7

CHƯƠNG 1: TỔNG QUAN VỀ CÔNG NGHỆ PHẦN MỀM

1.1 Một số khái niệm cơ bản

Phần mềm: là một tập hợp những câu lệnh được viết bằng một hoặc nhiều ngônngữ lập trình theo một trật tự xác định nhằm tự động thực hiện một số chứcnăng hoặc giải quyết một bài toán nào đó Phần mềm được thực thi trên máy,thường là máy tính

Công nghệ (engineering): là cách sử dụng các công cụ, các kỹ thuật trong cáchgiải quyết một vấn đề nào đó

Công nghệ phần mềm (Software Engineering): là việc áp dụng các công cụ, các

kỹ thuật một cách có hệ thống trong việc phát triển các ứng dụng dựa trên máytính

Công cụ và môi trường phát triển phần mềm: các phương tiện hỗ trợ tự độnghay bán tự động cho một giai đoạn nào đó trong quá trình xây dựng phần mềm

1.2 Phân loại phần mềm

1.2.1 Phân loại theo phương thức hoạt động

Phần mềm hệ thống: hệ điều hành, thư viện liên kết động, bộ điều vận (driver),

Phần mềm được viết theo đơn đặt hàng của một khách hàng cụ thể: phần mềm

hỗ trợ bán hàng, phần mềm điều khiển thiết bị

Ưu điểm: có tính uyển chuyển, tùy biến cao để đáp ứng được nhu cầucủa một nhóm người sử dụng

Nhược điểm: ứng dụng trong chuyên ngành hẹp

1.2.3 Phân loại theo khả năng ứng dụng

Phần mềm không được viết theo một đơn đặt hàng cụ thể, nó có thể được báncho bất kỳ khách hàng nào

Ưu điểm: có khả năng ứng dụng rộng rãi cho nhiều nhóm người sử dụng.Nhược điểm: thiếu tính uyển chuyển, tùy biến

2

Trang 8

tả tổng quan về quy trình Waterfall:

Thu thập yêu cầu: Giai đoạn này tập trung vào việc xác định yêu cầu củakhách hàng và người dùng cuối Các yêu cầu này có thể được thu thập thông qua cuộc trao đổi với khách hàng hoặc thông qua tài liệu yêu cầu.Phân tích yêu cầu: Các yêu cầu thu thập được trong giai đoạn trước sẽ được phân tích để hiểu rõ hơn về tính năng và khả năng cần thiết của phần mềm

Thiết kế: Giai đoạn này liên quan đến việc thiết kế kiến trúc và giao diệnngười dùng của phần mềm Thiết kế có thể được chia thành thiết kế hệ thống và thiết kế chi tiết

Triển khai: Trong giai đoạn này, mã nguồn được viết dựa trên thiết kế đã hoàn thiện Nó bao gồm xác định các khối mã, viết mã, và kiểm tra mã.Kiểm thử: Sau khi mã đã được triển khai, quá trình kiểm thử sẽ được thực hiện để đảm bảo rằng phần mềm hoạt động như mong đợi và tuân thủ các yêu cầu đã đặt ra

Triển khai và bảo trì: Khi phần mềm đã vượt qua giai đoạn kiểm thử, nó

có thể được triển khai cho người dùng cuối Giai đoạn bảo trì tiếp theo bao gồm sửa lỗi và cung cấp hỗ trợ cho người dùng

Một số mô hình phát triển phần mềm phổ biến khác bao gồm mô hình Agile,

mô hình Spiral và mô hình Incremental

Trang 9

1.5 Phương pháp phát triển phần mềm

1.5.1 Phương pháp hướng chức năng

Xây dựng phần mềm dựa trên các chức năng mà hệ thống cần thực hiện.Phương pháp chung để giải quyết vấn đề là áp dụng nguyên lý “chia để trị”.Hạn chế: có khả năng các chức năng trong hệ thống không tương thích vớinhau khi thực hiện thay đổi các thông tin trong hệ thống

1.5.2 Phương pháp hướng dữ liệu

1.5.3 Phương pháp hướng đối tượng

Chú trọng đến thành phần dữ liệu và chức năng của hệ thống

Hệ thống phần mềm là một tập hợp các đối tượng có khả năng tương tác vớinhau

Mỗi đối tượng bao gồm dữ liệu và các thao tác thực hiện trên dữ liệu củađối tượng

1.6 Công cụ và môi trường phát triển phần mềm

Môi trường phát triển tích hợp (Integrated Development Environment IDE): IDE là một công cụ phát triển phần mềm tích hợp, cung cấp các tínhnăng như biên dịch mã, gỡ lỗi, xây dựng và kiểm thử Một số IDE phổ biến

-là Eclipse, Visual Studio, IntelliJ IDEA và Xcode

Hệ quản lý phiên bản (Version Control System - VCS): VCS được sử dụng

để quản lý phiên bản mã nguồn trong quá trình phát triển phần mềm Nócho phép các nhà phát triển làm việc song song trên cùng một dự án và theodõi lịch sử thay đổi Một số VCS phổ biến là Git, SVN và Mercurial.Công cụ quản lý yêu cầu (Requirement Management Tools): Công cụ nàygiúp quản lý và theo dõi yêu cầu của khách hàng và người dùng Một sốcông cụ quản lý yêu cầu phổ biến là JIRA, Trello và Microsoft AzureDevOps

4

Trang 10

Công cụ kiểm thử phần mềm (Software Testing Tools): Công cụ kiểm thửphần mềm được sử dụng để thực hiện kiểm thử tự động và kiểm thử chứcnăng của phần mềm Một số công cụ kiểm thử phổ biến là Selenium, JUnit,NUnit và Cucumber.

Công cụ quản lý dự án (Project Management Tools): Công cụ quản lý dự ángiúp lập kế hoạch, theo dõi tiến độ và phân công công việc trong quá trìnhphát triển phần mềm Một số công cụ quản lý dự án phổ biến là MicrosoftProject, Asana và Basecamp

Môi trường thử nghiệm (Testing Environment): Môi trường thử nghiệm baogồm các tài nguyên phần cứng và phần mềm cần thiết để thực hiện kiểm thửphần mềm Điều này có thể bao gồm máy chủ, hệ điều hành, cơ sở dữ liệu,môi trường mạng và các công cụ thử nghiệm

Trang 11

CHƯƠNG 2: TỔNG QUAN BÀI TOÁN 2.1 Lý do chọn đề tài

Hiện nay, việc quản lý thông tin liên quan đến lớp học vẫn đang được thực hiệnmột cách thủ công hay phần mềm lỗi thời và không hiệu quả Danh sách sinh viên,thời khóa biểu, đăng ký môn học, điểm số và thông báo thường phải được xử lý và cậpnhật thủ công, dẫn đến nguy cơ mắc sai sót và tốn nhiều thời gian cho cán bộ quản lý Với những thách thức và vấn đề đó, một ứng dụng quản lý lớp học đáng tin cậy

và hiệu quả trở nên cần thiết Bằng cách phát triển một ứng dụng như vậy, chúng ta cóthể giảm thiểu công việc thủ công và tối ưu hóa quá trình quản lý thông tin lớp học.Việc tự động hóa các tác vụ quản lý như cập nhật danh sách sinh viên, thời khóa biểu,đăng ký môn học và điểm số sẽ giúp tiết kiệm thời gian và tăng cường hiệu quả côngviệc

Bên cạnh đó, ứng dụng quản lý lớp học cũng mang lại lợi ích trong việc tạokênh thông tin liên lạc hiệu quả giữa giảng viên và sinh viên Thông qua ứng dụng,giảng viên có thể dễ dàng thông báo thông tin quan trọng, như thay đổi thời gian học,thông báo tài liệu mới và các thông tin khác Điều này giúp cải thiện sự tương tác vàgiao tiếp giữa giảng viên và sinh viên, tạo điều kiện thuận lợi cho việc truyền đạt thôngtin và thúc đẩy quá trình học tập

2.2 Thu thập các yêu cầu bài toán

Ứng dụng cầu đạt được một số yêu cầu cơ bản như sau:

Quản lý danh sách sinh viên: Hệ thống nên cho phép quản lý thông tinchi tiết về sinh viên, bao gồm tên, mã số sinh viên, thông tin liên lạc, vàcác thông tin khác cần thiết

Quản lý thời khóa biểu: Ứng dụng nên hỗ trợ lập và quản lý thời khóabiểu của từng lớp học, bao gồm thông tin về thời gian, địa điểm, và mônhọc được giảng dạy

Đăng ký môn học: Học sinh viên nên có thể đăng ký và quản lý môn họccủa mình thông qua ứng dụng, bao gồm xem thông tin về môn học, kiểmtra sự trùng lặp và xem kết quả đăng ký

Quản lý điểm số: Hệ thống nên cho phép nhập và quản lý điểm số củasinh viên trong từng môn học, bao gồm việc tính toán tổng kết điểm vàxem bảng điểm

6

Trang 12

Gửi thông báo: Giảng viên nên có thể gửi thông báo và thông tin quantrọng đến tất cả hoặc một số sinh viên trong lớp học, và sinh viên nênnhận được thông báo này.

Quản lý tài liệu: Hệ thống nên cung cấp khả năng tải lên và quản lý tàiliệu giảng dạy, bài giảng, tài liệu tham khảo và tài liệu bổ sung khác.Quản lý lịch sử: Hệ thống nên lưu trữ lịch sử các hoạt động quản lý lớphọc, bao gồm lịch sử thay đổi thông tin sinh viên, thời khóa biểu và điểmsố

Bảo mật và phân quyền: Ứng dụng nên cung cấp các cơ chế bảo mật đểđảm bảo rằng chỉ người dùng có quyền được phép có thể truy cập vàchỉnh sửa thông tin cần thiết

2.3 Lựa chọn mô hình phát triển dự án

Một mô hình phát triển phần mềm phù hợp cho ứng dụng quản lý lớp học có thể

là mô hình phát triển theo kiểu Agile Agile là một phương pháp phát triển phần mềmlinh hoạt, tập trung vào việc phân chia công việc thành các đợt phát triển ngắn gọn(sprints) và tăng cường tương tác và phản hồi giữa các thành viên trong nhóm pháttriển

Xác định yêu cầu: Tiến hành phân tích và xác định các yêu cầu cụ thểcủa ứng dụng quản lý lớp học, bao gồm chức năng, giao diện người dùng

và yêu cầu kỹ thuật

Lập kế hoạch sprints: Chia công việc thành các đợt phát triển ngắn gọn(sprints), thường từ 2 đến 4 tuần Xác định các chức năng cần hoàn thànhtrong mỗi sprint và ưu tiên các nhiệm vụ

Phát triển và kiểm thử: Thực hiện phát triển các tính năng trong sprinthiện tại Sau khi hoàn thành, tiến hành kiểm thử và đảm bảo tính nănghoạt động đúng và đáp ứng yêu cầu

Đánh giá và phản hồi: Khi sprint kết thúc, tiến hành đánh giá kết quả vàthu thập phản hồi từ người dùng và các thành viên trong nhóm phát triển.Dựa trên phản hồi này, điều chỉnh và cải thiện các tính năng trong cácsprint tiếp theo

Lập kế hoạch sprint tiếp theo: Dựa trên phản hồi và ưu tiên yêu cầu mới,lập kế hoạch cho các sprint tiếp theo Các tính năng và công việc đượcchia nhỏ và ưu tiên để đảm bảo rằng ứng dụng luôn được phát triển theohướng đúng

Trang 13

Việc lựa chọn mô hình này vì lợi ích của mô hình Agile mang lại là có thể tạo rasản phẩm mong muốn nhanh chóng và linh hoạt trong việc thay đổi yêu cầu Đồngthời, quá trình tương tác và phản hồi thường xuyên giữa các thành viên trong nhómphát triển và người dùng giúp đảm bảo tính chính xác và sự đáp ứng của ứng dụng.

CHƯƠNG 3: PHÂN TÍCH YÊU CẦU DỰ ÁN

3.1 Yêu cầu chức năng

a, Quản lý danh sách sinh viên

Thêm, sửa, xóa thông tin sinh viên

Hiển thị danh sách sinh viên theo lớp học và khoá học

Tìm kiếm và lọc sinh viên theo tên, mã số sinh viên, hoặc thông tin khác

b, Quản lý thời khóa biểu

Hiển thị thời khóa biểu cho từng lớp học

Xem và cập nhật thông tin về thời gian, địa điểm, và môn học của các buổihọc

Cập nhật thông tin thay đổi về thời khóa biểu

c, Đăng ký môn học

Cho phép sinh viên đăng ký môn học cho từng kỳ học

Kiểm tra và hạn chế việc đăng ký trùng lặp môn học

Hiển thị danh sách môn học đã đăng ký của sinh viên

d, Quản lý điểm số

Nhập và lưu trữ điểm số cho từng sinh viên trong từng môn học

Tính tổng kết điểm và hiển thị bảng điểm

Cung cấp thông báo cho sinh viên về kết quả điểm số

e, Báo cáo và thống kê

Tạo báo cáo tổng kết về danh sách sinh viên, thời khóa biểu, điểm số, Thống kê và hiển thị dữ liệu liên quan đến quá trình học tập và quản lý lớphọc

f, Bảo mật và phân quyền

Đảm bảo an ninh thông tin và quản lý quyền truy cập của người dùng.Phân quyền truy cập dựa trên vai trò (giảng viên, sinh viên, quản trị viên) vàquản lý quyền truy cập vào các chức năng cụ thể

8

Trang 14

3.2 Yêu cầu phi chức năng

Ngoài những yêu cầu về chức năng của ứng dụng, cần có những yêu cầu phichức năng như:

Tính bảo mật: Đảm bảo an toàn và bảo mật thông tin của sinh viên vàgiảng viên trong hệ thống, bao gồm quản lý quyền truy cập, mã hóa dữliệu và xác thực người dùng

Độ tin cậy: Hệ thống nên hoạt động ổn định, đáng tin cậy và có khảnăng khôi phục dữ liệu trong trường hợp xảy ra sự cố

Hiệu suất: Đảm bảo ứng dụng hoạt động mượt mà, đáp ứng nhanhchóng các yêu cầu của người dùng và có khả năng mở rộng để đáp ứng

số lượng người dùng tăng lên

Giao diện người dùng thân thiện: Thiết kế giao diện người dùng dễ sửdụng, trực quan và thân thiện, giúp người dùng dễ dàng tương tác vớiứng dụng

Tương thích đa nền tảng: Hỗ trợ trên nhiều nền tảng và thiết bị khácnhau, bao gồm máy tính, điện thoại di động và máy tính bảng

Tích hợp dữ liệu: Khả năng tích hợp với các hệ thống khác như hệ thốngquản lý sinh viên, hệ thống tài chính hoặc hệ thống email để chia sẻthông tin và tương tác dữ liệu

Điều chỉnh và bổ sung yêu cầu phi chức năng cụ thể cho dự án dựa trên yêu cầucủa trường đại học và người dùng cuối là cần thiết để đảm bảo hiệu quả và thành côngcủa ứng dụng

Trang 15

CHƯƠNG 4: ĐẶC TẢ YÊU CẦU CỦA DỰ ÁN

4.1 Đặc tả Z

Đặc tả Z (Z specification) là một ngôn ngữ và môi trường đặc tả toán học được

sử dụng để mô hình hóa và mô tả các hệ thống phần mềm Nó được sử dụng để xácđịnh và mô tả rõ ràng các yêu cầu và các phần tử của một hệ thống, bao gồm các đặc tảchức năng và phi chức năng

Trong đặc tả phần mềm, Preconditions (tiền điều kiện) và Postconditions (hậuđiều kiện) là hai khái niệm được sử dụng để mô tả điều kiện đầu vào và kết quả đầu racủa một hành động hoặc chức năng

Preconditions: Preconditions là một tập hợp các điều kiện mà phải được đápứng trước khi thực hiện một hành động hoặc chức năng Chúng mô tả các ràng buộc vàgiới hạn về trạng thái hiện tại của hệ thống trước khi hành động được thực hiện.Preconditions xác định những điều kiện mà hệ thống phải tuân thủ trước khi thực hiệnmột chức năng, và nếu các điều kiện này không được đáp ứng, hành động có thểkhông thể hoàn thành hoặc cho kết quả không chính xác

Postconditions: Postconditions là một tập hợp các điều kiện mà phải được đảmbảo sau khi thực hiện một hành động hoặc chức năng Chúng mô tả trạng thái mongđợi của hệ thống sau khi hành động được thực hiện Postconditions xác định những kếtquả, trạng thái hoặc các thuộc tính cần đạt được sau khi thực hiện một chức năng, vànếu các điều kiện này không được đáp ứng, có thể xảy ra lỗi hoặc trạng thái khôngchính xác của hệ thống

4.1.1 Chức năng quản lý sinh viên

Trang 16

Preconditions: s tồn tại trong S

Postconditions: S' = S - {s}

getStudentList: () → (S)

getStudentByClass: (c: Class) → (S')

Preconditions: c tồn tại trong C

Postconditions: S' là danh sách các sinh viên trong lớp c

Chức năng getStudentByClass trả về danh sách sinh viên trong một lớphọc cụ thể

4.1.2 Chức năng quản lý thời khóa biểu

Ngày đăng: 04/05/2024, 12:43

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

TÀI LIỆU LIÊN QUAN

w