Phát triển phần mềm hướng mô hình là quá trình phát triển tập trung vào mô hình hóa hệ thống và chuyển đổi các mô hình ngữ nghĩa mức cao xuống các mô hình cụ thể nền và từ đó xuống mã. Hiện nay, các kết quả đạt được chủ yếu xuất phát từ các ý tưởng cũng như kỹ thuật nền tảng đó là kiến trúc hướng mô hình – MDA và các kỹ thuật biểu diễn mô hình như: UML, MOF. Các vấn đề chính đặt ra ở đây là vấn đề biểu diễn các mô hình, vấn đề biểu diễn và thực thi các cơ chế chuyển đổi mô hình, vấn đề điều hướng các chuyển đổi mô hình xuyên suốt quá trình phát triển. Tiến đến giải quyết được các vấn đề này, trong nỗ lực xây dựng khung chuyển đổi mô hình, một bài toán đặt ra cần được giải quyết là làm thế nào để biểu diễn được các luật chuyển đổi cho phép chuyển đổi từ mô hình đích sang mô hình nguồn. Một khi có được phương thức biểu diễn các luật chuyển đổi, các chuyển đổi mô hình có thể được định nghĩa và gắn vào các công cụ chuyển đổi để thực thi tự động.
60 trang |
Chia sẻ: tuandn | Lượt xem: 2651 | Lượt tải: 5
Bạn đang xem trước 20 trang tài liệu Khóa luận Một số vấn đề về phát triển phần mềm hướng mô hình, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
MỤC LỤC
BẢNG TỪ VIẾT TẮT
BNF
Backus Naur Form
Chuẩn BN
CWM
Common Warehouse Metamodel
CIM
Computation Independent Model
Mô hình độc lập tính toán
CORBA
Common Object Request Broker Architecture
DTD
Document Type Definition
Định nghĩa loại tài liệu
EJB
Enterprise Java Bean
EMF
Eclipse Modeling Framework,
Khung làm việc mô hình hóa Eclipse
IDL
Interactive Data Language
ISM
Implementation Specific Model
Mô hình cụ thể cài đặt
J2EE
Java 2 Enterprise Edition
MDA
Model Driven Architecture
Kiến trúc hướng mô hình
MDD
Model Driven Development
Phát triển hướng mô hình
MDE
Model-Driven Engineering
Kỹ nghệ hướng mô hình
MDR
MetaData Repository
MOF
Meta Ọbject Facility
MTL
Model Transformation Language
Ngôn ngữ chuyển đổi mô hình
QVT
Query View Transformation
OCL
Object Constraint Language
Ngôn ngữ ràng buộc đối tượng
OMG
Object Management Group
Tổ chức quản lý đối tượng
PIM
Platform Independent Model
Mô hình độc lập nền
PM
Platform Model
Mô hình nền
PSM
Platform Specifice Model
Mô hình cụ thể nền
SPEM
Software Process Engineering Metamodel
UML
Unified Modeling Language
Ngôn ngữ mô hình hóa thống nhất
XMI
XML Metadata Interchange
Định dạng trao đổi XML
XML
eXtensible Markup Language
Ngôn ngữ đánh dấu mở rộng
XSLT
eXtensible Style Sheet Languge Transformations
MỞ ĐẦU
Phát triển phần mềm hướng mô hình là quá trình phát triển tập trung vào mô hình hóa hệ thống và chuyển đổi các mô hình ngữ nghĩa mức cao xuống các mô hình cụ thể nền và từ đó xuống mã. Hiện nay, các kết quả đạt được chủ yếu xuất phát từ các ý tưởng cũng như kỹ thuật nền tảng đó là kiến trúc hướng mô hình – MDA và các kỹ thuật biểu diễn mô hình như: UML, MOF. Các vấn đề chính đặt ra ở đây là vấn đề biểu diễn các mô hình, vấn đề biểu diễn và thực thi các cơ chế chuyển đổi mô hình, vấn đề điều hướng các chuyển đổi mô hình xuyên suốt quá trình phát triển. Tiến đến giải quyết được các vấn đề này, trong nỗ lực xây dựng khung chuyển đổi mô hình, một bài toán đặt ra cần được giải quyết là làm thế nào để biểu diễn được các luật chuyển đổi cho phép chuyển đổi từ mô hình đích sang mô hình nguồn. Một khi có được phương thức biểu diễn các luật chuyển đổi, các chuyển đổi mô hình có thể được định nghĩa và gắn vào các công cụ chuyển đổi để thực thi tự động.
Trong khóa luận, chúng tôi trình bày hai kỹ thuật chính dùng cho sự chuyển đổi mô hình là áp dụng ngôn ngữ chuyển đổi mô hình và áp dụng mẫu thiết kế. Với ngôn ngữ chuyển đổi mô hình, chúng tôi đi sâu vào tìm hiểu ngôn ngữ chuyển đổi MTL và khung làm việc UMLAUT NG chuyên dụng của nó. MTL được thiết kế dựa trên những nguyên tắc kỹ nghệ phần mềm rất mạnh như tính mở và tính tái sử dụng. Nó hứa hẹn tiến tới các tiêu chí ngôn ngữ chuyển đổi chuẩn hóa theo đề xuất MOF 2.0 QVT của OMG. Với mẫu thiết kế, chúng tôi trình bày sâu hơn phương pháp biểu diễn mẫu thiết kế qua ngôn đặc tả mẫu RBML, giúp cho người đọc nắm bắt những kỹ thuật đặc tả mẫu có khả năng hỗ trợ cho MDA. Hiện nay, các công cụ hỗ trợ chuyển mô hình sử dụng mẫu thiết kế đang được phát triển và hứa hẹn được ứng dụng nhiều hơn trong phát triển phần mềm.
Nội dung khóa luận này nằm trong đề tài “Một số vấn đề về phát triển phần mềm hướng mô hình”. Khóa luận được chia làm ba chương:
Trong chương 1, chuyển đổi mô hình là trái tim của phát triển phần mềm hướng mô hình, vì vậy trong chương này, chúng tôi sẽ tìm hiểu chi tiết về vấn đề này, đồng thời đi sâu vào vấn đề chuyển đổi mô hình trong khung làm việc MDA.
Trong chương 2, chúng tôi tìm hiểu các yêu cầu của ngôn ngữ chuyển đổi mô hình nói chung và nhấn mạnh vào ngôn ngữ MTL. Bài toán chuyển đổi mô hình lớp sang mô hình quan hệ được chúng tôi chọn minh họa cho ngôn ngữ MTL.
Trong chương 3, chúng tôi áp dụng các kỹ thuật và công nghệ trong các chương trước vào quá trình chuyển đổi mô hình của bài toán quản lý thư viện sách.
Nhiệm vụ cụ thể trong khóa luận bao gồm:
Đào Thanh Tuấn: Tìm hiểu vấn đề chuyển đổi mô hình
Đào Thanh Tuấn và Đào Bảo Ngọc: tìm hiểu ngôn ngữ chuyển đổi mô hình MTL và lập trình thực nghiệm với MTL
Chương 1. VẤN ĐỀ CHUYỂN ĐỔI MÔ HÌNH
Chuyển đổi mô hình là trái tim của kỹ nghệ phần mềm hướng mô hình. Một ví dụ điển hình là các mô hình ở mức trừu tượng cao được chuyển đổi sang các mô hình cụ thể gần với nền phát triển. Tuy nhiên, còn có rất các dạng chuyển đổi khác được áp dụng trong quá trình phát triển phần mềm theo hướng mô hình. Trong chương này tôi đưa ra một cái nhìn tổng quan về chuyển đổi mô hình và một sự phân loại các hướng tiếp cận trong chuyển đổi mô hình hiện nay mà tôi cho là phù hợp. Đồng thời tôi cũng đi sâu vào sự chuyển đổi mô hình trong MDA – một cách tiếp cận hướng mô hình đang dành được nhiều sự quan tâm hiện nay.
Các khái niệm cơ bản
Sau đây là những khái niệm cơ bản liên quan tới vấn đề chuyển đổi mô hình.
Nhắc tới kỹ nghệ phần mềm hướng mô hình nói chung và chuyển đổi mô hình nói riêng, một khái niệm trung tâm là mô hình.
Mô hình là sự biểu diễn một phần chức năng, cấu trúc hay hành vi của hệ thống. Biểu diễn này được gọi là hình thức khi nó dựa trên một ngôn ngữ có cú pháp, ngữ nghĩa và các luật để phân tích, suy diễn hoặc chứng minh các cấu thành từ nó.
Mô hình của một hệ thống là một mô hình mô tả hay một đặc tả của hệ thống và môi trường mà nó được cài đặt hoặc thực thi cho một vài mục đích xác định nào đó. [4]
Điểm nhìn của một hệ thống là một kỹ thuật của việc trừu tượng dùng một tập được lựa chọn của các khái niệm kiến trúc, các luật cấu trúc, tập chung vào các mối quan tâm cụ thể trong phạm vi hệ thống đó.
Một mô hình điểm nhìn hay một khung nhìn của một hệ thống là một biểu diễn của hệ thống đó từ phối cảnh của một điểm nhìn được lựa chọn.
Chuyển đổi mô hình là quá trình biến đổi một mô hình này tới một mô hình khác của cùng một hệ thống.
Có hai quan điểm về chuyển đổi mô hình:
Chuyển đổi hàm: một chuyển đổi là hàm ánh xạ một bộ các mô hình từ một miền sang một bộ các mô hình cùng miền hoặc miền khác.
Chuyển đổi thao tác: Một chuyển đổi là một tác động theo thuật toán có kết quả làm thay đổi cấu trúc hay ngữ nghĩa của mô hình hay tập mô hình.
Khi nhắc tới chuyển đổi mô hình, mô hình chính là đầu vào và cũng là đầu ra của chuyển đổi. Trong phát triển phần mềm hướng mô hình có hai loại mô hình chính là mô hình độc lập nền (PIM) và mô hình cụ thể nền (PSM).
Mô hình độc lập nền là một khung nhìn của một hệ thống từ điểm nhìn độc lập nền. Đó là một mô hình của hệ thống không chứa thông tin cụ thể về nền, hay công nghệ được dùng để thực hiện nó.
Mô hình cụ thể nền là một khung nhìn của một hệ thống từ điểm nhìn cụ thể nền. Đó là một mô hình của hệ thống bao gồm thông tin về công nghệ cụ thể được dùng để thực hiện nó trong một nền cụ thể, và vì thế nó thường chứa các thành phần đặc trưng cho nền.
Trong cách tiếp cận hướng mô hình MDA, có một loại mô hình quan trọng khác là mô hình độc lập tính toán (CIM).
Mô hình CIM mô tả hệ thống trong môi trường mà nó sẽ vận hành, do đó nó mô tả chính xác các chức năng được yêu cầu của hệ thống. Mô hình CIM thường được dùng để mô hình các yêu cầu của hệ thống.
Như vậy, với các khung nhìn khác nhau, các mô hình khác nhau của cùng một hệ thống được xây dựng. Các mô hình này có thể là mô hình cấu trúc hoặc mô hình hành vi.
Các mô hình cấu trúc là các mô hình biểu diễn các thành phần tĩnh của hệ thống. Chúng được dùng để biểu diễn hệ thống dưới dạng các khái niệm hay các thành phần vật lý.
Các mô hình hành vi biểu diễn các thành phần động của hệ thống, chúng biểu diễn hành vi của hệ thống trong thời gian và không gian hoạt động.
Một khái niệm quan trọng khác trong chuyển đổi mô hình là khái niệm ánh xạ.
Ánh xạ là đặc tả cho một cơ chế chuyển đổi các phần tử của một mô hình được xây dựng tuân theo mộ siêu mô hình cụ thể này sang các phần tử của một mô hình được xây dựng tuân theo một siêu mô hình khác (có thể là giống). [4]
Các nhãn trong chuyển đổi mô hình là khái niệm biểu diễn một khái niệm trong mô hình đích và được áp dụng cho một phần tử của mô hình nguồn để chỉ ra phần tử đó được chuyển đổi như thế nào. [4]
Vấn đề chuyển đổi mô hình
Giới thiệu về chuyển đổi mô hình
Kỹ nghệ hướng mô hình là một phương pháp kỹ nghệ phần mềm đẩy mạnh việc dùng các mô hình và các chuyển đổi như là những tác nhân chính. Tổ chức OMG [3] đề xuất MDA (Model–Driven Architecture) cùng một bộ các chuẩn cho việc tích hợp các công cụ cho kỹ nghệ hướng mô hình – MDE. Những chuẩn này tập chung vào việc dùng các mô hình độc lập nền (PIMs – Platform Independent Models), chúng hỗ trợ việc phát triển phần mềm ở mức trừu tượng cao bằng cách ẩn đi các chi tiết cụ thể của nền. Nhờ đó mà chúng chúng giải quyết được một số vấn đề xảy ra nhờ giảm đi độ phức tạp của hệ thống phần mềm. Xa hơn nữa, các mô hình PIMs có thể được giảm độ phức tạp bằng cách chúng có thể được mô hình với một vài điểm nhìn (ví dụ, các mô hình cấu trúc, mô hình hoạt động, các mô hình đảm bảo chất lượng, các trường hợp kiểm thử) theo thứ tự mà người phát triển tập trung vào các mục đích thiết kế trong suốt quá trình phát triển hệ thống.
Để xây dựng và tiến hóa các mô hình ở những điểm nhìn khác nhau, cần có sự nhất quán, liên hệ lẫn nhau giữa các mô hình khác nhau. Để làm được điều này, chuyển đổi mô hình thường được dùng để cập nhật tất cả các mô hình ở những điểm nhìn khác trong trường hợp một mô hình thay đổi. Xa hơn nữa, chuyển đổi mô hình có thể giúp cho việc xây dựng một mô hình điểm nhìn mới dựa trên các mô hình đã tồn tại. Tất cả các chuyển đổi này là chuyển đổi PIM tới PIM hay chuyển đổi mô hình tới mô hình, nó thường được gọi là chuyển đổi theo chiều ngang - horizontal transformations, bởi vì chúng thường được dùng để chuyển đổi các mô hình ở cùng một mức trừu tượng. Để thực hiện mô hình PIM trong một nền đích, một mô hình PSM cho nền đó phải được sinh ra. Việc sinh ra các mô hình này cần những chuyển đổi mô hình thích hợp từ mô hình PIM đã được “làm giàu thêm” với các thông tin chi tiết của một nền cụ thể. Những chuyển đổi mô hình này thường được gọi là chuyển đổi theo chiều dọc, hay cụ thể hơn là chuyển đổi mô hình PIM tới mô hình PSM.
Tại sao việc chuyển đổi mô hình là cần thiết? Để làm cầu nỗi giữa các mô hình PIM và PSM ở các mức trừu tượng khác nhau, việc sinh ra các mô hình trung gian là việc dễ thực hiện hơn việc sinh trực tiếp mô hình PSM. Ví dụ, khi đi từ biểu đồ lớp tới một cài đặt của EJB (Entity Java Bean) , các công cụ như OptimalJ [14] sẽ sinh ra một mô hình trung gian là mô hình thành phần EJB, bao gồm tất cả các thông tin cần thiết để có thể dùng để tạo ra mã Java. Thêm vào đó, việc chuyển đổi từ PIM sang PSM là hữu ích cho việc tính toán các mô hình ở các góc nhìn khác nhau của hệ thống và đồng bộ hóa chúng.
Qua đó, chúng ta có thể nói chuyển đổi mô hình là trái tim và linh hồn của kỹ nghệ phần mềm hướng mô hình. Để chuẩn hóa việc chuyển đổi mô hình, tổ chức OMG đã đưa ra đề xuất RFP MOF 2.0 Query/Views/Transformation [5], nó bao gồm các yêu cầu cho ngôn ngữ chuyển đổi. Các ngôn ngữ chuyển đổi này và các biểu diễn hình thức bên dưới cần cung cấp các đặc tính sau:
Biểu diễn hình thức nên hỗ trợ cho việc đặc tả các chuyển đổi mô hình theo cả chiều dọc và chiều ngang.
Biểu diễn hình thức nên cho phép áp dụng tự động các luật chuyển đổi mô hình.
Các luật chuyển đổi cần dễ hiểu.
Các luật chuyển đổi tương thích tốt và có thể dùng lại.
Như ở hình dưới đây, mỗi mô hình được tạo ra dựa trên một biểu diễn hình thức, nó định nghĩa chính xác cú pháp (hay ký hiệu) của mô hình và ngữ nghĩa của chúng. Cú pháp của một biểu diễn hình thức được tạo bởi cú pháp cụ thể và cú pháp trừu tượng. Cú pháp cụ thể đặc tả một cách dễ hiểu các phần tử ký hiệu trừu tượng. Các ngữ nghĩa bao gồm ngữ nghĩa động và tĩnh . Ngữ nghĩa tĩnh bao hàm ngữ nghĩa động và sự miêu tả các hạn chế trên một tập các mô hình hợp lệ và có thể được dùng để biểu diễn ở tầng bên dưới của định dạng hình thức.
Hình 2.1: Hệ thống, mô hình, và biểu diễn hình thức.
Với những định nghĩa của hệ thống, mô hình, và định dạng hình thức, chúng ta có thể mô tả một cách hình thức sự chuyển đổi xảy ra trong phát triển phần mềm. Chúng ta giả sử rằng M là mô hình của một hệ thống S và F là biểu diễn hình thức mà mô hình được đặc tả. Một chuyển đổi t có thể được thực hiện theo công thức sau:
t: M1(S1)|F1 ª M2(S2)|F2
ở đây, M1 là mô hình nguồn và M2 là mô hình đích của chuyển đổi.
Phân loại chuyển đổi mô hình
Chuyển đổi mô hình có thể được phân chia theo nhiều tiêu chí khác nhau. Sau đây tôi đưa ra một vài tiêu chí để phân loại chuyển đổi mô hình thông dụng.
Tiêu chí loại biểu diễn hình thức:
Chuyển đổi mô hình có thể là nội suy (endogen) nếu định dạng hình thức của mô hình nguồn và mô hình đích là giống nhau (F1 = F2) hoặc là ngoại suy nếu (F1 ≠ F2)
Tiêu chí về cấp độ trừu tượng:
Chuyển đổi mô hình có thể được phân loại dựa trên mục đích của việc chuyển đổi.
Có những chuyển đổi mô hình được thực hiện để làm tiến hóa mô hình do đó gọi là chuyển đổi theo chiều ngang.
Nếu một chuyển đổi được thực hiện để cài đặt một mô hình, tức là chuyển đổi mô hình nguồn thành một mô hình gần hơn với nền thời gian chạy, chúng ta gọi chuyển đổi này là chuyển đổi theo chiều dọc.
Trong trường hợp đầu, biểu diễn hình thức của mô hình nguồn và đích là giống nhau (chuyển đổi nội suy), ở trường hợp thứ hai, biểu diễn hình thức của mô hình đích chứa những phần tử mô tả những khái niệm gần hơn tới nền cài đặt. Chuyển đổi theo chiều dọc thường chủ yếu áp dụng cho việc sinh mã, khi đó mô hình đích thực ra là mã nguồn cài đặt. Một điều chú ý là mặc dù chuyển đổi theo chiều dọc là chuyển đổi ngoại suy, nhưng không phải tất cả các chuyển đổi ngoại suy đều là chuyển đổi theo chiều dọc.
Tiêu chí về mức độ tự động:
Một cách khác để phân loại chuyển đổi mô hình là dựa trên mức độ tự động mà các chuyển đổi được thực hiện. Mỗi một chuyển đổi mô hình biểu trưng cho một truy vấn và sự sửa đổi của các mô hình, do đó, các máy phải hiều được các mô hình và sửa đổi chúng một cách tự động. Các mô hình phải được định dạng một cách phù hợp để có thể dùng các công cụ áp dụng cho việc chỉnh sửa. Thông thường, nếu cú pháp của mô hình nguồn và mô hình đích được hình thức hóa đầy đủ, chúng ta có thể thực hiện được việc chuyển đổi một cách tự động. Ngược lại, cần thực hiện các bước thủ công để tự động hóa từng phần hoặc chuyển đổi thủ công.
Tiêu chí về kỹ thuật chuyển đổi:
Cuối cùng, chuyển đổi mô hình có thể được phân loại qua kỹ thuật dùng để mô tả các chuyển đổi. Hai cách tiếp cận cơ bản là: cách tiếp cận theo phương pháp thao tác và cách tiếp cận theo phương pháp khai báo.
Trong cách tiếp cận theo phương pháp khai báo, các chuyển đổi được mô tả bằng các luật, chúng được đặc tả bởi các điều kiện trước sau (pre- and post-Conditions).Điều kiện trước mô tả trạng thái của mô hình trước khi chuyển đổi được thực hiện. Điều kiện sau đặc tả trạng thái sau khi chuyển đổi thành công. Hầu hết các mô hình và các đặc tả được biểu diễn theo đồ thị, rất nhiều cách tiếp cận theo phương pháp khai báo được dùng ngày nay là chuyển đổi đồ thị.
Trong sự tương phản với cách tiếp cận khai báo, trong cách tiếp cận thao tác (hay mệnh lệnh) các hành động phải được thực hiện để chuyển đổi mô hình nguồn thành mô hình đích được mô tả rõ ràng qua một chuỗi các hành động liên tiếp.
Các hướng tiếp cận giải quyết vấn đề chuyển đổi mô hình
Ở mức cao nhất, chúng ta phân biệt giữa các chuyển đổi mô hình tới mã và mô hình tới mô hình. Nói chung, chúng ta có thể xem chuyển đổi mô hình tới mã như là một trường hợp đặc biệt của chuyển đổi mô hình tới mô hình. Những thảo luận dưới đây về chuyển đổi mô hình được xem như là lĩnh vực chuyển đổi mô hình tới mô hình.
Chuyển đổi mô hình tới mô hình là chuyển đổi giữa mô hình nguồn và mô hình đích, chúng có thể là thể hiện của cùng một siêu mô hình hay của những siêu mô hình khác nhau. Tất cả các cách tiếp cận này hỗ trợ cú pháp định kiểu của các biến và các mẫu. Sau đây tôi xin trình bày các cách tiếp cận chuyển đổi mô hình thông dụng hiện nay.
XSLT
XSLT [11] có thể được dùng hiệu quả cho một vài lớp chuyển đổi của các mô hình MOF, chúng được biểu diễn như các tài liệu XML theo hướng đặc tả XMI. Tuy nhiên, XSLT phải được viết trong giới hạn của các khái niệm trong tài liệu (mô hình) XMI nguồn, và đối tượng (hay phần tử) được tạo riêng biệt. Phong cách này là thủ tục hóa ở mức cao và được thừa hưởng từ XML, cú pháp cụ thể thì không thân thiện với người dùng. Do đó, nó không phù hợp cho mục đích chính của một ngôn ngữ chuyển đổi khai báo. Nó cũng cần một tài liệu đầu vào hoàn chỉnh, và do đó nó không có khả năng thực hiện chuyển đổi cập nhật tăng dần cho các mô hình.
Chuyển đổi CWM
Đặc tả sử dụng meta model CWM [3] cho kho dữ liệu của OMG bao gồm một mô hình cho việc biểu diễn các chuyển đổi. Nó giới thiệu các khái niệm của các chuyển đổi hộp đen và hộp trắng (black-and white-box). Cả hai cách chuyển đổi này cung cấp chỉ một mối liên hệ giữa các phần tử mô hình nguồn với mô hình đích trong một chuyển đổi, nhưng nó không chỉ ra chính xác kết quả đích sẽ bao gồm những gì. Các chuyển đổi hộp trắng có thể có một biểu diễn thủ tục kết hợp với sự chuyển đổi cho một chương trình.
Phương pháp sửa đổi trực tiếp
Cách tiếp cận này thường cung cấp một biểu diễn mô hình nội tại cộng thêm một vài API để chỉnh sửa nó. Chúng thường được cài đặt dưới dạng một khung làm việc hướng đối tượng, nó cung cấp một vài thành phần nhỏ để tổ chức việc chuyển đổi (ví dụ như các lớp trừu tượng cho việc chuyển đổi). Tuy nhiên, người dùng phải cài đặt các luật chuyển đổi và lập lịch gần như từ đầu bằng một ngôn ngữ lập trình, chẳng hạn như Java.
Cách tiếp cận dựa trên quan hệ
Đây là môt cách tiếp cận theo kiểu khai báo, khái niệm chính ở đây là các quan hệ toán học - mathematical relations.
Ý tưởng cơ bản là xác định trạng thái các loại phần tử trong mô hình nguồn và mô hình đích, gắn vào một quan hệ và đặc tả quan hệ đó thông qua các ràng buộc. Trong dạng nguyên thủy của nó, đặc tả là không thực thi, ở dạng khai báo, ví dụ các quan hệ, và các luật ánh xạ. Tuy nhiên, các ràng buộc khai báo có thể đưa ra các ngữ nghĩa có thể thực hiện được, tương tự như trong lập trình logic. Sự thật là, lập trình logic với sự đối xứng dựa trên cơ sở không thống nhất, tìm kiếm, và quay lui dường như là một lựa chọn tự nhiên để cài đặt cho phương pháp dựa trên quan hệ, trong đó, các tiền đề có thể được dùng để mô tả các quan hệ.
Kỹ thuật dựa trên chuyển đổi đồ thị
Cách tiếp cận này dựa trên lý thuyết về chuyển đổi đồ thị. Cách tiếp cận này hoạt động trên các đồ thị gán nhãn, định kiểu và gắn thuộc tính, đây là một loại đồ thị đặc biệt được thiết kế để biểu diễn các mô hình tương tự như UML. Ví dụ của việc áp dụng chuyển đổi dựa trên đồ thị cho chuyển đổi mô hình bao gồm: VIATRA, ATOM, UMLX, và BOLT.
Các luật chuyển đổi đồ thị bao gồm các luật của một mẫu đồ thị LHS và một mẫu đồ thị RHS. Các mẫu đồ thị này có thể được biểu diễn trong cú pháp cụ thể của mô hình nguồn tướng ứng hay ngôn ngữ đích hoặc trong cú pháp trừu tượng của MOF. Một ưu thế của cú pháp cụ thể so với cú pháp trừu tượng là nó thân thiện hơn khi làm việc với ngôn ngữ mô hình hóa. Mặc dầu vậy, với những ngôn ngữ phức tạp như UML, các mẫu trong một cú pháp cụ thể thường có khuynh hướng ngắn gọn, súc tích hơn so với các mẫu trong cú pháp trừu tượng tương ứng. Nhưng bên cạnh đó, chúng ta dễ dàng cung cấp một biểu diễn mặc định cho cú pháp trừu tượng để làm việc với bất cứ siêu mô hình nào, đó là một điều hữu ích nếu chúng ta không tìm ra một đặc tả cú pháp cụ thể nào.
Cách tiếp cận dựa trên cấu trúc
Cách tiếp cận này có hai giai đoạn riêng biệt: giai đoạn thứ nhất là việc tạo tổ chức cấu trúc của mô hình đích, trong khi giai đoạn thứ hai là đặt các thuộc tính và các tham chiếu trong mô hình đích. Toàn bộ khung làm việc xác định rõ lịch trình và chiến lược áp dụng; người dùng chỉ cung cấp các luật chuyển đổi.
Một ví dụ của cách tiếp cận hướng cấu trúc là khung làm việc chuyển đổi mô hình tới mô hình được cung cấp bởi OptimalJ [14]. Khung làm việc được cài đặt bằng Java và cung cấp một cơ chế nhân bản tăng trưởng