Tải bản đầy đủ

Developing domain - specifis languages using metaedit+

1

Báo Bài Tập Lớn
Nhóm 5
Đề Tài:

Developing domain - specifis languages using
MetaEdit+
Giảng Viên Hướng Dẫn: thầy Đặng Đức Hạnh
Sinh viên thực hiện:
1, Bùi Thế Cương.
2, Nguyễn Văn Hải.
3, Hoàng Thị Như.


2

Mục Lục
Lời Cảm Ơn ..................................................................................................................................... 3
Giới thiệu đề tài ............................................................................................................................... 4
I.


Domain-specific language ......................................................................................................... 5
1.

Khái niệm ........................................................................................................................... 5

2.

Định nghĩa DSL .................................................................................................................. 5

3.

Phân loại ............................................................................................................................. 6

4.

Khi nào cần dùng DSL ........................................................................................................ 6

5.

Ưu điểm và nhược điểm ...................................................................................................... 6

II.

Meta Edit+ ............................................................................................................................. 7
1.

Giới thiệu MetaEdit+ .......................................................................................................... 7

2.

Môi trường phát triển .......................................................................................................... 7

3.

Công cụ quản lý môi trường ................................................................................................ 8

4.

Metamodeling với MetaEdit+workbench ............................................................................ 8


5.

Thiết kế dữ liệu đầu ra và Exchange tool........................................................................... 19

III.

Kết luận................................................................................................................................ 27

IV.

Tài liệu tham khảo ................................................................................................................ 28


3

Lời Cảm Ơn

Chúng em xin gửi lời cảm ơn chân thành đến các thầy Đặng Đức Hạnh, thầy Võ Đình Hiếu, thầy
Trương Ninh Thuận đã tận tình hướng dẫn, cung cấp các tài liệu cần thiết để chúng em hoàn thành
tốt đề tài này.
Ngoài ra trong quá trình học tập và nghiên cứu môn Các Vấn Đề Hiện Đại Của Công Nghệ Phần
mềm chúng em đã biết được rất nhiều kiến thức mới về các phương pháp phát triển phần mềm hiện
đại, xu hướng phát triển phần trong tương lai. Bên cạnh đó dưới sự hướng dẫn tận tình của các thầy
chúng em còn biết thêm các cách tiếp cận vấn đề khoa học mới, các kiến thức mới, cách làm việc
nhóm hiệu quả, các kiến thức về trình bày một văn bản khoa học, cách thuyết trình theo nhóm và
nhiều kiến thức bổ ích khác nữa.


4

Giới thiệu đề tài
Ngành công nghệ phần mềm hiện nay đang phát triển rất mạnh mẽ trên quy mô rộng lớn, cùng với
đó là yêu cầu về chất lượng sản phẩm phần mềm cũng như các dịch vụ bảo trì, nầng cấp phần mềm
cũng đòi hỏi những tiến bộ vượt bậc. Những phương pháp sản xuất phần mềm theo các phương
pháp cũ sẽ dần thay đổi và chuyển sang nhưng phương pháp tối ưu hơn một trong những phương
pháp đó là mô hình hoá chuyên biệt miền (Developing domain - specifis languags viết tắt là DSL).
DSL là phương pháp xây dựng phần mềm dựa trên các mô hình, từ các mô hình này sẽ được dịch
chuyển sang mã chương trình nhờ các bộ sinh mã nguồn (code generator) hoặc dịch sang phần mềm
có thể sử dụng trực tiếp. DSL giúp giảm thời gian tạo ra một sản phẩm phần mềm, dễ dàng trong
thay đổi theo yêu cầu khách hàng, thuận lợi cho các công việc bảo trì và nâng cấp.
MetaEdit + là công cụ mạnh mẽ trong việc phát triển phần mềm dựa theo các mô hình (DSL). Nó
cung cấp các công cụ hữu ích cho việc phát triển phần mềm giúp người dùng dễ dàng xây dựng các
mô hình và từ các mô hình đó tạo ra các phần mềm hoàn chỉnh mà không cần làm việc với bất cứ
dòng lệnh nào.


5

I.

Domain-specific language

1. Khái niệm
Domain-specific language(DSL) là một ngôn ngữ máy tính chuyên vào một miền ứng
dụng cụ thể, trái ngược với một ngôn ngữ mục đích chung (GPL- general-purpose
language ) áp dụng rộng rãi trên các lĩnh vực, và thiếu các tính năng chuyên biệt cho
một lĩnh vực cụ thể.
DSL được chia nhỏ:
- Domain-specific markup languages.
- Domain-specific modeling languages.
- Domain-specific programming languages

2. Định nghĩa DSL
- Syntax and Sematic
Khi mọi người thảo luận về một ngôn ngữ lập trình, thường nghe họ nói về cú pháp
và ngữ nghĩa. Syntax nắm bắt các biểu thức pháp lý của chương trình, tất cả mọi thứ
trong DSL-syntax custom được nắm bắt bằng ngữ pháp. Sematic của một chương
trình là những gì nó làm khi nó thực thi.
Ví dụ:

Parsing a DSL populates a Semantic Model

Trong ví dụ này , các mô hình ngữ nghĩa là một mô hình đối tượng . Một mô hình ngữ
nghĩa cũng có thể có các hình thức khác . Nó có thể là một cấu trúc dữ liệu đơn thuần
với tất cả các hành vi trong các chức năng riêng biệt .
- Code generation
Sẽ rất hữu ích khi bạn muốn sử dụng DSL với nền tảng 1 ngôn ngữ mà không có công
cụ hỗ trợ cho DSL. Có thể làm điều này bằng việc sử dụng Sematic model là đầu vào
và tạo ra mã mà sau đó có thể thực thi trên nền tảng đó.
Có 2 cách sử dụng Code generation


6
C1 + Tạo ra mã rồi sửa chữa mã bằng tay.
C2 + Tạo ra mã nhưng không bao giờ sửa mã bằng tay, và có thể tái tạo, tái sử dụng.
Điều này đặc biệt đúng với DSL.

3. Phân loại
DSL có 2 hình thứcđó là : External DSL và Internal DSL
+ External DSL tồn tại độc lập với bất kỳ ngôn ngữ khác, SQL là một ví dụ về một
External DSL.
+ Internal DSL tồn tại bên trong một ngôn ngữ lập trình khác - ví dụ Rails là một
Internal DSL được lưu trữ trong ngôn ngữ lập trình Ruby.
Thông thường, External DSL dễ dàng tạo ra hơn nhưng không linh động bằng Internal
DSL. Internal DSL không chú trọng về việc phân tích cú pháp hoặc ngữ pháp, nhưng
phải phù hợp với cú pháp hợp lệ trong ngôn ngữ chủ (ví dụ.Mã Rails phải là cú pháp
hợp lệ của Ruby), ngược lại một External DSL có thể có bất kỳ cú pháp của riêng
mình với mức chi phí nhiều hơn việc xây dựng một phân tích cú pháp và ngữ pháp.

4. Khi nào cần dùng DSL
Mỗi ứng dụng có quy tắc kinh doanh riêng ,cần phải rõ ràng, dễ đọc, và khai báo. Một
DSL là một cách lý tưởng để mô hình các loại quy tắc. Nó không mất nhiều công sức
để phát triển một DSL. Nhưng các tác động mà nó có về người sử dụng có thể rất lớn.
Trước khi bạn quyết định,bạn cần phải cân nhắc những ưu và khuyết điểm. Như với
bất kỳ công nghệ nào khác, DSL có thể có những cạm bẫy. Là một nhà phát triển, bạn
là người tốt nhất để đánh giá xem bạn cần một DSL để mô hình hóa các vấn đề hiện
tại. Do đó, bạn cần phải nhận thức được những ưu điểm và nhược điểm của DSL.

5. Ưu điểm và nhược điểm
5.1 ưu điểm
- DSL cho phép tạo ra các giải pháp các giải pháp phải được thể hiện trong các mức
độ trừu tượng của vấn đề trong lĩnh vực nào đó. Ý tưởng ở đây là các chuyên gia
trong linh vực đó có thể hiểu , xác nhận, và có thể phát triển DSL trong lĩnh vực
đó. Tuy nhiên đây là trường hợp hiếm.
- DSL nâng cao chất lượng, năng suất, độ tin cậy, bảo trì, linh động và có thể dùng
lại. (dễ dàng thay đổi theo yêu cầu ndung bằng cách thay đổi mô hình).
- DSL ngắn gọn: vì dsl ngắn gọn nên dễ dàng trong việc quan sát, quản lý, và hiển
thị.
- DSL được thiết kế ở mức độ trừu tượng cao. DSL không phải đối phó với các cấu
trúc ngôn ngữ thấp hơn, nó tối ưu hóa cấu trúc dữ liệu và thực hiện các kỹ thuật
khác. Thay vào đó DSL thực hiện trên miền kiến thức có mức độ mà nó có thể
được đảm bảo, xác nhận, và tái sử dụng dễ dang hơn.
- DSL có khả năng mở rộng.
5.2 Nhược điểm


7
-

II.

Ngôn ngữ khó thiết kế. DSL thực hiện ngôn ngữ thiết kế nó là một phức hợp các
công việc không có quy mô cụ thể. Nó như một ngôn ngữ bậc cao, tuy nhiên nó rất
phức tạp và không phải là công việc dễ dàng với lập trình viên.
DSL cần có chi phí trả trước. một dự án dựa trên DSL cần có chi phí trả trước.

Meta Edit+
1. Giới thiệu MetaEdit+

MetaEdit+ là một ứng dụng dựa trên kho lưu trữ, có nghĩa là một kết nối đến
kho lưa trữ phải được thiết lập trong công cụ. Thủ tục đăng nhập này được bắt
đầu từ Startup Launcher được mở ra khi MetaEdit+ bắt đầu.

Ngoài việc đăng nhập, một số chức năng khác có thể được truy cập từ Startup.
MetaEdit+ bào gồm các bộ Editor, generator, các công cụ quản lý khác.
2. Môi trường phát triển

MetaEdit + tạo thành một môi trường đa công cụ linh hoạt và mạnh mẽ cho
phép linh hoạt sáng tạo, bảo trì, xử lý, thu hồi và đại diện các thiết kế thông tin
giữa nhiều nhà phát triển. Đó là các tính năng:
+ Multi-project
+ Multi-modeling language
+ Multi User


8

+ Multi tool
+ Multipltform

3. Công cụ quản lý môi trường
Metaedit+ có các công cụ quản lý môi trường mạnh mẽ bôm gồm Startup , main
laucher, browsers, graph manager các hộp thoại của properties…
3.1 Môi trường và công cụ quản lý thông tin

bao gồm hai Launchers cho quản lý môi trường và các công cụ khác, trình
duyệt và Graph Manager để duyệt các thông tin được lưu trữ trong các
Object Repository, hộp thoại tài sản để xem và chỉnh sửa thông tin về các
yếu tố thiết kế duy nhất, và Info Tools cho mối liên kết xem giữa các đồ thị,
tái sử dụng các mẫu thiết kế, và khóa thông tin (trong phiên bản đa người
dùng)
3.2 Editor
đó là những công cụ để xem, chỉnh sửa và quản lý dữ liệu thiết kế.
MetaEdit+ bao gồm một Diagram Editor, Matrix Editor, và Table Editor.
3.3 Generator và intergration
Bao gồm cả Generator để chuyển đổi dữ liệu kho lưu trữ các định dạng đầu
ra khác nhau, các công cụ để import và Export các định nghĩa ngôn ngữ và
thiết kế dữ liệu giữa các kho, công cụ API và các hoạt động dòng lệnh.
3.4 Công cụ phát triển ngôn ngữ
hình thành nên một phần metaCASE của môi trường cho phép người dùng
thay đổi môi trường. Các công cụ phát triển được mô tả trong một hướng
dẫn riêng biệt ‘ MetaEdit+ Workbench User’s Guide’
4. Metamodeling với MetaEdit+workbench
4.1 Các khái niệm cơ bản
4.1.1.1 GOPPRR
Graph
Một graph là tập hợp các đối tượng (object), quan hệ (relationship), vai
trò (roles), các ràng buộc( bindings) để thể hiện mối quan hệ giữa các
đối tượng. một graph cũng chứa các thông tin về các đồ thị thành phần
của nó.
Object
Một object là thành phần của một graph. Ví dụ như buttong, trạng thái
hay một hành động nào đó. Tất cả các trường của object đều có thể tái
sử dụng


9
Relationship
Một relationship là một thể hiện rõ ràng sự kết nối giữa hai hoặc nhiều
đối tượng.
Role
Một role xác định vai trò của một đối tượng trong mối quan hệ.
Port
Là một đặc điểm kỹ thuật bắt buộc trong một object. thông thường role
đảm bảo việc kết nối giữa các đối tượng và ngữ nghĩa của việc kết nối ;
trong khi đó để có được một role nhất định để kết nối đến nhiều nơi
khác nhau trên một đối tượng với các ngữ nghĩa khác nhau ta sử dụng
port.
Property
Là một mô tả các thuộc tính hoặc điều kiện để kết nối với các loại khác.
4.1.1.2 Properties (các thuộc tính)
Properties gồm hai thành phần đó là kiểu dữ liệu và giá trị của nó. Các
kiểu dữ liệu cơ bản : String, number, text, bool …
4.1.1.3 Bindings (các ràng buộc)
Các thông tin về object(đối tượng), port(cổng), role (vai trò), và
relationship (quan hệ) trong một graph được kết nối với nhau như thế
nào được lưu dưới dạng bindings. Mỗi binding chứa một quan hệ và
hoặc nhiều kết nối gồm một role, một object và tùy chọn một port.
4.1.1.4 Cấu trúc phân tách
Tùy thuộc vào phương pháp sử dụng mỗi đối tượng có thể chia ra thành
các graph mới.
4.1.1.5 Cấu trúc nổ
Khác với cậu trúc phân tách cấu trúc nổ cho phép các object,
relationship hoặc role trong một graph có thể kết nối với các graph
khác. Cấu trúc nổ cho phép chọn một đối tượng trong graph và kết nối
tời graph mới.
4.2 Các công cụ trong metamodeling
4.2.1.1 Graph tool
Cung cấp các chức năng để truy cập, xem và chỉnh sửa các thông số kỹ
thuật của ngôn ngữ mô hình ở cấp độ biểu đồ.


10

Hình : graph tool
Các thành phần của graph tool:
Basics
Dùng để xác lập các thông tin cơ bản của graph như: tên, thuộc tính,
mô tả.
Types
Xác định các thành phần non-properties của graph.
Bindings
Khai báo các cấu trúc binding.
Subgraph
Khai báo các cấu trúc như : cấu trúc phân tách, cấu trúc nổ.
Contraints
Bổ sung các quy tắc cho đồ thị.
4.2.1.1.1.1 Định nghĩa một graph
Từ thanh công cụ của metaedit+ chọn Metamodel| graph
tool. Nếu đã có graph từ trước ta chọn nút open trên thanh
công cụ nó sẽ hiện ra danh sách các graph cho ta chọn.
nếu chưa có graph ta hoàn thành các thông tin cho graph
mới như sau.
Bước 1: đặt tên cho graph tại ô name.
Bước 2: định nghĩa object, relationship, và role tại tab
Types.
Bước 3: định nghĩa binding cho các thành phần tại tab
Bindings.
Bước 4: đĩnh các cấu trúc tại tab subgraph.
4.2.1.1.1.2 Thay đổi và chỉnh sửa graph đã có


11

4.2.1.1.1.3

4.2.1.1.1.4

Mở graph đã có ta chọn Graph |open một danh sách các
graph sẽ hiện ra ta có thể chọn graph cần để chỉnh sửa
thay đổi tất cả các thuộc tính của nó.
Types tab
Dùng để lựa chọn các Object, Relationship, và Role của
modeling language. Nó chứa danh sách Objects,
Relationships, Roles, với mỗi danh sách này ta có thêm,
xóa các đối tượng bên trong nó.

Bindings tab
Để xác định các Relationship, roles, port và object được
kết nối với nhau thế nào. Tại tab này nó sẽ hiển thị các
thành phần của graph được kết nối với nhau thế nào đồng
thời nó cho phép ta định nghĩa các kết nối đó.

Để định nghĩa một kết nối ta làm như sau:
Bước 1: chọn một Relationship tại ô Relationship


12
Bước 2: chọn một role tại ô role
Bước 3: chọn cổng kết nối tại ô Ports
Bước 4: chọn đối tượng tại ô Objects
Có rất nhiều trường hợp một object có thể kết nối với
nhiều đối tượng khác nhau để mô ta điều này tại ô roles ta
chọn chuột phải lên một role có nhiều kết nối đến object
khác tiếp theo cọn Cardinality, hộp thoại Cardinality hiện
ra cho phép ta tùy chỉnh số lượng kết nối:

Ta điền các chỉ số vào ô minimum và maximum.
4.2.1.2 Object tool
Cung cấp các chức năng để tạo, sửa, xem các object trong hệ thống.
4.2.1.2.1.1 Khai báo một object mới
Để mở object tool chọn Metamodel | Object tool. Cửa sổ
object tool hiện ra.

Tại đây ta có thể tạo một object mới:


13
Bước 1: đặt tên cho object tại ô name
Bước 2: thêm các thuộc tính cho object tại ô properties
bằng cách chọn chuột phải lên vùng ô trống ta có thể thêm
mới hoặc thêm các thuộc tính đã có.
Bước 3: thêm mô tả tại ô Description.
Bước 4: lưu các thông tin lại bằng cách chọn nút save trên
thanh công cụ.
Ngoài ra ta có thể chỉnh sửa object sẵn có bằng cách chọn
nút open trên thanh cô cụ sau đó chọn object cần chỉnh
sửa.
4.2.1.3 Relationship tool
Relationship tool cho phép bạn tạo mới, xem, chỉnh sửa các loại
relationship.


14
4.2.1.4 Role tool
Role tool dùng để xác định thành phần cuối cùng trong mối quan hệ
giữa các đối tượng.

4.2.1.5 Port tool
Port tool được sử dụng để xác định cổng như là một phần của object
sysbols và chọn vai trò ứng với nó. Nó cho phép bổ sung hoặc hạn chế
các ngữ nghĩa cách các đối tượng kết nối.


15

4.2.1.6 Property tool
Tất cả các thành phần của graph (gồm cả graph) có các thuộc tính gắn
liền với chúng. Property tool cho phép việc khai báo cũng như chỉnh
sửa các thuộc tính này.

4.3 Symbol Editor
Symbol Editor là một loại của công cụ vẽ đặc biệt cho cho các công việc với các
biểu tưởng của object, role hay relationship được hiển thị trong Diagram Editor và
Maxtrix Editor. Các biểu tượng được tạo ra từ các khối hình, màu sắc, các ô text.
Các giá trị của properties cũng được định nghĩa hoàn toàn bởi symbol. Symbol
tool cho phép bạn lấy những biểu tượng từ thư viện giúp dễ dàng sử dụng.
4.3.1.1 Làm việc với symbol Editor.
Để mở symbol editor ta chọn nút Sysbol trêm thanh công cụ các tool
object, relationship hay role. Ta được giao diện của sysmbol Editor:


16

4.3.1.1.1.1

Tạo symbol mới
Chọn symbol|new. sau khi hoàn thành các thao tác với
symbol này ta chon symbol|save để hoàn tất.
4.3.1.1.1.2 Import symbol từ thư viện
Để import các symbol sẵn có ta chọn symbol|import from
library rồi chọn symbol thích hợp.
4.3.1.2 Tạo các đối tượng cho sysbol
4.3.1.2.1.1 Các khối hình
Sau khi tạo một symbol mới ta bắt đầu xây dựng các biểu
tượng cần thiết để tạo symbol đó thê hiện được các thuộc
tính của object, relationship hoặc role đã được chọn.
Trên thanh công cụ ta thấy các khối hình ta có thể lựa
chọn khối hình bất kỳ bằng cách chọn nút tương ứng với
khối hình đó trên thanh công cụ vẽ khối hình đó lên vùng
editor. Sau khi vẽ xong ta có thể đặt các thuộc tính tương
ứng cho các thành phần bằng cách click đúp lên thành
phần đó hộp thoại format hiện ra:


17
Chọn property tương ứng cho biểu tượng đó.
4.3.1.2.1.2 Connectable
Conectable là dạng symbol đặc biệt nó được tạo ra trong
vùng của symbol cho phép sự kết nối giữa hai đối tượng.
Các tạo connectable:
Bước 1: chọn Connectable trên thanh công cụ
Bước 2: kéo thả chuột dọc theo một cạnh của symbol.
Bước 3: click đúp chuột để hoàn tất tạo connectable.
4.3.1.2.1.3 Connectable và ports
Object symbols có thể có nhiều kết nối tức là cần có nhiều
connectable, để thực hiện điều này ta có thể tạo cổng cho
mỗi kết nối.
Yêu cầu cho việc này đó là mỗi connectable có một cổng
riêng. Mỗi connectable sẽ được vẽ nên cạnh của khối
hình.
Các bước tạo port và connectable:
Bước 1 : vẽ connectable lên cạnh của symbol
Bước 2 : chuột phải lên conectable đó chọn format, hộp
thoại cổng hiện ra.
Bước 3 : chọn Add nếu muốn thêm cổng mới , hoặc Add
Exiting để thêm cổng đã có.
Ngoài ra symbol Editor còn cung cấp các tùy chọn khác giúp người
dùng dễ dàng trong quá trình sử dụng.

4.4 Editors
Editor trong MetaEdit+ là nơi để tạo, xem và chỉnh sửa các thông tin thiết kế.
Có ba loại đó là: Diagram Editor, Maxtrix Editor và Table Editor.
Trong tài liệu này chúng tôi giới thiệu và trình bày Diagram Editor.
4.4.1.1 Diagram Editor
Diagram Editor là công cụ có chức năng tạo, quản lý và duy trì graph
dưới dạng diagram. Với diagram chúng ta có thể xem, chỉnh sửa graph
tạo các cấu trúc liên kết giữa các graph.
Diagram editor cho phép các công việc như copy, cut, delete, paste,
print, generate … các thành phần của graph.
4.4.1.2 Diagrams
Các thao tác với một diagram:
Mở một diagram ta thực hiện các bước sau:


18
Bước 1: chọn Edit|Diagram Editor
Bước 2: chọn graph cần mở.
Bước 3: bạn có thể chọn xem graph đã có hoặc tạo graph mới.
Quản lý Diagram:
Metaedit+ cho phép ta quản lý diagram rất chi tiết : nó cho phép thực
hiện các công việc như tạo mới, mở, và chỉnh sửa và xem graph.
Ngoài ra Diagram còn cung cấp nhiều tính năng khác hỗ trợ người dùng
tối đa.
4.4.1.3 Object
Diagram cung cấp các thao tác với object như thêm object mới, thêm
object đã có, chọn object, thay đổi object, hoặc chỉnh sửa một object.
4.4.1.4 Relationships và Roles
Tạo Relationship giữa hai object
Bước 1: chọn loại relationship từ thanh công cụ
Bước 2: di chuyển chuột đến object đầu tiên khi nào object đó được tô
sáng ta click chuột trái.
Bước 3: di chuyển đến object thứ 2 tương tự click chuột hai lần để hoàn
tất.
Tạo Relationship giữa nhiều object
Bước 1: chọn loại relationship từ thanh công cụ
Bước 2: di chuyển chuột đến object đầu tiên khi nào object đó được tô
sáng ta click chuột trái.
Bước 3: di chuyển chuột tới khoảng trông và click chuột trái để tạo
điểm rẽ nhánh.
Bước 4: di chuyển đến object thứ 2 tương tự click chuột hai lần để hoàn
tất.
Bước 5: di chuyển đến object tiếp theo và click chuột trái để tạo
relationship.
Ngoài ra Diagram còn cung cấp các chức năng khác cho phép thao tác
với relationship và role như: xóa một relationship, chỉnh sửa các role, di
chuyển relationship.
4.4.1.5 Ports
Sức mạnh của cổng là làm nổi bật vai trò của các kết nối trong ràng
buộc của đối tượng. có hai loại cổng đó là:
Static ports
Là cổng cố định được duy trì trên các đối tượng, các đối tượng cùng loại
có cùng một cổng.
Dynamic ports


19
Dynamic port được lấy tại thời gian chạy và chúng có thể được tạo từ
nhiều nguồn khác nhau (có thể là trong thuộc tính của object hoặc là từ
subgraph).
Dynamic ports được xem như connectables trong việc tạo ra các
relationship và các role trong trường hợp này nó tương tự như static port
và nó cung cấp những các tương tự để mở rộng ngữ nghĩa các ràng
buộc. tuy nhiên dynamic port có những điểm khác biệt so với static port
đó là thay vì gắn bị gắn vào một object cố định nó có thể di chuyển, để
di chuyển nó ta chọn các roler gắn liều với nó và kéo thả theo mong
muốn.
4.4.1.6 Subgraph
Để mở một subgraph ta chọn một đối tượng giữ ctrl+double lên đối
tượng đó.
5. Thiết kế dữ liệu đầu ra và Exchange tool
5.1 In
Meta edit+ cho phép in các biểu đồ Diagram Editor, Maxtrix Editor, Table Editor.
Chọn File | print để mở công cụ in:

Print setting cho phép chỉnh sửa chiều rộng, chiều dài, phóng to thu nhỏ … khi
chỉnh xong các tùy chọn chon OK để in.
5.2 Generator
Các công việc sinh ra ma nguồn, sinh tài liệu , kiểm tra báo cáo đều được Meta
edit+ thực hiện bởi Generator.
a. Generating


20

-

-

Meta edit+ cung cấp các Generator cho các công việc check, review hoặc thiết
kế tài liệu. Các bộ Generator này là độc lập chúng gồm có:
Check dùng để liệt kê các đối tượng có mối quan hệ với các đối tượng khác,
và tất cả các mối quan hệ liên quan tới chúng.
Dictionary : dùng để in ra tất cả các đối tượng và các tài liệu liên quan.
Export graph hierachy to HTML: tạo ra tập tin dưới dạng html có thể mở
bằng các trình duyệt. Nó hiển thị một đồ thị đầy đủ các thành phần gồm các
đối tượng, mối quan hệ giữa các đối tượng , các tài liệu liên quan đến đối
tượng. . .
Export graph hieararchy to Word: tương tự như khi export ra tập tin html
meta edit+ cũng export đầy đủ các thông tin ra tập tin dưới dạng word.
Export graph to HTML: meta edit+ export các thành phần của Graph dưới
dạng HTML nhưng không bao gồm các subgraph.
Export graph to Word: meta edit+ export các thành phần của Graph dưới dạng
Word nhưng không bao gồm các subgraph.
Metric : thực hiện các tính toán và báo cáo số lượng các đối tượng, số lượng
các đối tượng theo loại, số lượng các mối quan hệ …
Object Connections : hiển thị các đối tượng khác nhau có liên quan đến nhau
như thế nào.
Object list: mô tả tất cả các đối tượng trong graph.
Object Nesting: để nhận thông tin về các đối tượng lồng nhau trong một sơ đồ
mà đồ họa chồng lên nhau.
Property List: mô tả các thuộc tính của mỗi đối tượng.
XML : xuất các thông tin của graph dưới dạng XML.
Thực hiện Generator
Đầu tiên chọn project cần generate tiếp theo chọn graph bấm chuột phải lên
graph đó, một menu hiện ra tiếp theo chon Generate để thực hiện:


21

b.

-

-

-

Hình 2: thực hiện generator
Tạo tài liệu (Documentation generation)
Các thông tin thiết kế được Meta edit+ cung cấp cho phép người dùng có thế
xem lại thiết kế và các tài liệu của dự án. Meta edit cung cấp tài liệu dưới
dạng HML hoặc .DOC hoặc .RTF.
Tài liệu Graph
Tài liệu cho graph là có sẵn cho tất cả các đồ thì. Generator sẽ tạo ra một file
duy tài liệu về graph , nó bao gồm các thành phần: các thông tin về graph như
tên, trạng thái, những người làm việc trên graph; Mỗi đối tượng sẽ được tạo
một bảng gồm các thông tin về đối tượng đó ; Mô tả về mỗi đối tượng gồm
tên, mối quan hệ, subgraph của nó.
Thực hiện tạo tài liệu cho graph :
Bước 1 : chọn graph cần sinh tài liệu
Bước 2 : Chuột phải lên graph đó chọn generate
Bước 3: chọn “Export graph to HTML” hoặc “Export graph to Word”
Tài liệu Project
Ngoài tài liệu cho từng Graph riêng chúng ta có thể tạo tài liệu cho toàn bộ dự
án. Để tạo được tài liệu cho dự án chúng ta phải kết hợp các Graph con theo
mô hình của dự án.
Tài liệu dự án bao gồm :
tên và miêu tả của dự án, trạng thái hiện tại, người quản lý, các thành viên
thực hiện dự án với các thông tin liên hệ.


22
-

các biểu đồ diagram, các hình ảnh của diagram.
Tài liệu dự án không sinh tự động mà phải tạo thủ công. Các bước sinh tài
liệu cho dự án:
Bước 1: tạo một Project Model graph
Bước 2: nhập các thông tin về dự án.
Bước 3: mở Project Model với một diagram
Bước 4: thêm các graph mới vào dự án.
Bước 5: sinh tài liệu cho dự án chúng ta có thể tạo tài liệu dưới dạng HTML
hoặc Word.

c. Sinh mã nguồn (code generating)
- Meta edit+ có thể sinh ra các loại mã nguồn khác nhau tùy thuộc vào mô hình
nó thể hiện cụ thể là:
- UML: sinh ra mã nguồn c++, java, Delphi …
- Entiy-relationship Diagram: SQL.
- Định nghĩa các khái niệm truy vấn:
Property: nó được định nghĩa bởi tên của nó bắt đầu bằng đấu ‘:’.
Để truy cập đến các thành phần bên trong một property ta sử dụng cú pháp “:
property tên property; các thuộc tính con 1; thuộc tính con 2”.
Object type: nó được định nghĩa bởi tên bắt đầu bằng dấu ‘.’.
Relationship type: được định nghĩa bằng tên bắt đầu bởi dấu ‘>’.
Role type: được định nghĩa bắt đầu bằng dấu ‘~’.
Port type: được định nghĩa bắt đầu bằng dấu ‘#’.
- Các bước sinh code:
Bước 1: chọn Graph cần generating sau đó chọn Metamodel | Generator
Editor. Ta được giao diện:


23

Hình : generator

Vùng 1: Generator box chứa danh sách các generator. Để tạo mới chọn
biểu tượng new trên thanh công cụ.
Vùng 2: Concerpt box : dùng để lựa chọn các thành phần cần hiển thị
cho vùng 3.
Vùng 3: Choice box: hiển thị các lựa chọn của vùng 2 cho người dùng
chọn các thành phần đó.
Vùng 4: Editing area : định nghĩa code cho generator.
Bước 2: Tạo bộ generator mới
Từ thanh công cụ chọn biểu tượng new.
Bược 3: Cài đặt cho đầu ra
Tại vùng số 4 xuất hiện câu lệnh:
Report ‘GraphName’
Foreach type{
}EndReport
Trong vòng foreach ta dùng các câu lệnh để có được đầu ra theo ý của
mình.
- Như vậy chúng ta thấy Meta edit+ có khả năng tùy biến tạo ra các loại mã
nguồn khác nhau.
d. Các câu lệnh
i, lệnh if else
các toán tử:
‘=’: dùng để so sánh chuỗi và số


24
‘=~’: tương tự như ‘=’ nhưng nó phù hợp hơn với việc so sánh một tập
thông qua các ký tự đại diện như dấu ‘*’ (từ 0 đến n), ‘#’ (1 nhân vật)
ở vế bên phải.
‘=/’ : phù hợp với biểu thức chính quy.
‘<>’: phủ định của ‘=’.
‘< and <=’: nhỏ hơn hoặc bằng.
‘> and >=’: lớn hơn hoặc bằng.
Cú pháp của if:
If :property = ‘value ’ then
/*câu lệnh*/
Else
/*câu lệnh*/
endif
ii, lệnh lặp foreach
là cấu trúc chính trong Generator. Nó chỉ cho phép lặp với object, role,
relationships. Cú pháp của foreach
foreach .objType{
}
iii, lệnh lặp do và dowhile
lệch foreach chỉ duyệt qua các thành phần của đồ thị nó được yêu cầu
duyệt, còn do và dowhile duyệt vào thành phần con của vòng lặp
foreach. Dowhile là biến thể của do chỉ khác là nó bỏ đi các dấu câu
hoặc newline trong lần lặp cuối cùng của nó.
Ví dụ cho do và dowhile:
Do .Process {id ‘, ’} produces “1.0, 1.1, 1.2, ”
Dowhile .Process {id ‘, ’} produces “1.0, 1.1, 1.2, ”

iv, vòng lặp có bộ lọc và vòng lặp sắp sếp
Là vòng lặp foreach có thêm các tham số như where , orderby, unique.
Ví dụ:
Foreach .objType; where : proName = ‘value’{ /*câu lệnh*/}
v, lặp thông qua explosions
các liên kết giữa các đối tượng, relationship, hoặc role bên trong các .
subgraph có thể được theo dõi thông qua từ khóa ‘Explosion’.
Do explosions { ‘ ’
id
newline}
5.3 Thiết kế dữ liệu cho export và import


25
Meta edit+ cung cấp các công cụ để thực hiện việc export cũng như import
giữa Meta edit+ repositories và các API hoặc workbench. Nó cũng có thể
exporting và import cả hai loại metamodel và instance (mô hình) phân cấp dữ
liệu. Meta edit+ cung cấp hai định dạng cho việc thay đồi dữ liệu: một là định
dạng nhị phân cho định dạng export / import giữa metamodel repositorise và
mở một XML dựa trên công cụ tích hợp mở rộng.
a. Exporting graphs
Bước 1: mở project chứa graphs cần export.
Bước 2: trong meta edit+ , tất cả việc export được kích hoạt trong Graph
Manager. Để mở Graph manager chúng ta chọn nút Export trên thanh công
cụ hoặc chọn Browsers| Graph Manager.
Bước 3: trong Graph Manager chọn gaph cần export. Chúng ta có thể chọn
/hủy chọn một hoặc tất cả các graph bằng các nút bên dưới.

Hình : Graph Manager

Bước 4: Thêm các thành phần vào Graph. Danh sách bên trái là các thành
phần của graph được chọn, danh sách bên phải là các thành phần sẽ được
export. Để thêm vào danh sách bên phải ta chọn một / tất cả thành phần bên
trái rồi chọn mũi tên ở giữa hai danh sách.
Bước 5: Export : chọn save Path hoặc chọn Export to XML. Việc save as
patch sẽ tạo ra một file nhị phân với phần mở rộng là .mec; khi chọn
Export to XML sẽ tạo ra file nhị phân với phần mở rộng là .mxm.
b. Importing metamodels và models
Để import metamodel hoặc model ta thực hiện các bước sau:
Bước 1: chọn Respository|Import từ thanh công cụ


x

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay

×