Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 61 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
61
Dung lượng
3,15 MB
Nội dung
111 Mục lục Lời cam đoan ỉ Lời cảm ơn ii Mục lục iii Danh sách hình vẽ V Danh sách bảng vi 1 Mở đầu 1 1.1 Đặt vấn đ ề 1 1.2 Phạm vi nghiên cứ u 2 1.3 Cấu trúc khóa lu ậ n 2 2 Cơ sở lý thuyết 4 2.1 Phát triển phần mềm hướng mô hình 4 2.1.1 Mô hình và siêu mô hình 5 2.1.2 Ngôn ngữ mô hình h ó a 6 2.2 Chuyển mô hìn h 7 2.3 Ngữ pháp đồ thị ba (TG G s) 9 2.4 Tích hợp OCL và Triple Rules 12 3 Đảm bảo chất lượng chuyển mô hình 15 3.1 Ngôn ngữ RTL 15 3.1.1 Đặc tả ngôn ngữ R T L 16 3.1.2 Thực thi chuyển với R T L 19 3.2 Đảm bảo chất lượng chuyển mô hình R T L 20 3.2.1 Kiểm chứng chuyển 20 3.2.2 Hợp lệ chuyển 21 4 Cài đặt và thực nghiệm 22 4.1 Case stu d y 22 4.1.1 M etamodels 22 4.1.2 Một số tiếp cận chuyển 25 4.2 Đặc tả luật c hu y ể n 25 4.3 Các dẫn xu ấ t 30 4.4 Tính đúng đắn của chuyển 32 5 Kết luận và hướng phát triển 36 5.1 Công việc liên q u an 36 5.2 Kết l u ậ n 36 5.3 Kết quả thu đ ư ợ c 38 5.4 Hướng phát t r i ể n 38 Tài liệu tham khảo 39 Phụ lục 42 A Đặc tả RTL của bài toán chuyển giữa biểu đồ hoạt động UML và đặc tả CSP 43 B Luật TGG kết hỢp với OCL 46 c Pré-, Postconditions chuyển tiến 48 V Danh sách hình vẽ 2.1 Phương pháp phát triển phần mềm hướng mô hình 4 2.2 Các tầng của U M L 6 2.3 Ví dụ chuyển từ biểu đồ lớp - bảng quan hệ dữ l i ệ u 7 2.4 Ví dụ graph và typed g ra p h 9 2.5 Ví dụ về Triple Graph 10 2.6 Ví dụ về Triple Rule 11 2.7 Ví dụ về một bước chuyển khi áp dụng dẫn xuất chuyển tiến 13 3.1 Cú pháp ngôn ngữ RTL 16 3.2 Luật chuyển ClassToTable đặc tả sử dụng R T L 17 3.3 Cú pháp RTL mở rộ n g 18 3.4 Thực thi luật TGG bằng OCL: (1) bằng cách khai báo ràng buộc OCL pre- và postconditions, (2) bằng chuỗi các lệnh U SE 18 3.5 Thực thi luật chuyển ClassToTable 19 4.1 (1) Metamodel của biểu đồ hoạt động; (2) Ví dụ biểu đồ hoạt động 23 4.2 (1) Metamodel của đặc tả CSP; (2) Ví dụ đặc tả C S P 23 4.3 Ví dụ hệ thống cứu hộ giao thông 24 4.4 Luật chuyển InitialNode 26 4.5 Luật chuyển ActionNode 27 4.6 Luật chuyển FinalNode 28 4.7 Luật chuyển Decision2Node 28 4.8 Luật chuyển Decision3Node 28 4.9 Luật chuyển ForkN ode 29 4.10 Luật chuyển Join N ode 29 4.11 Luật chuyển M ergeNode 29 4.12 Chuỗi các lệnh USE chuyển đổi Action trong chuyển ti ế n 30 4.13 Trạng thái mô hình khi áp dụng chuyển tiến 31 4.14 Biểu đồ hoạt động bài toán cứu hộ giao thông 32 4.15 Đặc tả CSP bài toán cứu hộ giao th ô n g 33 4.16 Kiểm chứng chuyển 33 4.17 Precondition cho dẫn xuất chuyển tiến của luật trafoActionNode . . 34 4.18 Postcondition cho dẫn xuất chuyển tiến của luật trafoActionNode . 34 vi BANG KŸ HIÊU VÀ CÂC CHÜ VIET TAT Tùf viét tat Tùf chuân Diên giâi BACs Boolean Application Condi tions CSP Communicating Sequential Processes MDE Model Driven Engineering Kÿ nghê hiïông mô hînh MDD Model Driven Development Phât triên phàn mèm huông mô hïnh OMG Object Management Group To chute dura ra câc chuân cho xây dung câc hê thong huông doi tUdng TGG Triple Graph Grammar Ngô phâp do thi ba Triple rule Triple rule Luât do thi ba OCL Object Constraint Language Ngôn ngô rang buôc doi tUdng UML Unified Modeling Language Ngôn ngô mô hïnh hôa thong nhât USE UML-Based Specification Environment Moi trudng dâc ta hê thong dua trên UML QVT Query /View / Transformation RTL Restricted Graph Transfor mation Language Ngôn ngô chuyen mô hïnh RTL 1 Chương 1 Mở đầu 1.1 Đặt vấn đề Trong phát triển phần mềm hiện nay, phương pháp phát triển phần mềm hướng mô hình nổi lên như một giải pháp hiệu quả nhằm nâng cao đáng kể tốc độ phát triển cũng như chất lượng phần mềm. Trong phương pháp này, mô hình được xem như trung tâm tại tất cả các bước để xây dựng phần mềm, và thao tác chuyển mô hình chính là trái tim của toàn bộ phương pháp. Chuyển mô hình có thể được áp dụng trong các ngữ cảnh khác nhau: (1) biểu diễn mối quan hệ giữa các góc nhìn khác nhau của một hệ thống, (2) phản ánh một mô hình từ một mô hình miền khác nhằm phục vụ việc phân tích mô hình, và (3) đạt được một sự ánh xạ giữa các mô hình trên các ngôn ngữ khác nhau. Trong những ngữ cảnh đó, các ngôn ngữ chuyển cần phải đạt được sự mềm dẻo và tính chính xác trong cách biểu diễn. Hiện nay có nhiều phương pháp tiếp cận cùng với các công cụ đã được nghiên cứu và đề xuất để giải quyết bài toán chuyển mô hình [3]. Phương pháp tiếp cận Query/View/Transformation (QVT) được xem như một tiêu chuẩn trong vấn đề chuyển mô hình [16]. ở bài báo [12], các tác giả đã xây dựng ngôn ngữ ATL dựa trên hướng tiếp cận QVT. Đây là công cụ đã và đang được sử dụng rộng rãi trong công nghiệp phát triển phần mềm. Phương pháp tiếp cận thứ hai cũng đang thu hút được sự quan tâm nghiên cứu và phát triển mạnh mẽ là hướng tiếp cận chuyển đồ thị. Một số công cụ dựa trên chuyển đồ thị chỉ hỗ trợ chuyển một chiều như các tác giả ở bài báo [20] đã thực hiện; một số khác dựa trên Triple Graph Grammars (TGGs) hỗ trợ chuyển hai chiều giữa các mô hình [19]. Ngoài ra, các tác giả ở bài báo [4, 2] còn đề xuất cách tiếp cận để đảm bảo tính đúng đắn của chuyển. Luận văn này tiếp tục nghiên cứu giải pháp đã đề xuất tại [4]. Trong đó, sự tích hợp giữa Triple Graph Grammars [19] và ngôn ngữ ràng buộc đối tượng OCL [22] được thực hiện nhằm tăng khả năng biểu diễn và nâng cao chất lượng chuyển mô hình. Sự kết hợp này tạo lên ngôn ngữ RTL 1 và được hiện thực hóa dựa trên nền tảng OCL. Các ràng buộc OCL được đưa vào ngôn ngữ RTL nhằm: (1) biểu diễn 1RTL viết tắt của Restricted Graph Transformation Language 2 và thực thi các luật chuyển tiến, chuyển lùi, chuyển đồng tiến hóa và chuyển tích hợp, (2) đảm bảo tính đúng đắn của chuyển. Đặc biệt, ngôn ngữ RTL được biểu diễn dưới dạng văn bản và được hiện thực hóa bởi USE [5] thông qua các câu lệnh USE. Theo đó, tính đúng đắn của chuyển có thể được đảm bảo bằng cách kiểm tra ràng buộc invariants của chuyển và cặp ràng buộc tiền điều kiện và hậu điều kiện tại mỗi bước chuyển. Tính tự động hóa của chuyển cũng được cải tiến thông qua việc bổ sung cấu trúc điều khiển vào ngôn ngữ RTL. Để giải thích chi tiết hơn về ngôn ngữ RTL cũng như vấn đề kiểm tra tính đúng đắn của chuyển, chúng tôi đã áp dụng RTL để giải quyết hai bài toán chuyển: chuyển mô hình giữa biểu đồ lớp UML [9] và biểu đồ quan hệ dữ liệu RDBMS; và chuyển giữa biểu đồ hoạt động UML [9] và đặc tả CSP [11].’ 1.2 Phạm vi nghiên cứu Luận văn tập trung tìm hiểu ngôn ngữ chuyển mô hình RTL và kiểm tra tính đúng đắn của chuyển thực hiện bởi ngôn ngữ này. Việc mở rộng ngôn ngữ RTL được xem xét đến như một giải pháp làm tăng tính tự động của chuyển. Tính đúng đắn của chuyển cũng được nâng cao thông qua: (1) cải tiến cặp ràng buộc tiền điều kiện và hậu điều kiện tại mỗi bước chuyển, (2) xem xét sử dụng chuyển tích hợp để kiểm tra tính đúng đắn của mô hình đích theo luật chuyển đã được định nghĩa. Nhằm làm rõ ngôn ngữ chuyển RTL và vấn đề đảm bảo chất lượng của chuyển RTL, chúng tôi áp dụng giải quyết một số bài toán chuyển mô hình. Bài toán chuyển mô hình giữa biểu đồ lớp UML (UML class diagram) và biểu đồ quan hệ dữ liệu (relationship database System) được thực hiện như một chuyển đơn giản nhằm giải thích các khái niệm cơ sở, cách thức hoạt động của ngôn ngữ RTL. Với mục tiêu đó, chúng tôi chỉ xem xét chuyển những thành phần cơ bản của hai loại mô hình này. Ví dụ, vấn đề chuyển biểu đồ lớp với các lớp kết hợp, các lớp có quan hệ kế thừa, quan hệ thành phần - bộ phận tạm thời chưa được xem xét đến. Chuyển thứ hai được thực hiện trong luận văn này là chuyển mô hình giữa biểu đồ hoạt động UML (UML activity diagram) và đặc tả CSP. Trong đó, chúng tôi chỉ xem xét các thành phần cơ bản của biểu đồ hoạt động. Một số luật chuyển khó thực hiện ở ví dụ này chưa được xử lý. Với luật chuyển DecisionNode, thứ tự các điều kiện trong luật thay đổi có thể dẫn đến các kết quả khác nhau, vấn đề tương tự xảy ra khi chuyển JoinNode. Chi tiết về ví dụ chuyển này đã được chúng tôi nghiên cứu và làm rõ ở bài báo [15]. 1.3 Cấu trúc khóa luận Luận văn được tổ chức như sau. Chương 1 đặt vấn đề tại sao chúng ta cần thực hiện chuyển mô hình và cần kiểm tra tính đúng đắn của chuyển, giới hạn phạm 3 vi nghiên cứu của luận văn, và cấu trúc của luận văn. Chương 2 nhắc lại cơ sở lý thuyết cho bài toán chuyển mô hình và đảm bảo tính đúng đắn của chuyển, vấn đề đảm bảo chất lượng chuyển mô hình với ngôn ngữ RTL được làm rõ ở Chương 3. Tương tự như kiểm thử phần mềm, chúng ta cũng cần kiểm tra chuyển qua hai bước chính là kiểm chứng và hợp lệ chuyển. Trong phần này, chúng tôi mở rộng ngôn ngữ RTL để tăng tính tự động hóa cho chuyển, cùng với các phương pháp để kiểm tra tính đúng đắn của chuyển. Chương 4 giải quyết bài toán chuyển giữa biểu đồ hoạt động UML và đặc tả CSP sử dụng ngôn ngữ RTL. Tính đúng đắn của chuyển này được kiểm chứng thông qua ngôn ngữ OCL kết hợp với sự hỗ trợ của công cụ USE. Luận văn kết thúc với một số công việc liên quan, kết quả đạt được và một số hướng phát triển tiếp theo ở Chương 5. 4 Chương 2 Cơ SỞ lý thuyết Chương này giới thiệu về cơ sở lý thuyết cho luận văn. Mở đầu chương, chúng tôi giới thiệu về phương pháp phát triển phần mềm hướng mô hình. Phương pháp này hướng đến việc giải quyết các yêu cầu phần mềm dựa trên việc xây dựng và thao tác trên các mô hình. Hai công việc chính cần thực hiện khi phát triển theo hướng này là biểu diễn mô hình và thao tác với các mô hình. Ngôn ngữ mô hình hóa UML được tổ chức OMG đưa ra và thống nhất như một quy chuẩn cho việc xây dựng các mô hình. Trong đó, hai khái niệm cần quan tâm khi biểu diễn mô hình là mô hình và siêu mô hình. Qua mỗi giai đoạn phát triển, các mô hình được biến đổi, làm mịn thông qua bước chuyển đổi tự động hoặc bán tự động. Hai phương pháp chuyển mô hình đang được nghiên cứu và phát triển rộng rãi là Query/View/Transformation và chuyển đồ thị. Trong luận văn, chúng tôi tập trung nghiên cứu giải pháp dựa trên hướng tiếp cận chuyển đồ thị, cụ thể chuyển dựa trên ngữ pháp đồ thị ba (TGGs). 2.1 Phát triển phần mềm hướng mô hình Hiện nay, phát triển phần mềm hướng mô hình nổi lên như một phương pháp giúp cải thiện đáng kể tốc độ cũng như chất lượng phát triển phần mềm. Phương pháp này tập trung xây dựng các mô hình nhằm biểu diễn hệ thống dưới các góc nhìn khác nhau, từ góc nhìn trừu tượng như các biểu đồ ca sử dụng đến các biểu đồ chi tiết như các mô hình phân tích. Các mô hình thường được biểu diễn một cách trực quan, thể hiện được đa dạng các góc nhìn hệ thống. Computation Platform Platform Independent 1 > Independent 1 > Specific Model Model Model Analysis Model Design Model Basic code skeleton Hình 2.1: Phương pháp phát triển phần mềm hướng mô hình 5 Hình 2.1 thể hiện ba nhóm mô hình chính khi phát triển phần mềm hướng mô hình, ở những mô hình đầu tiên được tạo ra, chúng ta thường chưa cần quan tâm tới vấn đề yêu cầu sẽ được tính toán, giải quyết như thế nào. Vì vậy, những mô hình này được đặt trong nhóm mô hình độc lập tính toán. Một ví dụ điển hình cho loại mô hình này là biểu đồ ca sử dụng. Trong đó, mô hình chỉ ra những yêu cầu cần giải quyết, sự liên quan giữa các khối chức năng. Câu hỏi yêu cầu được xử lý như thế nào sẽ được trả lời qua nhóm mô hình độc lập nền tảng. 0 nhóm mô hình này, luồng xử lý nghiệp vụ, chi tiết về cách thức thực hiện được mô tả. Tuy nhiên, việc mô tả này dừng lại ở một mức độ trừu tượng, mô tả chung cho tất cả các nền tảng. Ví dụ cho nhóm mô hình này là các biểu đồ phân tích như biểu đồ lớp, biểu đồ tuần tự. Biểu đồ nhóm này quy định cho chúng ta cách thức thực hiện nhưng không bắt buộc chạy trên nền tảng nào. Nhóm mô hình thứ ba là mô hình nền tảng chỉ định. Mô hình này được xây dựng cho từng nền tảng cụ thể, ví dụ .NET, JAVA Mã chương trình là một ví dụ điển hình cho loại biểu đồ này. Giữa các nhóm biểu đồ này, các công cụ chuyển đổi được sử dụng nhằm tăng tính tự động hóa. Trong mỗi loại biểu đồ cũng có thể có những bước chuyển làm mịn dần các biểu đồ. 2.1.1 Mô hình và siêu mô hình Mô hình là một khái niệm khó có thể định nghĩa được một cách rõ ràng và đầy đủ. Đã có nhiều định nghĩa về mô hình được đưa ra. Trong đó có hai định nghĩa được đề xuất tại [17] và [14]. Định nghĩa trong MDA [14] nói rằng: "Mô hình là một dạng miêu tả của (một phần của) một hệ thống viết trên một ngôn ngữ được định nghĩa một cách rõ ràng. Ngôn ngữ ở đây là một ngôn ngữ với cú pháp và ngữ nghĩa rõ ràng và có thể tự động biên dịch được bởi máy tính". Còn tổ chức OMG đưa ra khái niệm mô hình trong [17] như sau: "Mô hình là một sự biểu diễn lại một cách biểu diễn một thứ gì đó một cách tương tự hoặc một cách biểu diễn khác của nó. Mô hình đó lưu lại các khía cạnh khác nhau của của đối tượng cần được mô hình từ một điểm của góc nhìn và làm đơn giản hơn hoặc bỏ qua những phần không cần xem xét tới ". Theo OMG định nghĩa trong [17], siêu mô hình là sự miêu tả của một mô hình. Việc xây dựng siêu mô hình được gọi là kỹ thuật metamodeling. Để xây dựng siêu mô hình, cần phân biệt được hai khái niệm mô hình và siêu mô hình và mối liên quan giữa chúng. Mô hình phản ảnh sự trừu tượng của một đối tượng nào đó trong thực tế, trong khi siêu mô hình cũng là một sự trừu tượng nhưng là sự trừu tượng cho chính mô hình. Nói cách khác, một mô hình là một thể hiện của siêu mô hình. Mối quan hệ giữa mô hình và siêu mô hình được giải thích thông qua ví dụ ở Hình 2.2. Hình vẽ chỉ ra các tầng mô hình khác nhau của UML [8], mỗi một tầng là một thể hiện của 6 M3 (MOF) Class /A Tx r \ \s ^ ^ I X ôinstanceửfằ ôĂnstainceOfằ ôins itanceOfằ M2 (UML) Attribute T Class ~7T~ classifier Instance Ê ôinstahceOfằ \ ôinstaneeOfằ ôĂnstanộeOfằ M1 (User model) Video title : String ^ / / / ôsnaò^hotằ _ ôinstaViceOfằ \ \ \ ôinstajiceOfằ : Video title = "2001 : A Space Odyssey" MO (Run-time Instances) aVIdeo Hinh 2.2: Cõc tng cỹa UML tng ngay trờn nử. Tng MO chỹa cõc dụi tỹdng khi hờ thụng dang chay, v ton tai trong thỹc tộ, vi du aVideo nụi vố mot doan phim thỹc tộ. Tng Ml chỹa cõc mụ hùnh. Khõi niờm Video dỹdc dinh nghùa vdi mot thuục tinh title. Mụi thnh phn thuục tng MO luụn l mot thộ hiờn cỹa mot thnh phn ụ tng Ml: aVideo l mot thộ hiờn cỹa Video. Tỹdng tu nhtù võy, mụi thnh phn ụ tng Ml l mot thộ hiờn cỹa mot thnh phn tng M2. M2 dUục goi l tng mụ hùnh cỹa mụ hùnh (hay siờu mụ hùnh). Cuoi cựng l tng M3: mụ hinh cỹa mụ hùnh M2. Dõy l mỹc trỹu ttfụng cao nhõt cỹa UML - metametamodel. 2.1.2 Ngụn ngtù mụ hùnh hụa Mụ hùnh cn phõi diùục biộu diờn triùdc khi cụ thộ thao tac trờn nụ. Mụi mụ hùnh dtfỗJc biộu diờn thụng qua ngụn ngỹ mụ hùnh hụa. Ngụn ngỹ mụ hùnh hụa duỗợc dinh nghùa trong [14] nhu sau: "Mụt ngụn ngỹ mụ hinh hụa l mụt ngụn ngỹ vụi cỷ phõp v ngỹ nghùa rụ rang, phự hdp de cụ thờ tỹ dụng bien dich bõi mõy tinh Dinh nghùa ny chợ ra rang ngụn ngỹ mụ hùnh hụa phõi dỹục dinh nghùa mot each rụ rang giụng nhỹ ngụn ngỹ lõp trùnh. Dieu ny l cn thiột vù theo k nghờ hỹdng mụ hùnh, cõc mụ hùnh sờ dỹỗJc xỹ l bụi cõc cụng eu mõy tinh mot each tỹ dụng. Cỹng theo dinh nghùa trờn, mot ngụn ngỹ mụ hùnh hụa bao gom hai gục nhin chinh l cỷ phõp v ngỹ nghùa. Cỷ phõp cỹa mot ngụn ngỹ mụ hùnh hụa cụ thộ dỹục biộu diờn dỹửi dang k hiờu dụ thi hoọc dang tỹ khụa, ngụn ngỹ khi do ln lỹụt dỹỗJc goi l ngụn ngỹ mụ hùnh hụa dang do thi v ngụn ngỹ mụ hùnh hụa dang [...]... din mụ hỡnh ca biu hot ng ch ra Hỡnh 4.3 õy chớnh l mụ hỡnh u vo ca ngụn ng chuyn RTL Sau khi ỏp dng cỏc lut chuyn, chỳng tụi thu c mụ hỡnh biu din c t CSP Hỡnh 4.15 Chỳng tụi ó phỏt trin RTL trờn cụng c USE nhm tn dng kh nng h tr OCL mt cỏch y ca cụng c ny RTL c phỏt trin nh l mt plugin ca USE Chỳng tụi phỏt trin RTL h tr hai ng cnh chuyn tin v chuyn tớch hp Trong ú, vic chuyn tin cú th c thc hin... chuyn RTL ó kt hp c lut chuyn TGGs v ngụn ng rng buc i tng OCL gii quyt vn trờn Phng phỏp kt hp TGGs v OCL ó c chỳng tụi tho lun Phn 2.4 Ngụn ng RTL l mt ngụn ng khai bỏo v c c t di dng vn bn Cỏc lut chuyn TGG c hin thc húa bi RTL thụng qua chui cỏc lnh USE [5] ( USE command sequences) kt hp vi rng buc OCL pre- v postcondition 16 3.1.1 c t ngụn ng RTL Hỡnh 3.1 ch ra cu trỳc ng ngha ca ngụn ng RTL. .. chuyn mụ hỡnh RTL c nh ngha da theo hng tip cn chuyn mụ hỡnh s dng TGGs kt hp vi rng buc OCL lm c s [4] 3.1 Ngụn ng RTL Hin nay, nhiu cụng c chuyn mụ hỡnh da trờn TGG ó c nghiờn cu v phỏt trin [18] Nhng cụng c ny chia s mt nn tng lý thuyt chung Tuy nhiờn, s thc hin l khỏc nhau v cỏch biu din, kh nng ỏp dng lut, tớnh hiu qu v cỏc thut toỏn thc hin (la chn v xỏc nh th t thc hin lut) Mt s cụng c tiờu biu... selectedAppfiỗatipn ::= apply( | ]; Hỡnh 3.3: Cỳ phỏp RTL m rng Hỡnh 3.4: Thc thi lut TGG bng OCL: (1) bng cỏch khai bỏo rng buc OCL pre- v postconditions, (2) bng chui cỏc lnh USE 19 3.1.2 Thc thi chuyn vi RTL Khi thc thi chuyn RTL, mi ng cnh chuyn i c xem nh mt loi c bit ca mụ hỡnh hnh vi (model behavior) RTL c thc thi theo hai gúc nhỡn: Khai bỏo cỏc rng buc OCL pre- v postcondition... 3.1: Cỳ phỏp ngụn ng RTL Ngụn ng RTL cho phộp c t thnh phn th hin s liờn kt gia cỏc thnh phn mụ hỡnh ngun v mụ hỡnh ớch trong checkCorr Thnh phn liờn kt ny c c t nh sau: [object_ s , objectT) as {role_S, role_T) in object_C : Class_C Trong ú, s, c, T tng ng vi ngun, kt ni v ớch Thụng qua c t ny, chỳng ta s t c metamodel ca thnh phn kt ni 17 Hỡnh 3.2: Lut chuyn ClassToTable c t s dng RTL Hỡnh 3.2 ch ra... [18] so sỏnh ba cụng c ny da trờn mt s tiờu chớ cho chuyn mụ hỡnh v ch ra u, nhc im ca tng cụng c eMoflon thớch hp ngi dựng tng tỏc vi chuyn, MoTE/eMoflon cú th s dng cho cỏc mụ hỡnh ln v nhng trng hp ũi hi tớnh hiu qu MoTE/TGG Interpreter l la chn tt cho vic cp nht tng dn; TGG Interpreter v eMoflon h tr mt s tớnh nng nõng cao ca TGG cho cỏc trng hp yờu cu tớnh biu din cao Ngụn ng RTL c nh ngha da... CSP S ỏnh x gia cỏc thnh phn ca hai loi mụ hỡnh v lut chuyn c c t bi ngụn ng RTL Rng buc tin iu kin v hu iu kin c sinh t ng da trờn c t lut chuyn trờn Cựng vi s h tr ca cụng c USE [5], lun vn a ra mt s gii phỏp nhm nõng cao cht lng chuyn mụ hỡnh Thụng qua vớ d ny, chỳng tụi tp trung tho lun v lm rừ mt s u v nhc im ca ngụn ng RTL v khớa cnh thc hin chuyn v m bo cht lng chuyn mụ hỡnh 4.1 Case study Trong... ngụn ng RTL Gii phỏp da trờn phng phỏp chuyn th TGGs kt hp vi rng buc OCL S kt hp ny giỳp cỏc lut chuyn c biu din tt hn Rng buc invariants cho lut TGGs cựng vi cp rng buc tin iu kin, hu iu kin ti mi bc chuyn c sinh ra t c t lut chuyn Cựng vi s h tr t cụng c USE, kh nng chuyn i v tớnh ỳng n ca chuyn ó c ci thin 4.2 c t lut chuyn Trong phn ny, chỳng tụi gii quyt bi toỏn chuyn UML2CSP s dng ngụn ng RTL Da... quan, s khỏc nhau gia kt qu thu c vi kt qu mong i cú th c ỏnh du Bi toỏn chuyn mụ hỡnh c nghiờn cu v gii quyt theo hai hng chớnh: QVT v chuyn th Theo hng tip cn QVT, nhiu cụng c ó c xõy dng v ng dng rng rói trong cụng nghip ATL l mt cụng c in hỡnh cho hng tip cn ny [12] ể hng tip cn ny, cỏc lut chuyn c xõy dng da trờn metamodel kt hp vi cỏc rng buc OCL Do ú, cỏc lut chuyn c biu din mt cỏch rừ rng, h... thỏi (1),(2),(3) c coi nh hỡnh nh ti mt thi im ca h thng Kt qu cui cựng bao gm mụ hỡnh ngun, mụ hỡnh ớch cựng vi thnh phn trung gian nh ngha s tng ng gia hai mụ hỡnh 3.2 m bo cht lng chuyn mụ hỡnh RTL Ngụn ng RTL h tr mt s gii phỏp nhm m bo cht lng chuyn mụ hỡnh thụng qua kt hp cỏc lut triple rule v ngụn ng rng buc OCL 3.2.1 Kim chng chuyn phn ny, chỳng tụi ch tp trung kim chng ng cnh chuyn tin Cỏc ng . Thực thi luật TGG bằng OCL: (1) bằng cách khai báo ràng buộc OCL pre- và postconditions, (2) bằng chuỗi các lệnh U SE 18 3.5 Thực thi luật chuyển ClassToTable 19 4.1 (1) Metamodel của biểu đồ. chuyển ClassToTable 19 4.1 (1) Metamodel của biểu đồ hoạt động; (2) Ví dụ biểu đồ hoạt động 23 4.2 (1) Metamodel của đặc tả CSP; (2) Ví dụ đặc tả C S P 23 4.3 Ví dụ hệ thống cứu hộ giao thông . tim của toàn bộ phương pháp. Chuyển mô hình có thể được áp dụng trong các ngữ cảnh khác nhau: (1) biểu diễn mối quan hệ giữa các góc nhìn khác nhau của một hệ thống, (2) phản ánh một mô hình