Nghiên cứu ngôn ngữ đặc tả yêu cầu theo hướng chuyên biệt miền Nghiên cứu ngôn ngữ đặc tả yêu cầu theo hướng chuyên biệt miền Nghiên cứu ngôn ngữ đặc tả yêu cầu theo hướng chuyên biệt miền luận văn tốt nghiệp,luận văn thạc sĩ, luận văn cao học, luận văn đại học, luận án tiến sĩ, đồ án tốt nghiệp luận văn tốt nghiệp,luận văn thạc sĩ, luận văn cao học, luận văn đại học, luận án tiến sĩ, đồ án tốt nghiệp
ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TRẦN TRUNG HÀ NGHIÊN CỨU NGÔN NGỮ ĐẶC TẢ YÊU CẦU THEO HƯỚNG CHUYÊN BIỆT MIỀN LUẬN VĂN THẠC SĨ: CÔNG NGHỆ PHẦN MỀM HÀ NỘI - 2019 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Trần Trung Hà NGHIÊN CỨU NGÔN NGỮ ĐẶC TẢ YÊU CẦU THEO HƯỚNG CHUYÊN BIỆT MIỀN Ngành: Kỹ thuật phần mềm Chuyên ngành: Kỹ thuật phần mềm Mã số: 8480103.01 LUẬN VĂN THẠC SĨ: CÔNG NGHỆ PHẦN MỀM Cán hướng dẫn: TS Đặng Đức Hạnh HÀ NỘI - 2019 LỜI CẢM ƠN Đầu tiên, xin gửi lời cảm ơn sâu sắc tới Tiến sĩ Đặng Đức Hạnh – giảng viên môn Công nghệ Phần mềm – người dành nhiều thời gian công sức suốt năm vừa qua để hướng dẫn tơi hồn thành luận văn Thầy giúp từ bước đầu tiên, từ việc lựa chọn đề tài phù hợp với đến chia sẻ phương pháp nghiên cứu, kinh nghiệm làm việc, giao tiếp, kĩ cần thiết khơng luận văn mà cịn sống, nghiệp tương lai tơi Tôi xin gửi lời cảm ơn chân thành đến thành viên nhóm nghiên cứu hỗ trợ tơi tận tình khoảng thời gian vừa qua Các anh chị em nhóm biểu tình thần đồn kết cao, tương trợ lẫn cơng việc lớn nhỏ, thảo luận, đóng góp ý kiến với vấn đề thành viên Đó chắn kỉ niệm khó quên người nhóm, đặc biệt với tơi Ngồi ra, tơi xin gửi lời cảm ơn đến thầy cô giảng viên Trường Đại học Công nghệ - Đại học Quốc gia Hà Nội Những kiến thức chuyên môn, nghiệp vụ kĩ mềm mà thầy cô dạy cho suốt khóa học trở thành tảng để tơi phát triển xây dựng luận văn Tôi xin cảm ơn hỗ trợ đề tài QG.18.61 Đại học Quốc gia Hà Nội Cuối cùng, xin cảm ơn gia đình, bạn bè người thân đồng hành sống, cung cấp cho tơi ý chí nghị lực để ln vươn lên sống LỜI CAM ĐOAN Tôi Trần Trung Hà, học viên khóa K24CNPM thuộc chương trình đào tạo Thạc sĩ Trường Đại học Công nghệ - Đại học Quốc gia Hà Nội Tôi xin cam đoan nghiên cứu luận văn tôi, hướng dẫn Tiến sĩ Đặng Đức Hạnh Những nghiên cứu chưa báo cáo sử dụng nơi khác, khác Tơi xin cam đoan khơng chép, sử dụng tài liệu, cơng trình nghiên cứu người khác mà khơng thích, trích dẫn cụ thể Cơng cụ FRSL chương trình phần mềm nhóm nghiên cứu Tiến sĩ Đặng Đức Hạnh tự phát triển, không chép mã nguồn người khác Hà Nội, ngày tháng năm 2019 Học viên Trần Trung Hà MỤC LỤC MỞ ĐẦU CHƯƠNG Kiến thức tảng 1.1 Đặc tả yêu cầu 1.2 Ca sử dụng 1.3 Ngơn ngữ mơ hình hóa chun biệt miền 1.3.1 Mơ hình hóa chun biệt miền 1.3.2 Khái niệm ngôn ngữ mơ hình hóa chun biệt miền 12 1.3.3 Xây dựng ngơn ngữ mơ hình hóa chun biệt miền 14 1.4 Một số công cụ hỗ trợ 15 1.4.1 Công cụ ANTLR 15 1.4.2 Công cụ PlantUML 17 1.5 Tổng kết chương 18 CHƯƠNG Ngôn ngữ đặc tả ca sử dụng FRSL 19 2.1 Giới thiệu 19 2.2 Miền vấn đề đặc tả ca sử dụng 19 2.3 Cú pháp trừu tượng FRSL 23 2.4 Cú pháp cụ thể FRSL 25 2.5 Một số chuyển đổi từ đặc tả FRSL 27 2.6 Các công việc liên quan 28 2.7 Tổng kết chương 31 CHƯƠNG Cài đặt Thực nghiệm 32 3.1 Giới thiệu 32 3.2 Công cụ hỗ trợ 32 3.3 Bài toán vận dụng 34 3.4 Đánh giá 36 3.5 Tổng kết chương 37 KẾT LUẬN 38 DANH SÁCH KÝ HIỆU, CHỮ VIẾT TẮT ANTLR AST FRSL RUCM UML Another Tool for Language Recognition Abstract Syntax Tree Functional Requirement Specification Language Restricted Use Case Modeling Unified Modeling Language DANH SÁCH BẢNG BIỂU, HÌNH VẼ Hình 1.1: Sơ đồ ca sử dụng Hình 1.2: Sơ đồ hoạt động ca sử dụng Hình 1.3: Hiệu mơ hình hóa chun biệt miền so với đa tính 10 Hình 1.4: Hướng tiếp cận mơ hình hóa chun biệt miền so với UML 11 Hình 1.5: Cấu trúc hướng phát triển metamodel 13 Hình 1.6: Mối quan hệ mơ hình metamodel 14 Hình 1.7: Cây phân tích cú pháp xây dựng ANTLR 17 Hình 1.8: Một biểu đồ đơn giản công cụ PlantUML 18 Bảng 2.1: Ví dụ khn mẫu mơ tả ca sử dụng 22 Hình 2.2: Hệ thống metamodel FRSL 24 Hình 2.3: Cú pháp cụ thể dạng văn FRSL 26 Hình 2.4: Ca sử dụng Rút tiền dạng văn cú pháp cụ thể FRSL 27 Bảng 2.5 (a)(b)(c): Bộ luật giới hạn RUCM 29 Bảng 2.6: Khuôn mẫu RUCM 30 Hình 3.1: Giao diện công cụ FRSL 33 Hình 3.2: Menu plugin cơng cụ FRSL 34 Hình 3.3: Văn đặc tả ca sử dụng rút gọn 35 Hình 3.4: Sơ đồ ca sử dụng sinh từ văn đặc tả 36 TÓM TẮT Đặc tả yêu cầu bước quan trọng trình phát triển phần mềm Ca sử dụng phương pháp thể yêu cầu sử dụng phổ biến nhất, giúp tăng khả diễn đạt, tính dễ đọc nhiều lợi ích khác cho người dùng Tuy nhiên, nhiều vấn đề hạn chế trình thiết kế phân tích ca sử dụng Vì vậy, cần phải phát triển phương pháp đặc tả ca sử dụng tốt hơn, với hiệu chất lượng cao Luận văn hướng tới xây dựng ngôn ngữ đặc tả ca sử dụng, phát triển theo hướng mơ hình hóa chuyên biệt miền nhằm đem đến kết tốt cho trình đặc tả Được xây dựng miền vấn đề ca sử dụng, tư tưởng ngơn ngữ phân tích mơ hình hóa mơ tả ca sử dụng viết dạng văn thành mơ hình dựa hệ thống metamodel dựng sẵn Mơ hình tổng hợp sau chuyển sang dạng khác để hoàn thành mục tiêu khác Ngơn ngữ sau phát triển công cụ hỗ trợ, giúp người dùng dễ dàng tiếp cận mở rộng tính dựa theo yêu cầu cụ thể MỞ ĐẦU Những năm gần đây, chứng kiến bùng nổ khoa học công nghệ Với cách mạng công nghiệp lần thứ tư bước diễn ra, tất lĩnh vực đời sống ngày phát triển mãnh mẽ tồn giới Trong đó, ngành cơng nghiệp phần mềm ngành tổng hợp đa dạng nhất, đóng vai trị thiết yếu tốc độ phát triển ứng dụng công nghệ Một bước quan trọng trình phát triển phần mềm khâu đặc tả yêu cầu Cấu trúc yêu cầu phần mềm phức tạp, đặc biệt dự án lớn Những người đưa yêu cầu thường người xây dựng phần mềm, nên để người phát triển hiểu xác yêu cầu khách hàng, cần phải đưa đặc tả yêu cầu phần mềm chi tiết Một đặc tả tốt cần phải giúp cho người xem hiểu vấn đề, xác định phạm vi khả hệ thống Người phát triển phần mềm phải nắm hành vi mà người sử dụng thực hiện, tính mà hệ thống cung cấp, ràng buộc hệ thống Ngồi ra, q trình phân tích đặc tả yêu cầu thường gặp nhiều khó khăn Những sai sót đặc tả ảnh hưởng trực tiếp đến sản phẩm phần mềm Việc định hướng trước tính tương lai khó, đồng thời thời gian phát triển yêu cầu thay đổi nhiều Những người đưa yêu cầu hiểu biết sâu phần mềm, người xây dựng phần mềm thường không hiểu vấn đề chun ngành nói tới Vì vậy, đặc tả cần phải thể cho hai bên hiểu, cho người dùng biết rõ họ thực muốn mức độ khả thi nào, giúp nhà phát triển xác định rõ để đưa điều vào chương trình phần mềm Một phương pháp thể yêu cầu sử dụng phổ biến ca sử dụng (use case) Ca sử dụng định nghĩa thể trình tự hành vi bao gồm hành vi thay trình tự lỗi, qua đặc tả yêu cầu chức hệ thống Đây hành vi tương tác hệ thống yếu tố bên để tạo nên giá trị sử dụng [10] Ưu điểm đặc tả ca sử dụng tính dễ hiểu dễ dùng, giúp cho người đưa yêu cầu tiếp cận sử dụng Tuy nhiên, nhược điểm mô hình ca sử dụng thường có số thành phần khơng rõ ràng, gây khó khăn cho việc phát triển theo hướng mơ hình Với phát triển cơng nghệ mạnh mẽ cách mạng công nghệ 4.0, yêu cầu ngày trở nên phức tạp hơn, ca sử dụng ngày khó diễn đạt cần phân tích, đặc tả cách xác Nhiều nghiên cứu đề cập cung cấp phương pháp giải vấn đề này, [2] đưa ngôn ngữ USL để đặc tả ca sử dụng Mơ hình USL thể thành phần liên quan chặt chẽ đặc tả ca sử dụng bao gồm luồng, bước, hành vi hệ thống (system action), hành vi người dùng (actor action), mối quan hệ, luồng điều khiển ràng buộc Tuy nhiên, USL cung cấp cú pháp cụ thể dạng đồ họa, khiến cho việc tiếp cận người sử dụng để tạo mơ hình USL cịn nhiều hạn chế Ngồi ra, cấu trúc USL phức tạp xây dựng theo khn khổ chặt chẽ, khó có khả mở rộng đáp ứng với thay đổi sau Nhằm mục tiêu giải vấn đề trình đặc tả ca sử dụng – đặc tả yêu cầu phần mềm, đồng thời cải thiện hạn chế nghiên cứu trước đây, luận văn đề xuất ngơn ngữ mơ hình hóa chuyên biệt miền có tên Functional Requirement Specification Language (FRSL) để đặc tả ca sử dụng Hướng tiếp cận bao gồm trình xác định khái niệm miền đặc tả ca sử dụng, từ xây dựng cú pháp trừu tượng cho ngôn ngữ dạng metamodel FRSL cung cấp cú pháp cụ thể dạng văn để làm ngữ pháp cho việc xây dựng mơ hình Mơ hình FRSL sau chuyển đổi sang dạng khác ca kiểm thử, mơ hình thiết kế, mẫu phần mềm, Luận văn hướng tới xây dựng công cụ hỗ trợ cho trình tạo, sử dụng lưu trữ mơ hình FRSL, đồng thời xây dựng cơng cụ dựa kiến trúc plugin, cho phép khả nâng cấp mở rộng tương lai cách dễ dàng Những người sử dụng cộng đồng lập trình viên đóng góp plugin họ tự phát triển để phục vụ cho nhu cầu cụ thể Luận văn trình bày theo năm phần: Mở đầu: Giới thiệu vấn đề, mục tiêu đề tài Chương 1: Trình bày kiến thức tảng đặc tả yêu cầu ngôn ngữ mơ hình hóa chun biệt miền Giới thiệu sơ lược công cụ hỗ trợ sử dụng trình xây dựng ngơn ngữ Chương 2: Diễn giải miền đặc tả ca sử dụng Trình bày cú pháp trừu tượng cú pháp cụ thể FRSL Giới thiệu số chuyển đổi từ đặc tả FRSL Chương 3: Áp dụng xây dựng công cụ hỗ trợ Vận dùng trình bày kết thực nghiệm Kết luận: Kết đạt hướng phát triển 26 Hình 2.3: Cú pháp cụ thể dạng văn FRSL Hình 2.4 ví dụ minh họa cú pháp cụ thể FRSL ca sử dụng Rút tiền (Withdraw Fund) hệ thống máy ATM Tên ca sử dụng “Withdraw Fund” thông tin đánh dấu mở đầu đặc tả ca sử dụng Tiếp theo thơng tin Brief Description, Precondition, Primary Actor, Secondary Actors, Dependency Generalization viết dịng Phần cịn lại mơ tả luồng hành vi ca sử dụng, có luồng “Basic Flow” ba luồng thứ cấp Luồng bao gồm 12 bước, mơ tả chu trình hồn chỉnh hành động Rút tiền Các luồng phụ sử dụng để xử lý lỗi trường hợp khách hàng hủy giao dịch Mỗi luồng kết thúc Postcondition hậu điều kiện mà hệ thống cần thỏa mãn thực xong luồng hành động 27 Hình 2.4: Ca sử dụng Rút tiền dạng văn cú pháp cụ thể FRSL 2.5 Một số chuyển đổi từ đặc tả FRSL Từ mơ hình đặc tả FRSL, ta áp dụng phương pháp chuyển đổi mơ hình để chuyển hóa liệu, từ tự động sinh loại chế tác tùy theo mục đích sử dụng Một số nghiên cứu nhắm tới hướng tiếp cận này, ví dụ [4] thực chuyển đổi từ mơ hình miền ca sử dụng sang mơ hình kiểm thử ca sử dụng (Use Case Test Model - UMTG) Kết hợp với ràng buộc OCL, mô hình kiểm thử ca sử dụng sinh tự động đầu vào kiểm thử tương ứng với kịch ca sử dụng Sau đó, họ thiết kế bảng ánh xạ để ánh xạ đầu vào kiểm thử với chức điều khiển cụ thể Các ca kiểm thử sinh tự động thông qua bảng ánh xạ đó, hệ thống thay đổi tương lai cần cập nhật lại bảng ánh xạ Khơng có ca kiểm thử, nhiều chế tác khác sinh tự động mẫu, mơ hình thiết kế, sơ đồ UML, Luận văn xây dựng chức sinh tự động biểu đồ ca sử dụng từ mơ hình FRSL để thử nghiệm khả chuyển đổi mơ hình Sau tổng hợp từ văn đặc tả theo cấu trúc metamodel, mơ hình FRSL chuyển đổi thành dạng văn đầu vào công cụ PlantUML, sử dụng ánh xạ từ khái niệm miền vấn đề tương ứng Các 28 thành phần biểu đổ xếp dựa mối quan hệ phụ thuộc chúng Thuật toán thực thi chuyển đổi viết ngơn ngữ Java Chương trình sử dụng vịng lặp để duyệt qua danh sách tác nhân ca sử dụng mơ hình FRSL, xếp xuất văn khai báo tương ứng với đối tượng Sau tổng hợp danh sách thành phần sơ đồ ca sử dụng, chương trình tiếp tục duyệt đến mối quan hệ liên kết chúng Các liên kết tác nhân – ca sử dụng lấy từ danh sách tác nhân liệu ca sử dụng, biểu diễn văn khai báo mũi tên liền nét từ tác nhân đến ca sử dụng, xếp cho tác nhân hiển thị phía sơ đồ, ca sử dụng phần Tiếp theo liên kết ca sử dụng với Tùy theo loại liên kết, include extend, văn khai báo mũi tên nét đứt, ca sử dụng gọi liên kết trỏ tới ca sử dụng đích liên kết Ca sử dụng gốc nằm phía ca sử dụng đích Đối với quan hệ generalization, chương trình thực khai báo liên kết mũi tên liền đầu tam giác, nối từ ca sử dụng đến ca sử dụng cha Ca sử dụng kế thừa nằm phía ca sử dụng cha Sau liệu cần thiết tổng hợp từ thông tin tương ứng mơ hình FRSL theo cấu trúc đầu vào PlantUML, chương trình kích hoạt cơng cụ truyền vào đoạn văn vừa tổng hợp PlantUML tiến hành vẽ sơ đồ ca sử dụng xuất dạng tệp ảnh Chương trình đọc hiển thị ảnh kết lên cửa sổ hiển thị Thuật tốn chuyển đổi khơng u cầu thêm thơng tin đặc tả ca sử dụng ngồi liệu mà mơ hình FRSL cung cấp, từ cho thấy mơ hình FRSL lưu trữ thể đầy đủ liệu cần thiết để sinh tự động biểu đồ ca sử dụng 2.6 Các công việc liên quan Ngôn ngữ FRSL nghiên cứu mở rộng từ ngôn ngữ RUCM RUCM (Restricted Use Case Modeling – Mơ hình hóa ca sử dụng hạn chế) cách tiếp cận mơ hình hóa ca sử dụng [12] mục tiêu hạn chế cách người dùng ghi lại đặc tả ca sử dụng để giảm mơ hồ, cải thiện tính dễ hiểu mơ hình ca sử dụng tạo điều kiện cho phân tích tự động để lấy mơ hình phân tích khởi nguồn, ví dụ đồ thị lớp, đồ thị tương tác, ràng buộc, RUCM bao gồm luật giới hạn định nghĩa chặt chẽ khuôn mẫu ca sử dụng dạng bảng – văn Các luật giới hạn 29 khuôn mẫu ca sử dụng nên áp dụng từ giai đoạn xác định yêu cầu phát triển phần mềm để tạo mơ hình ca sử dụng xác rõ ràng mức (a) (b) (c) Bảng 2.5 (a)(b)(c): Bộ luật giới hạn RUCM Khn mẫu RUCM tích hợp thành phần thông tin ca sử dụng thường gặp khuôn mẫu thông thường, đồng thời tìm cách xác định 30 rõ cấu trúc luồng kiện đặc tả ca sử dụng, giúp xây dựng cấu trúc chặt chẽ, dễ viết dễ đọc cho văn đặc tả ca sử dụng Bộ luật giới hạn RUCM gồm 26 luật, phân thành hai nhóm: luật hạn chế sử dụng ngôn ngữ tự nhiên luật bắt buộc sử dụng từ khóa cụ thể để định cấu trúc điều khiển Các luật hạn chế ngôn ngữ tự nhiên trọng vào bước hành động, yêu cầu người dùng phải sử dụng câu đơn giản, tại, sử dụng câu chủ định, tránh từ ngữ không rõ ý, tránh nói lan man tập trung vào tương tác Các luật từ khóa đặc biệt u cầu người sử dụng phải hiểu rõ sử dụng xác từ khóa trường hợp, giúp cho mô tả rõ nghĩa không bị lẫn câu bình thường với câu lệnh điều khiển Bảng 2.6: Khuôn mẫu RUCM RUCM ngôn ngữ thể dạng bán văn nên thường phải sử dụng phương pháp xử lý ngôn ngữ tự nhiên để lấy liệu từ mô tả ca sử dụng Ngồi ra, RUCM khơng phát triển theo hướng mơ hình hóa, khơng chuyển hóa diễn đạt đặc tả thành mơ hình mà hầu hết thực phân tích trực tiếp liệu đầu vào RUCM khơng có cú pháp trừu tượng riêng mà phụ thuộc vào cách xử lý ứng dụng Điều có lợi trường hợp cố định tính tốn từ trước, khơng hỗ trợ khả mở rộng phạm vi ứng dụng ngôn ngữ FRSL giải vấn đề này, với việc cung cấp cú pháp cụ thể trọn vẹn dạng văn bản, tạo 31 thuận lợi cho q trình phân tích xây dựng thành mơ hình đặc tả FRSL, đáp ứng tính dễ chuyển đổi để ứng dụng cho nhiều nhu cầu khác Nghiên cứu [2] đề xuất ngôn ngữ đặc tả ca sử dụng USL Đây ngôn ngữ sâu vào thể thông tin mặt cấu trúc hành vi ca sử dụng USL tập trung vào luồng hành vi luồng kiện, với hệ thống phân tích, phân loại diễn giải chi tiết loại hành động mối liên kết chúng Tuy nhiên, mức độ chuyên sâu cao khiến cho USL không xây dựng cú pháp cụ thể dạng văn bản, khiến cho ngơn ngữ khó tiếp cận với người dùng So với USL, ngôn ngữ FRSL thể đặc tả mức tổng quát dễ sử dụng Bên cạnh đó, cơng cụ FRSL xây dựng theo cấu trúc plugin, cung cấp khả mở rộng phân tích sâu mức độ mà người dùng mong muốn 2.7 Tổng kết chương Chương trình bày khái niệm miền vấn đề đặc tả ca sử dụng, từ làm sở cho cú pháp trừu tượng cú pháp cụ thể ngôn ngữ đặc tả ca sử dụng FRSL Cú pháp trừu tượng FRSL xây dựng theo hướng metamodel, với thành phần liên kết chặt chẽ theo miền vấn đề Từ đó, luận văn xây dựng cú pháp cụ thể dạng văn dựa luật chặt chẽ khn mẫu phát triển từ RUCM Các mơ hình tổng hợp xây dựng theo metamodel, sau sử dụng để làm đầu vào cho phép chuyển đổi mơ hình để thực mục đích khác 32 CHƯƠNG Cài đặt Thực nghiệm Trong chương này, luận văn mô tả công cụ FRSL để hỗ trợ cho việc xây dựng áp dụng mơ hình FRSL Sau đó, cơng cụ đưa vào tốn vận dụng nhằm đánh giá thơng tin mơ hình FRSL, đồng thời kiểm chứng tính khả dụng cơng cụ hỗ trợ Từ đó, luận văn đưa số nhận xét hiệu ưu nhược điểm ngơn ngữ 3.1 Giới thiệu Để ứng dụng ngôn ngữ vào vấn đề thực tế, đồng thời tăng khả tiếp cận người dùng, luận văn phát triển công cụ hỗ trợ FRSL Phần đầu chương trình bày cấu trúc chương trình, với mục tiêu cung cấp hệ thống giao diện giúp người dùng dễ dàng tương tác sử dụng đặc tả ca sử dụng Bộ công cụ xây dựng theo kiến trúc plugin, cho phép khả mở rộng phát triển tương lai Trong phần tiếp theo, luận văn áp dụng ngôn ngữ đặc tả công cụ vào tốn thực tế ca sử dụng hệ thống máy bán hàng tự động POS, từ đánh giá kết đạt thực nghiệm 3.2 Công cụ hỗ trợ Bộ công cụ hỗ trợ FRSL xây dựng ngôn ngữ Java, với phần đồ họa sử dụng thư viện Java Swing Cú pháp trừu tượng FRSL hệ thống metamodel, xây dựng chế tác ngôn ngữ Java Cú pháp cụ thể ngôn ngữ xây dựng luật viết từ công cụ ANTLR Chức sinh tự động sơ đồ ca sử dụng hỗ trợ cơng cụ PlantUML, với việc chuyển hóa mơ hình từ mơ hình FRSL sang dạng văn PlantUML thực mã nguồn Java Chương trình cung cấp hai chức Chức tải tệp đặc tả, cho phép người dùng tải lên tệp văn có chứa thơng tin đặc tả ca sử dụng, viết theo cú pháp ngôn ngữ FRSL Tệp đọc đưa vào công cụ ANTLR để xử lý thành cú pháp, sau duyệt với ANTLR visitor để xây dựng mơ hình FRSL dựa metamodel định nghĩa sẵn Mơ hình sinh lưu nhớ sẵn sàng để sử dụng cho mục đích khác 33 Hình 3.1: Giao diện công cụ FRSL Cú pháp cụ thể từ ANTLR viết tệp g4 Chương trình cấu hình cơng cụ Maven, với tích hợp ANTLR để dịch tệp thành giao diện (interface) lớp (class) ngôn ngữ Java thực build Một lớp FRSLVisitor tạo kế thưa từ Visitor sinh ra, đóng vai trị thành phần duyệt văn đặc tả xử lý logic q trình chuyển hóa xây dựng mơ hình Sau chiết suất nội dung tệp đặc tả từ giao diện người dùng, FRSLVisitor đọc phân tách văn thành cú pháp trừu tượng, sau duyệt thực logic tính tốn để nạp vào mơ hình FRSL, kiểm tra điều kiện ràng buộc xác định lỗi FRSLVisitor thực kiểm tra toàn cục lần sau duyệt hết cây, đảm bảo thỏa mãn ràng buộc định nghĩa trước trả mơ hình hồn chỉnh Chức thứ hai chương trình xử lý áp dụng plugin Bộ công cụ FRSL phát triển theo kiểu kiến trúc plugin, cung cấp khả mở rộng phạm vi ứng dụng mơ hình FRSL với nhiều nhu cầu khác Hệ thống đọc tệp jar thư mục, sau plugin runtime xây dựng điểm kích hoạt để gọi đến đoạn mã plugin Các điểm kích hoạt gắn vào menu giao diện thông qua menu phụ tạo tương ứng Từ đó, người sử dụng định sử dụng chức tùy theo mong muốn 34 Chương trình cung cấp sẵn plugin plugin sinh tự động sơ đồ ca sử dụng Hình 3.2: Menu plugin công cụ FRSL Các plugin khởi tạo lớp MainPluginRuntime có nhiệm vụ đọc ghi danh (register) plugin từ tệp jar Để đọc tệp jar, chương trình gọi đến lớp ParsePlugin để tìm đọc tệp khai báo tệp jar, sau phân tích thành đối tượng liệu, có chứa thơng tin kiện (package) lớp plugin, với điểm kết nối dùng để gắn lên menu chương trình chạy thao tác plugin cần thiết Sau đọc thành đối tượng liệu, MainPluginRuntime ghi danh đối tượng vào danh sách plugin sử dụng chạy tác vụ khởi tạo plugin có Phần giao diện người dùng chương trình sau đọc từ danh sách tạo menu tương ứng để gắn kết điểm kết nối plugin (Hình 3.2) 3.3 Bài tốn vận dụng Để kiểm chứng tính khả dụng ngôn ngữ FRSL công cụ hỗ trợ, toán đặc tả ca sử dụng hệ thống máy bán hàng tự động (POS) sử dụng làm đầu vào cho chương trình Hệ thống bao gồm hai tác nhân, sáu ca sử dụng, bốn mối quan hệ ca sử dụng Hình 3.3 phiên ngắn gọn văn đặc tả ca sử dụng 35 Hình 3.3: Văn đặc tả ca sử dụng rút gọn Hình 3.4 sơ đồ ca sử dụng sinh chức sinh tự động mà chương trình cung cấp từ thông tin văn đặc tả ca sử dụng Kết giúp đánh giá văn đặc tả đọc phân tích thành mơ hình FRSL cách đầy đủ xác Q trình ứng dụng chuyển đổi mơ hình khơng gặp vấn đề gì, thơng tin quan hệ ca sử dụng bảo toàn Ngoài ra, toán giúp chứng minh khả hoạt động kiến trúc plugin thơng qua q trình xây dựng tự động sơ đồ ca sử dụng Sản phẩm plugin tích hợp hiển thị giao diện cơng cụ 36 Hình 3.4: Sơ đồ ca sử dụng sinh từ văn đặc tả 3.4 Đánh giá Các ca sử dụng thể rõ ràng dễ hiểu thông qua xử lý ngôn ngữ đặc tả ca sử dụng FRSL, chuyển hóa từ dạng văn thành dạng khác có sơ đồ ca sử dụng với mức độ diễn đạt cao Điều cho thấy hướng phát triển đặc tả ca sử dụng theo ngôn ngữ chuyên biệt miền đắn có khả áp dụng cao Ngơn ngữ FRSL cung cấp đầy đủ thành phần cú pháp trừu tượng cú pháp cụ thể, giúp đáp ứng hầu hết trường hợp thể ca sử dụng yêu cầu phần mềm Cú pháp cụ thể dạng văn làm tăng tính dễ dùng tránh lỗi khơng đáng có, giúp người sử dụng dễ dàng thao tác mà không cần nhiều thời gian làm quen Luận văn xây dựng thành công ngôn ngữ đặc tả ca sử dụng FRSL với kết tốt áp dụng vào tốn thực tế Mơ hình FRSL xây dựng chi tiết từ văn đặc tả, với khả áp dụng cho nhiều mục tiêu khác nhau, kết hợp với khả mở rộng kiến trúc plugin đem lại phạm vi diễn đạt rộng, đặc tả cụ thể yêu cầu chức tốn Tuy nhiên, ngơn ngữ số điểm hạn chế cần phải khắc phục Các thành phần đặc tả xử lý cách rời rạc, khiến cho việc phân tích chuyên sâu vào thành phần khó đạt độ chi tiết không áp dụng kĩ thuật xử lý ngôn ngữ tự nhiên 37 cao cấp Ngồi ra, cơng cụ hỗ trợ chưa cung cấp nhiều chức để áp dụng phổ biến cần nhiều đóng góp từ cộng đồng để mở rộng 3.5 Tổng kết chương Ngôn ngữ FRSL tích hợp để xây dựng thành cơng cụ FRSL hỗ trợ cho trình đọc xử lý văn đặc tả đầu vào thành mơ hình, đồng thời áp dụng mơ hình vào chuyển đổi để đáp ứng nhiều nhu cầu khác Bộ công cụ xây dựng theo kiểu kiến trúc plugin, giúp tăng khả mở rộng chức chương trình đóng góp cộng đồng lập trình viên Thơng qua cơng cụ này, ngơn ngữ FRSL vận dụng vào thực nghiệm với tốn thực tế, từ đánh giá khả diễn đạt tốt khả áp dụng đa dạng ngôn ngữ Tuy nhiên, ngôn ngữ FRSL cần phải khắc phục thêm số thành phần cịn hạn chế để đưa vào sử dụng phổ biến 38 KẾT LUẬN Phân tích đặc tả yêu cầu quy trình quan trọng phát triển phần mềm, đóng vai trị chủ chốt, ảnh hưởng đến tồn bước phía sau trình xây dựng phần mềm Tuy nhiên, việc phân tích u cầu thường gặp nhiều khó khăn, kết hợp với đa dạng dễ thay đổi yêu cầu phần mềm khiến cho đặc tả yêu cầu cách có hiệu trở thành thách thức Nhiều nghiên cứu phát triển để hỗ trợ người dùng đặc tả yêu cầu, nghiên cứu tập trung vào UML ca sử dụng đem đến hiệu tốt khả diễn đạt đặc tả Thế có nhiều hạn chế việc tiếp cận phân tích ca sử dụng, nên luận văn thực nghiên cứu đề xuất ngôn ngữ đặc tả ca sử dụng phát triển theo hướng chuyên biệt miền nhằm mục đích hỗ trợ người dùng mô tả áp dụng thành phần ca sử dụng Luận văn đạt kết sau: - Giới thiệu tổng quan đặc tả yêu cầu, yêu cầu chức năng, ca sử dụng, khái niệm định hướng mơ hình hóa chun biệt miền ngơn ngữ mơ hình hóa chun biệt miền công cụ hỗ trợ xây dựng ngơn ngữ - Phân tích diễn giải thành phần miền vấn đề ca sử dụng, từ xây dựng hệ thống metamodel đóng vai trị cú pháp trừu tượng ngôn ngữ Xây dựng cú pháp cụ thể dạng văn đóng gói thành ngôn ngữ đặc tả ca sử dụng FRSL Từ mô hình FRSL tổng hợp được, nghiên cứu chuyển đổi thành dạng khác cho mục đích sử dụng, tập trung vào sinh tự động sơ đồ ca sử dụng - Vận dụng ngôn ngữ xây dựng công cụ hỗ trợ FRSL Bộ công cụ xây dựng theo kiến trúc plugin, tăng khả mở rộng cho lĩnh vực khác nhận đóng góp từ cộng đồng lập trình viên - Áp dụng ngơn ngữ vào tốn thực tế đặc tả ca sử dụng hệ thống máy bán hàng tự động POS Đưa đánh giá khả diễn tả áp dụng mơ hình FRSL, ưu nhược điểm cách tiếp cận Với kết trên, luận văn xin đề xuất số hướng phát triển tiếp theo: 39 - Phát triển cú pháp cụ thể cho ngôn ngữ FRSL dạng hình học, tăng khả diễn đạt đặc tả người dùng tính dễ dàng tiếp cận ngôn ngữ - Xây dựng giao diện công cụ hỗ trợ dạng môi trường phát triển (IDE), giúp lập trình viên tạo, sửa, xóa trực tiếp thông tin đặc tả nhận kết cách nhanh chóng - Xây dựng plugin cho cơng cụ để chuyển hóa mơ hình FRSL sang nhu cầu khác sinh tự động ca kiểm thử, mã nguồn, mẫu, 40 TÀI LIỆU THAM KHẢO [1] Arie van Deursen and Paul Klint (2002), “Domain-Specific Language Design Requires Feature Descriptions”, Journal of Computing and Information Technology – CIT, pp 1–17 [2] Chu Thi Minh Hue, Dang Duc Hanh, Nguyen Ngoc Binh and Le Minh Duc (2018), “USL: A Domain-Specific Language for Precise Specification of Use Cases and Its Transformations”, Informatica, volume 42, pp 325–343 [3] Chu Thi Minh Hue, Dang Duc Hanh, Nguyen Ngoc Binh and Truong Anh Hoang (2019), “USLTG: Test Case Automatic Generation by Transforming Use Cases”, Int Journal of Software Engineering and Knowledge Engineering, volumne 29, pp 1313–1345 [4] Chunhui Wang, Fabrizio Pastore, Arda Goknil, Lionel Briand, Zohaib Iqbal (2015), “Automatic Generation of System Test Cases from Use Case Specifications”, ISSTA 2015, pp 385–396 [5] Hans J Köhler, Ulrich Nickel, Jörg Niere, Albert Zündorf (2000), “Integrating UML Diagrams for Production Control Systems”, Proceedings International Conference on Software Engineering, pp 241–251 [6] IEEE (2011), Systems and software engineering – Life cycle processes – Requirements engineering, ISO/IEC/IEEE [7] Le Duc Minh, Dang Duc Hanh and Nguyen Viet Ha, “On Domain Driven Design Using Annotation-Based Domain Specific Language”, Computer Languages, Systems & Structures, volumn 54, pp 199–235 [8] Marco Brambilla, Jordi Cabot, Manuel Wimmer (2017), Model-Driven Software Engineering in Practice – Second Edition, Morgan & Claypool Publishers [9] Richard C Gronback (2009), ECLIPSE MODELING PROJECT A DomainSpecific Language Toolkit, Addison-Wesley [10] Ruth Malan and Dana Bredemeyer (2001), Functional Requirements and Use Cases, Bredemeyer Consulting [11] Steven Kelly, Juha-Pekka Tolvanen, DOMAIN-SPECIFIC MODELING Enabling Full Code Generation, Wiley-Interscience Publication, JOHN WILEY & SONS, INC [12] Tao Yue (2010), Restricted Use Case Modeling Approach, Simula Research Laboratory ... vai trị yêu cầu đặc tả yêu cầu, đồng thời nhấn mạnh vào khó khăn q trình xây dựng đặc tả yêu cầu Luận văn tập trung vào yêu cầu chức cách thể yêu cầu chức thơng qua mơ hình ca sử dụng, đặc tả hỗ... dụng ngôn ngữ đặc tả chuyên biệt miền vấn đề ca sử dụng Nhiều nghiên cứu [2] [4] [12] theo hướng xây dựng ngôn ngữ tập trung vào số thành phần ca sử dụng Luận văn nghiên cứu đề xuất ngôn ngữ FRSL... Trung Hà NGHIÊN CỨU NGÔN NGỮ ĐẶC TẢ YÊU CẦU THEO HƯỚNG CHUYÊN BIỆT MIỀN Ngành: Kỹ thuật phần mềm Chuyên ngành: Kỹ thuật phần mềm Mã số: 8480103.01 LUẬN VĂN THẠC SĨ: CÔNG NGHỆ PHẦN MỀM Cán hướng