Kết quả chuyển đổi mơ hình Presentatio n ví dụ AddressBook

Một phần của tài liệu Luận án tiến sĩ các kỹ thuật chuyển đổi mô hình và sinh mã trong phát triển ứng dụng web hướng mô hình (Trang 87 - 93)

Thành phn/cơng c Tiêu chí

Classes Properties

UWE-ATL MagicUWE UWE-ATL MagicUWE

Presentation 2 2 15 16

Công cụ UWE-ATL cho kết quả tốt hơn khi chuyển đổi cho mơ hình điều hướng, xử lý và trình bày. Với mơ hình nội dung, sốlượng class sinh ra ít hơn, nhưng trong mỗi class sinh ra có nhiều attributes và operations hơn. Vì vậy, việc sinh các class này có ý nghĩa hơn thay vì các class rỗng. Như vậy, sau khi áp dụng các quy tắc chuyển đổi được tích hợp trong cơng cụ UWE-ATL. Tác giả nhận thấy rằng, cách tiếp cận này sẽ tiết kiệm nhiều thời gian cho các nhà phát triển. Vì sau khi chuyển đổi, họ có thể tạo các mơ hình chi tiết, cụ thể hơn. Đây là cơ sở cho việc tạo ra các mơ hình thiết kế tự động và sinh code từ đặc tả yêu cầu cho ứng dụng web.

2.5. Tiu kết chương

Trong chương 2, tác giả đã trình bày chi tiết các kết quả nghiên cứu liên quan đến bổ sung phát triển các quy tắc chuyển đổi mơ hình từ CIM to PIM cho phát triển ứng dụng web hướng mơ hình theo phương pháp UWE.

Cụ thể, luận án đã đề xuất bổ sung các quy tắc và tích hợp ngơn ngữ rằng buộc OCL vào chuyển đổi mơ hình UWE. Cách tiếp cận của luận án cung cấp một giải pháp hiệu quả cho vấn đề chuyển đổi từ mơ hình u cầu ở cấp độ CIM sang các mơ hình phân tích và thiết kếở cấp độ PIM theo phương pháp phát triển ứng dụng Web hướng mơ hình UWE. Điểm mới của kết quả nghiên cứu là đã chuyển đổi tự động giữa các mơ hình hiệu quảhơn, các thành phần của mơ hình sau chuyển đổi được thể hiện chi tiết hơn, tiết kiệm thời gian hơn, do ít phải can thiệp thủ công. Nghiên cứu đã minh họa sự hiệu quả của phương pháp đề xuất bằng ví dụ về quản lý contact với công cụ chuyển đổi MTO-plugin, đây là một plugin được tích hợp thêm trong phần mềm MagicDraw.

Các đóng góp khoa học cụ thể chủ yếu của chương này gồm:

(1) Nghiên cứu đã tích hợp ngơn ngữ ràng buộc OCL và bổ sung 06 quy tắc vào chuyển đổi sang mơ hình xử lý và mơ hình trình bày, nhằm đảm bảo sự ổn định, đồng nhất giữa các mơ hình khi chuyển đổi. Các kết quả được cơng bố ở CT1, CT2 và một phần trong CT3.

(2) Xây dựng 31 quy tắc chuyển đổi từ mơ hình u cầu sang mơ hình nội dung, điều hướng, xử lý và trình bày với ngơn ngữ chuyển đổi mơ hình ATL. Trong đó 15 quy tắc xây dựng mới và 16 quy tắc kế thừa, phát triển từ kết quả nghiên cứu của tác giả. Xây dựng công cụ UWE-ATL tích hợp các quy tắc đã xây dựng, cung cấp đầy đủ cách thức thiết kế và tạo ra các mơ hình UWE tự động, đảm bảo tính thống nhất giữa các mơ hình khi chuyển đổi, góp phần cải thiện chất lượng chuyển đổi mơ hình sang mơ hình với ngơn ngữ ATL, đảm bảo hiệu quả chuyển đổi mơ hình cho phát triển ứng dụng Web hướng mơ hình. Kết quả này đã được xây dựng thành bài báo và đang trong quá trình phản biện (CT7)

CHƯƠNG 3: SINH MÃ TỰ ĐỘNG CHO NG DNG WEB

HƯỚNG MƠ HÌNH

Trong chương này, tác gi trình bày các k thut sinh mã và tích hp phát trin công c CODEGER-UWE sinh code cho ng dụng web theo phương pháp UWE, vi ngơn ng chuyển đổi mơ hình ATL. Liên quan đến ni dung này, có 2 cơng trình cơng b liên quan: CT4, CT5. S dng các kết qu và cơng c đã trình bày trong chương 2 và chương 3, tác gi trình bày chi tiết vic áp dng xây dng ng dng web Chuẩn đoán bệnh thủy sản, trên nền tảng benhthuysan.vn. Liên quan đến nội dung này, có 02 cơng trình cơng bố liên quan: CT6, CT8.

3.1. K thut sinh mã trong phát trin ng dụng web hướng mơ hình

Đối với MDA việc sinh mã tự động hướng mơ hình được mơ tả ở Hình 3.1, gồm: Mơ hình nguồn (Source Model) được định nghĩa bởi những ngơn ngữ mơ hình hố khác nhau; Đích (Target) là mã chương trình phù hợp với các ngơn ngữnhư C/C++, Java... Đích cũng được xem như là mã nguồn hay chương trình (Program); Bộ sinh mã (Code Generator) và định nghĩa sinh mã (Code Generation Definition) được xem như là Meta-Program [89].

Source Model được mơ hình hố bởi Source Meta-Model, Target Meta-Model biểu diễn Target Model hay Code/Program. Code Generation Definition định nghĩa việc chuyển đổi từ Source Model sang Target Model bằng việc sử dụng các thành phần của Meta-Model. Code Generator sẽ đọc các thông tin đầu vào từ Source Model, điền thông tin theo khuôn mẫu đã được định nghĩa bởi Code Generation Definition để sinh mã (Code/Program).

Hình 3.1. Chuyển đổi mơ hình sang mã ngun theo MDA [89]

Phương pháp UWE hoàn toàn tuân thủ theo MDA. Mục tiêu của UWE là xây dựng những mơ hình CIM, PIM, PSM và sinh code tựđộng cho ứng dụng web. Sau đây, luận án sẽ mô tả chi tiết kỹ thuật sinh code trong kiến trúc MDA và kỹ thuật sinh code trong UWE:

Các kỹ thuật chính trong sinh mã tự động bao gồm: Templates and metamodel, Templates and filtering, API-based generators, Inline code generation, Visitor-Based Approaches:

Templates and metamodel: Phương pháp này là một sự mở rộng của phương pháp “Template and Filtering” [90]. Thay vì áp dụng khn mẫu trực tiếp vào mơ hình, thì việc đầu tiên là khởi tạo một meta-model từđặc tả rồi mới áp dụng khuôn mẫu [91]. Khuôn mẫu được mô tả trong phạm vi của meta-model. Nó có nghĩa là khn mẫu khơng phụ thuộc vào cú pháp mơ hình và có thểđược viết bằng bất kỳ ngơn ngữ lập trình nào [90]. Trong nghiên cứu này, tác giả sẽ sử dụng kỹ thuật này để áp dụng cho việc sinh code cho nghiên cứu của mình.

Templates and filtering: Phương pháp này mô tảcách đơn giản nhất để sinh mã. Thông thường, mã được tạo bằng cách áp dụng khuôn mẫu cho đặc tả mơ hình văn bản (thường là XML/XMI), và sau khi lọc một vài phần của đặc tả. Một phần của mã nguồn cũng được nhúng trong khuôn mẫu. Khuôn mẫu (template) được viết bằng XSTL. Mã Java được nhúng trực tiếp vào khuôn mẫu cùng với các Bộ lọc. Các bộ lọc này sẽđọc giá trị từ mơ hình nguồn đểđiền vào khn mẫu. Trong q trình tạo mã, các biến của các mẫu được liên kết với mơ hình hệ thống [90].

API-based generators: Tạo mã nguồn dựa trên API thường được gắn với một ngơn ngữ lập trình. Do đó, nó cung cấp cho người dùng một Framework, giúp quá trình sinh mã trực quan hơn. Mã nguồn thường được xác định với sự trợ giúp của các khuôn mẫu. Các trình sinh code dựa trên API thường có các trình biên dịch tích hợp và có thể đánh giá mã được tạo cùng một lúc [90].

Inline code generation: Việc sinh mã được hoàn thành một cách ngầm định trong

suốt việc thông dịch hay biên dịch của một chương trình thơng thường, hay bằng cách của một trình tiền biên dịch. Quá trình này thường chỉnh sửa chương trình rồi sau đó chương trình được biên dịch hoặc thông dịch lại [89]. Kỹ thuật tạo mã này khá nguyên thủy. Do đó, ngày nay nó khơng được sử dụng phổ biến cho việc sinh [90].

Visitor-Based Approaches: Cách tiếp cận dựa trên khách hàng truy cập là cách tiếp cận đơn giản để sinh mã nguồn [92], bao gồm việc cung cấp một số kỹ thuật truy xuất để duyệt cấu trúc biểu diễn của mơ hình và ghi mã nguồn vào chuỗi văn bản. Đại diện cho phương pháp này là Jamda, Jamda là một framework hướng đối tượng cung cấp một tập các lớp đại diện cho mơ hình UML, tập các API để thao tác trên mơ hình và một kỹ thuật truy xuất (gọi là CodeWriters) để sinh mã [93].

3.2. Sinh mã da trên thut toán theo kiến trúc MVC

Sinh mã tự động giúp lập trình viên nâng cao được hiệu xuất làm việc và hiện nay đang được sử dụng nhiều trong phát triển phần mềm [94, 95]. Việc sinh mã giúp cho việc phát triển ứng dụng trở nên hiệu quả hơn. Hơn nữa, khi bộ sinh mã là một phần của phần mềm, nó tuân theo một cách chính xác các quy tắc chuyển. Do đó, việc sinh

mã ln tương thích và nhất quán với kiến trúc của hệ thống. Công việc kiểm thử và gỡ lỗi cũng sẽ trở lên hiệu quảhơn, giảm được thời gian và chi phí.

Các nghiên cứu đã minh chứng là việc cung cấp phương pháp sinh mã hướng mơ hình cho tiến trình phần mềm đã tăng tốc độ tổng thể từ 3 đến 10 lần [5-7], làm giảm yếu tố con người [8], giảm thời gian phát triển ứng dụng web [96]. Theo một thống kê khác từ MetaCase, tổ chức đang áp dụng Domain-Specific Model (DSM) sử dụng Domain-specific Language (DSL), cho thấy tốc độ phát triển có thể cịn nhanh hơn các phương pháp khác. Việc sử dụng các mơ hình để tạo mã chương trình, có thể tạo ra các sản phẩm phần mềm, có khả năng tương thích và sử dụng trên các nền tảng khác nhau [13], [14] đã chứng minh việc sử dụng phương pháp này cho phép tiết kiệm rất nhiều chi phí (nhất là chi phí bảo trì cho ứng dụng), vì chúng làm giảm sự cần thiết phải thay đổi sau khi phân phối ứng dụng.

3.2.1. Xây dng quy tc sinh mã

Trong phần này, luận án tập trung vào kỹ thuật sinh mã tự động trong phát triển ứng dụng web hướng mơ hình theo phương pháp UWE. Nội dung chính gồm:

(1) Xây dựng 03 quy tắc sinh mã từ mơ hình PSM: Quy tắc CM2M sinh mã thành phần Model từ mơ hình nội dung; Quy tắc PRES2V sinh mã thành phần View từ mô hình trình bày và quy tắc NPROM2C sinh mã thành phần Controller từmơ hình điều hướng và xửlý. Tương ứng với 03 quy tắc này, tác giảđã xây dựng 03 giải thuật sinh mã: CM2M, NPROM2C, PRES2V.

(2) Từ các quy tắc, giải thuật đã phát triển, tác giả đã xây dựng công cụ CODEGER-UWE để hỗ trợ sinh mã nguồn cho phát triển ứng dụng web.

Trong mục 2.3 của luận án đã trình bày bộ quy tắc chuyển đổi từ mơ hình u cầu sang mơ hình xử lý và mơ hình trình bày, nhằm cải thiện quá trình chuyển đổi tự động cho các ứng dụng web sử dụng UWE. Trong nghiên cứu này, tác giả đề xuất xây dựng thêm các giải thuật để chuyển đổi từ mơ hình PSM sang code (hình 3.2)

Hình 3.2. Sinh code trong UWE

Trong kỹ thuật Template và Metamodel mã được tạo bằng cách áp dụng khn mẫu cho đặc tảmơ hình văn bản (thường là XML/XMI) [17]. Một cách trực quan cho

yêu cầu này là cách tiếp cận dựa trên template, nơi mà văn bản được sinh ra từ mơ hình, được quy định như là một tập các template dạng văn bản mà được tham số hóa với các phần tử mơ hình. Một Template xác định một template văn bản cùng với các điểm mốc (placeholders) cho dữ liệu được trích xuất ra từ mơ hình. Những điểm mốc đó về bản chất là các biểu thức quy định các thành phần metamodel cùng với các truy vấn, là cơ chế chính cho việc lựa chọn và trích xuất giá trị từ mơ hình. Giá trịđó được chuyển đổi qua văn bản bằng cách sử dụng ngôn ngữ biểu thức dựa trên các thư viện xử lý chuỗi. Template có thểđược sử dụng để giải quyết các yêu cầu chuyển đổi phức tạp và chủ yếu được sử dụng để tạo mã nguồn cho các ứng dụng trong nhiều lĩnh vực khác nhau [97].

Vì vậy, trong nghiên cứu này, tác giả sử dụng phương pháp khuôn mẫu và metamodel với nền tảng công nghệ J2EE, mơ hình Web MVC cho phương pháp UWE, kết hợp với sự tương đồng về mặt định nghĩa của bốn mơ hình trong UWE là mơ hình nội dung, điều hướng, xử lý, trình bày, tương ứng với ba thành phần trong mơ hình MVC. Tác giả đề xuất quy trình chuyển đổi MDA cho phương pháp UWE như Hình 3.3.

Hình 3.3. Chuyển đổi sang mã ngun theo mơ hình MVC

Tác giả đã xây dựng 03 quy tắc sinh code: Quy tắc CM2M sinh mã thành phần Model từ mơ hình nội dung; Quy tắc PRES2V sinh mã thành phần View từ mơ hình trình bày và Quy tắc NPROM2C sinh mã thành phần Controller từ mơ hình điều hướng và xử lý (Chi tiết được thể hiện trong bảng 3.1). Tác giả cũng đã xây dựng thành công cụ CODEGER –UWE, nhằm hỗ trợ sinh mã tựđộng cho phát triển ứng dụng web.

Một phần của tài liệu Luận án tiến sĩ các kỹ thuật chuyển đổi mô hình và sinh mã trong phát triển ứng dụng web hướng mô hình (Trang 87 - 93)

Tải bản đầy đủ (PDF)

(145 trang)