1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tìm hiểu và vận dụng ngôn ngữ chuyển đổi mô hình trong phát triển phần mềm

62 1,1K 4

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 62
Dung lượng 1,34 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Xác định các nền tảng của hệ thống Lựa chọn nền tảng cụ thể cho hệ thống và từ đó Chuyển đổi đặc tả hệ thống vào một trong những nền tảng đã xác định đó Ba mục đích chính mà MDA hướng

Trang 1

ĐẠI HỌC QUỐC GIA HÀ NỘI

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

LÊ NGỌC CẢNH

TÌM HIỂU VÀ VẬN DỤNG NGÔN NGỮ CHUYỂN ĐỔI MÔ HÌNH TRONG PHÁT TRIỂN PHẦN MỀM

LUẬN VĂN THẠC SĨ NGÀNH CÔNG NGHỆ THÔNG TIN

Hà Nội – 2013

Trang 2

ĐẠI HỌC QUỐC GIA HÀ NỘI

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

LÊ NGỌC CẢNH

TÌM HIỂU VÀ VẬN DỤNG NGÔN NGỮ CHUYỂN ĐỔI MÔ HÌNH TRONG PHÁT TRIỂN PHẦN MỀM

Ngành: Công nghệ Thông tin

Chuyên ngành: Công nghệ Phần mềm

Mã số: 60 48 10

LUẬN VĂN THẠC SĨ NGÀNH CÔNG NGHỆ THÔNG TIN

NGƯỜI HƯỚNG DẪN KHOA HỌC: TS ĐẶNG ĐỨC HẠNH Cán bộ Hướng dẫn

TS Đặng Đức Hạnh

Hà Nội – 2013

Trang 3

MỤC LỤC

LỜI CAM ĐOAN i

LỜI CÁM ƠN ii

DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ v

BẢNG THUẬT NGỮ vii

MỞ ĐẦU 1

TỔNG QUAN LÝ THUYẾT MÔ HÌNH HÓA 2

1.1 Giới thiệu 2

1.2 Khái niệm cơ bản 3

1.3 Biểu diễn mô hình 6

1.3.1 Kiến trúc Metadata 6

1.3.2 Kiến trúc MOF metadata 8

1.3.3 Chuẩn CWM, UML, XMI, OCL 10

1.4 Chuyển đổi mô hình 13

1.4.1 Giới thiệu chuyển đổi mô hình 13

1.4.2 Chuyển đổi mô hình trong MDA 14

1.5 Tổng kết chương 20

CHƯƠNG 2- TIẾP CẬN SINH MÃ NGUỒN JAVA 21

2.1 Tổng quan phương pháp sinh mã nguồn Java 21

2.1.1 Sinh mã dựa trên truy xuất 21

2.1.2 Sinh mã dựa trên Template 22

2.1.3 Sinh mã từ mô hình biểu diễn Java 23

Trang 4

2.2 Mô hình JaMoPP biểu diễn Java 24

2.2.1 Java Metamodel 24

2.2.2 Chức năng JaMoPP 27

2.3 Ngôn ngữ chuyển mô hình ATL 29

2.3.1 Giới thiệu ATL 29

2.3.2 Cú pháp và ngữ nghĩa ATL 30

2.3.3 Kiến trúc ATL 37

2.4 Tổng kết chương 41

CHƯƠNG 3 – VẬN DỤNG VÀ THỰC NGHIỆM 42

3.1 Giới thiệu bài toán 42

3.2 Đặc tả luật chuyển đổi ATL 44

3.3 Kết quả thực nghiệm 48

3.4 Tổng kết chương 52

KẾT LUẬN 53

Trang 5

DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ

Hình 1.1- Kiến trúc MDA 3

Hình 1.2- Mô hình hệ thống 4

Hình 1.3- Chuyển đổi mô hình [4] 5

Hình 1.4- Mô hình CIM, PIM, PSM 6

Hình 1.5- Ví dụ lược đồ lớp là metamodel cho lược đồ đối tượng 7

Hình 1.6- Minh họa kiến trúc metadata 4 lớp [9] 8

Hình 1.7- Kiến trúc Metadata MOF [5] 9

Hình 1.8- Mối liên hệ giữa các chuẩn trong OMG [10] 10

Hình 1.9- Profiles Java và Servlet ứng dụng cho gói WebApplication 11

Hình 1.10- Minh họa áp dụng OCL cho UML 13

Hình 1.11- Chuyển đổi mô hình PIM sang nhiều mô hình PSM [18] 14

Hình 1.12- Chuyển đổi mô hình giữa các mô hình khác nhau trong MDA 16

Hình 1.13- Chuyển đổi tái kỹ nghệ 17

Hình 1.14- Chuyển đổi mô hình PIM tới PSM 18

Hình 1.15- Chuyển đổi mô hình tới mã nguồn 18

Hình 2.1- Sinh mã nguồn Java trong JAMDA 22

Hình 2.2- Đặc tả Template sinh mã nguồn Java [1] 23

Hình 2.3- Kết xuất mã nguồn Java từ mô hình Java 24

Hình 2.4- Minh họa chuyển đổi Java Class sang EMF Object Model và kết xuất ra Java 26

Hình 2.5- Metalmodel cho ngôn ngữ Java [6] 27

Hình 2.6- Tổng quan chuyển đổi mô hình trong ATL 30

Trang 6

Hình 2.7- Kiến trúc ATL [12] 37

Hình 2.8- Phần lõi ATL [12] 38

Hình 2.9- Lược đồ hoạt động máy ảo ATL [12] 39

Hình 2.10- Lược đồ ACG [12] 41

Hình 3.1 – Lược đồ lớp UML của “Ứng dụng quản lý nhân viên” 43

Hình 3.2 – Lược đồ lớp UML xây dựng trên Ecore 44

Hình 3.3 – Luật ATL chuyển đổi lớp UML sang lớp Java 45

Hình 3.4 – Luật ATL chuyển đổi thuộc tính của lớp UML sang thuộc tính của lớp Java 46

Hình 3.5 – Luật ATL chuyển đổi UML Operation sang Java method 47

Hình 3.6 – Cấu hình chuyển đổi mô hình UML sang mô hình Java 48

Hình 3.7 – Kiểu dữ liệu nguyên thủy trong UML 51

Hình 3.8 – Kiểu dữ liệu EMF định nghĩa trước cho UML 51

Trang 7

BẢNG THUẬT NGỮ

CORBA Common Object Request Broker

Architecture

Eclipse

Transformations

JaMoPP Java Model Parser and Printer

Trang 8

MỞ ĐẦU

Phát triển phần mềm là một công việc khó khăn và phức tạp đòi hỏi nhiều sự đầu tư vào tài nguyên và cũng đối mặt với những nguy cơ thất bại Trong hoàn cảnh đó, phát triển phần mềm hướng mô hình MDD nổi lên là một hướng tiếp cận cải tiến cách xây dựng phần mềm Mục đích chính cách tiếp cận hướng mô hình là làm tăng năng suất phát triển, giảm chi phí (thời gian và tiền) xây dựng phần mềm, cải tiến tính tái sử dụng của phần mềm và làm cho việc bảo trì phần mềm hiệu quả hơn Hơn nữa kĩ thuật hướng mô hình còn hứa hẹn phát hiện sớm các lỗi về mặt thiết kế, thiếu sót và sự hiểu lầm giữa khách hàng và các nhà phát triển Hiện nay các kết quả đạt được trong phát triển phần mềm hướng mô hình chủ yếu xuất phát từ các kỹ thuật nền tảng như: kiến trúc hướng mô hình MDA,

kỹ thuật biểu diễn mô hình UML, MOF Mục đích chính của các kĩ thuật trên nhằm giải quyết bài toán biểu diễn hệ thống dưới dạng mô hình, xây dựng các

cơ chế chuyển đổi giữa các mô hình và sau đó chuyển đổi mô hình thành phần mềm có thể chạy được

Luận văn tập trung vào tìm hiểu ngôn ngữ chuyển đổi mô hình cùng với việc vận dụng ngôn ngữ chuyển mô hình vào phát triển phần mềm Cụ thể luận văn

sẽ đi sâu nghiên cứu ngôn ngữ chuyển đổi mô hình ATL và vận dụng để sinh tự động mã nguồn Java Trong lĩnh vực kỹ nghệ phần mềm hướng mô hình MDE, ATL cung cấp một con đường tạo ra các mô hình đích từ tập các mô hình nguồn Đối với việc vận dụng vào bài toán cụ thể trong luận văn sẽ sử dụng bộ công cụ JaMoPP sinh mã nguồn Java từ mô hình UML

Luận văn được cấu trúc thành ba chương sau đây:

 Chương 1 – Mở đầu: Tập trung tổng quan về lý thuyết mô hình, cách

biểu diễn mô hình và chuyển đổi mô hình

 Chương 2 – Tiếp cận phương pháp sinh mã nguồn Java: Trình bày

các phương pháp tiếp cận sinh mã nguồn Java, biễu diễn mô hình của ngôn ngữ Java, ngôn ngữ chuyển mô hình ATL và bộ công cụ JaMoPP

 Chương 3 – Vận dụng và thực nghiệm: Áp dụng các luật chuyển đổi

mô hình ATL kết hợp với bộ công cụ JaMoPP vào bài toán sinh mã nguồn Java từ mô hình UML

Trang 9

TỔNG QUAN LÝ THUYẾT MÔ HÌNH HÓA

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 nhiều 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 hướng mô hình Cụ thể chương này đưa ra một cái nhìn tổng quan về mô hình, chuyển đổi

mô hình và đi sâu vào chuyển đổi mô hình trong MDA MDA là 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

1.1 Giới thiệu

Hiện nay, kỹ nghệ phần mềm hướng mô hình MDE ngày càng đươc áp dụng nhiều trong trong ngành công nghiệp phần mềm Tầm nhìn chính của MDE là sử dụng mô hình như một nhân tố chính trong các giai đoạn khác nhau của phần mềm phát triển, bắt đầu từ thu thập yêu cầu, cài đặt và triển khai cho đến giai đoạn bảo trì MDE cho phép quá trình phát triển sử dụng các khái niệm gần hơn với miền vấn đề giải quyết, hướng tới quá trình tự động hóa và cho phép làm việc ở một mức độ trừu tượng cao hơn

MDA do tổ chức OMG đề xuất là một trong những cách tiếp cận đến MDE MDA bắt đầu với ý tưởng tách đặc điểm kỹ thuật của hoạt động hệ thống ra khỏi nền tảng hoạt động của hệ thống MDA cung cấp một cách tiếp cận và các công

cụ nhằm mục đích [4]:

 Xác định một hệ thống độc lập so với nền tảng mà hỗ trợ nó

 Xác định các nền tảng của hệ thống

 Lựa chọn nền tảng cụ thể cho hệ thống và từ đó

 Chuyển đổi đặc tả hệ thống vào một trong những nền tảng đã xác định đó

Ba mục đích chính mà MDA hướng tới đó là tính di động, tính tương tác và

có thể sử dụng lại thông qua việc phân tách kiến trúc của các mối quan tâm

Trang 10

Trung tâm của cách tiếp cận MDA là một số chuẩn quan trọng của OMG: UML, MOF, XML và CWM Các chuẩn này xác định hạ tầng cơ sở của MDA

và góp phần vào việc mô hình hóa hệ thống

Hình 1.1- Kiến trúc MDA 1

1.2 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ô tả hay đặc tả của hệ thống và môi

trường của hệ thống mà nó được cài đặt dành cho một số mục đích nhất

1 Nguồn http://www.omg.org/~soley/mda.html

Trang 11

định Một mô hình thường được trình bày bằng sự kết hợp của hình vẽ và văn bản Văn bản có thể là trong một ngôn ngữ mô hình hoặc trong một ngôn ngữ tự nhiên [4]

Hình 1.2- Mô hình hệ thống

 Kiến trúc của hệ thống là một đặc tả các phần và sự kết nối của hệ

thống, cùng với các quy tắc cho việc tương tác giữa các phần đó bằng các sử dụng các kết nối

 Đ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 đó Thuật ngữ “trừu tượng” thường có nghĩa là quá trình loại bỏ các chi tiết được lựa chọn để đưa ra mô hình đơn giản hóa Ví dụ: MDA xác định ba điểm nhìn của một hệ thống, điểm nhìn độc lập tính toán, điểm nhìn độc lập nền và điểm nhìn cụ thể nền [4]

 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

 Nền tảng là tập các công nghệ/ hệ thống con mà cung cấp tập hợp chặt

chẽ chức năng thông qua các giao diện và các mẫu sử dụng để cho

Trang 12

phép các hệ thống con phụ thuộc vào nền có thể sử dụng mà không quan tâm đến cách triển khai chi tiết của các chức năng do nền tảng cung cấp [4] Ví dụ nền tảng J2EE, NET

 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

Hình 1.3- Chuyển đổi mô hình [4]

Phát triển phần mềm hướng mô hình tập trung vào 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 [4]

 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 hệ thống 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

Trang 13

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

Hình 1.4- Mô hình CIM, PIM, PSM 2

1.3 Biểu diễn mô hình

Như trình bày ở trên, mô hình được sử dụng để mô hình hóa, mô tả hệ thống

từ các điểm nhìn khác nhau tại các cấp độ trừu tượng khác nhau và còn đóng vai trò quan trọng trong truyền thông, truyền tải thông tin Do đó cần phải có các kỹ thuật để định nghĩa mô hình sao cho phù hợp với các yêu cầu đó Nội dung phần này sẽ trình bày về các kỹ thuật mô tả mô hình

1.3.1 Kiến trúc Metadata

Mô hình là thành phần cơ bản trong MDA Do đó cần một mô hình phía sau

nó để mô tả, mô hình này gọi là metamodel Metamodel được dùng để mô tả các thành phần, thuộc tính và mối quan hệ của mô hình, cùng với các quy tắc khởi tạo mô hình Về bản chất metamodel là một cú pháp trừu tượng cho mô hình Ví

2 Nguồn http://caminao.files.wordpress.com/2010/09/cycleslocal2.jpg

Trang 14

dụ một lược đồ lớp có thể đóng vai trò như là một metamodel cho một lược đồ đối tượng:

Hình 1.5- Ví dụ lược đồ lớp là metamodel cho lược đồ đối tượng 3

Tuy nhiên metamodel cũng lại là thể hiện của một meta-metamodel Điều này có thể dẫn đến một số lượng vô hạn định nghĩa cho cấp độ của mô hình (metalevel) Vì vậy cần phải có một kiến trúc metadata cố định để xác định cấp

độ của các metadata Một bộ khung truyền thống cho metadata được dựa trên kiến trúc với bốn lớp meta [4] Những lớp này được mô tả như sau:

 Lớp thông tin bao gồm các dữ liệu mà chúng ta muốn mô tả

 Lớp mô hình bao gồm các metadata mô tả dữ liệu trong lớp thông tin Metadata được kết hợp lại sẽ thành mô hình

 Lớp metamodel bao gồm các mô tả để định nghĩa cấu trúc và ngữ nghĩa của metadata Meta-metadata được kết hợp lại sẽ tương đương với metamodel Một metamodel là một ngôn ngữ trừu tượng dành cho mô tả

3 Nguồn http://www.cs.tut.fi/~kk/webstuff/mofKalvot.pdf

Trang 15

các loại dữ liệu khác nhau, đó là một ngôn ngữ không có một cú pháp cụ thể hoặc ký hiệu

 Lớp meta-metamodel bao gồm các mô tả về cấu trúc và ngữ nghĩa của meta-metadata Nói một cách khác đó là "ngôn ngữ trừu tượng" để định nghĩa các loại metadata khác nhau

Hình dưới đây minh họa về kiến trúc metadata 4 lớp:

Hình 1.6- Minh họa kiến trúc metadata 4 lớp [9]

Kiến trúc metadata 4 lớp có một số ưu điểm so với phương pháp tiếp cận mô hình đơn giản như sau Nó có thể:

 Hỗ trợ bất kỳ loại mô hình và phương pháp mô hình

 Cho phép các loại metadata khác nhau có quan hệ

 Cho phép metamodels và metadata mới được thêm vào từng bước

 Hỗ trợ các metadata và meta-metadata trao đổi với nhau khi chúng được xây dựng trên cùng một meta-metamodel

1.3.2 Kiến trúc MOF metadata

Kiến trúc MDA ra đời tập trung vào mô hình, nhấn mạnh vào quá trình tự động hóa chuyển đổi giữa các mô hình (PIM tới PSM) và chuyển đổi xuyên suốt

từ mô hình trừu tượng cao xuống mã nguồn thực thi Chính vì vậy các mô hình PIM hay PSM, phải được miêu tả trong các ngôn ngữ chặt chẽ đầy đủ phù hợp

Trang 16

cho sự thông dịch tự động bằng máy tính Tổ chức OMG đã đề xuất chuẩn kiến trúc MOF để hỗ trợ mô tả và định nghĩa metadata [5] Mục đích chính của MOF

là hỗ trợ bất kỳ loại metadata và cho phép các loại metadata mới được thêm vào khi cần Để đạt được điều này, kiến trúc MOF dựa trên kiến trúc metamodeling bốn lớp truyền thống được mô tả ở trên Ví dụ dưới đây cho thấy một thể hiện phổ biến của kiến trúc MOF metadata với metamodel biểu diễn lược đồ UML và IDL

Hình 1.7- Kiến trúc Metadata MOF [5]

Kiến trúc MOF metadata có một vài tính năng quan trọng phân biệt với kiến trúc metamodeling trước đó:

 MOF model (phần cốt lõi meta-metamodel của MOF) hướng đối tượng, với cấu trúc metamodeling tương đương với cấu trúc hướng đối tượng của UML Do đó, ví dụ trên sử dụng biểu tượng gói UML để mô tả metamodel dựa trên MOF cùng với mô hình UML

 Cấp độ meta (meta-levels) trong kiến trúc MOF metadata không cố định Thông thường có 4 cấp độ meta tuy nhiên có thể sử dụng nhiều hơn hay ít hơn các cấp độ tùy thuộc vào sự cài đặt của MOF Cấp độ MOF meta chỉ

là một quy ước để nhận biết mối quan hệ giữa các loại dữ liệu khác nhau

và metadata

Trang 17

 Một mô hình (hiểu theo nghĩa rộng là tập hợp của các metadata) không cần thiết phải giới hạn trong một cấp độ meta Ví dụ, trong ngữ cảnh

Data Warehousing, sẽ là có ích nếu quan niệm meta Schema “Relational Table” và đặc tả Schemas là các thể hiện của bảng quan hệ thuộc về mô

hình khái niệm

 MOF model có khả năng tự mô tả chính nó Nói cách khác, MOF model được định nghĩa sử dụng cấu trúc metamodeling của chính nó Vì vậy, MOF model cũng được miêu tả bằng biểu tượng Package của UML

Vì metamodel của MOF và UML có kiến trúc tương đương nhau nên chúng chia sẻ một tập các khái niệm chung của các khái niệm metamodeling cốt lõi MOF cũng sử dụng các ký hiệu của UML để mô hình hóa metamodel

1.3.3 Chuẩn CWM, UML, XMI, OCL

Một chìa khóa quan trọng để tích hợp thành công cũng như đạt được sự liên tác và quản lý các siêu dữ liệu độc lập với các ứng dụng, các nền, các công cụ và các cơ sở dữ liệu cũng như dễ dàng thực hiện các chuyển đổi trong MDA là việc đưa ra các chuẩn cơ bản của OMG cho MDA bao gồm: CWM, MOF, UML và XMI [10] Hình dưới đây biểu diễn quan hệ giữa các chuẩn:

Hình 1.8- Mối liên hệ giữa các chuẩn trong OMG [10]

Trang 18

CWM

a)

CWM [13] là một chuẩn data warehouse của OMG CWM được dùng để thiết kế, xây dựng và quản lý các ứng dụng data warehouse Đây là một ví dụ của việc áp dụng mô hình MDA cho một miền ứng dụng

UML

b)

UML [14] cung cấp các chuẩn trừu tượng để đơn giản hóa việc làm tài liệu, hiểu và bảo trì các hệ thống phần mềm phức tạp Cơ chế mở rộng của UML cho phép dễ dàng xây dựng các mô hình cho hệ thống và đặc tả chúng một cách chính xác và chi tiết Ngoài ra, UML còn cung cấp cơ chế UML Profile, cho phép đặc tả các chi tiết gần hơn tới mô hình cài đặt, cũng như cho phép xây dựng các ánh xạ, các luật cho việc chuyển đổi

Hình 1.9- Profiles Java và Servlet ứng dụng cho gói WebApplication 4

UML là một ngôn ngữ mô hình hóa và không phải là một ngôn ngữ lập trình Là một ngôn ngữ mô hình hóa, UML cho phép người phát triển làm việc ở mức trừu tượng cao mà ít quan tâm tới các công nghệ, nền cụ thể, do đó làm giảm độ phức tạp của hệ thống, trực quan, dễ nắm bắt hệ thống hơn UML chuẩn

có thể được mở rộng cho từng dự án cụ thể nếu cần bằng cách dùng các UML profiles Những ngữ nghĩa mới có thể được thêm vào cùng với các phần tử UML

4 Nguồn http://www.uml-diagrams.org/profile-diagrams.html

Trang 19

đã có, để định nghĩa các khuôn mẫu (stereotypes), các giá trị đích và các ràng buộc UML nhanh chóng hướng người phát triển tới kiến trúc (cấu trúc ở mức cao và các mối liên hệ) của các hệ thống cụ thể Để đạt được hiệu quả đó giống như một công cụ mô hình hóa, các biểu đồ UML biểu diễn hệ thống ở mức trừu tượng cao, ẩn đi nhiều chi tiết mức thấp Cùng với thời gian, người dùng UML nhận ra rằng cách tốt nhất để đạt được mục đích của mình là áp dụng MDA, trong đó, các mô hình UML được chuyển đổi tự động từ mức trừu tượng cao hơn tới trừu tượng thấp hơn và cuối cùng là chuyển đổi thành mã nguồn của một ngôn ngữ lập trình được lựa chọn Mặc dù không phải là một yêu cầu bắt buộc nhưng UML là một công nghệ chính cho việc phát triển phần mềm theo hướng MDA và là nền tảng cho 99% các dự án phát triển theo hướng này

XMI

c)

XMI [15] là một kỹ thuật chuyển đổi chuẩn giữa các công cụ, các kho dữ liệu và phần mềm trung gian khác nhau XMI có thể được dùng để tự động cung cấp XML DTDs từ các mô hình UML và MOF XMI được dùng để diễn tả các

mô hình UML (dùng UML XMI DTD), Data Warehouse và các cơ sở dữ liệu (dùng CWM XMI DTD), các định nghĩa giao diện CORBA (dùng IDL DTD), các lớp và giao diện Java (dùng Java DTD) XMI cùng kết hợp với các chuẩn

mô hình hóa (UML), siêu mô hình/siêu dữ liệu (MOF và XML) và các phần mềm trung gian (UML profiles cho Java, EJB, IDL, EDOC, v.v ) đóng vai trò nòng cốt trong việc dùng XML cho MDA

OCL

d)

OCL [16] là một ngôn ngữ biểu diễn các thông tin thêm và các thông tin cần thiết cho các mô hình được dùng trong mô hình hóa hướng đối tượng và thường được dùng kết hợp với UML Bằng cách kết hợp với OCL, các mô hình UML bao gồm nhiều thông tin hơn Nhiều thông tin của hệ thống không thể mô tả hết nếu chỉ dùng UML Những thông tin này chỉ có thể được biểu diễn thông qua các biểu thức OCL Đã có nhiều ý kiến cho rằng một bước tiến mới trong phát triển phần mềm chính là việc kết hợp UML với OCL để xây dựng các mô hình cho hệ thống Các công cụ mô phỏng một hệ thống, sinh ra mã nguồn từ mô

Trang 20

hình, và các công cụ hỗ trợ MDA cần phải có các mô hình đầu vào chi tiết hơn

và rõ ràng hơn Chất lượng đầu ra của các công cụ này phụ thuộc phần lớn vào chất lượng của các mô hình được dùng làm đầu vào Các công cụ sinh ra mã nguồn từ UML/OCL làm cho quá trình phát triển hiệu quả hơn OCL là một ngôn ngữ chính xác, không nhập nhằng và dễ hiểu Nó cũng là một ngôn ngữ định kiểu OCL là một ngôn ngữ khai báo, trạng thái của hệ thống không thay đổi sau khi thực hiện các biểu thức OCL UML/OCL thường được dùng để xây dựng các mô hình độc lập nền Hình dưới đây minh họa việc kết hợp OCL trong UML:

Hình 1.10- Minh họa áp dụng OCL cho UML

1.4 Chuyển đổi mô hình

Chuyển đổi mô hình là một trong những khái niệm trung tâm của phát triển phầm mềm hướng mô hình Vì vậy, phần này của luận văn sẽ đề cập đến vấn đề chuyển đổi mô hình nói chung và cụ thể hơn là chuyển đổi mô hình trong MDA

1.4.1 Giới thiệu chuyển đổi mô hình

Một trong những cách tốt nhất làm giảm độ phức tạp của phát triển phần mềm hướng mô hình là tập trung vào trừu tượng hóa hệ thống, phân tách các vấn đề và mối quan tâm Cách tiếp cận này tập trung vào mô hình hóa hệ thống thay vì tập trung vào khía cạnh lập trình truyền thống với mục tiêu gia tăng năng suất và giảm thời gian đưa sản phẩm ra thị trường bằng cách cho phép phát triển

hệ thống tại mức trừu tượng cao, sử dụng các khái niệm gần với vấn đề cần phát triển hơn là tập trung vào ngôn ngữ lập trình Thử thách chính của phát triển hướng mô hình là chuyển đổi các mô hình ở mức trừu tượng cao xuống mô hình

Trang 21

cụ thể nền mà được sử dụng sinh ra mã nguồn Như vậy có thể thấy chuyển đổi

mô hình là nhân tố chính đóng vai trò quan trọng trong phát triển phần mềm hướng mô hình

Theo Kleppe [17] định nghĩa “một chuyển đổi là quá trình sinh tự động một

mô hình đích từ một mô hình nguồn, cùng với một định nghĩa chuyển đổi Một định nghĩa chuyển đổi là tập các luật chuyển đổi phối hợp cùng nhau mô tả

cách m ột mô hình trong ngôn ngữ nguồn có thể được chuyển đổi sang một mô

hình trong ngôn ng ữ đích Một luật chuyển đổi là một mô tả cách thức mà một

hay nhi ều cấu trúc trong ngôn ngữ nguồn có thể được chuyển đổi sang một hay

nhi ều cấu trúc trong ngôn ngữ đích” Để phù hợp với phát triển phần mềm

hướng mô hình thì định nghĩa này cần được tổng quát hóa cho phép áp dụng chuyển đổi nhiều mô hình nguồn sang một hoặc nhiều mô hình đích [18] Một ví

dụ minh họa là kết hợp mô hình, cho phép kết hợp nhiều mô hình nguồn đang được phát triển song song vào một mô hình mục tiêu Hình dưới đây mô tả một chuyển đổi sử dụng mô hình PIM và chuyển đổi thành một số mô hình PSM

Hình 1.11- Chuyển đổi mô hình PIM sang nhiều mô hình PSM [18]

1.4.2 Chuyển đổi mô hình trong MDA

Phần dưới đây sẽ đi vào tìm hiểu tổng quan chuyển đổi mô hình trong MDA, các loại chuyển đổi mô hình và kỹ thuật chuyển đổi mô hình trong MDA

Trang 22

Tổng quan chuyển đổi mô hình trong MDA

a)

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 đề xuất MDA 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 trung vào việc dùng các

mô hình độc lập nền PIM, 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 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 PIM 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) 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, 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

Việc chuyển đổi mô hình là cần thiết vì nó 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 sẽ sinh ra một mô hình trung gian là mô hình thành phần EJB, bao

Trang 23

gồm tất cả các thông tin cần thiết để có thể dùng để tạo ra mã nguồn 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

Hình 1.12- Chuyển đổi mô hình giữa các mô hình khác nhau trong

MDA 5

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], chuẩ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

và biểu diễn hình thức bên 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

5 Nguồn http://www.modeliosoft.com/en/technologies/mda.html

Trang 24

Phân loại chuyển đổi mô hình trong MDA

b)

Định nghĩa và chuyển đổi mô hình là những kỹ thuật then chốt trong cách tiếp cận MDA Chuyển đổi mô hình bao hàm việc dùng một mô hình như là một đầu vào trong một quá trình tự động Đầu ra có thể là một mô hình khác hoặc mã nguồn thực thi ở các mức khác nhau Trong thực tế có ba loại chuyển đổi mô hình thường gặp trong MDA: chuyển đổi tái kỹ nghệ, chuyển đổi mô hình tới

mô hình và chuyển đổi mô hình tới mã nguồn

 Chuyển đổi tái kỹ nghệ là việc tổ chức lại một mô hình dựa trên một vài

tiêu chuẩn hoàn toàn xác định Trong trường hợp này, đầu ra của chuyển đổi là một mô hình được chỉnh sửa từ mô hình ban đầu, được gọi là mô hình đã được phân tích lại (refactored model) Một ví dụ đơn giản là định danh lại tất cả các thể hiện mà một tên thực thể UML đã được dùng, hay phức tạp hơn là thay thế một lớp bằng một tập các lớp và các quan hệ trong cả siêu mô hình và trong tất cả các biểu đồ hiển thị các phần tử mô hình đó Hình dưới đây chỉ ra một chuyển đổi phân tích lại, đơn giản là việc trích ra giao diện của lớp

Hình 1.13- Chuyển đổi tái kỹ nghệ

 Chuyển đổi mô hình tới mô hình là chuyển đổi thông tin từ một mô hình

hay nhiều mô hình tới một mô hình khác hay một tập các mô hình, thông thường ở đây, luồng thông tin được dựa theo mức độ trừu tượng Một ví

dụ về chuyển đổi mô hình tới mô hình là chuyển đổi một tập các lớp thực thể thành môt lược đồ cơ sở dữ liệu tương ứng Chuyển đổi này được minh họa bằng hình dưới đây

Trang 25

Hình 1.14- Chuyển đổi mô hình PIM tới PSM

 Chuyển đổi mô hình tới mã nguồn là một chuyển đổi thông dụng đối với

những người đã dùng các công cụ mô hình hóa UML có khả năng sinh

mã Các chuyển đổi này chuyển đổi một thành phần của mô hình sang một đoạn mã nguồn Điều này không chỉ giới hạn trong các ngôn ngữ hướng đối tượng như Java và C++ Nó cũng không giới hạn với các ngôn ngữ lập trình: cấu hình, triển khai, định nghĩa dữ liệu, lược đồ message,

và các loại file khác có thể được sinh ra từ các mô hình được xây dựng trên các ngôn ngữ mô hình hóa ví dụ như UML Chuyển đổi mô hình tới

mã nguồn có thể được phát triển cho gần như bất kỳ dạng ngôn ngữ lập trình nào Một ví dụ là sinh ra file mã nguồn Data Definition Language (DDL) từ một mô hình dữ liệu logic được xây dựng bằng biểu đồ lớp của ngôn ngữ UML

Hình 1.15- Chuyển đổi mô hình tới mã nguồn 6

6 Nguồn http://modeldrivenarchitecture.wordpress.com/

Trang 26

Phân loại kỹ thuật chuyển đổi trong MDA

c)

Trên đây đã giới thiệu một vài loại chuyển đổi mô hình, cần chú ý rằng trong thực tế có một vài cách áp dụng chuyển đổi mô hình Trong cách tiếp cận MDA,

có bốn loại kỹ thuật áp dụng chuyển đổi mô hình là:

 Thủ công: Để chuyển đổi từ mô hình PIM sang PSM, các quyết định thiết

kế phải được đưa ra Những quyết định này được đưa ra trong quá trình phát triển thiết kế để làm phù hợp với các yêu cầu khi triển khai Đây là cách tiếp cận có ích lợi vì những quyết định được xem xét và đưa ra trong ngữ cảnh triển khai cụ thể Quá trình chuyển đổi thủ công này không khác nhiều so với các công việc thiết kế phần mềm trước đây Nhưng cách tiếp cận MDA mang lại giá trị sau:

o Phân biệt rõ ràng giữa mô hình PIM và mô hình PSM được chuyển đổi

o Lưu vết quá trình chuyển đổi

 Sử dụng các hồ sơ Profile: Một mô hình PIM có thể được tạo bằng cách

sử dụng UML profile Mô hình này được chuyển đổi sang mô hình PSM bằng cách sử dụng một UML profile hướng nền tảng thứ hai Kỹ thuật UML profile bao gồm các đặc tả của hành vi và các luật chuyển đổi có thể được sử dụng bởi các hành vi và cho phép đặc tả chuyển đổi bởi UML profile

 Các mẫu: Một mẫu là một một sự sắp đặt đặc biệt của các phần tử mô

hình Các mẫu có thể được áp dụng cho một mô hình và dùng để tạo ra các phần tử của mô hình mới thông qua sự chuyển đổi mô hình

 Tự động: Chuyển đổi tự động được áp dụng để chuyển đổi một hay nhiều

mô hình hay các mô hình thuộc một kiểu nào đó dựa trên các luật chuyển đổi đã được định nghĩa trước Các luật chuyển đổi này có thể được cài đặt trong các công cụ hoặc có thể được định nghĩa rõ ràng dựa trên sự am hiểu về một lĩnh vực đặc trưng Loại chuyển đổi này yêu cầu mô hình đầu vào phải được xây dựng đầy đủ cả về cú pháp lẫn ngữ nghĩa, và có thể

Trang 27

còn yêu cầu các mô hình phải được gán nhãn với những thông tin cụ thể

để các chuyển đổi có thể được áp dụng

Với kỹ thuật tạo profile và các mẫu, các yêu cầu về đầu vào của người phát triển trong thời gian chuyển đổi hay yêu cầu các mô hình đầu vào cần được gán nhãn Một mô hình được “gán nhãn” có thể chứa những thông tin liên quan không cần thiết với sự trừu tượng hiện tại của mô hình Những thông tin này chỉ liên quan tới các công cụ hay các xử lý trong quá trình chuyển đổi mô hình Ví

dụ, một mô hình phân tích UML bao gồm các thực thể với các kiểu chuỗi có thể được gán nhãn là có độ dài cố định hay thay đổi, hoặc nó có thể được gán nhãn

để chỉ ra độ dài tối đa Từ góc nhìn phân tích, chỉ cần chỉ ra kiểu dữ liệu chuỗi là

đủ Tuy nhiên, khi chuyển đổi một thuộc tính kiểu chuỗi sang một kiểu của một cột trong cơ sở dữ liệu thì những thông tin thêm vào là cần thiết để hoàn thành việc chuyển đổi

Trang 28

CHƯƠNG 2- TIẾP CẬN SINH MÃ NGUỒN JAVA

Để hiện thực hóa quy trình phát triển phần mềm hướng mô hình, các công cụ phát triển phải hỗ trợ tự động hóa sự chuyển đổi mô hình cụ thể hơn là hỗ trợ việc chuyển đổi từ mô hình xuống mã nguồn cụ thể Nội dung chương 2 tập trung tìm hiểu các vấn đề: (1) phương pháp sinh mã nguồn Java, (2) biểu diễn

mô hình cho ngôn ngữ Java với JaMoPP và (3) công nghệ thao tác chuyển đổi

mô hình ATL Qua đó, từ mô hình nguồn biểu diễn bằng ngôn ngữ mô hình hóa như UML, thông qua đặc tả chuyển đổi ATL sẽ thu được mô hình đích biểu diễn bằng JaMoPP tương ứng với mã nguồn Java

2.1 Tổng quan phương pháp sinh mã nguồn Java

Mục tiêu của phát triển phần mềm hướng mô hình là quá trình tự động tạo ra

mã nguồn từ các mô hình Hiện này có ba cách tiếp cận phổ biến sinh mã nguồn Java bao gồm: sinh mã dựa trên truy xuất (visitor-based), sinh mã dựa trên template (template-based) và sinh mã từ mô hình biểu diễn Java

2.1.1 Sinh mã dựa trên truy xuất

Cách tiếp cận dựa trên truy xuất (Visitor-based) [19] là cách tiếp cận đơn giản nhất để sinh mã nguồn, 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 Một

ví dụ của phương pháp là Jamda, đây 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ã Mặc dù Jamda không hỗ trợ chuẩn MOF để định nghĩa các metamodel mới, nhưng các loại phần tử mô hình mới có thể được đưa ra bằng các phân chia các lớp Java hiện có cho các loại phần tử mô hình được định nghĩa trước

Trang 29

Hình 2.1- Sinh mã nguồn Java trong JAMDA

2.1.2 Sinh mã dựa trên Template

MDA đặt mô hình tại trung tâm của quá trình phát triển phần mềm hướng

mô hình Có nhiều loại mô hình được sử dụng để mô tả các khía cạnh khác nhau của hệ thống trong khía cạnh độc lập với nền tảng Cùng với đó là tập các phép biến đổi được áp dụng chuyển đổi PIM sang PSM Những mô hình PSM đó cần được chuyển sang mã nguồn, các đặc tả triển khai, báo cáo, tài liệu, vv Chuẩn QVT được đưa ra cho chuyển đổi mô hình tới mô hình (ví dụ: PIM tới PIM, PIM tới PSM và PSM tới PSM) Còn chuẩn MOF Model to Text (mof2text) được đưa ra để giải quyết bài toán chuyển đổi mô hình tới các yếu tố mang tính chất văn bản như mã nguồn, đặc tả triển khai, báo cáo… Thực chất chuẩn mof2text giải quyết bài toán chuyển đổi mô hình sang dạng thể hiện văn bản tuyến tính Một con đường 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 cách tiếp cận dựa trên template được sử dụng trong đó, 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

Trang 30

tạp Các chuyển đổi lớn hơn có thể được đưa vào thành mô đun với các phần

public và private [1]

Ví dụ, đặc tả Template dưới đây sinh mã nguồn Java từ một lớp UML

Hình 2.2- Đặc tả Template sinh mã nguồn Java [1]

2.1.3 Sinh mã từ mô hình biểu diễn Java

Mục tiêu cuối cùng của tiến trình MDSD là sinh mã nguồn chương trình từ

mô hình của hệ thống Để đạt mục tiêu này thì có thể mô hình hóa ngôn ngữ lập trình thành ngôn ngữ mô hình hóa Khi đó một ngôn ngữ lập trình như Java có thể xử lý như một ngôn ngữ mô hình khác, bằng cách áp dụng các kỹ thuật chuyển đổi mô hình thì có thể chuyển đổi qua lại giữa các mô hình sang mô hình Java Hơn nữa các công cụ mô hình hiện nay có thể xử lý các chương trình Java

Trang 31

như xử lý các mô hình khác - cấu trúc và kiểu - thay vì xử lý chúng như văn bản Khi đó tại bước chuyển đổi cuối cùng PIM sang PSM, ta thu được mô hình biểu diễn trên Java và có thể kết xuất ra mã nguồn chương trình

Hình 2.3- Kết xuất mã nguồn Java từ mô hình Java

2.2 Mô hình JaMoPP biểu diễn Java

Chúng ta sẽ xem xét cụ thể Java metamodel và các chức năng của JoMoPP trong phần dưới đây

2.2.1 Java Metamodel

Như mô tả ở trên, hầu hết các chuyển đổi trong một tiến trình MDSD làm giảm cấu trúc và kiểu của dữ liệu, thậm chí ở cấp độ mô hình hệ thống trừu tượng (ví dụ: mô hình hóa Use Case) Tuy nhiên, việc chuyển đổi cuối cùng, từ các mô hình tới mã nguồn thường được thực hiện một cách có cấu trúc yếu và không định kiểu sử dụng engine mẫu xử lý chuỗi Đây là một nghịch lý từ kiểm tra kiểu và lỗi là quan trọng nhất khi tạo ra các mã nguồn biên dịch được

Ngoài ra, nhiều nhà mô hình đặc biệt là những người tham gia vào công đoạn cuối của một tiến trình MDSD cũng là lập trình viên Thực tiễn phổ biến hiện nay, chẳng hạn như chú thích các mô hình với (định lại kiểu) mã nguồn

Ngày đăng: 25/03/2015, 10:23

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Object Management Group (2008), MOF Model to Text Transformation Language, v1.0, pp.4 Sách, tạp chí
Tiêu đề: MOF Model to Text Transformation Language
Tác giả: Object Management Group
Năm: 2008
[3] John D. Poole (2001), Model-Driven Architecture: Vision, Standards And Emerging Technologies Sách, tạp chí
Tiêu đề: Model-Driven Architecture: Vision, Standards And Emerging Technologies
Tác giả: John D. Poole
Năm: 2001
[10] Eclipse Modeling Framework Project (EMF), http://www.eclipse.org/modeling/emf/ Sách, tạp chí
Tiêu đề: Eclipse Modeling Framework Project (EMF)
[11] ATLAS group LINA & INRIA Nantes ATL (2006), Atlas Transformation Language[12] ATL Developer Guide,http://wiki.eclipse.org/ATL/Developer_Guide Sách, tạp chí
Tiêu đề: Atlas Transformation Language ATL Developer Guide
Tác giả: ATLAS group LINA, INRIA Nantes
Năm: 2006
[14] Object Management Group (2011), OMG Unified Modeling LanguageTM (OMG UML), Infrastructure Sách, tạp chí
Tiêu đề: OMG Unified Modeling LanguageTM (OMG UML)
Tác giả: Object Management Group
Năm: 2011
[16] Object Management Group (2012), OMG Object Constraint Language (OCL) Sách, tạp chí
Tiêu đề: OMG Object Constraint Language (OCL)
Tác giả: Object Management Group
Năm: 2012
[17] Kleppe, A., Warmer, J., Bast., W.: MDA Explained, The Model- Driven Architecture: Practice and Promise. Addison Wesley (2003) [18] Tom Mens, Pieter Van Gorp (2006), Taxonomy of ModelTransformation Sách, tạp chí
Tiêu đề: MDA Explained, The Model- Driven Architecture: Practice and Promise
Tác giả: A. Kleppe, J. Warmer, W. Bast
Nhà XB: Addison Wesley
Năm: 2003
[19] Krzysztof Czarnecki and Simon Helsen (2005), University of Waterloo, Canada, Classification of Model Transformation Approaches Sách, tạp chí
Tiêu đề: Classification of Model Transformation Approaches
Tác giả: Krzysztof Czarnecki, Simon Helsen
Nhà XB: University of Waterloo, Canada
Năm: 2005
[2] Florian Heidenreich, Jendrik Johannes, Mirko Seifert, and Christian Wende (2009), Closing the Gap between Modelling and Java Khác
[4] Object Management Group (2003), Model Driven Architecture MDA Guide Khác
[5] Object Management Group (2011), Meta Object Facility (MOF) 2.0 Query/View/Transformation (QVT) Khác
[6] Mirko Seifert, Christian Wende (2009), The Java Model Parser and Printer Khác
[7] Frédéric Jouault and Ivan Kurtev ATLAS Group (2008), Transforming Models with ATL Khác
[8] Shane Sendall and Wojtek Kozaczynski (2003), Model Transformation – the Heart and Soul of Model-Driven Software Development Khác
[9] Object Management Group (2011), Meta Object Facility (MOF™) Core Khác
[13] Object Management Group (2003), Common Warehouse Metamodel (CWM) Specification Khác
[15] Object Management Group (2013), OMG MOF 2 XMI Mapping Specification Khác

HÌNH ẢNH LIÊN QUAN

Hình 1.2- Mô hình hệ thống - Tìm hiểu và vận dụng ngôn ngữ chuyển đổi mô hình trong phát triển phần mềm
Hình 1.2 Mô hình hệ thống (Trang 11)
Hình khác của cùng một hệ thống. - Tìm hiểu và vận dụng ngôn ngữ chuyển đổi mô hình trong phát triển phần mềm
Hình kh ác của cùng một hệ thống (Trang 12)
Hình 1.4- Mô hình CIM, PIM, PSM 2 - Tìm hiểu và vận dụng ngôn ngữ chuyển đổi mô hình trong phát triển phần mềm
Hình 1.4 Mô hình CIM, PIM, PSM 2 (Trang 13)
Hình dưới đây minh họa về kiến trúc metadata 4 lớp: - Tìm hiểu và vận dụng ngôn ngữ chuyển đổi mô hình trong phát triển phần mềm
Hình d ưới đây minh họa về kiến trúc metadata 4 lớp: (Trang 15)
Hình 1.8- Mối liên hệ giữa các chuẩn trong OMG [10] - Tìm hiểu và vận dụng ngôn ngữ chuyển đổi mô hình trong phát triển phần mềm
Hình 1.8 Mối liên hệ giữa các chuẩn trong OMG [10] (Trang 17)
Hình 2.3- Kết xuất mã nguồn Java từ mô hình Java - Tìm hiểu và vận dụng ngôn ngữ chuyển đổi mô hình trong phát triển phần mềm
Hình 2.3 Kết xuất mã nguồn Java từ mô hình Java (Trang 31)
Hình 2.5- Metalmodel cho ngôn ngữ Java [6] - Tìm hiểu và vận dụng ngôn ngữ chuyển đổi mô hình trong phát triển phần mềm
Hình 2.5 Metalmodel cho ngôn ngữ Java [6] (Trang 34)
Hình 2.8- Phần lõi ATL [12] - Tìm hiểu và vận dụng ngôn ngữ chuyển đổi mô hình trong phát triển phần mềm
Hình 2.8 Phần lõi ATL [12] (Trang 45)
Hình 2.9- Lược đồ hoạt động máy ảo ATL [12] - Tìm hiểu và vận dụng ngôn ngữ chuyển đổi mô hình trong phát triển phần mềm
Hình 2.9 Lược đồ hoạt động máy ảo ATL [12] (Trang 46)
Hình 3.1 – Lược đồ lớp UML của “Ứng dụng quản lý nhân viên” - Tìm hiểu và vận dụng ngôn ngữ chuyển đổi mô hình trong phát triển phần mềm
Hình 3.1 – Lược đồ lớp UML của “Ứng dụng quản lý nhân viên” (Trang 50)
Hình 3.3 – Luật ATL chuyển đổi lớp UML sang lớp Java 8 - Tìm hiểu và vận dụng ngôn ngữ chuyển đổi mô hình trong phát triển phần mềm
Hình 3.3 – Luật ATL chuyển đổi lớp UML sang lớp Java 8 (Trang 52)
Hình 3.4 – Luật ATL chuyển đổi thuộc tính của lớp UML sang thuộc tính của lớp - Tìm hiểu và vận dụng ngôn ngữ chuyển đổi mô hình trong phát triển phần mềm
Hình 3.4 – Luật ATL chuyển đổi thuộc tính của lớp UML sang thuộc tính của lớp (Trang 53)
Hình 3.5 – Luật ATL chuyển đổi UML Operation sang Java method 10 - Tìm hiểu và vận dụng ngôn ngữ chuyển đổi mô hình trong phát triển phần mềm
Hình 3.5 – Luật ATL chuyển đổi UML Operation sang Java method 10 (Trang 54)
Hình 3.6 – Cấu hình chuyển đổi mô hình UML sang mô hình Java - Tìm hiểu và vận dụng ngôn ngữ chuyển đổi mô hình trong phát triển phần mềm
Hình 3.6 – Cấu hình chuyển đổi mô hình UML sang mô hình Java (Trang 55)
Hình 3.8 – Kiểu dữ liệu EMF định nghĩa trước cho UML - Tìm hiểu và vận dụng ngôn ngữ chuyển đổi mô hình trong phát triển phần mềm
Hình 3.8 – Kiểu dữ liệu EMF định nghĩa trước cho UML (Trang 58)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w