Tải bản đầy đủ (.pdf) (29 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.05 MB, 29 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

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

<b>KHOA: CÔNG NGHỆ THÔNG TIN</b>

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

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

<b>KHOA: CÔNG NGHỆ THÔNG TIN</b>

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

<b>MỤC LỤC</b>

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 tố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

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="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

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

<b>DANH MỤC HÌNH ẢNH</b>

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

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

<b>LỜI MỞ ĐẦU</b>

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

<b>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</b>

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 tố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 q trình xây dựng phần mềm.

<b>1.2. Phân loại phần mềm</b>

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

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="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ế đã hồ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.

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

<b>1.5. Phương pháp phát triển phần mềm</b>

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.

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

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 q 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

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="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 q 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.

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

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

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 q 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 q trình học tập.

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

Ứ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 tốn tổng kết điểm và xem bảng điểm.

6

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="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.

<b>2.3. Lựa chọn mơ hình phát triển dự án</b>

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 hồ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.

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="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.

<b>CHƯƠNG 3: PHÂN TÍCH YÊU CẦU DỰ ÁN 3.1. Yêu cầu chức năng</b>

<i>a, Quản lý danh sách sinh viên</i>

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à khố 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.

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

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.

<i>c, Đăng ký mơn học</i>

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.

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

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ố.

<i>e, Báo cáo và thống kê</i>

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.

<i>f, Bảo mật và phân quyền</i>

Đả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

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">

<b>3.2. Yêu cầu phi chức năng</b>

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 tồ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.

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">

<b>CHƯƠNG 4: ĐẶC TẢ YÊU CẦU CỦA DỰ ÁN4.1. Đặc tả Z</b>

Đặc tả Z (Z specification) là một ngơn ngữ và mơi trường đặc tả tố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ể hồ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

</div>

×