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. LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 2 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 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. LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 3 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.1- Kiến trúc MDA1 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.org/~soley/mda.html LUAN VAN CHAT LUONG download : add luanvanchat@agmail.
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].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 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 5 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,.
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.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 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 6 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.4- Mô hình CIM, PIM, PSM2 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 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.jpg LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 7 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ượng3 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.fi/~kk/webstuff/mofKalvot.pdf LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 8 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.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 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 9 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.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.