1. Trang chủ
  2. » Công Nghệ Thông Tin

Ngôn ngữ đặc tả ca sử dụng

7 11 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 7
Dung lượng 503,56 KB

Nội dung

Bài viết đề xuất lý thuyết cho ngôn ngữ mô hình hóa USL (Use Case Specification Language) cho phép đặc tả ca sử dụng bằng mô hình. Ngôn ngữ cho phép đặc tả chính xác các chuỗi hành động tương tác và ngữ nghĩa đầy đủ cho các hành động, điều kiện gác trên các luồng chuyển.

ISSN 2354-0575 NGÔN NGỮ ĐẶC TẢ CA SỬ DỤNG Chu Thị Minh Huệ, Trần Đỗ Thu Hà, Hoàng Quốc Việt Trường Đại học Sư phạm Kỹ thuật Hưng Yên Ngày nhận: 28/1/2016 Ngày xét duyệt: 09/3/2016 Tóm tắt: Mơ hình ca sử dụng nắm bắt chức mà hệ thống phần mềm đáp ứng Hiện mơ hình ca sử dụng thông thường biểu diễn biểu đồ ca sử dụng ngơn ngữ mơ hình hóa UML tài liệu hóa đặc tả ca sử dụng dạng văn Mơ hình ca sử dụng xây dựng pha đặc tả yêu cầu, mơ hình nắm bắt tồn hành vi hệ thống tương tác hệ thống tác nhân bên Đặc tả ca sử dụng đầu vào cho hoạt động thiết kế ca kiểm thử mức kiểm thử hệ thống xây dựng mơ hình thiết kế mơ hình tương tác UML Để giảm chi phí cho phát triển phần mềm, giải pháp tự động hóa giải pháp tốt đem lại lợi ích lớn phát triển phần mềm Đặc tả ca sử dụng thường tài liệu hóa ngơn ngữ tự nhiên giải pháp sinh tự động tài liệu thiết kế kiểm thử mơ hình thiết kế từ đặc tả ca sử dụng nhiều thách thức đặt Trong báo này, đề xuất phương pháp cho đặc tả hình thức ca sử dụng mơ hình Mơ hình cho phép đặc tả xác ca sử dụng ngơn ngữ mơ hình hóa USL Ngơn ngữ USL mở rộng từ biểu đồ hoạt động UML thêm cam kết cho phép đặc tả chi tiết hành động ràng buộc hành động, điều kiện luồng chuyển Với cách tiếp cận này, xây dựng ngôn ngữ mô hình hóa gồm có siêu mơ hình mơ tả cú pháp trừu tượng đề xuất ký hiệu cho cú pháp cụ thể ngơn ngữ Từ đem lại khả chuyển trực tiếp từ mơ hình đặc tả ca sử dụng sang mơ hình thiết kế sinh tự động ca kiểm thử Từ khoá: Đặc tả ca sử dụng Giới thiệu Theo định dạng chuẩn tài liệu đặc tả phần mềm (SRS) [6] mơ hình ca sử dụng (use case) mơ hình hướng đối tượng, sử dụng để xác định hành vi hệ thống Mơ hình Use case gồm biểu đồ Use case đặc tả Các đặc tả thường mô tả ngôn ngữ tự nhiên Sử dụng ngôn ngữ tự nhiên để mô tả giúp khách hàng người dùng dễ dàng hiểu tham gia tích cực vào hoạt động phân tích yêu cầu Tuy nhiên nhược điểm ngơn ngữ tự nhiên khó tự động hóa Để tự động hóa đặc tả ca sử dụng cần đặc tả phương pháp hình thức mà máy hiểu chuyển tự động từ đặc tả hình thức sang mơ hình khác theo u cầu Trong báo đề xuất lý thuyết phương pháp cho đặc tả ca sử dụng Phương pháp hướng tới ngơn ngữ mà máy hiểu cho đặc tả ca sử dụng Mơ hình ca sử dụng gồm tác nhân (actors), ca sử dụng (use cases), liên kết (associations) mô tả biểu đồ ca sử dụng Theo cockburn [4] Mỗi use case, trình diễn phần chức hồn chỉnh hệ thống phần mềm mơ tả đặc tả ca sử dụng gồm: Luồng ca sử dụng, luồng thay thế, bên liên quan, điều kiện, tham chiếu tới quy tắc nghiệp vụ ca sử Khoa học & Công nghệ - Số 9/Tháng - 2016 dụng Trong [4,7,11] đường luồng thực Use case kịch thực Use case, kịch chuỗi hành động tác nhân phản ứng hệ thống để thực ca sử dụng Để đặc tả hình thức cho luồng thực use case, có số giải pháp [1] sử dụng ngôn ngữ Z object để đặc tả, [8] sử dụng biểu đồ hoạt động stereotypes để đặc tả riêng rẽ cho hành động tác nhân, hành động hệ thống Trong [9,10] đề xuất cấu trúc Contract để đặc tả tiền điều kiện hậu điều kiện ca sử dụng biểu thức logic ràng buộc hành động Các nghiên cứu chủ yếu tập chung vào mơ hình hóa chuỗi hành động tương tác phương pháp khác nhau, chưa đặc tả xác chi tiết cho hành động chuỗi tương tác hành động tác nhân, hành động hệ thống cung cấp liệu đầu vào nào? ràng buộc nghiệp vụ liệu đầu vào Chúng tơi đề xuất lý thuyết cho ngơn ngữ mơ hình hóa USL (Use Case Specification Language) cho phép đặc tả ca sử dụng mơ hình Ngơn ngữ cho phép đặc tả xác chuỗi hành động tương tác ngữ nghĩa đầy đủ cho hành động, điều kiện gác luồng chuyển Điều cho phép hướng dẫn chuyển tự động đầy đủ từ đặc tả ca sử dụng sang mơ hình thiết kế chi tiết sinh Journal of Science and Technology 49 ISSN 2354-0575 kịch kiểm thử, liệu kiểm thử cách đầy đủ từ mơ hình Ngơn ngữ USL chúng tơi đề xuất cách kết hợp ý tưởng nghiên cứu [8,9,10], khái niệm ngôn ngữ USL mở rộng từ biểu đồ hoạt động UML thêm vào Contract cho phép đặc tả chi tiết hành động, từ cho phép hướng dẫn sinh ca kiểm thử đầy đủ Như hành động cung cấp liệu đầu vào gì? Điều kiện để hành động xảy ra? Đầu mong đợi hành động gì? Các ràng buộc biểu diễn biểu thức Logic xây dựng ngôn ngữ ràng buộc đối tượng OCL Các mối quan hệ ca sử dụng biểu diễn Với hướng tiếp cận xây dựng MetaModel cho ngôn ngữ đặc tả ca sử dụng Kiến thức sở 2.1 Ca sử dụng (Use Case) Trong [3] định nghĩa ca sử dụng trường hợp sử dụng hệ thống phần mềm cung cấp cho tác nhân bên hệ thống thực Ca sử dụng mô tả hành vi hệ thống điều kiện khác nhau, đáp ứng yêu cầu tác nhân, tác nhân người, hệ thống bên thiết bị Các ca sử dụng hệ thống thường biểu diễn dạng đồ họa ví dụ minh họa Hình mơ tả chi tiết cho ca sử dụng dạng văn ví dụ minh họa Bảng Ca sử dụng mô tả hành vi hệ thống điều kiện khác nhau, đáp ứng yêu cầu tác nhân, tác nhân người, hệ thống bên thiết bị Các ca sử dụng hệ thống thường biểu diễn dạng đồ họa ví dụ minh họa Hình mô tả chi tiết cho ca sử dụng dạng văn ví dụ minh họa Bảng Hình ví dụ biểu đồ ca sử dụng, tác nhân Sinh viên gồm có hai ca sử dụng “Đăng ký khóa học” ca sử dụng “Đăng nhập”, hai ca sử dụng có mối quan hệ với Tác nhân Sinh viên Đăng ký khóa học Sinh viên > Đăng nhập Hình Biểu đồ ca sử dụng Trong Bảng đặc tả ca sử dụng “Đăng nhập” Trong tiền điều kiện (Pre-Condition), điều kiện cần đảm bảo trước thực ca sử dụng Hậu điều kiện (Pos-Condition), điều kiện đảm bảo sau thực ca sử dụng Sự kiện kích hoạt (Trigger) kiện làm cho ca sử dụng thực Luồng (Basic Flow) luồng thực đắn thực ca sử dụng Các luồng rẽ nhánh (Alternate Flow) luồng thực trường hợp ngoại lệ thực ca sử dụng Các luật nghiệp vụ (Business Rules), luật ràng buộc nghiệp vụ hành động Một ca sử dụng gồm luồng nhiều luồng rẽ nhánh minh họa Bảng Bảng Đặc tả ca sử dụng Đăng nhập Tiền điều kiện Sinh viên truy cập vào Website trung tâm X Hậu điều kiện Nếu đăng nhập hệ thống thành công, hệ thống hiển thị chức cho phép sinh viên thực Website, không thành công đưa thông báo cho sinh viên biết Kích hoạt Use Case thực Sinh viên click vào nút “Đăng nhập” Website trung tâm X Luồng 50 Hệ thống hiển thị giao diện đăng nhập Sinh viên nhập User Name PassWord Sinh viên Click vào Button “Đăng Nhập” Hệ thống kiểm tra tính hợp lệ UserName PassWord Hệ thống kiểm tra tài khoản sinh viên có hệ thống khơng Hệ thống hiển thị chức mà sinh viên có quyền thực Website Khoa học & Công nghệ - Số 9/Tháng - 2016 Journal of Science and Technology ISSN 2354-0575 Luồng phụ 1.1 UserName PassWord không hợp lệ Hệ thống hiển thị thông báo “UserName khoản từ đến 16 ký tự, PassWord ký tự, yêu cầu nhập lại” Nếu tài khoản sinh viên khơng có hệ thống, số lần đăng nhập chưa 2.1 Hệ thống đếm số lần đăng nhập 2.2 Hệ thống hiển thị thông báo “Tài khoản không tồn tại, đăng nhập lại” 2.3 Hệ thống kiểm tra số lần đăng nhập nhỏ quay luồng chính, ngược lại chuyển luồng phụ 3 3.1 Nếu tài khoản sinh viên khơng có hệ thống số lần đăng nhập Hệ thống hiển thị thông báo: “Tài khoản không tồn tại, số lần đăng nhập tối đa 3” vơ hiệu hóa chức đăng nhập kết thúc Các luật nghiệp vụ Độ dài UserName từ đến 16 ký tự Độ dài Password ký tự 2.2 Siêu mơ hình (MetaModel) Siêu mơ hình mơ hình ngơn ngữ mơ hình hóa, bao gồm lớp nguyên thủy, quan hệ để tạo nên ngơn ngữ mơ hình hóa Siêu mơ hình định nghĩa cú pháp (Syntax) ngữ nghĩa (Sematic) mơ hình, mơ hình thể siêu mơ hình Như Hình siêu mơ hình ngơn ngữ mơ hình hóa USL mà chúng tơi đề xuất Xác định ca kiểm thử từ ca sử dụng 3.1 Xác định kịch kiểm thử Việc xác định kịch thực ca sử dụng cho phép xác định đường thực ca sử dụng khác thực ca sử dụng Trên sở phát triển phần mềm kịch thực ca sử dụng tương ứng với kịch kiểm thử, thiết kế chi tiết kịch thực ca sử dụng tương ứng với mơ hình tương tác biểu đồ hoạt động UML Để xác kịch thực ca sử dụng nhà phát triển tiến hành đọc đặc tả ca sử dụng tài liệu dạng ngơn ngữ tự nhiên ví dụ Bảng Dựa nhánh thực chương trình khác tiến hành xác định đường khác tương ứng với nhánh Hoạt động thực hồn tồn thủ cơng Theo đặc tả Bảng 1, xác định kịch thực ca sử dụng “Đăng nhập” ca sử dụng “Đăng ký khóa học” Bảng Bảng Các kịch thực ca sử dụng “Đăng nhập” Tên kịch Nhập UseName & Pass lần hợp lệ đăng ký khóa học thành cơng Nhập UserName PassWord khơng hợp lệ Tài khoản đăng nhập khơng có hệ thống, số lần đăng nhập nhỏ Tài khoản đăng nhập khơng có hệ thống, số lần đăng nhập 3.2 Khả tự động hóa từ mơ hình ca sử dụng Các hoạt động xây dựng mơ hình thiết kế, xây dựng ca kiểm thử từ đặc tả ca sử dụng thực thủ công Do đặc tả ca sử dụng UML mơ hình hỗ trợ mà đặc tả ngơn ngữ tự nhiên Điều dẫn đến yêu cầu phần mềm thay đổi, nhà phát triển phải thực thiết kế lại mơ hình thiết kế ca kiểm thử Để giảm chi phí cho hoạt động này, giải pháp đưa cần tự động hóa xây dựng mơ hình thiết kế xây dựng ca kiểm thử từ đặc tả ca sử dụng Nhưng với đặc tả ca sử dụng ngôn ngữ tự nhiên, việc Khoa học & Công nghệ - Số 9/Tháng - 2016 Luồng Basic Flow Basic Flow, A1 Basic Flow, A2 Basic Flow, A3 tự động hóa gặp nhiều khó khăn kỹ thuật xử lý ngôn ngữ tự nhiên khó vấn đề ngơn ngữ tự nhiên diễn đạt nhiều cách khác Vì để tự động hóa hoạt động này, Ca sử dụng cần đặc tả ngơn ngữ hình thức để máy hiểu đặc tả tự động sinh mơ hình thiết kế ca kiểm thử Ngôn ngữ đặc tả hình thức cho đặc tả ca sử dụng cần biểu diễn xác luồng thực ca sử dụng, ràng buộc luồng liệu đầu vào, đầu hành động Hiện có Journal of Science and Technology 51 ISSN 2354-0575 nhiều nghiên cứu đề xuất phương pháp đặc tả ca sử dụng chúng tơi trình bày phần mở đầu Tuy nhiên phương pháp cho phép đặc tả chưa đầy đủ hành động ràng buộc liệu đầu vào cung cấp hành động, điều làm cho dẫn sinh ca kiểm thử tự động nghiên cứu chưa hoàn chỉnh Nghiên cứu chúng tơi đề xuất ngơn ngữ USL, ngơn ngữ có đủ khái niệm cho phép đặc tả chi tiết ca sử dụng đặc tả đầu vào cho mục đích tự động hóa Biểu diễn đặc tả ca sử dụng USL Trong phần chúng tơi trình bày cách thức mở rộng biểu đồ hoạt động UML, đề xuất cấu trúc cho đặc tả chi tiết hành động điều kiện gác chuyển phương pháp sinh ca kiểm thử tự động từ mơ hình ngơn ngữ USL mà đề xuất 4.1 Mở rộng biểu đồ hoạt động để biểu diễn ca sử dụng Trong đặc tả ca sử dụng, chủ yếu tập trung vào đặc tả luồng thực ca sử dụng (luồng luồng thay thế) luật nghiệp vụ ràng buộc hành động chuỗi tương tác luồng Các luồng, luật sở để xác định kịch kiểm thử ca kiểm thử Để biểu diễn chuỗi tương tác sử dụng biểu đồ hoạt động UML để biểu diễn, nhiên để biểu đồ hoạt động phù hợp với mục đích đặc tả ca sử dụng, định nghĩa lại siêu khái niệm cho mục đích đặc tả Các siêu khái niệm xác định cho mục đích đặc tả ca sử dụng xác định sau: • Hành động tác nhân (Actor Action) biểu diễn hình chữ nhật • Hành động hệ thống (System Action) biểu diễn hình chữ nhật bo cung góc • Nút định (Decision Node) biểu diễn hình chữ nhật viền đậm nét đứt • Luồng (Flow) luồng dẫn chiều hành động Luồng biểu diễn đường thẳng có hướng mũi tên chiều hành động Ngoài chúng tơi cịn sử dụng luồng để biểu diễn mối quan hệ ca sử dụng Luồng biểu diễn đường thẳng nét đứt có hướng mũi tên chiều quan hệ phía nhãn quan hệ gồm , , Trên luồng có điều kiện gác điều kiện cho luồng xảy ra, điều kiện đặc tả chi tiết khái niệm contract mà chúng tơi đề xuất phần sau • Nút bắt đầu (Node Start) biểu diễn điểm bắt đầu ca sử dụng, biểu diễn hình trịn tơ đen Một ca sử dụng có nút bắt đầu 52 • Nút kết thúc (Node End) biểu diễn điểm kết thúc ca sử dụng, biểu diễn hai hình trịn lồng Một ca sử dụng có nhiều nút kết thúc Để mơ tả chi tiết cho hành động như: hành động cung cấp liệu đầu vào nào, liệu đầu vào tác nhân cung cấp, hay hệ thống cung cấp; để hành động xảy liệu đầu vào phải thỏa mãn ràng buộc nào; sau thực hành động hệ thống có trả kết mong đợi Để mơ tả khái niệm đề xuất khái niệm cam kết (Contract) cho phép đặc tả chi tiết hành động Ngồi khái niệm sử dụng để mô tả ràng buộc luồng Cấu trúc khái niệm cam kết mô tả chi tiết phần 4.2 Cấu trúc mô tả chi tiết cho hành động điều kiện gác luồng Để mô tả chi tiết cho hành động điều kiện gác luồng, đề xuất cấu trúc Contract sau: Contract InputA object: Type InputS object: Type Pre [OCL_Condition] Out Description Trong đó: - : Là tên Contract - Đối tượng object khai báo InputA giá đầu vào hành động tác nhân cung cấp - Đối tượng object khai báo InputS giá trị đầu vào lấy từ hệ thống - Biểu thức OCL_Condition khai báo Pre biểu thức Logic mô tả ràng buộc tập liệu đầu vào phải thỏa mãn để hành động xảy Biểu thức ràng buộc viết ngôn ngữ ràng buộc đối tượng OCL - Mô tả Description khai báo Out Mô tả kết mong đợi mà hệ thống trả thực hành động Ví dụ: Đặc tả chi tiết hành động kiểm tra “Hiển thị chức sinh viên thực hiện” hệ thống: Contract KTTKhoan Pre [AcountExist=true] Out “Hiển thị chức sinh viên thực hiện” Ngữ nghĩa Contract cho biết để thực Hành động “Hiển thị chức sinh viên Khoa học & Công nghệ - Số 9/Tháng - 2016 Journal of Science and Technology ISSN 2354-0575 thực hiện” điều kiện AcountExist true, đầu mong đợi hệ thống sau thực hành động là: “Hiển thị chức sinh viên thực hiện” Ngôn ngữ đặc tả USL Trong Eclipse có dự án cho phép xây dựng ngơn ngữ mơ hình hóa đồ họa Như dự án EMF cho phép xây dựng cú pháp trừu tượng cách định nghĩa siêu mơ hình Dự án GMF cho phép phát triển cú pháp cụ thể ngôn ngữ Một số dự án cho phép thực phép chuyển mơ hình sang văn Xpand, Xtext, Aceleo… Chúng phát triển cơng cụ cho mơ hình hóa ngơn ngữ USL cách phát triển cú pháp trừu tượng cú pháp cụ thể cho ngôn ngữ USL, công cụ xây dựng Hình Quy trình phương pháp xây dựng ngơn ngữ mơ hình hóa đồ họa Eclipse khơng thuộc phạm vi trình bày báo Hình mơ hình đặc tả chi tiết ca sử dụng “Đăng nhập” ví dụ mục tạo cơng cụ mơ hình hóa USL Hình Siêu mơ hình ngơn ngữ USL Hình FrameWork cho ngôn ngữ USL Khoa học & Công nghệ - Số 9/Tháng - 2016 Journal of Science and Technology 53 ISSN 2354-0575 Hình Ví dụ mơ hình đặc tả ca sử dụng USL Kết luận Chúng đề xuất lý thuyết cho phương pháp đặc tả ca sử dụng với hướng tiếp cận mô hình hóa miền chun biệt Trong chúng tơi đưa cú pháp trừu tượng cú pháp cụ thể cho ngôn ngữ USL, cách mở rộng biểu đồ hoạt động UML thêm vào Constract cho phép đặc tả chi tiết hành động, điều kiện gác cho mục đích tự động hóa phát triển phần mềm từ đặc tả ca sử dụng Và xây dựng FrameWork cho ngôn ngữ Trong báo tập chung vào trình bày giải pháp cho phát triển tự động từ đặc tả ca sử dụng ngôn ngữ USL xây dựng Tài liệu tham khảo [1] Formalization of UML Use Case Diagram—A Z Notation Based Approach, 2006 [2] Jesus M Almendros-Jimenez and Luis Iribarne, Describing Use cases with Activity Chart, In Uffe Kock Wiil, editor, Metainformatics Springer, LNCS 3511, 2004 [3] Marco Brambilla, Jordi Cabot, and Manuel Wimmer, Model-Driven Software Engineering in Practice, Morgan & Claypool Publishers, 1st edition, 2012 [4] Alistair Cockburn, Writing Effective Use cases, Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, 1st edition, 2000 [5] F G Dias, E A Schmitz, M L M Campos, A L Correa, and A J Alencar, Elaboration of Use case Specifications: An Approach Based on Use Case Fragments, In Proceedings of the 2008 ACM Symposium on Applied Computing, SAC ’08, pages 614–618, New York, NY, USA, 2008 ACM [6] IEEE, IEEE Recommended Practice for Software Requirements Specifications, ANSI/IEEE Standard 830-1998, 1998 [7] Ivar Jacobson and Magnus Christerson, A Growing Consensus on Use Cases, JOOP, 1995 [8] Alexander Lorenz and Hans-Werner Six, Tailoring UML Activities to Use case Modeling for Web Application Development, In Hakan Erdogmus, Eleni Stroulia, and Darlene A Stewart, editors, CASCON, pages 333–338 IBM, 2006 [9] Bertrand Meyer, Applying “Design by Contract”, Computer, 25(10):40–51, October 1992 54 Khoa học & Công nghệ - Số 9/Tháng - 2016 Journal of Science and Technology ISSN 2354-0575 [10] Clémentine Nebut, Franck Fleurey, Yves Le Traon, and Jean marc Jézéquel, Automatic Test Generation: A Use case Driven Approach, IEEE Transactions on Software Engineering, 32:140– 155, 2006 [11] James Rumbaugh, Ivar Jacobson, and Grady Booch, Unified Modeling Language Reference Manual, The (2Nd Edition) Pearson Higher Education, 2004 [12] Nhuan D Lai Vu Y.Nguyen, Tho T Quan and Thuan D Le, A Framework for Automatic Construction of Test Scenarios from Use-cases, In Ho Chi Minh City Software Testing Conference January 2015, 2015 USE CASE SPECIFICATION LANGUAGE Abstract: Use cases have achieved wide use for capturing and structuring software requirements Nowadays, the use case model usually is presented by the use case diagrams in UML and use cases specification is documented in text format Use case specifications are created in during the analysis phase to specify software system’s requirements and can also be used for creating system level test cases and construction of the design model such as interactive models in UML Using use cases to get system tests has several benefits including test design at early stages of software development life cycle that reduces over all development cost of the system It is usually documented by natural language So there is a large gap to bridge between use case specification and concrete test cases In this paper, we propose a method to specify use case by a model and guide automatically generated test cases from this model In which, we propose a language to modeling use case specification USL for modeling the use case specification and automatic generate test cases USL are extended form the UML activity diagram and add Contract concept, which allows specify details a action and a guard condition in a flow With this approach, we develop a metamodel for presenting the abstract syntax of USL Our approach allows to tranform directly from the use case specification to test case scenario, test cases or design models Keywords: Use case specification Khoa học & Công nghệ - Số 9/Tháng - 2016 Journal of Science and Technology 55 ... quan hệ ca sử dụng biểu diễn Với hướng tiếp cận xây dựng MetaModel cho ngôn ngữ đặc tả ca sử dụng Kiến thức sở 2.1 Ca sử dụng (Use Case) Trong [3] định nghĩa ca sử dụng trường hợp sử dụng hệ... từ mơ hình ca sử dụng Các hoạt động xây dựng mơ hình thiết kế, xây dựng ca kiểm thử từ đặc tả ca sử dụng thực thủ công Do đặc tả ca sử dụng UML khơng có mơ hình hỗ trợ mà đặc tả ngôn ngữ tự nhiên... Hình mơ tả chi tiết cho ca sử dụng dạng văn ví dụ minh họa Bảng Hình ví dụ biểu đồ ca sử dụng, tác nhân Sinh viên gồm có hai ca sử dụng “Đăng ký khóa học” ca sử dụng “Đăng nhập”, hai ca sử dụng

Ngày đăng: 07/05/2021, 13:44

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w