Luận văn thạc sĩ: Ngôn ngữ mô hình hóa cho yêu cầu bảo mật (ĐH Công Nghệ)

Luận văn mô hình hóa yêu cầu bảo mật: Nghiên cứu các phương pháp, kỹ thuật và công cụ để xây dựng mô hình bảo mật hiệu quả, đảm bảo an toàn thông tin.

Chuyên ngành

Công Nghệ Thông Tin

Người đăng

Ẩn danh

Thể loại

Luận Văn Thạc Sĩ

2011

69
1
0

Phí lưu trữ

30 Point

Mục lục chi tiết

LỜI CẢM ƠN

LỜI CAM ĐOAN

DANH MỤC KÝ HIỆU, TỪ VIẾT TẮT

DANH MỤC BẢNG

DANH MỤC HÌNH VẼ

1. TỔNG QUAN VỀ MÔ HÌNH HÓA CHUYÊN BIỆT MIỀN

1.1. Mô hình hóa mục đích chung và mô hình hóa chuyên biệt miền

1.2. Mô hình hóa mục đích chung

1.3. Mô hình hóa chuyên biệt miền

1.4. Ngôn ngữ mô hình hóa chuyên biệt miền

1.5. Biểu diễn mô hình

1.6. Ràng buộc mô hình

1.7. Phƣơng pháp xây dựng ngôn ngữ mô hình hóa chuyên biệt miền (DSML)

1.8. Một số công cụ hỗ trợ xây dựng DSML

1.9. Giới thiệu về các công cụ cho DSML

1.10. Các dự án cho mô hình hóa của Eclipse

1.11. Phát triển dự án DSML với Eclipse

2. MÔ HÌNH HÓA CHUYÊN BIỆT MIỀN CHO MIỀN BẢO MẬT

2.1. Miền bảo mật

2.2. Giới thiệu về miền bảo mật

2.3. Điều khiển truy cập dựa trên vai trò (RBAC)

2.4. Metamodel cho bảo mật theo mô hình RBAC

2.5. Xác định các luật ràng buộc trên metamodel

3. XÂY DỰNG NGÔN NGỮ CHUYÊN BIỆT MIỀN RBAC TRÊN ELIPSE

3.1. Cú pháp trừu tƣợng

3.2. Cú pháp cụ thể

3.3. Thêm các ràng buộc viết bằng OCL

4. VẬN DỤNG DSML CHO RBAC

4.1. Giới thiệu về phân quyền trong diễn đàn

4.2. Mô hình hóa các yêu cầu bảo mật của diễn đàn với Tool DSML RBAC

KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN

TÀI LIỆU THAM KHẢO

MỞ ĐẦU

Tóm tắt

I. Mô hình hóa yêu cầu bảo mật Tổng quan và tầm quan trọng

Các hệ thống phần mềm hiện đại ngày càng trở nên phức tạp, đòi hỏi phải giảm thời gian và chi phí phát triển, đồng thời tăng chất lượng để đáp ứng nhu cầu sử dụng phần mềm trên mọi lĩnh vực. Để giải quyết vấn đề này, giải pháp phát triển các framework phục vụ cho phát triển phần mềm đã được đề xuất. Tuy nhiên, những giải pháp đó vẫn chưa đủ để đáp ứng nhu cầu của ngành công nghiệp phần mềm, và việc phát triển phần mềm vẫn còn thủ công, dựa vào con người là chủ yếu. Do đó, việc nghiên cứu và đưa ra một giải pháp tăng tính tự động trong phát triển phần mềm đã được đề xuất và phát triển. Giải pháp phát triển phần mềm hướng mô hình (MDD) được xem là một giải pháp phù hợp cho vấn đề này. MDD đặt mô hình hóa là vấn đề trọng tâm trong phát triển phần mềm, từ đó các mô hình sẽ được dịch chuyển sang mã chương trình triển khai nhờ bộ sinh mã nguồn (code generator). Phát triển hướng mô hình đặc biệt phù hợp với phát triển các sản phẩm phần mềm cùng dòng (software product line). Một trong các hướng tiếp cận của phát triển hướng mô hình là mô hình hóa chuyên biệt miền (DSM), trong đó việc xây dựng ngôn ngữ mô hình hóa chuyên biệt miền (DSML) thường được triển khai dưới dạng một dự án nhỏ khởi đầu trong một dự án lớn. Kết quả của dự án mô hình hóa chuyên biệt miền là một ngôn ngữ mô hình hóa chuyên biệt miền. Ngôn ngữ này cho phép mô hình hóa các vấn đề trong dự án. Kết quả thu được là sự dịch chuyển các mô hình của dự án sang code triển khai, giúp giảm thời gian và chi phí phát triển phần mềm. Bảo mật đóng vai trò trung tâm trong phát triển và hoạt động của các hệ thống phần mềm phân tán quy mô lớn, như thương mại điện tử. Bảo mật là một khía cạnh ngang trong phát triển phần mềm. Hầu hết các dự án phần mềm đều gặp phải vấn đề này, tuy nhiên vấn đề thiết kế bảo mật trong thiết kế tổng thể thường bị bỏ quên hoặc chỉ tích hợp trong giai đoạn quản trị hệ thống. Hạn chế này là do thiếu công cụ hỗ trợ kỹ nghệ bảo mật, tích hợp bảo mật thủ công rất khó và thường phát sinh lỗi do người phát triển hệ thống thiếu kinh nghiệm vì họ không phải là chuyên gia về bảo mật. Vì vậy, việc tích hợp bảo mật trong dự án phần mềm nếu được thực hiện một cách trực quan và tự động, sẽ làm giảm chi phí và tăng chất lượng của phần mềm [1]. Với những ưu điểm của mô hình hóa chuyên biệt miền và lợi ích mang lại, cần thiết phải phát triển một ngôn ngữ cho phép mô hình hóa chính xác các yêu cầu bảo mật. Từ đó, đề tài ―Ngôn ngữ mô hình hóa cho các yêu cầu bảo mật‖ đã được lựa chọn.

1.1. Lợi ích của mô hình hóa yêu cầu bảo mật chuyên biệt

Việc sử dụng mô hình hóa chuyên biệt miền cho phép các chuyên gia miền định nghĩa ngôn ngữ và bộ sinh code phù hợp, từ đó cung cấp mã nguồn chất lượng cao. Quy trình xây dựng bộ sinh code tương đương với việc xây dựng trình biên dịch cho một ngôn ngữ thứ ba. Điều này nhấn mạnh hướng tiếp cận phát triển hướng mô hình bằng cách tự hạn chế các mô hình đồ họa và không bao gồm các ngôn ngữ lập trình [2]. DSML tăng tốc phát triển phần mềm và giảm số lượng lỗi trong sản phẩm phần mềm khi được định nghĩa đúng đắn bởi các chuyên gia. Việc phát triển một DSML đòi hỏi chi phí ban đầu, nhưng nếu có nhiều ứng dụng phát triển trong cùng một miền, DSM mang lại lợi ích lớn hơn nhiều so với chi phí xây dựng DSML và bộ sinh code. Sau khi triển khai DSML và bộ sinh code, việc triển khai các ứng dụng mới có thể nhanh hơn phương pháp truyền thống từ 5 đến 10 lần [2]. Do đó, việc lựa chọn giữa DSM và mô hình hóa mục đích chung cần dựa trên số lần lặp lại của các dự án thuộc cùng một miền và tổng chi phí của các dự án.

1.2. Các yếu tố cần thiết để mô hình hóa yêu cầu bảo mật hiệu quả

Mục tiêu của đề tài là tìm hiểu phương pháp phát triển phần mềm hướng mô hình với hướng tiếp cận là mô hình hóa chuyên biệt miền. Đề tài tập trung vào tìm hiểu nền tảng, phương pháp, công cụ phát triển ngôn ngữ mô hình hóa chuyên biệt miền và cài đặt thử nghiệm cho miền bảo mật với tool Eclipse. Việc xây dựng bộ sinh code tự động cũng như tích hợp ngôn ngữ mô hình hóa chuyên biệt miền với các ngôn ngữ mô hình hóa khác như UML hoặc ngôn ngữ mô hình hóa chuyên biệt miền với miền khác, sẽ không được xem xét trong đề tài này. Luận văn được cấu trúc thành 4 chương: (1) Tổng quan về mô hình hóa chuyên biệt miền. (2) Mô hình hóa chuyên biệt miền cho miền bảo mật. (3) Xây dựng ngôn ngữ chuyên biệt miền RBAC trên Eclipse. (4) Vận dụng DSML cho RBAC.

II. Thách thức và vấn đề trong mô hình hóa yêu cầu an ninh hiện tại

Bảo mật đóng vai trò trung tâm trong phát triển và hoạt động của các hệ thống phần mềm phân tán với quy mô lớn, như thương mại điện tử. Tuy nhiên, một phân tích quy trình phát triển phần mềm ngày nay cho thấy các kỹ nghệ thiết kế bảo mật cẩn thận trong thiết kế tổng thể thường bị bỏ quên. Các tính năng bảo mật thường được tích hợp sau trong giai đoạn quản trị hệ thống. Có một số lý do cho vấn đề này. Thứ nhất, bảo mật là một khía cạnh ―ngang‖ của phát triển phần mềm mà ảnh hưởng gần như đến tất cả các thành phần của ứng dụng và sự tích hợp của nó vào trong quy trình phát triển phần mềm chưa được hiểu đúng đắn. Thứ hai, thiếu các công cụ hỗ trợ kỹ nghệ bảo mật. Thứ ba, tích hợp bảo mật vào trong hệ thống thực hiện thủ công là rất khó và thường phát sinh lỗi do các nhà phát triển cá nhân thiếu kinh nghiệm. Các nhà phát triển nói chung thì thường không phải là chuyên gia về bảo mật và họ cần được hướng dẫn cụ thể để xây dựng các ứng dụng bảo mật. Việc tích hợp bảo mật mức độ thấp sẽ làm giảm chất lượng của các ứng dụng [1]. RBAC là một mô hình kiểm soát truy cập được công nhận rộng rãi. RBAC là một giải pháp được đề xuất vào năm 1992 bởi Ferraiolo và Kuhn, tích hợp các tính năng hiện có của ứng dụng xác định phương pháp tiếp cận tổng quát mô hình điều khiển truy cập dựa trên vai trò. Role – Based Access Control (RBAC) [1]. Chi tiết về mô hình bảo mật RBAC sẽ được trình bày trong mục tiếp theo.

2.1. Thiếu hụt công cụ và chuyên môn về kỹ nghệ bảo mật

Các tính năng bảo mật thường được tích hợp muộn trong quá trình phát triển, thường là ở giai đoạn quản trị hệ thống. Một trong những lý do chính là thiếu các công cụ chuyên dụng hỗ trợ kỹ nghệ bảo mật. Việc tích hợp bảo mật thủ công rất phức tạp và dễ xảy ra lỗi, đặc biệt khi các nhà phát triển không có đủ kinh nghiệm hoặc chuyên môn về bảo mật. Đa số các nhà phát triển không phải là chuyên gia bảo mật và cần được hướng dẫn chi tiết để xây dựng các ứng dụng bảo mật.

2.2. Tích hợp bảo mật thủ công và nguy cơ phát sinh lỗi

Việc tích hợp bảo mật thủ công vào hệ thống là một quá trình phức tạp và dễ phát sinh lỗi, đặc biệt khi các nhà phát triển không có đủ kinh nghiệm hoặc chuyên môn. Các lỗi này có thể dẫn đến các lỗ hổng bảo mật nghiêm trọng, gây ảnh hưởng lớn đến hệ thống và dữ liệu.

2.3. Khó khăn trong việc đáp ứng tuân thủ bảo mật và tiêu chuẩn

Các hệ thống phần mềm hiện đại thường phải tuân thủ nhiều tiêu chuẩn và quy định bảo mật khác nhau. Việc đảm bảo tuân thủ này có thể rất khó khăn nếu không có các công cụ và phương pháp phù hợp. Mô hình hóa yêu cầu bảo mật có thể giúp đơn giản hóa quá trình này và đảm bảo rằng hệ thống đáp ứng được các yêu cầu tuân thủ.

III. Cách mô hình hóa yêu cầu bảo mật Phương pháp và công cụ

Trong quy trình phát triển phần mềm, trong một số giai đoạn có sử dụng các ngôn ngữ mô hình hóa mục đích chung, để xây dựng các mô hình, ví dụ UML được sử dụng để xây dựng các biểu đồ trong pha phân tích và thiết kế hệ thống. Các mô hình được mô hình hóa bởi UML thường sử dụng với ý nghĩa làm tài liệu cho dự án là chính, nếu có phát sinh mã nguồn thì chỉ dừng lại ở mức mã khung, vì vậy nếu muốn sinh mã nguồn tự động hoàn toàn thì cần sử dụng một ngôn ngữ mô hình hóa chuyên biệt miền có phạm vi đủ hẹp để hiểu được miền từ đó sinh mã nguồn từ miền [2]. Theo định nghĩa của James Rumbaugh [3] thì mô hình là sự nắm bắt các thành phần chính trong hệ thống. Và mô hình trực quan là các mô hình mà sử dụng các ký hiệu đồ họa trong mô hình. Khi đó mô hình sẽ cho phép chúng ta hiểu rõ hơn về hệ thống mà chúng ta cần phát triển. Mô hình hóa là một quá trình chuyển thế giới thực thực thành các mô hình bằng cách bỏ các chi tiết không quan tâm và giữ lại các chi tiết quan tâm biểu diễn bằng các hình học, khi đó các mô hình sẽ làm cho chúng ta hiểu thế giới thực một cách dễ dàng hơn.

3.1. Sử dụng ngôn ngữ mô hình hóa UML cho bảo mật

Ngôn ngữ UML đã được phát triển tương đối hoàn thiện và được cung cấp cũng như công nhận rộng rãi. Mô hình hóa với UML, khi thay đổi mã nguồn hoặc mô hình thay đổi cần mất chi phí về thời gian, tài nguyên, tiền bạc để đồng bộ giữa mô hình và mã nguồn dẫn đến tăng chí phí trong dự án phần mềm [2]. Phương pháp mô hình hóa chuyên biệt miền có thể khắc phục những nhược điểm trên của phương pháp mô hình hóa mục địch chung.

3.2. Xây dựng ngôn ngữ mô hình hóa chuyên biệt DSML

Mô hình hóa chuyên biệt miền (Domain Specific modeling - DSM) là sử dụng ngôn ngữ mô hình hóa chuyên biệt miền để tạo các mô hình và sinh mã nguồn từ các mô hình đó với bộ sinh code (code generator) [2]. Ngôn ngữ mô hình hóa chuyên biệt miền (Domain-Specific Modeling Language - DSML) là một ngôn ngữ chuyên biệt miền cụ thể nó được sử dụng để xây dựng các mô hình đồ họa cho các hệ thống phần mềm. Định nghĩa ngôn ngữ mô hình hóa chuyên biệt miền và bộ sinh code nên được thực hiện bởi các chuyên gia miền (vì họ là người hiểu về miền nhất). Khi đó, họ có thể cung cấp mã nguồn có chất lượng cao cho miền. Quy trình xây dựng bộ sinh code có thể định nghĩa tương đương với việc xây dựng trình biên dịch cho một ngôn ngữ thứ 3. Định nghĩa này cũng nhấn mạnh hướng tiếp cận phát triển hướng mô hình bằng cách tự hạn chế các mô hình đồ họa và không bao gồm các ngôn ngữ lập trình [2]. Ngôn ngữ chuyên biệt miền (Domain specific language - DSL) là một ngôn ngữ chương trình hoặc ngôn ngữ đặc tả thực thi, bằng cách tích hợp các khái niệm trừu tượng của tri thức miền vào trong ngôn ngữ dưới dạng các ký hiệu có tính biểu cảm cao. DSL tăng mức độ trừu tượng bằng cách sử dụng các khái niệm quen thuộc với các chuyên gia miền và thường được giới hạn trong một miền vấn đề cụ thể nào đó [2].

3.3. Kết hợp mô hình hóa UML và DSML để tăng hiệu quả

Ý tưởng chính trong phát triển hướng mô hình là tập trung vào các mô hình trong phát triển phần mềm và các mô hình đó sẽ được tự động sinh sang mã nguồn triển khai. Một hướng tiếp cận trong phát triển hướng mô hình là các mô hình được mô hình hóa bằng một ngôn ngữ mô hình hóa chuyên biệt miền. Với hướng tiếp cận này, giai đoạn đầu của dự án cần phát triển ngôn ngữ mô hình hóa chuyên biệt miền. Ngôn ngữ mô hình hóa chuyên biệt miền đã xây dựng, sẽ được sử dụng để mô hình hóa các yêu cầu của phần mềm cần phát triển thuộc miền. Bộ sinh code tự động của ngôn ngữ sẽ tự động sinh mã chương trình từ các mô hình đã xây dựng. Hiệu quả sinh code tự động từ mô hình phụ thuộc vào tính đúng đắn của ngôn ngữ mô hình hóa chuyên biệt miền. Để xây dựng được ngôn ngữ mô hình hóa chuyên biệt miền đúng đắn, hiệu quả cao yêu cầu đòi hỏi miền vấn đề không quá lớn để có thể hiểu rõ về miền, các khái niệm trong miền, mối quan hệ giữa các khái niệm và các nghiệp vụ của miền [2].

IV. RBAC Mô hình hóa yêu cầu bảo mật dựa trên vai trò chi tiết

RBAC là một một hình cho kiểm soát truy cập mà người dùng và đặc quyền của họ được tách rời nhau bằng vai trò. Việc tách ra như vậy không chỉ là có được khái niện hữu ích mà còn thu được một chính sách kiểm soát truy cập tương đối chặt chẽ [1]. Trong đó người dùng (User) sẽ được gán cho các vai trò (Role) và đặc quyền (Permission) được gán cho các roles. RBAC là một cơ chế kiểm soát truy cập mô tả chính sách kiểm soát truy cập phức tạp, giảm lỗi, giảm chi phí trong quản trị. Chính sách kiểm soát truy cập được thể hiện trong các thành phần: Mối quan hệ giữa vai trò và đặc quyền (Role-Permission), người dùng và vai trò (User-Role) và vai trò với vai trò (Role- Role). Sự phức tạp của quản trị được giảm đi nhờ vào việc gán các Users vào các Roles, gán Permissions tới các Roles và tổ chức các Roles vào cây thừa kế.

4.1. Kiểm soát truy cập dựa trên vai trò Nguyên tắc cơ bản

RBAC hỗ trợ ba nguyên lý bảo mật nổi tiếng đó là: Đặc quyền tối thiểu (Least Privilege), tách các nhiệm vụ (separation of duties), trừu tượng dữ liệu (Data Abstraction). Các mô hình RBAC được định nghĩa trong bốn mức: RBAC cơ bản (Core RBAC), mô hình RBAC phân cấp (Hierarchical RBAC), tách tĩnh nhiệm vụ (Static Separation of Duty Relations) và tách động nhiệm vụ (Dynamic Separation of Duty Relations) [6].

4.2. Phân cấp vai trò trong mô hình RBAC Cấu trúc và ứng dụng

Mô hình này giới thiệu về hệ thống phân cấp vai trò (RH). Cây phân cấp vai trò là một khía cạnh quan trọng trong mô hình RBAC. Phân cấp vai trò xác định mối quan hệ kế thừa giữa các vai trò. Nếu vai trò r1 kế thừa vai trò r2 nếu tất cả các đặc quyền của r2 cũng là đặc quyền của r1.

4.3. Ràng buộc và tách nhiệm vụ trong mô hình RBAC

Constrained RBAC thêm các quan hệ Separation of Duty (SoD - sự phân chia trách nhiệm) vào mô hình RBAC. SoD được sử dụng để thực thi các chính sách xung đột lợi ích mà các tổ chức có thể sử dụng để ngăn chặn người sử dụng vượt quá một mức độ hợp lý cho các quyền của họ. Giống như một yếu tố bảo mật cơ bản, SoD đã được công nhận một cách rộng rãi cho các ứng dụng trong kinh doanh, các ngành công nghiệp và chính phủ. Mục đích của nó là để đảm bảo rằng các sai sót và gian lận bên trong một tổ chức chỉ là kết quả của việc thông đồng giữa các cá nhân. Để giảm thiểu khả năng thông đồng, các cá nhân thuộc các nhóm kỹ năng khác nhau hoặc lợi ích khác nhau được phân công nhiệm vụ cần thiết và riêng biệt trong việc thực hiện các chức năng của một doanh nghiệp.

V. Ứng dụng và kết quả Mô hình hóa yêu cầu bảo mật thực tiễn

Sau khi nghiên cứu miền bảo mật theo mô hình RBAC, chúng tôi đã xác định được metamodel và các luật ràng buộc trên metamodel. Tiếp theo chúng tôi đã cài đặt thử nghiệm cú pháp trừu tượng cho DSML bằng dự án EMF của Eclipse. Các thành phần tạo ra trong dự án EMF gồm: hai mô hình Ecore và genmodel, và mã nguồn của mô hình là EMF. Để xây dựng mô hình Ecore, chúng tôi đã sử dụng mô hình Ecore diagram để xây dựng. Với mô hình Ecore diagram cho phép chúng ta xây dựng Metamodel một cách trực quan bằng các, thao tác kéo thả. Khi tạo ra một mô hình ecore diagram thì sẽ tạo ra một mô hình Ecore tương ứng.

5.1. Xây dựng cú pháp trừu tượng với Eclipse EMF

EMF đã cung cấp một công cụ cho phép tạo mô hình ecrore một cách trực qua bằng thao tác kéo thả, đó là công cụ Ecorediagram, khi đó để tạo ra mô hình ecore thay vì phải sử dụng các khái niệm trừu tượng của mô hình ecore người dùng có thể sử dụng các ký hiệu trực quan trong thanh công cụ của Ecorediagram.

5.2. Tạo mô hình genmodel và mã nguồn từ ecore

Sau khi xây dựng mô hình Ecore, bước tiếp theo trong dự án EMF tạo ra mô hình genmodel từ mô hình ecore. Mô hình genmodel được sinh ra từ mô hình ecore được bổ sung thêm các thông tin cho EMF. Mã nguồn của mô hình được tạo ra từ mô hình genmodel nhờ bộ Generator của dự án EMF.

5.3. Xây dựng cú pháp cụ thể với Eclipse GMF

Trong dự án EMF chúng tôi đã xây dựng được cú pháp trừu tượng cho DSML. Tiếp theo, chúng tôi sẽ xây dựng cú pháp cụ thể cho DSML bằng dự án GMF của Eclipse. Trong đó các ký hiệu đại diện các khái niệm của DSML cho RBAC sẽ được xây dựng.

VI. Kết luận Triển vọng và tương lai của mô hình hóa bảo mật

Tóm lại trong chương này chúng tôi đã trình bày được về miền bảo mật theo mô hình RBAC, trên cơ sở nghiên cứu về miền chúng tôi đã xây dựng được metamodel biểu diễn cho DSML thuộc miền, cũng như xây dựng các luật ràng buộc bằng OCL cho metamodel.

6.1. Tổng kết các phương pháp và kết quả nghiên cứu

Nhìn chung trong chương này chúng tôi đã trình bày và phân tích được MDD với hướng tiếp cận DSM cũng như phân tích lợi ích của phương pháp này mang lại. Trình bày được phương pháp công cụ để xây dựng DSML cũng như lý thuyết nền tảng của DSML.

6.2. Các hướng phát triển tiếp theo cho mô hình hóa bảo mật

Trong tương lai, mô hình hóa bảo mật sẽ tiếp tục phát triển và đóng vai trò quan trọng hơn trong quá trình phát triển phần mềm. Các công cụ và phương pháp mô hình hóa sẽ ngày càng trở nên tinh vi hơn và dễ sử dụng hơn, giúp các nhà phát triển dễ dàng tích hợp bảo mật vào ứng dụng của mình. Nghiên cứu sâu hơn về các mô hình bảo mật khác nhau (ví dụ: ABAC, LBAC) và tích hợp chúng vào các công cụ mô hình hóa.

24/09/2025

Trích đoạn nội dung tài liệu

Chương 1. Tổng quan về mô hình hóa chuyên biệt miền Chƣơng này giới thiệu chung về cơ sở lý thuyết của phƣơng pháp phát triển phần mềm hƣớng mô hình với hƣớng tiếp cận là mô hình hóa chuyên biệt miền, phân tích lợi ích của DSML, cũng nhƣ các công cụ hỗ trợ cho mô hình hóa chuyên biệt miền. Mô hình hóa chuyên biệt miền cho miền bảo mật Chƣơng này trình bày về miền bảo mật, xác định metamodel, các luật ràng buộc cho miền bảo mật theo mô hình điều khiển truy cập dựa trên vai trò của ngƣời dùng (RBAC). Xây dựng ngôn ngữ chuyên biệt miền RBAC trên Eclipse Chƣơng này trình bày về cài đặt và kết quả thử nghiệm DSML cho miền bảo mật trên phần mềm mã nguồn mở Eclipse.

Vận dụng DSML cho RBAC. Mục tiêu chính của chƣơng này là để kiểm nghiệm kết quả thử nghiệm trong chƣơng 3, cho một bài toán thực tế. Kết luận và hƣớng phát triển. 10 TIEU LUAN MOI download : skknchat@gmail.com CHƢƠNG 1.

TỔNG QUAN VỀ MÔ HÌNH HÓA CHUYÊN BIỆT MIỀN Trong chương này chúng tôi sẽ tập trung vào trình bày về mô hình hóa và ngôn ngữ mô hình hóa chuyên biệt miền, phương pháp xây dựng và công cụ hỗ trợ cho phát triển ngôn ngữ mô hình hóa chuyên biệt miền. Mô hình hóa mục đích chung và mô hình hóa chuyên biệt miền Trong quy trình phát triển phần mềm, trong một số giai đoạn có sử dụng các ngôn ngữ mô hình hóa mục đích chung, để xây dựng các mô hình, ví dụ UML đ ƣ ợ c s ử d ụ n g để xây dựng các biểu đồ trong pha phân tích và thiết kế hệ thống. Các mô hình đƣợc mô hình hóa bởi UML thƣờng sử dụng với ý nghĩa làm tài liệu cho dự án là chính, nếu có phát sinh mã nguồn thì chỉ dừng lại ở mức mã khung, vì vậy nếu muốn sinh mã nguồn tự động hoàn toàn thì cần sử dụng một ngôn ngữ mô hình hóa chuyên biệt miền có phạm vi đủ hẹp để hiểu đƣợc miền từ đó sinh mã nguồn từ miền [2]. Sau đây, chúng tôi sẽ trình bày về mô hình hóa mục đích chung và mô hình hóa chuyên biệt miền.

Mô hình hóa Theo định nghĩa của James Rumbaugh [3] thì mô hình là sự nắm bắt các thành phần chính trong hệ thống. Và mô hình trực quan là các mô hình mà sử dụng các ký hiệu đồ họa trong mô hình. Khi đó mô hình sẽ cho phép chúng ta hiểu rõ hơn về hệ thống mà chúng ta cần phát triển. Mô hình hóa là một quá trình chuyển thế giới thực thực thành các mô hình bằng cách bỏ các chi tiết không quan tâm và giữ lại các chi tiết quan tâm biểu diễn bằng các hình học, khi đó các mô hình sẽ làm cho chúng ta hiểu thế giới thực một cách dễ dàng hơn.

Dƣới đây là một ví dụ về mô hình. 11 TIEU LUAN MOI download : skknchat@gmail. Ví dụ về mô hình [6] 1. Mô hình hóa mục đích chung Trong phát triển phần mềm hƣớng mã nguồn (code - centric), vòng đời phát triển phần mềm đƣợc chia thành các pha: Xác định yêu cầu, phân tích và thiết kế, lập trình, kiểm thử với cách tiếp cận này trong pha phân tích và thiết kế có sử dụng ngôn ngữ mô hình hóa mục đích chung (Ví dụ nhƣ UML) để mô hình hóa phần mềm.

Nhƣng không phải lúc nào phần mềm cũng đƣợc triển khai nhƣ mô hình ban đầu, nếu có sử dụng mô hình để tự động sinh ra code thì code đƣợc sinh ra thƣờng chỉ là mã khung thô và lập trình viên cần hoàn thiện tiếp. Các mô hình ở đây mang ý nghĩa làm tài liệu nhiều hơn mục đích sinh mã nguồn tự động. Hình dƣới đây là một ví dụ về mô hình hóa với UML. 12 TIEU LUAN MOI download : skknchat@gmail.

Mô hình sử dụng UML Ngôn ngữ UML đã đƣợc phát triển tƣơng đối hoàn thiện và đƣợc cung cấp cũng nhƣ công nhận rộng rãi. Mô hình hóa với UML, khi thay đổi mã nguồn hoặc mô hình thay đổi cần mất chi phí về thời gian, tài nguyên, tiền bạc để đồng bộ giữa mô hình và mã nguồn dẫn đến tăng chí phí trong dự án phần mềm [2]. Phƣơng pháp mô hình hóa chuyên biệt miền có thể khắc phục những nhƣợc điểm trên của phƣơng pháp mô hình hóa mục địch chung. Mô hình hóa chuyên biệt miền sẽ đƣợc chúng tôi đề cập trong mục dƣới đây.

Mô hình hóa chuyên biệt miền Mô hình hóa chuyên biệt miền (Domain Specific modeling - DSM) là sử dụng ngôn ngữ mô hình hóa chuyên biệt miền để tạo các mô hình và sinh mã nguồn từ các mô hình đó với bộ sinh code (code generator) [2]. Ngôn ngữ mô hình hóa chuyên biệt miền (Domain-Specific Modeling 13 TIEU LUAN MOI download : skknchat@gmail.com Language - DSML) là một ngôn ngữ chuyên biệt miền cụ thể nó đƣợc sử dụng để xây dựng các mô hình đồ họa cho các hệ thống phần mềm. Đ ịnh nghĩa ngôn ngữ mô hình hóa chuyên biệt miền và bộ sinh code nên đƣợc thực hiện bởi các chuyên gia miền (vì họ là ngƣời hiểu về miền nhất). Khi đó, họ có thể cung cấp mã nguồn có chất lƣợng cao cho miền.

Quy trình xây dựng bộ sinh code có thể định nghĩa tƣơng đƣơng với việc xây dựng trình biên dịch cho một ngôn ngữ thứ 3. Định nghĩa này cũng nhấn mạnh hƣớng tiếp cận phát triển hƣớng mô hình bằng cách tự hạn chế các mô hình đồ họa và không bao gồm các ngôn ngữ lập trình [2]. Ngôn ngữ chuyên biệt miền (Domain specific language - DSL) là một ngôn ngữ chƣơng trình hoặc ngôn ngữ đặc tả thực thi, bằng cách tích hợp các khái niệm trừu tƣợng của tri thức miền vào trong ngôn ngữ dƣới dạng các ký hiệu có tính biểu cảm cao. DSL tăng mức độ trừu tƣợng bằng cách sử dụng các khái niệm quen thuộc với các chuyên gia miền và thƣờng đƣợc giới hạn trong một miền vấn đề cụ thể nào đó [2].

Dƣới đây là một ví dụ về mô hình đƣợc mô hình hóa bằng một ngôn ngữ mô hình hóa chuyên biệt miền. Mô hình kiến trúc phần cứng trong automobiles bằng DSML EAST-ADL 1 Ngôn ngữ EAST-ADL chuyển các tri thức miền thành các khái niệm của ngôn 1 http://www.com/enterprise/Article/30550/0/page/2 14 TIEU LUAN MOI download : skknchat@gmail.com ngữ, các khái niệm đó là ECU, Chanel, Processor, Memory. Các khái niệm này có các ký hiệu đồ họa riêng và quen thuộc với các chuyên gia miền. Ý tƣởng chính trong phát triển hƣớng mô hình là tập trung vào các mô hình trong phát triển phần mềm và các mô hình đó sẽ đƣợc tự động sinh sang mã nguồn triển khai.

Một hƣớng tiếp cận trong phát triển hƣớng mô hình là các mô hình đƣợc mô hình hóa bằng một ngôn ngữ mô hình hóa chuyên biệt miền. Với hƣớng tiếp cận này, giai đoạn đầu của dự án cần phát triển ngôn ngữ mô hình hóa chuyên biệt miền. Ngôn ngữ mô hình hóa chuyên biệt miền đã xây dựng, sẽ đƣợc sử dụng để mô hình hóa các yêu cầu của phần mềm cần phát triển thuộc miền. Bộ sinh code tự động của ngôn ngữ sẽ tự động sinh mã chƣơng trình từ các mô hình đã xây dựng.

Hiệu quả sinh code tự động từ mô hình phụ thuộc vào tính đúng đắn của ngôn ngữ mô hình hóa chuyên biệt miền. Để xây dựng đƣợc ngôn ngữ mô hình hóa chuyên biệt miền đúng đắn, hiệu quả cao yêu cầu đòi hỏi miền vấn đề không quá lớn để có thể hiểu rõ về miền, các khái niệm trong miền, mối quan hệ giữa các khái niệm và các nghiệp vụ của miền [2]. Khi một DSML và bộ sinh code đƣợc định nghĩa đúng đắn bởi các chuyên gia miền thực sự, DSM tăng tốc việc phát triển phần mềm và giảm số lƣợng lỗi trong các sản phẩm phần mềm. Với hƣớng tiếp cận này cần bỏ chi phí ban đầu để phát triển DSML.

Vì vậy nếu có ít ứng dụng phát triển trong cùng một miền vấn đề thì có thể chi phí phát triển theo MDD lại lớn hơn phát triển theo phƣơng pháp truyền thống. Nhƣng phát triển nhiều ứng dụng trong cùng một miền vấn đề (ví dụ nhƣ một họ sản phẩm phần mềm), DSM mang lại lợi ích lớn hơn rất nhiều với chi phí xây dựng DSML và bộ sinh code. Hình dƣới đây minh họa về lợi ích của DSML trong các dự án phần mềm. Đây cũng chính là vấn đề mấu chốt khi lựa chọn DSM để phát triển phần mềm hay mô hình hóa mục đích chung với UML để phát triển phần mềm.

Sau khi bỏ chi phí ban đầu để triển khai DSML và bộ sinh code, việc triển các ứng dụng mới có thể nhanh hơn phƣơng pháp truyền thống từ 5 đến 10 lần [2]. 15 TIEU LUAN MOI download : skknchat@gmail. Mô hình hóa chuyên biệt miền với mô hình hóa mục đích chung [2] Vì vậy khi phát triển các dự án, tùy thuộc vào số lần lặp lại của các dự án thuộc cùng một miền, cũng nhƣ tổng chi phí của các dự án mà lựa chọn phƣơng pháp phát triển phần mềm tốt nhất về chi phí. Ngôn ngữ mô hình hóa chuyên biệt miền Ngôn ngữ chuyên biệt miền có thể đƣợc xây dựng bằng cách sử dụng các Metamodels hoặc sử dụng Context- free grammar, thông thƣờng thì ngôn ngữ đồ họa đƣợc phát triển bằng cách sử dụng các metamodels và ngôn ngữ văn bản đƣợc định nghĩa bởi context – free grammar [2].

Trong tiếp cận của chúng tôi ngôn ngữ mô hình hóa chuyên biệt miền đƣợc xây dựng trong đó sử dụng các ký hiệu đồ họa để mô hình hóa các yêu cầu, chúng tôi đã xây dựng một metamodel để định nghĩa mô hình chuyên biệt miền cho ngôn ngữ. Tuy nhiên mô hình đồ họa không đặc tả đủ chính xác và rõ ràng vì vậy cần thêm các ràng buộc trên các đối tƣợng để làm chặt chẽ hơn ngữ nghĩa của mô hình, chúng tôi có sử dụng ngôn ngữ ràng buộc đối tƣợng (Object constrain language - OCL) để xây dựng các luật ràng buộc trên metamodel. 16 TIEU LUAN MOI download : skknchat@gmail. Biểu diễn mô hình Metamodel là một mô hình của một ngôn ngữ mô hình hóa.

Nó cho phép chúng ta biểu diễn cú pháp trừu tƣợng của một ngôn ngữ đồ họa, một metamodel sẽ bao gồm các thành phần nguyên thủy để tạo nên ngôn ngữ mô hình hóa. MetaModel định nghĩa cú pháp (syntax) và ngữ nghĩa (semantic) của mô hình. Trong đó mô hình là một thể hiện của metamodel. Ví dụ trong ngôn ngữ mô hình hóa UML, để có thể tạo đƣợc mô hình (1), thì trong ngôn ngữ cần phải có các thành phần nguyên thủy là Association, AssocEnd, Class và mô hình (1) là một thể hiện của metamodel nhƣ mô tả (2).

Và metamodel là (3).

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ