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

29 0 0
Tài liệu đã được kiểm tra trùng lặp
Bài Tập Lớn Đề 11 Phát Triển Ứng Dụng Quản Lý Lớp Học.pdf

Đ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

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠOTRƯỜNG ĐẠI HỌC CÔNG NGHỆ ĐÔNG Á

KHOA: CÔNG NGHỆ THÔNG TIN

Trang 2

BỘ GIÁO DỤC VÀ ĐÀO TẠOTRƯỜNG ĐẠI HỌC CÔNG NGHỆ ĐÔNG Á

KHOA: CÔNG NGHỆ THÔNG TIN

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

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 21 Hình 5.1.2 Use-case với actor là giảng viên 22 Hì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ỀM1.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ôn ngữ 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ức nă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ách giả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áy tí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ự động hay 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 ứng dụng: phần mềm văn phòng, phần mềm doanh nghiệp, phần mềm giáo dục, phần mềm giải trí,…

Phần mềm chuyển dịch mã: bao gồm trình biên dịch và trình thông dịch 1.2.2 Phân loại theo khả năng ứng dụng

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ầu củ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án cho 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

Quy trình phát triển phần mềm là quá trình tổ chức và quản lý các hoạt động liên quan để tạo ra phần mềm chất lượng Có nhiều quy trình phát triển phần mềm khác nhau, nhưng một quy trình phổ biến và được sử dụng rộng rãi là mô hình phát triển phần mềm theo chu kỳ (còn được gọi là mô hình Waterfall) Dưới đây là một mô 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ủa khá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ện ngườ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ới nhau 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

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

Dùng mô hình thực thể kết hợp để biểu diễn các thực thể và mối liên hệ giữa các thực thể.

Hạn chế: phần mềm chỉ có chức năng chính là lưu trữ và thao tác trên các đối tượng dữ liệu, không quan tâm đến các chức năng khác của hệ thống nên hệ thống thu được sau khi thiết kế có thể thiếu một số chức năng cần thiết.

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ới nhau.

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ính nă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à theo dõ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ày giú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 Azure DevOps.

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ức nă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ự án giúp lập kế hoạch, theo dõi tiến độ và phân công công việc trong quá trình phát triển phần mềm Một số công cụ quản lý dự án phổ biến là Microsoft Project, Asana và Basecamp.

Môi trường thử nghiệm (Testing Environment): Môi trường thử nghiệm bao gồ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ện mộ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ập nhậ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ông việ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ạo kê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ông tin 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 tin chi 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óa biểu của từng lớp học, bao gồm thông tin về thời gian, địa điểm, và môn họ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ọc của mình thông qua ứng dụng, bao gồm xem thông tin về môn học, kiểm tra 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ủa sinh 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 quan trọng đến tất cả hoặc một số sinh viên trong lớp học, và sinh viên nên nhậ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ài liệ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ớp học, bao gồm lịch sử thay đổi thông tin sinh viên, thời khóa biểu và điểm số.

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ềm linh 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át triể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ành trong 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 sprint hiện tại Sau khi hoàn thành, tiến hành kiểm thử và đảm bảo tính năng hoạ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ác sprint 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 được chia nhỏ và ưu tiên để đảm bảo rằng ứng dụng luôn được phát triển theo hướ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 ra sản phẩm mong muốn nhanh chóng và linh hoạt trong việc thay đổi yêu cầu Đồng thờ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óm phá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ổi họ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ớp họ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 phi chứ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 nhanh chó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ác nhau, 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ống quả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ầu củ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ông của ứng dụng.

Trang 15

CHƯƠNG 4: ĐẶC TẢ YÊU CẦU CỦA DỰ ÁN4.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 ra củ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ện mộ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 đảm bả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ết quả, 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ông

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