Nhập môn công nghệ phần mềm - Bài tập tuần 6: Kỹ nghệ yêu cầu phần mềm

pdf 17 trang Gia Huy 17/05/2022 3470
Bạn đang xem tài liệu "Nhập môn công nghệ phần mềm - Bài tập tuần 6: Kỹ nghệ yêu cầu phần mềm", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfnhap_mon_cong_nghe_phan_mem_bai_tap_tuan_6_ky_nghe_yeu_cau_p.pdf

Nội dung text: Nhập môn công nghệ phần mềm - Bài tập tuần 6: Kỹ nghệ yêu cầu phần mềm

  1. Introduction to Software Engineering - Nhập môn Công nghệ phần mềm Bài tập tuần 06 Kỹ nghệ yêu cầu phần mềm (Requirement Engineering) Mục tiêu - Thực hiện các bài tập (câu hỏi) về Yêu cầu phần mềm - Thực hiện các bài tập về công cụ đặc tả yêu cầu phần mềm - Đặc tả các yêu cầu cho bài toán (casestudy) của môn học: sử dụng usecase của UML o Xác định các thành phần: tác nhân (actor), ca sử dụng (usecase) và các quan hệ à xây dựng biểu đồ usecase o Đặc tả kịch bản chi tiết cho các usecase o Xác định và mô tả các yêu cầu phi chức năng Đánh giá - Hoàn thành các bài tập về Yêu cầu phần mềm - Nắm được đặc điểm của các công cụ đặc tả yêu cầu phần mềm: Biểu đồ luồng dữ liệu – DFD (data flow diagram) + Máy trạng thái – FSM (Finite state machine) + Sơ đồ thực thể liên kết – ERD (entity relation diagram) + Usecase (UML) - Hoàn thành đặc tả các yêu cầu cho bài toán (casestudy) của môn học: sử dụng usecase của UML Phần I: Bài 1.1 a) Lựa chọn nào sau đây mô tả một yêu cầu phi chức năng? 1. Hệ thống phải phát sinh ra một báo cáo về tất cả các chiến dịch quảng cáo cho một khách hàng cụ thể 2. Hệ thống phải cho phép những người sử dụng nhập vào chi tiết các khách hàng 3. Hệ thống phải có khả năng lưu trữ ban đầu là 500MB dữ liệu, mỗi năm tăng lên 100MB 4. Tất cả các phương án trên đều đúng b) Lựa chọn nào sau đây mô tả một yêu cầu chức năng? 1. Hệ thống phải có khả năng trả lời tất cả các truy vấn trong 5 giây 2. Hệ thống cho phép người sử dụng thêm một sản phẩm muốn mua vào giỏ hàng 3. Người sử dụng sẽ gây ra ít lỗi hơn 50% so với hệ thống hiện tại 4. Giao diện hệ thống thân thiện với người dùng c) Sơ đồ luồng dữ liệu cung cấp thông tin gì? Software Engineering Department - SoICT/HUST Trang 1 / 17
  2. Introduction to Software Engineering - Nhập môn Công nghệ phần mềm 1. Đưa ra hình ảnh quan hệ giữa các đối tượng dữ liệu 2. Đưa ra hình ảnh những chức năng biến đổi luồng dữ liệu 3. Chỉ ra những quyết định logic chính khi chúng xuất hiện 4. Chỉ ra sự tương tác của hệ thống với sự kiện bên ngoài d) Đặc tả hệ thống mô tả ___? 1. Chức năng, hiệu năng và các ràng buộc của hệ thống 2. Bản cài đặt của hệ thống 3. Các phần tử kiến trúc phần mềm 4. Thời gian cần thiết cho mô phỏng hệ thống e) Hoạt động nào sau đây không phải là mục tiêu của xây dựng mô hình yêu cầu? 1. Xác định một tập các yêu cầu phần mềm có thể được thẩm định 2. Mô tả các yêu cầu khách hàng 3. Tạo lập một cơ sở cho thiết kế phần mềm 4. Đưa ra giải pháp sơ bộ cho vấn đề đặt ra f) Điều gì xảy ra khi sử dụng ngôn ngữ tự nhiên để mô tả các yêu cầu? (chọn nhiều) 1. Một vài yêu cầu được diễn đạt chung, đi cùng nhau ở dạng một yêu cầu 2. Các yêu cầu, mục tiêu hệ thống và thông tin thiết kế có thể không được phân biệt rõ ràng 3. Dễ dẫn đến hiểu nhầm giữa người đọc và người viết 4. Cung cấp thông tin đầy đủ nhất cho người phát triển Bài 1.2 a) Bạn thử đưa ra một cấu trúc chung nhất cho tài liệu đặc tả yêu cầu. Trình bày ngắn gọn các lợi ích chính của tài liệu đặc tả yêu cầu? b) Bạn hãy tìm hiểu và mô tả các vấn đề gây ra các khó khăn trong thu thập yêu cầu? Bài 1.3 Trong ngữ cảnh của software engineering và kỹ nghệ yêu cầu phần mềm, hãy thảo luận nhóm và viết một đoạn ngắn bình luận về bức tranh vui dưới đây? Software Engineering Department - SoICT/HUST Trang 2 / 17
  3. Introduction to Software Engineering - Nhập môn Công nghệ phần mềm Phần II: Công cụ đặc tả yêu cầu phần mềm Bài 1.4 Hãy gọi tên các biểu đồ sau đây. Mỗi biểu đồ hướng về vấn đề gì trong đặc tả và phân tích yêu cầu phần mềm? Từng biểu đồ cho chúng ta biết những thông tin gì? Biểu đồ 1: Hệ thống bán hàng Chi tiết đơn đặt hàng và 1 Khách hàng mẫu HĐ trống Điền đơn hàng Đơn hàng đã được điền 2 Kiểm tra đơn hàng Đơn hàng đã được duyệt 3 Ghi đơn hàng 1 Đơn hàng 4 Điều chỉnh kho Đơn hàng đã được duyệt 5 2 Kho hàng Gửi nhà cung cấp Biểu đồ 2: Hệ thống đăng ký học trực tuyến Software Engineering Department - SoICT/HUST Trang 3 / 17
  4. Introduction to Software Engineering - Nhập môn Công nghệ phần mềm Biểu đồ 3: Hệ thống bán hàng Biểu đồ 4: Hệ thống đăng ký học trực tuyến Trả lời: Tên gọi loại Hướng về vấn đề Thông tin biểu đồ cung cấp biểu đồ Biểu đồ 1 Biểu đồ 2 Biểu đồ 3 Biểu đồ 4 Bài 1.5 Xây dựng biểu đồ luồng dữ liệu (DFD (data flow diagram)) trong đặc tả và phân tích yêu cầu phần mềm. Background: • Với sơ đồ phân rã chức năng BFD, chúng ta đã xem xét hệ thống thông tin theo quan điểm "chức năng" thuần túy. Để xem xét chi tiết hơn về các thông tin cần cho việc thực hiện các chức năng đã được nêu chúng ta sử dụng biểu đồ luồng Software Engineering Department - SoICT/HUST Trang 4 / 17
  5. Introduction to Software Engineering - Nhập môn Công nghệ phần mềm dữ liệu DFD. DFD để biểu diễn một cách linh hoạt các thực thể ngoài, các chức năng, luồng dữ liệu và các kho dữ liệu. • DFD là một trong những công cụ hữu hiệu của giai đoạn phân tích yêu cầu. DFD diễn tả hoạt động của hệ thống hiện hành (dựa trên xác định yêu cầu). • Việc xây dựng DFD theo các mức cấp bậc: o Sơ đồ ngữ cảnh (Context diagram): đầy là sơ đồ mức cao nhất. Nó cho ra một cái nhìn tổng quát về hệ thống trong môi trường nó đang tồn tại. Ở mức này, sơ đồ ngữ cảnh chỉ có một tiến trình duy nhất, các tác nhân và các luồng dữ liệu (không có kho dữ liệu). o Sơ đồ mức 0 là sơ đồ phân rã từ sơ đồ ngữ cảnh. Với mục đích mô tả hệ thống chi tiết hơn, sơ đồ mức 0 được phân rã từ sơ đồ ngữ cảnh với các tiến trình được trình bày chính là các mục chức năng chính của hệ thống. o Sơ đồ mức i (i >= 1) là sơ đồ được phân rã từ sơ đồ mức i-1. Mỗi sơ đồ phân rã mức sua chính là sự chi tiết hóa một tiến trình mức trước. Quá trình phân rã sẽ dừng khi đạt được sơ đồ luồng dữ liệu sơ cấp (khi một tiến trình là một tính toán hay thao tác dữ liệu đơn giản, khi mỗi luồng dữ liệu không cần chia nhỏ hơn nữa. • Mỗi biểu đồ DFD cũng đi kèm với các mô tả chi tiết về ý nghĩa các luồng dữ liệu và các bước thực hiện của chức năng xử lý. DFD cũng cung cấp thông tin về đầu ra và đầu vào của mỗi thực thể và chính quá trình. Cấu trúc tổng quát một thực thể có dạng như sau: Bài tập minh hoạ: Hệ thống thông tin quản lý thư viện • Sơ đồ DFD mức ngữ cảnh: Software Engineering Department - SoICT/HUST Trang 5 / 17
  6. Introduction to Software Engineering - Nhập môn Công nghệ phần mềm • Yêu cầu: xây dựng biểu đồ DFD cho yêu cầu chức năng Lập thẻ độc giả: bạn đọc phải đăng lý thẻ độc giả với thư viện thì mới có thể thực hiện mượn trả sách. Khi đăng ký bạn đọc cần điền vào một biểu mẫu như sau: Quy định: Tuổi của người đăng ký phải từ 18 tuổi trở lên và thẻ có giá trị hiệu lực trong vòng 12 tháng. Hướng dẫn: Xác định các thành phần: • Chức năng xử lý: Lập thẻ độc giả • Kho dữ liệu: Thông tin độc giả • Xây dựng sơ đồ và các mô tả chi tiết kèm theo Biểu đồ Mô tả Phần III: Đặc tả các yêu cầu cho bài toán (casestudy) với usecase Background: • Sơ đồ usecase (UML): Mô hình hóa các chức năng mà hệ thống sẽ thực thi. • Usecase là gì? o Use case là một trình tự hành động của hệ thống thực hiện nhằm thu được một kết quả dễ thấy tới một tác nhân nào đó. o Một use case mô hình hóa một hội thoại giữa một hoặc nhiều tác nhân với hệ thống Software Engineering Department - SoICT/HUST Trang 6 / 17
  7. Introduction to Software Engineering - Nhập môn Công nghệ phần mềm o Một use case mô tả hành động của hệ thống thực hiện nhằm mang đến một giá trị nào đó cho tác nhân • Mô hình usecase (usecase model) gồm các thành phần sau: Mô hình usecase Các thành phần o Các biểu đồ ca sử dụng (usecase diagram): biểu diễn trực quan bức tranh tổng thể về hệ thống định xây dựng o Phần mô tả bằng lời các kịch bản usecase (đặc tả usecase – usecase specification): mô tả chi tiết trình tự tương tác giữa các tác nhân và hệ thống trong kịch bản usecase. Có thể sử dụng kết hợp thêm các biểu đồ: Ø Biểu đồ tuần tự Ø Biểu đồ tương tác o Đặc tả phụ trợ (Supplementary specification): các đặc tả bổ sung về các yêu cầu phần mềm mà các đặc tả usecase chưa mô tả. Ví dụ: các yêu cầu chung cho các chức năng, các yêu cầu phi chức năng o Bảng chú giải (Glossary): danh sách các từ vựng / thuật ngữ và giải nghĩa kèm theo • Biểu đồ usecase (usecase diagram) gồm các thành phần sau: Biểu đồ usecase Các thành phần o Một đường bao (System boundary): thể hiện ranh giới giữa bên trong và bên ngoài hệ thống. o Tác nhân (Actor): Một tác nhân là một người hoặc một vật thể có tương tác với hệ thống. Có trao đổi thông tin với hệ thống, hay hưởng lợi từ hệ thống và phải có sự tự trị trong quyết định. Tác nhân mô tả một thực thể tham gia tương tác với vai trò cụ thể. Ø Tác nhân có thể là: người với vai trò xác định, các thiết bị, các hệ Software Engineering Department - SoICT/HUST Trang 7 / 17
  8. Introduction to Software Engineering - Nhập môn Công nghệ phần mềm thống khác tương tác với hệ thống đang xét o Usecase: tập hợp chuỗi hành động dẫn đến một kết quả cụ thể. o Các quan hệ (relationship): Phân loại: Ø Quan hệ kết hợp (asociation) : Quan hệ kết hợp cho biết tác nhân nào tham gia vào ca sử dụng nào. Biểu diễn bằng đường thẳng nối giữa tác nhân và ca sử dụng (có thể sử dụng mũi tên để nhấn mạnh vào hướng của ca sử dụng) Ø Quan hệ tổng quát hóa (generalization) : Tác nhân hoặc usecase con kế thừa tính chất và hành vi của tác nhân hoặc usecase cha Ø Quan hệ bao gồm (include): Quan hệ «include» biểu diễn một UC chứa hành vi định nghĩa trong một UC khác (luôn luôn gọi đến) Ø Quan hệ mở rộng (extend): một UC tùy ý mở rộng chức năng do UC khác cung cấp. Chỉ chèn khi điều kiện extend là đúng tại điểm phát sinh (extension point) Yêu cầu: Đặc tả các yêu cầu cho bài toán (casestudy) với nhóm chức năng đã chọn. Phần nội dung này các nhóm làm vào trong file .docx (báo cáo) Hướng dẫn: - Bước 1: Phân tích các yêu cầu chức năng của hệ thống: + Xác định các tác nhân của hệ thống: + Trả lời các câu hỏi sau để xác định Actor cho hệ thống: Ai sử dụng hệ thống này? Ai cung cấp thông tin cho các hoạt động của hệ thống? Ai nhận kết quả từ các chức năng của hệ thống? Nhóm người nào sẽ duy trì và quản trị hệ thống hoạt động? Software Engineering Department - SoICT/HUST Trang 8 / 17
  9. Introduction to Software Engineering - Nhập môn Công nghệ phần mềm Hệ thống có tương tác với các thiết bị hay phần mềm ngoại vi nào khác hay không? Hệ thống nào tương tác với hệ thống này? Các thiết bị có tương tác với hệ thống này? + Lập bảng liệt kê các tác nhân và mô tả thông tin cho các tác nhân: STT Tên tác nhân Mô tả tác nhân 1 2 3 4 + Xác định quan hệ giữa các tác nhân. + Xác định các ca sử dụng + Với từng tác nhân đã xác định ở trên, đặt và trả lời các câu hỏi: Các tác nhân yêu cầu những gì từ hệ thống Các công việc chính mà tác nhân đó muốn hệ thống thực thi? Tác nhân đó có tạo ra hay thay đổi dữ liệu gì của hệ thống? Tác nhân đó có phải thông báo gì cho hệ thống? Tác nhân đó có cần thông tin thông báo gì từ hệ thống? + Chúng ta sẽ xác định được các Use Case cần thiết cho hệ thống. Nếu có nhiều usecase thì nên đặt mã để tham chiếu dễ dàng trong các phần sau của tài liệu. STT Mã usecase Tên usecase Mô tả Usecase Tác nhân Độ phức tương tác tạp 1 2 3 4 5 + Xác định các quan hệ Phân tích và các định các quan loại hệ giữa các Actor và Use Case, giữa các Actor với nhau, giữa các Use Case với nhau. - Bước 2: Xây dựng biểu đồ ca sử dụng với công cụ Astah UML + Biểu diễn các tác nhân: Software Engineering Department - SoICT/HUST Trang 9 / 17
  10. Introduction to Software Engineering - Nhập môn Công nghệ phần mềm + Tạo một Actor bằng cách chọn nó trên bảng công cụ: + Biểu diễn các usecase: + Các quan hệ giữa usecase: extend / include + Chọn trên công cụ quan hệ phù hợp: + Hoặc thực hiện kéo từ usecase này đến usecase khác. + Với quan hệ extend à có thể thiết lập điểm mở rộng (Extension Points): + Thêm điểm mở rộng vào usecase: + Một số thiết lập khác: hiển thị tên UseCase bên ngoài Software Engineering Department - SoICT/HUST Trang 10 / 17
  11. Introduction to Software Engineering - Nhập môn Công nghệ phần mềm + Kết quả hiển thị: Với các usecase lớn có thể xây dựng biểu đồ usecase tổng quát và các biểu đồ usecase phân rã mức thấp hơn. Ví dụ minh hoạ: • Với nhóm chức năng số 1: "1. Quản lý thông tin hộ khẩu, nhân khẩu" • Tác nhân: “Quản lý tổ dân phố”, hai tác nhân con thể hiện hai vai trò “Tổ trưởng” và “Tổ phó” • Các usecase tổng quát: o Đăng nhập / đăng xuất, các usecase khác được thực hiện với điều kiện usecase “Đăng nhập” thực hiện thành công o Quản lý thông tin sổ hộ khẩu o Quản lý thông tin nhân khẩu o Thống kê thông tin nhân khẩu o Tìm kiếm thông tin, usecase tìm kiếm có thể được gọi đến khi tác nhân thực hiện các usecase quản lý khác • Xây dựng biểu đồ usecase tổng quát cho nhóm chức năng số 1: "1. Quản lý thông tin hộ khẩu, nhân khẩu" Software Engineering Department - SoICT/HUST Trang 11 / 17
  12. Introduction to Software Engineering - Nhập môn Công nghệ phần mềm • Biểu đồ usecase phân rã cho “Quản lý thông tin sổ hộ khẩu” • Tương tự với biểu đồ usecase phân rã cho “Quản lý thông tin nhân khẩu” Software Engineering Department - SoICT/HUST Trang 12 / 17
  13. Introduction to Software Engineering - Nhập môn Công nghệ phần mềm • Biểu đồ usecase phân rã cho “Thống kê thông tin nhân khẩu” - Bước 3: Đặc tả ca sử dụng + Miêu tả tất cả các vấn đề liên quan đến một ca sử dụng. Dùng làm cơ sở cho các định hướng phân tích, thiết kế, mã hóa, kiểm thử theo hướng ca sử dụng ở các công đoạn tiếp theo. + Các thành phần gồm có: Software Engineering Department - SoICT/HUST Trang 13 / 17
  14. Introduction to Software Engineering - Nhập môn Công nghệ phần mềm + Thực hiện đặc tả ca sử dụng theo mẫu sau: Đặc tả use case UC001 “Đăng nhập” Mã Use case UC001 Tên Use case Đăng nhập Tác nhân Quản lý tổ dân phố Mô tả Cho phép một người dùng có tài khoản truy cập vào hệ thống Tiền điều kiện Không Luồng sự kiện chính STT Thực hiện bởi Hành động (Thành công) 1. Quản lý tổ dân chọn chức năng Đăng nhập phố 2. Hệ thống hiển thị giao diện đăng nhập 3. Quản lý tổ dân nhập username và mật khẩu (mô tả phía dưới *) phố 4. Quản lý tổ dân yêu cầu đăng nhập phố 5. Hệ thống kiểm tra xem tác nhân đã nhập các trường bắt buộc nhập hay chưa 6. Hệ thống kiểm tra username và mật khẩu có hợp lệ do tác nhân nhập trong hệ thống hay không 7. Hệ thống tạo giao diện màn hình chính Luồng sự kiện thay STT Thực hiện bởi Hành động thế 6a. Hệ thống thông báo lỗi: Cần nhập các trường bắt buộc nhập nếu người dùng nhập thiếu 7a. Hệ thống thông báo lỗi: username và/hoặc mật khẩu chưa đúng nếu không tìm thấy username và mật khẩu trong hệ thống Software Engineering Department - SoICT/HUST Trang 14 / 17
  15. Introduction to Software Engineering - Nhập môn Công nghệ phần mềm Hậu điều kiện Không * Dữ liệu đầu vào của thông tin cá nhân gồm các trường dữ liệu sau: Trường STT Mô tả Bắt buộc? Điều kiện hợp lệ Ví dụ dữ liệu 1. Username Có hung 2. Mật khẩu Có ToiLa12#$ Đặc tả use case UC002 “Tạo mới sổ hộ khẩu” Mã Use case UC002 Tên Use case Tạo mới sổ hộ khẩu Tác nhân Quản lý tổ dân phố Mô tả Cho phép một người dùng đã đăng nhập tạo ra một sổ hộ khẩu mới Tiền điều kiện Tác nhân đã đăng nhập thành công Luồng sự kiện chính STT Thực hiện bởi Hành động (Thành công) 1. Quản lý tổ dân Nhấn nút tạo mới hộ khẩu phố 2. Hệ thống hiển thị giao diện tạo mới hộ khẩu 3. Quản lý tổ dân nhập thông tin đầy đủ (thông tin về chủ hộ và các phố thành viên) (mô tả phía dưới *) 4. Quản lý tổ dân nhấn nút xác nhận phố 5. Hệ thống kiểm tra xem tác nhân đã nhập các trường bắt buộc nhập hay chưa 6. Hệ thống kiểm tra số hộ khẩu có hợp lệ do tác nhân nhập trong hệ thống hay không (số hộ khẩu không được trùng với hộ khẩu đã có) 7. Hệ thống Gọi usecase “Thêm nhân khẩu vào hộ khẩu” và thiết lập thông tin chủ hộ Luồng sự kiện thay STT Thực hiện bởi Hành động thế 6a. Hệ thống thông báo lỗi: Cần nhập các trường bắt buộc nhập nếu người dùng nhập thiếu 7a. Hệ thống thông báo lỗi: số hộ khẩu không hợp lệ Hậu điều kiện Thông tin sổ hộ khẩu mới được lưu vào cơ sở dữ liệu * Dữ liệu đầu vào của thông tin cá nhân gồm các trường dữ liệu sau: Software Engineering Department - SoICT/HUST Trang 15 / 17
  16. Introduction to Software Engineering - Nhập môn Công nghệ phần mềm Trường STT Mô tả Bắt buộc? Điều kiện hợp lệ Ví dụ dữ liệu 1. Số hộ khẩu Có TQB002 2. Khu vực Không HN03 3. Địa chỉ Không 4. Ngày lập Không 5. Chủ hộ Không Chủ hộ có thể thiết lập sau - Bước 4: Đặc tả các yêu cầu phi chức năng và lập bảng chú giải các từ vựng / thuật ngữ + Các yêu cầu phi chức năng và chức năng không được đưa ra trong bất kỳ use case cụ thể nào Ø Chức năng (Functionality): Các yêu cầu chức năng tổng quan cho tất cả các use case Ø Khả năng sử dụng (Usability): Ví dụ: các yêu cầu về khả năng sử dụng dễ dàng hoặc yêu cầu về đào tạo người dùng. Ø Độ tin cậy (Reliability): Các độ đo định lượng như thời gian trung bình giữa các lần gặp sự cố hoặc lỗi trên nghìn dòng mã Ø Hiệu năng (Performance): Bao gồm thời gian đáp ứng, số lượng người sử dụng đồng thời, Ø Khả năng hỗ trợ (Supportability): Các yêu cầu nhằm tăng cường khả năng hỗ trợ hoặc khả năng bảo trì của hệ thống Ø Các ràng buộc thiết kế (Design constraints) Ø Ví dụ minh hoạ: Chức năng - Hỗ trợ nhiều người dùng làm việc đồng thời. - Nếu một lớp bị hết chỗ khi một sinh viên đang đăng ký học của lớp đó thì sinh viên này phải được thông báo. Tính dễ dùng - Giao diện nguời dùng tương thích Windows 7/ Window 10. Thân thiện. Tính ổn định - Hệ thống phải hoạt động liên tục 24 giờ/ngày, 7 ngày/tuần, với thời gian ngừng hoạt động không quá 10%. Hiệu suất - Hệ thống phải hỗ trợ đến 2000 người dùng truy xuất CSDL trung tâm đồng thời bất kỳ lúc nào, và đến 500 người dùng truy xuất các server cục bộ. - Hệ thống phải truy xuất đến CSDL danh mục học phần cũ với độ trễ không quá 10 giây. Software Engineering Department - SoICT/HUST Trang 16 / 17
  17. Introduction to Software Engineering - Nhập môn Công nghệ phần mềm - Hệ thống phải có khả năng hoàn tất 80% giao dịch trong vòng 2 phút. Sự hỗ trợ - Không có. Các ràng buộc thiết kế - Hệ thống tích hợp với Hệ thống danh mục học phần có sẵn, một CSDL RDBMS. - Hệ thống phải cung cấp giao diện dựa Web. Nội dung bài tập tự làm Hoàn thành Đặc tả các yêu cầu cho bài toán (casestudy) với usecase Các nhóm chuẩn bị thêm một slide powerpoint về nội dung Đặc tả các yêu cầu ở trên, buổi học tiếp theo sẽ trình bày. HẾT Software Engineering Department - SoICT/HUST Trang 17 / 17