Bài giảng Phân tích thiết kế hệ thống thông tin - Chương 5: Mô hình hóa chức năng sử dụng use case

Nội dung

1. Mô hình hóa chức năng

2. Biểu đồ use case

3. Đặc tả use case

4. Biểu đồ activity

5. Case study

Mô hình hóa chức năng

• Bức tranh PTKTHTTT

• Mục đích

• Mô hình hóa chức năng

pdf17 trang | Chia sẻ: Thục Anh | Ngày: 12/05/2022 | Lượt xem: 441 | Lượt tải: 0download
Nội dung tài liệu Bài giảng Phân tích thiết kế hệ thống thông tin - Chương 5: Mô hình hóa chức năng sử dụng use case, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
1 PHÂN TÍCH THIẾT KẾ HỆ THỐNG THÔNG TIN 1 Chương 5. Mô hình hóa chức năng sử dụng use case Nội dung 1. Mô hình hóa chức năng 2. Biểu đồ use case 3. Đặc tả use case 4. Biểu đồ activity 5. Case study 2 Mô hình hóa chức năng • Bức tranh PTKTHTTT • Mục đích • Mô hình hóa chức năng 3 1.1. Bức tranh PTKTHT 4 2 Bức tranh PTKTHT (2) 5 1.2. Mục đích • Thiết lập và duy trì sự thoả thuận giữa khách hàng và người tham gia dự án về việc hệ thống sẽ làm được những gì • Không nói làm như thế nào để đạt được điều đó • Giúp cho những người phát triển hệ thống một sự hiểu biết rõ hơn về những yêu cầu của hệ thống • Đưa ra những giới hạn mà hệ thống sẽ thực hiện và KHÔNG thực hiện • Cung cấp các thông tin cơ bản để lập kế hoạch phát triển dự án 6 1.2. Mục đích (2) • Cung cấp những cơ sở để ước lượng giá thành và thời gian để phát triển hệ thống • Nắm bắt được những yêu cầu và mục đích của người sử dụng 7 1.2. Mục đích (3) 8 3 1.3. Mô hình hóa chức năng • Mô hình hóa các chức năng mà hệ thống sẽ thực thi • Mô hình bao gồm các chức năng định trước của hệ thống • Sử dụng khái niệm Use Case 9 1.3. Mô hình hóa yêu cầu (3) Các thành phần chính: 10 Nội dung 1. Mô hình hóa yêu cầu 2. Biểu đồ use case 3. Đặc tả use case 4. Biểu đồ activity 5. Case study 11 Biểu đồ Use-Case 12 4 2.1. Actor và use case • Tác nhân (actor) biểu diễn bất cứ thứ gì tương tác với hệ thống. • Use case (Chức năng) • Mô tả chức năng mà hệ thống có • Mục đích là để PHÂN TÍCH yêu cầu nghiệp vụ của bài toán chứ không phải để THIẾT KẾ phần mềm 13 Actor Use Case 2.1.1. Tác nhân 14 Tác nhân biểu diễn các vai trò của một người dùng trong hệ thống  Có thể là người, máy móc hoặc hệ thống khác mà chúng ta không phải xây dựng Ví dụ như các thiết bị ngoại vi, thậm chí là database  Có thể chủ động trao đổi thông tin với hệ thống Có thể là người đưa thông tin vào hệ thống Có thể là người nhận thông tin.  Không phải là một phần của hệ thống Actors are EXTERNAL. Actor Tìm kiếm tác nhân của hệ thống • Đặt các câu hỏi sau để tìm ra tác nhân: – Nhóm người nào yêu cầu hệ thống làm việc giúp họ? – Nhóm người nào kích hoạt 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? – 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? • Thông tin về tác nhân: – Tên tác nhân phải mô tả vai trò của tác nhân đó một cách rõ ràng – Tên nên là danh từ – Cần mô tả khái quát khả năng của tác nhân đó 15 Ví dụ về tác nhân • Tác nhân trao đổi thông tin với hệ thống: • Gửi thông tin tới hệ thống • Nhận thông tin từ hệ thống 16 Tác nhân KHÔNG phải là một phần của hệ thống!!! Tác nhân có thể là: • Người dùng, • Thiết bị phần cứng • Hệ thống phần mềm khác 5 2.1.2. Use case 17 Mượn sách Mỗi Use-Case biểu diễn cho một chức năng của hệ thống Use-Case là một chuỗi bao gồm nhiều hành động Mỗi Use-Case có thể mở rộng (extext) thành nhiều Use- Case khác Mỗi Use-Case có thể bao hàm (include) nhiều Use-Case khác Use-Case được đặt bên trong phạm vi hệ thống Ký hiệu: hình elip + tên Use-Case (động từ) Use Case Tìm use case của hệ thống • Xem các yêu cầu chức năng để tìm ra các UC • Đối với mỗi tác nhân tìm được, đặt 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 HT thực thi? – Tác nhân đó có tạo ra hay thay đổi dữ liệu gì của HT? – Tác nhân đó có phải thông báo gì cho HT? – Tác nhân đó có cần thông tin thông báo gì từ HT? • Thông tin về use case: – Tên của UC nên chỉ rõ kết quả của quá trình tương tác với tác nhân – Tên nên là động từ – Mô tả ngắn gọn về mục đích của UC 18 Những điều nên tránh khi tạo UC • Tạo ra các UC quá nhỏ • Hành động quá đơn giản mà chỉ cần mô tả bởi vài dòng • Tạo ra quá nhiều Use case (hàng chục) • Nhóm các Use case liên quan thành một Use case tổng quát (mức 1) • Mô tả các Use Case tổng quát ở một sơ đồ khác (mức 2) • Ví dụ: “Quản lý sách” bao gồm “Nhập sách”, “Xuất sách”, “” • Sử dụng các Use-case quá cụ thể, hoặc làm việc với dữ liệu quá cụ thể. Ví dụ: • “Tìm sách theo tên” (nên là “Tìm sách”) • “Nhập Pin vào máy ATM” (nên là “Nhập PIN”) • “Thêm sách” (nên là “Quản lý sách” bao gồm “Thêm sách”) 19 Ví dụ: Xác định tác nhân và Use Case Nguyễn Thị Thu Trang, SE-FIT-HUT 20 6 Ví dụ: Xác định tác nhân và Use Case 21 Phân loại tác nhân 22 Xác định Use Case 23 Xác định Use Case 24 7 2.2. Mối liên hệ (relationship) • Mối liên hệ giữa các actor với nhau • Khái quát hóa (Generalization) • Mối liên hệ giữa actor và use case • Giao tiếp • Mối liên hệ giữa các use case với nhau • Generalization: Khái quát hóa • Include: Bao hàm • Extend: Mở rộng 25 2.2.1. Mối liên hệ giữa các actor với nhau • Khái quát hóa (Generalization) • Tác nhân con kế thừa tính chất và hành vi của tác nhân cha 26 2.2.2. Mối liên hệ giữa actor với use case • Thiết lập quan hệ giữa Tác nhân và Use Case • Chúng tương tác bằng cách gửi các tín hiệu cho nhau • Một use case mô hình hóa một hội thoại giữa các tác nhân và hệ thống • Một use case được bắt đầu bởi một tác nhân để gọi một chức năng nào đó trong hệ thống. 27 Actor Association Use Case 2.2.2. Mối liên hệ giữa actor với use case (2) Chiều của quan hệ chính là chiều của tín hiệu gửi đi • Từ tác nhân tới Use Case • Kích hoạt Use case • Hỏi thông tin nào đó trong hệ thống • Thay đổi thông tin nào đó trong hệ thống • Thông báo cho UC về một sự kiện đặt biệt nào đó xảy ra với hệ thống • Từ Use Case tới tác nhân: • Nếu như có một điều gì đó xảy ra với HT và tác nhân đó cần được biết sự kiện đó • UC đôi khi cần hỏi thông tin nào đó từ một tác nhân trước khi UC đó đưa ra một quyết định 28 8 2.2.3. Mối liên hệ giữa các use case với nhau • Generalization • > • always use • > • sometime use 29 Quan hệ generalization • Được sử dụng để chỉ ra một vài tính chất chung của một nhóm tác nhân hoặc UC • Sử dụng khái niệm kế thừa • Mô tả hành vi chung (chia sẻ) trong UC cha • Mô tả hành vi riêng trong (các) UC con 30 > • Cho phép một UC sử dụng chức năng của UC khác • Chức năng của UC Inclusion sẽ bắt buộc được gọi trong UC Base • Sử dụng stereotype là > 32 > • Cho phép mở rộng chức năng của một UC • Chèn hành vi của UC Extension vào UC Base • Chỉ chèn khi điều kiện extend đúng (mở rộng, phát sinh) (Khi thực hiện thực hiện UC Base thì thực hiện UC extension ở một số tình huống nào đó, chứ không bắt buộc) • Chèn vào lớp cơ sở tại điểm phát sinh (extension point) • Sử dụng stereotype là > 34 9 Biểu đồ Use Case • Biểu đồ use case (use case diagram) • Là tập hợp các actor và các use case lại; bổ sung các mối liên quan (association) giữa chúng và lập thành biểu đồ use case 35 Nội dung 1. Mô hình hóa yêu cầu 2. Biểu đồ use case 3. Đặc tả use case 4. Biểu đồ activity 5. Case study 37 Đặc tả use case • Đặc tả use case là gì? • Mẫu đặc tả use case • Ví dụ minh họa từ các case study 38 Đặc tả Use Case • Kết thúc quá trình mô hình hóa yêu cầu phải đặc tả lại tất cả Use-case của hệ thống • Mỗi Use-Case cần những thông tin • Tên • Tên của Use case • Mô tả ngắn gọn: • Mô tả về vai trò và mục đích của use case, tránh kiểu diễn xuôi tên Use Case • Ràng buộc (điều kiện) • Tiền điều kiện • Hậu điều kiện • Luồng sự kiện (kịch bản): • Mô tả bằng lời những gì mà hệ thống sẽ làm thể hiện trên use-case, luồng sự kiện chính, luồng sự kiện con, luồng sự kiện ngoại lệ. • Biểu đồ hoạt động • Minh họa luồng sự kiện bằng mô hình • Các yêu cầu đặc biệt 39 10 Luồng sự kiện của use-case • Trả lời được quá trình từ khi bắt đầu đến khi kết thúc của một use-case • Chỉ mô tả chi tiết các sự kiện thuộc use-case đó • Nếu có sự liên hệ với Use Case khác, nên có sự phân tích và tham khảo ngắn gọn • Mô tả dữ liệu được trao đổi giữa tác nhân và use-case đó • Cấu trúc: Ai làm gì, khi nào, với dữ liệu gì, [vì mục đích gì] • Cần phân tích rõ hệ thống cần phải làm gì để đáp ứng được yêu cầu của tác nhân đó. Không được mặc định cho rằng hệ thống tự biết làm điều đó • Tránh mô tả chức năng hoặc GUI (Graphic User Interface) • Tránh mô tả chung chung, hoặc lúc nào cũng đúng 40 Luồng sự kiện của use-case (2) • Luồng chính (Basic flow) • Luồng lý tưởng mà Use case thường hoạt động • Luồng phát sinh (Alternative flow) • Sử dụng nhiều lần trong luồng chính • Các trường hợp đặc biệt (vd nhấn mạnh một tính năng của HT) • Gây ra lỗi, cách xử lý lỗi trong tình huống đó • Chú ý • Chỉ cần luồng chính là có thể hiểu được tác vụ chính mà Use Case đó sẽ thực thi • Phải có lời gọi luồng phát sinh từ luồng chính • Tránh viết luồng phát sinh dài hơn luồng chính • Tránh viết luồng phát sinh quá dài • Tránh tách quá nhiều luồng phát sinh 41 Luồng sự kiện của use-case (3) • Kịch bản là một thể hiện của UC đó • Một Use Case có nhiều kịch bản tùy thuộc vào ngữ cảnh cụ thể mà nó phát sinh 42 Ví dụ UC Rút tiền 1. Gọi UC “Xác thực KH” 2. Hiển thị menu. 3. KH chọn chức năng “Rút tiền” 4. ... UC Xác thực KH 1. Đưa thẻ vào máy 2. Kiểm tra thẻ 3. KH nhập PIN 4. Hệ thống kiểm tra PIN E1: Thẻ sai E2: Sai PIN E3: ... 43 11 Ví dụ đặc tả UC Rút tiền mặt • Luồng chính: 1.Gọi UC “Xác thực KH” để ktra KH 2.Hiển thị menu 3.KH chọn chức năng “Rút tiền” 4.Nhập số tiền cần rút 5.HT gửi giao dịch tới ngân hàng chờ chấp thuận 6.Máy ATM xuất tiền (tiền giấy) 7.Trả lại thẻ 8.In biên lai • Luồng phát sinh: • Luồng phát sinh “Rút tiền xu” phát sinh tại bước 6 trong luồng chính • (Có thể có luồng phát sinh khác như Hết tiền) • Luồng phát sinh Rút tiền xu: (Phần này có thể viết chung với UC Rút tiền, hoặc có thể viết riêng như một UC nếu nó tương đối phức tạp) 1. Nếu KH chọn thể loại tiền xu 2. KH nhập số lượng xu 3. Hệ thống tính ra tổng số tiền cần rút 4. KH chấp nhận 5. Khay tiền xu mở để xuất tiền 6. UC Rút tiền tiếp tục thực hiện 44 45 Tên Use-case: ID: Mức quan trọng: Tác nhân chính: Loại Use-case: Người liên quan và công việc quan tâm: Mô tả tóm tắt: Ràng buộc: Loại: Các mối quan hệ: 1. Kết hợp 2. Bao hàm 3. Mở rộng 4. Tổng quát hóa Các dòng sự kiện tổng quát chính: /*mô tả các dòng sự kiện chính*/ 1. Hoạt động 1: 2. Hoạt động 2: /*hoạt động cho nhiều trường hợp xử lý*/ nếu đúng thì thực hiện S-1: thực hiện công việc /*TH1*/ nếu đúng thì thực hiện S-2: thực hiện công việc /*TH2*/ 3. Hoạt động 3: . n. Hoạt động n: Các dòng sự kiện chi tiết chính: /*mô tả các hoạt động chi tiết cho các trường hợp trên*/ S-1: Thực hiện công việc A /*mô tả cho trường hợp 1 TH1*/ 1. Hoạt động 1 2 3. Hoạt động n S-2: Thực hiện công việc B /*mô tả cho trường hợp 2 TH2*/ 1. Hoạt động 1 2 3. Hoạt động n Các dòng sự kiện ngoại lệ: /*mô tả các dòng sự kiện xử lý ngoại lệ cho các dòng sự kiện chính hoặc các dòng sự kiện con*/ 1.a. Hoạt động ngoại lệ cho hoạt động 1 3.a. Hoạt động ngoại lệ cho hoạt động 3 S-1 2.a. Hoạt động ngoại lệ cho hoạt động 2 trong S-1 46 Tên Use-case: Đặng nhập ID: 1 Mức quan trọng: cao Tác nhân chính: người dùng Loại Use-case: chi tiết cần thiết Người liên quan và công việc quan tâm: người dùng muốn đăng nhập vào ht để thực hiện một thao tác trên HT Mô tả tóm tắt: Use-Case này mô tả xử lý đăng nhập vào HT của một người dùng Ràng buộc: Người dùng chọn chức năng đăng nhập từ trang chủ của HT Loại: Bên ngoài Các mối quan hệ: 1. Kết hợp: Người dùng 2. Bao hàm: không có 3. Mở rộng: không có 4. Tổng quát hóa: không có Các dòng sự kiện chính: /*mô tả các dòng sự kiện chính*/ 1. Hệ thống hiển thị trên màn hình đăng nhập 2. Người dùng chọn chức năng: /*hoạt động cho nhiều trường hợp xử lý*/ nếu người dùng nhập thông tin đăng nhập thực hiện S-1: xử lý đăng nhập nếu người dùng chọn quên mật khẩu thực hiện S-2: xử lý quên mật khẩu 3. hệ thống hiển thị màn hình thông báo kết quả cho giao tác liên quan đến người dùng Các dòng sự kiện con: /*mô tả các hoạt động chi tiết cho các trường hợp trên*/ S-1: Xử lý đăng nhập 1. kiểm tra thông tin tài khoản 2. Hiển thị màn hình thông báo đăng nhập thành công S-2: Xử lý quên mật khẩu: 1. HT hiển thị màn hình để người dùng nhập Email 2. Người dùng nhập email và chọn nút chức năng lấy lại mật khẩu 3. HT kiểm tra email hợp lệ 4. Gởi liên kết để tạo lại mật khẩu mới 5. Gởi email thông báo đã tạo mới mật khẩu Các dòng sự kiện ngoại lệ: /*mô tả các dòng sự kiện xử lý ngoại lệ cho các dòng sự kiện chính hoặc các dòng sự kiện con*/ S-1 2a. Xử lý nhập mật khẩu sai 1. Hệ thống hiển thị lại màn hình đăng nhập để khách hàng nhập thông tin. 2. Quy lại bước 1 trong luồng sự kiện S-1 S-2.3a. Xử lý nhập email không hợp lệ 1. Hiển thị thông báo lỗi và yêu cầu nhập lại email 2. Quay lại bước 3 trong S-2 Biểu đồ hoạt động • Biểu đồ hoạt động trong mô hình use case được sử dụng để lưu lại các hoạt động và các hành động được thực hiện trong một use case  Minh họa luồng sự kiện • Biểu đồ luồng (flow chart): Chỉ ra luồng điều khiển từ hoạt động hoặc hành động này đến hoạt động/hành động khác. 47 Flow of Events This use case starts when the Registrar requests that the system close registration. 1. The system checks to see if registration is in progress. If it is, then a message is displayed to the Registrar and the use case terminates. The Close Registration processing cannot be performed if registration is in progress. 2. For each course offering, the system checks if a professor has signed up to teach the course offering and at least three students have registered. If so, the system commits the course offering for each schedule that contains it. Activity 1 Activity 3 Activity 2 12 Biểu đồ hoạt động (2) • Hoạt động • Đặc tả cho hành vi được diễn tả như một luồng thực thi thông qua sự sắp xếp thứ tự của các đơn vị nhỏ hơn. • Các đơn vị nhỏ hơn bao gồm các hoạt động lồng nhau và các hành động riêng lẻ cơ bản • Có thể chứa các ràng buộc biểu thức logic khi hoạt động được gọi hoặc kết thúc 48 Biểu đồ hoạt động 49 Biểu đồ hoạt động 50 Biểu đồ hoạt động 51 13 Biểu đồ hoạt động • Được sử dụng để minh hoạ luồng sự kiện 53 54 55 56 14 Case study – Course Registration • Actor? • Use case? • Relationship? 60 Mô hình hóa nghiệp vụ • Xác định được phạm vi, hệ thống, trực quan hóa hệ thống phức tạp • Nắm bắt các yêu cầu nghiệp vụ, biểu diễn các quy trình nghiệp vụ • Biểu diễn sự thay đổi, cải tiến quy trình đã tồn tại, hoặc xây dựng quy trình mới, hoặc nâng cấp môi trường, 61 Hệ thống Mô hình hóa Các bước mô hình hóa nghiệp vụ • Đánh giá hiện trạng tổ chức • Mục đích: • Đánh giá và nắm bắt thông tin về tổ chức. • Xác định các đối tượng liên quan (stakerholder) và khách hàng của hệ thống. • Định nghĩa phạm vị của việc mô hình hóa nghiệp vụ. • Xác định những tiềm năng cải tiến và các mục tiêu mới của tổ chức. • Mô tả những mục tiêu chính của tổ chức. 62 Các bước mô hình hóa nghiệp vụ • Đánh giá hiện trạng tổ chức • Nắm bắt thông tin về tổ chức: • Cơ cấu tổ chức, phân cấp và các vai trò trong hệ thống. • Mô tả ngắn gọn các thành phần và mối quan hệ này thông qua sơ đồ tổ chức 63 Tổ văn phòng Tổ bảo vệ Tổ thu ngân Tổ mặt hàng Tổ tin học Sơ đồ tổ chức của siêu thị 15 Các bước mô hình hóa nghiệp vụ • Đánh giá hiện trạng tổ chức 64 Mô tả Tổ văn phòng Gồm 1 Giám Đốc và 2 phó Giám Đốc có nhiệm vụ điều phối toàn bộ hoạt động của siêu thị. Tổ phải nắm được tình hình mua bán, doanh thu của siêu thị để báo cáo lại cho ban GĐ. Việc báo cáo thực hiện hàng tháng, hàng quý hoặc cũng có khi báo cáo đột xuất theo yêu cầu Tổ bảo vệ Kiểm tra và bảo vệ an ninh của siêu thị, ghi nhận hàng hóa đổi lại của khách hàng Tổ thu ngân Thực hiện việc bán hàng và lập hóa đơn cho khách hàng, đồng thời ghi nhận lại số hàng hóa bán được của mỗi loại để báo cáo cho tổ quản lý sau mỗi ca làm việc Tổ mặt hàng Kiểm tra chất lượng hàng hóa và nắm tình trạng hàng hóa của siêu thị, đảm bảo hàng hóa luôn ở trong tình trạng tốt nhất khi đến tay khách hàng. Khi phát hiện hàng hư hỏng phải kịp thời báo cáo cho tổ văn phòng để có biện pháp giải quyết và điều phối hàng Tổ tin học Thực hiện việc thu thập, kết xuất các báo cáo cần thiết phục vụ cho tổ văn phòng Các bước mô hình hóa nghiệp vụ • Đánh giá hiện trạng tổ chức • Nắm bắt và phân tích các yêu tố sau: • Hỗ trợ ra quyết định • Ưu thế cạnh tranh • Hoàn vốn đầu tư, chỉ ra lợi kinh tế rõ ràng • Giảm chi phí • Hỗ trợ cho việc quản lý nghiệp vụ. • Khả năng thực hiện công việc phải nhanh hơn và tốt hơn. 65 Các bước mô hình hóa nghiệp vụ • Đánh giá hiện trạng tổ chức • Xác định các đối tượng liên quan và khách hàng • Đối tượng liên quanL là những người chịu ảnh hưởng trực tiếp từ các tác động của hệ thống. • Khách hàng: người dùng hệ thống, có thể những người liên quan • Mô tả nhu cầu của đối tượng liên quan 66 Các bước mô hình hóa nghiệp vụ • Đánh giá hiện trạng tổ chức • Ví dụ: xác định các đối tượng liên quan và khách hàng trong hệ thống siêu thị 67 Tên Đại diện Vai trò Người quản lý Giám đốc, người quản lý siêu thị Theo dõi tiến trình phát triển của dự án và theo dõi tình hình hoạt động của siêu thị Nhân viên bán hàng Người nhập thông tin trong hệ thống Chịu trách nhiệm trong khâu bán hàng ở siêu thị, duy trì hoạt động của siêu thị Tên Mô tả Đối tượng liên quan Người quản lý Đáp ứng các nhu cầu quản lý siêu thị như hàng hóa, khách hàng, doanh số. Người quản lý Nhân viên bán hàng Đảm bảo rằng hệ thống sẽ đáp ứng các nhu cầu của công việc bán hàng Nhân viên bán hàng Khách hàng Đáp ứng nhu cầu tra cứu thông tin về hàng hóa có trong siêu thị 16 Các bước mô hình hóa nghiệp vụ • Đánh giá hiện trạng tổ chức • Giới hạn hệ thống phát triển • Xác định ranh giới phát triển hệ thống bằng cách • Chỉ ra những thực thể nằm ngoài hệ thống • Chỉ ra những thực thể bên trong tổ chức như nằm ngoài hệ thống 68 Các bước mô hình hóa nghiệp vụ • Đánh giá hiện trạng tổ chức • Giới hạn hệ thống phát triển 69 Các bước mô hình hóa nghiệp vụ • Đánh giá hiện trạng tổ chức • Ví dụ: xác định và trình bày các vấn đề của hệ thống 70 Các bước mô hình hóa nghiệp vụ • Xác định thuật ngữ nghiệp vụ 71 17 Mô hình hóa nghiệp vụ với mô hình Use case 72 Mô hình hóa nghiệp vụ với mô hình Use case • Cách thực hiện • Xác định ranh giới của nghiệp vụ • Xác định tác nhân (Actor) • Xác định nghiệp vụ/chức năng (Use-case) • Xác định mối quan hệ giữa Actor với Actor, giữa Actor với Use- case, giữa Use-case với Use-case • Mô hình hóa nghiệp vụ với mô hình Use-case 73 Mô hình hóa nghiệp vụ với mô hình Use case 74

Các file đính kèm theo tài liệu này:

  • pdfbai_giang_phan_tich_thiet_ke_he_thong_thong_tin_chuong_5_mo.pdf