Đặt vấn đề Trong phát triển phần mềm hiện nay, kỹ thuật yêu cầu (Requirement Engineering - RE) là một pha cực kỳ trọng yếu, là bước khởi đầu và có thể ảnh hưởng tới toàn bộ hoạt động phát triển phần mềm nếu không được thực hiện một cách đúng đắn. RE là chìa khóa cho sự thành công của các dự án phần mềm [19]. Thực tế, trong các hệ thống lớn và phức tạp, rất khó để phát triển được chính xác các yêu cầu phần mềm [19]. Một số nghiên cứu chỉ ra rằng: Các lỗi phát sinh trong pha yêu cầu thường là nghiêm trọng và khó khăn nhất để khắc phục.
70% các lỗi hệ thống là do đặc tả chưa đầy đủ và 30% là do các vấn đề thiết kế [1, 18]. Có nhiều nguyên nhân dẫn đến các vấn đề trên, có thể được phân loại thành các nhóm chính sau [18]: Vấn đề về phạm vi: Ranh giới của hệ thống không rõ ràng, dẫn đến việc các thông tin không quan trọng có thể được đưa vào thiết kế trong khi các thông tin cần thiết có thể bị thiếu trong đặc tả yêu cầu. Vấn đề về nhận thức và hiểu rõ hệ thống: phát sinh khi người phân tích/phát triển không xác định đúng nhu cầu của người yêu cầu hoặc khi bản thân người yêu cầu và các bên liên quan không thể hiện rõ được nhu cầu của chính họ. Bên cạnh đó, sự thiếu trao đổi hoặc hiểu sai trong giao tiếp giữa bên yêu cầu và bên phân tích/phát triển cũng góp phần làm sinh ra các yêu cầu thiếu hoàn chỉnh, chính xác hoặc còn mơ hồ, không nhất quán.
Vấn đề về đáp ứng sự thay đổi: Theo thời gian, các yêu cầu cần luôn được cập nhật và thay đổi dựa trên sự thay đổi về nhu cầu và mục đích của bên yêu cầu, hay do sự phát triển không ngừng của các công nghệ phần mềm. Do đó, sự chậm trễ trong việc thích ứng hay sự giái quyết không thỏa đáng các xung đột phát sinh có thể làm nảy sinh nhiều vấn đề. Nhiều nghiên cứu được đề xuất để nâng cao hiệu quả của pha yêu cầu và khắc phục các lỗi trên để có thể tạo ra được những chế tác yêu cầu phần mềm chính xác, hoàn thiện và hiệu quả. Trong đó, hướng tiếp cận mô hình quy trình nghiệp vụ là một giải pháp phù hợp bởi ít nhất một nửa sự phát triển phần mềm công nghiệp được kết nối với sự phát triển ứng dụng kinh doanh [5] và việc hiểu rõ quy trình hoạt động là chìa khóa để xác định, phân tích các yêu cầu hệ thống cần thiết cho quá trình phát triển.
Thực tế cũng cho thấy nhiều tổ chức, doanh nghiệp đã có sẵn các mô hình quy trình nghiệp vụ tương đối đầy đủ và chi tiết để có thể cung cấp nền tảng cho việc mô hình hóa yêu cầu phần mềm. Ví dụ, một nghiên cứu tại một ngân hàng quốc tế lớn chỉ ra rằng 350 trên tổng số 1000 quy trình kinh doanh dùng trong ngân hàng đã được mô 6 tả rõ ràng và sử dụng để tham khảo trong hoạt động kinh doanh hàng ngày [14]. Bên cạnh đó, mô hình quy trình nghiệp vụ có thể thể hiện hoạt động của tổ chức một cách rõ ràng dễ hiểu qua các các biểu đồ đồ họa, góp phần làm giảm các lỗi phát sinh do “vấn đề về nhận thức và hiểu rõ hệ thống”. Mô hình quy trình nghiệp vụ cũng giải quyết được “vấn đề về phạm vi” khi xây dựng đặc tả yêu cầu bởi việc thể hiện cách thức mà tổ chức thực hiện và sắp xếp công việc cũng như việc quy định rõ ràng cấu trúc và mục đích của hệ thống.
Theo các nghiên cứu [7, 13, 14], một dạng chế tác phần mềm có sự tương đồng rất lớn với mô hình quy trình nghiệp vụ đó là ca sử dụng. Điều này khá rõ ràng khi xem xét đến hai khái niệm của ca sử dụng và quy trình kinh doanh: Một ca sử dụng UML chỉ định một chuỗi các hành động, bao gồm các biến thể mà hệ thống có thể thực hiện, mang lại kết quả giá trị có thể quan sát được cho một tác nhân cụ thể [14]. Một quy trình kinh doanh là một tập hợp các hoạt động có cấu trúc và được cân nhắc, được thiết kế để tạo ra đầu ra cụ thể cho một khách hàng hoặc một thị trường cụ thể [12]. Dựa trên các định nghĩa này, cả quy trình nghiệp vụ và ca sử dụng đều tập trung vào các hoạt động (hành động), đều được sắp xếp theo một cách nào đó và đều nhằm mục đích tạo ra một kết quả cụ thể cho một đối tượng nhất định (tác nhân hoặc khách hàng).
Không chỉ tương đồng rõ rệt về mặt khái niệm, các quy trình nghiệp vụ còn có thể được mô tả bởi chính mô hình ca sử dụng [15]. Từ đó có thể nhận định việc chuyển đổi từ quy trình kinh doanh sang ca sử dụng là hoàn toàn có thể và hợp lý. Thêm vào đó, việc chuyển đổi này có thể mang lại lợi ích cụ thể, bởi thông thường, để xây dựng ca sử dụng, các tổ chức phải thực hiện khá nhiều cuộc phỏng vấn và phân tích đánh giá trong khi quy trình kinh doanh lại thường có sẵn dưới dạng các hướng dẫn công việc hoặc sổ tay quản trị [14]. Sử dụng chính những nguồn có sẵn này để sinh ra ca sử dụng có thể tiết kiệm được nhiều thời gian, công sức và đảm bảo phản ánh đúng nhu cầu nghiệp vụ của hệ thống.
Hiện nay, nhiều nghiên cứu đã đưa ra các phương pháp để giải quyết vấn đề trong bài toán này, có thể chia thành 3 hướng tiếp cận chính như sau: thứ nhất là phương pháp thủ công chuyển đổi giữa BPM và UC, thứ hai là chuyển đổi tự động mô hình UC từ BPM bằng cách xây dựng thuật toán chuyển đổi và cuối cùng là chuyển đổi tự động mô hình UC từ BPM bằng cách áp dụng MDE. Chuyển đổi thủ công giữa mô hình BPM và UC Ở cách tiếp cận đầu tiên, Cruz và các đồng tác giả đã xây dựng một tập các luật để tạo ra mô hình ca sử dụng bao gồm cả biểu đồ và đặc tả từ mô hình quy trình nghiệp vụ [9]. Nghiên cứu tập trung ưu tiên vào quá trình sinh ra đặc tả giàu thông tin sử dụng nhiều luật tương quan hơn. Các đặc tả thể hiện qua ngôn ngữ tự nhiên (Natural Language – NL) bởi một tập hợp các cấu trúc câu đã được quy định trước.
Trong khi đó, nội dung của biểu đồ ca sử dụng được tạo ra bởi 5 luật chuyển đổi, áp dụng tương ứng cho các đối tượng Participant, Lane, Activity, quan hệ giữa Participant và Pool, quan hệ giữa Participant và Activity 7 từ mô hình BPMN. Do đó, biểu đồ tạo ra tương đối đơn giản, chỉ bao gồm những yếu tố thành phần cơ bản là Actor, Use Case và quan hệ giữa Actor và Use Case, không bao gồm các quan hệ giữa các Use Case như quan hệ mở rộng, bao gồm hay quan hệ tổng quát. Chuyển đổi tự động mô hình UC từ BPM bằng cách xây dựng thuật toán chuyển đổi Nghiên cứu [13, 14] mô tả một thuật toán để chuyển đổi mô hình quy trình nghiệp vụ thành đặc tả yêu cầu chức năng, cụ thể là biểu đồ ca sử dụng. Thuật toán hoạt động dựa trên việc tạo ra các siêu mô hình của quy trình nghiệp vụ và yêu cầu chức năng ca sử dụng, từ đó so sánh các khái niệm, ý nghĩa của các khái niệm và đưa ra được các ánh xạ tương quan giữa các mô hình.
Chi tiết việc xây dựng khái niệm tương quan này được trình bày cụ thể trong [14] (Hình 1. Ánh xạ các khái niệm UC từ quy trình nghiệp vụ [14]. Trong quá trình thực nghiệm, phương pháp đã đánh giá 6 quy trình nghiệp vụ và tạo ra được 42 ca sử dụng. Trong đó 17 ca sử dụng có cấu trúc chưa chính xác và vẫn còn sai sót, một tỉ lệ lỗi tương đối cao [13].
Chuyển đổi tự động mô hình UC từ BPM bằng cách áp dụng MDE Trong [21], một giải pháp tự động hóa được đưa ra để chuyển đổi từ mức mô hình độc lập tính toán (CIM) sang mức mô hình độc lập với nền tảng (PIM). Cách tiếp cận sử dụng biểu đồ cộng tác và biểu đồ quy trình BPMN đại diện cho mô hình nghiệp vụ tiêu chuẩn để thể hiện ở mức CIM. Từ đó thu được biểu đồ ca sử dụng quy định chức năng của hệ thống và cuối cùng là biểu đồ lớp để mô hình các lớp và các mối quan hệ giữa chúng. Để thực hiện việc chuyển đổi, tác giả sử dụng công cụ dựa trên ngôn ngữ QVT, theo kiến trúc hướng mô hình (MDA).
Một nghiên cứu khác cũng theo 8 hướng MDE là [6], đề xuất một công cụ BPMN2UC sử dụng ngôn ngữ ATL (ATLAS Transformation Language) để sinh ra biểu đồ UC từ các khái niệm BPMN. Đồng thời phương pháp cũng cho phép tạo ra đặc tả ca sử dụng cho các ca sử dụng phức tạp bằng cách sử dụng Acceleo. Có thể thấy các phương pháp tiếp cận như trên đều mang lại những hiệu quả nhất định, tuy nhiên vẫn còn tồn tại một số nhược điểm cụ thể. Phần lớn các giải pháp đều được thực hiện một cách thủ công, độ chính xác chưa cao và phát sinh tốn kém nhân lực và chi phí.
Cùng với đó, khả năng bao trùm các loại phần tử hay khái niệm còn yếu kém, dẫn đến việc đầu ra còn chưa đầy đủ và nghèo thông tin. Việc thực hiện chuyển đổi còn phức tạp hay sự dư thừa trong quá trình xử lý cũng là những hạn chế cần được khắc phục. Mục tiêu và phƣơng pháp Mục đích cơ bản của luận văn là xây dựng một phương pháp sinh tự động mô hình ca sử dụng từ mô hình quy trình nghiệp vụ, nhằm nâng cao hiệu quả của pha yêu cầu phần mềm và gia tăng tự động hóa trong phát triển phần mềm. Giải pháp cần đơn giản, có thể áp dụng dễ dàng và phản ánh tương đối chi tiết và chính xác các hoạt động nghiệp vụ hệ thống.
Để đạt được mục tiêu này, luận văn đã đề xuất phương thức tiếp cận như sau: Nghiên cứu siêu mô hình của quy trình nghiệp vụ và ca sử dụng, từ đó so sánh, phân tích và đánh giá để tìm ra sự tương quan giữa các yếu tố trong mô hình. Từ đó, xây dựng một bộ quy tắc chuyển đổi mô hình. Phát triển một chương trình chuyển đổi mô hình – BPMN2UseCase, cài đặt dựa trên bộ luật nêu trên và tự động sinh ca sử dụng từ mô hình nghiệp vụ đầu vào.