Đặt vấn đề và nêu ra định hƣớng nghiên cứu. Chƣơng 2: Tổng quan phát triển hƣớng mô hình (MDD) – Trình bày những kiến thức cơ bản về kiến trúc hƣớng mô hình (MDA) và một số chuẩn liên quan MDD. Chƣơng 3: Chuyển đổi mô hình trong phát triển hƣớng mô hình MDD- Trình bày phƣơng pháp luận về chuyển đổi mô hình, các hƣớng tiếp cận trong chuyển đổi mô hình, một số công cụ chuyển đổi mô hình đang đƣợc áp dụng. Nghiên cứu phƣơng pháp chuyển đổi mô hình sang văn bản, chƣơng này trình bày một số phƣơng pháp (pattern) sinh mã và ngôn ngữ xây dựng các khuôn mẫu (template) trong bộ sinh mã.
Chƣơng 4: Công cụ chuyển đổi mô hình sang văn bản Acceleo– Chƣơng này trình bày cơ sở lý thuyết của công cụ chuyển đổi mô hình sang văn bản Acceleo. Nghiên cứu mã nguồn mở chuyển đổi mô hình sang mã nguồn Acceleo JavaEE Generator (Struts Framework, Hibernate Framework, Spring Framework). Chƣơng 5: Cài đặt và thực nghiệm với Acceleo M2T – Hiệu chỉnh công cụ chuyển đổi Acceleo JavaEE Generator nhằm đảm bảo việc chuyển đổi mô hình sang mã nguồn Struts, Hibernate hoạt động trên nền tảng Web theo kiến trúc MVC với cơ sở dữ liệu Microsoft SQL Server và đƣa ra đánh giá khả năng sinh mã của bộ công cụ. 2 TIEU LUAN MOI download : skknchat@gmail.com CHƢƠNG 2 TỔNG QUAN PHÁT TRIỂN HƢỚNG MÔ HÌNH Chƣơng này của luận văn trình bày khái quát Phát triển phần mềm hƣớng mô hình (Model Driven Software Development – MDSD).
Để hiểu rõ hơn về phát triển hƣớng mô hình, Luận văn đƣa ra các khái niệm, cơ sở lý thuyết về kiến trúc hƣớng mô hình, các chuẩn liên quan đến phát triển hƣớng mô hình và sự so sánh với phƣơng pháp phát triển phần mềm truyền thống.1 Phương pháp phát triển phần mềm truyền thống Ngày nay, việc phát triển phần mềm theo phƣơng pháp truyền thống vẫn đang đƣợc áp dụng phổ biến. Với các hệ thống phần mềm ở quy mô nhỏ thì phƣơng pháp này vẫn đáp ứng và khả dụng. Tuy nhiên khi nhu cầu tin học hoá hầu hết các nghiệp vụ trong mọi lĩnh vực của một tổ chức thì quy mô của một hệ thống phần mềm là lớn và lúc đó việc sử dụng phƣơng pháp truyền thông sẽ gặp phải các khó khăn. Một ví dụ minh hoạ các pha phát triển phần mềm trên mô hình thác nƣớc nhƣ Hình 2.
Thu thập yêu cầu Dạng tài liệu đặc tả: Văn bản Phân tích yêu cầu Dạng tài liệu: Văn bản, biểu đồ Thiết kế Dạng tài liệu: Văn bản, biểu đồ Cài đặt mã nguồn Mã chương trình Kiểm thử Tài liệu: Mã chương trình, văn bản Triển khai sử dụng Hình 2.1 Mình hoạ phƣơng pháp phát triển phần mềm truyền thống Trong phƣơng pháp phát triển phần mềm truyền thống, giả sử những ngƣời phát triển phần mềm đã tuân thủ rất chặt chẽ quy trình phát triển, các tài liệu ở các pha Thu thập yêu cầu, phân tích yêu cầu, thiết kế hệ thống, cài đặt mã nguồn… đã thể hiện các ràng buộc và sự liên quan cần có. Điều đó vẫn không tránh khỏi các vấn đề: 3 TIEU LUAN MOI download : skknchat@gmail.com Khi có sự thay đổi về yêu cầu của ngƣời dùng, các pha sẽ đều phải thực hiện lại từ đầu. Điều này dẫn đến mất nhiều thời gian và gây khó khăn cho ngƣời phát triển trong việc quản lý. Sản phẩm cuối cùng sẽ phụ thuộc vào một nền tảng công nghệ cụ thể, khi nhu cầu công nghệ thay đổi sẽ dẫn đến phải xây dựng hệ thống lại từ đầu.
Trên đây là một số vấn đề mà phƣơng pháp phát triển phần mềm truyền thống đã và đang gặp các thách thức.2 Giới thiệu phát triển hướng mô hình - MDD “Kỹ nghệ hƣớng mô hình (MDE) là phƣơng pháp xem xét ở mức đại điện thống nhất, tất cả mọi thành phần đƣợc quy về mô hình”[10]. Trong lĩnh vực phát triển phần mềm thì MDE đƣợc hiểu nhƣ phát triển hƣớng mô hình (MDD) hƣớng tới việc sử dụng các mô hình nhƣ là tác nhân chính trong toàn bộ vòng đời phát triển của ứng dụng, các ứng dụng đƣợc sinh mã từ các mô hình trừu tƣợng. Cũng theo Jean Bezivin [10] trong lĩnh vực phát triển phần mềm thì MDE hay MDD có ba hƣớng tiếp cận: Phát triển phần mềm hƣớng mô hình – MDSD (Model Driven Software Development) phục vụ cho việc sinh mã từ mô hình. Việc chuyển đổi mô hình đƣợc thực hiện trong thời gian phát triển.
Tái kỹ nghệ hƣớng mô hình - MDRE (Model Driven Reverse Engineering) áp dụng cho việc sinh các mô hình từ mã. Việc chuyển đổi thƣờng đƣợc thực hiện trong lúc bảo trì. Mô hình thời gian thực thi - RTM (Run Time Modeling) thực hiện việc chuyển đổi mô hình trong khi thực thi ứng dụng, không phải là trong lúc phát triển hay khi bảo trì. Các ứng dụng phổ biến ở đây nhằm đạt đƣợc khả năng tƣơng tác giữa các hệ thống không đồng nhất.
MDD ra đời với các mục tiêu giải quyết một số vấn đề: Mã nguồn đƣợc tự động sinh ra từ việc chuyển đổi mô hình, tính tự động hoá càng cao đồng nghĩa với việc thời gian và hiệu suất đƣợc cải tiến. Chất lƣợng phần mềm đƣợc nâng cao khi các luật chuyển đổi đƣợc định nghĩa và thẩm định rõ ràng. Không bị phụ thuộc vào việc thay đổi nền tảng (platform), khi cần thay đổi nền mới chỉ phụ thuộc vào việc điều chỉnh các luật chuyển đổi và sự thay đổi sẽ tự động đƣợc áp dụng. Khả năng tái sử dụng cũng đƣợc nâng cao, các mô hình, luật chuyển đổi hoàn toàn có thể sử dụng cho những ứng dụng khác nhau do có sự tách biệt giữa các thành phần liên quan.
4 TIEU LUAN MOI download : skknchat@gmail.com Thu thập yêu cầu Dạng tài liệu đặc tả: Văn bản CIM Phân tích yêu cầu Platform Independent Model PIM Thiết kế Platform Specific Model PSM Cài đặt mã nguồn Mã chương trình Kiểm thử Tài liệu: Mã chương trình, văn bản Triển khai sử dụng Hình 2.2 Áp dụng chuẩn MDA với mô hình thác nƣớc So sánh với phƣơng pháp phát triển phần mềm truyền thống (xem mục 2. Sử dụng phƣơng pháp phát triển hƣớng mô hình, áp dụng chuẩn MDA (xem mục 2.4) vào quy trình phát triển phần mềm theo mô hình thác nƣớc (xem Hình 2. Tại mỗi pha phát triển, các tài liệu đƣợc đặc tả bởi các mô hình hình thức do vậy việc chuyển đổi tự động giữa các mô hình là khả dụng. Thông qua các công cụ chuyển đổi mô hình, từ mô hình độc lập nền - PSM có thể chuyển đổi sang các mô hình phụ thuộc nền- PSM; từ mô hình phụ thuộc nền – PSM có thể đƣợc chuyển đổi sang dạng mã nguồn, tài liệu… Vì vậy các vấn đề gặp khó khăn với phƣơng pháp truyền thống đã có thể đƣợc tháo gỡ.3 Các khái niệm trong phát triển hướng mô hình.1 Model Mô hình là một phƣơng pháp biểu diễn hệ thống một cách đơn giản nhằm giúp hiểu hơn về hệ thống.
Mô hình đƣợc biểu diễn bằng các ký hiệu đồ hoạ và thƣờng đƣợc diễn đạt bởi ngôn ngữ đặc tả miền cụ thể hoặc dƣới dạng ngôn ngữ hình thức. Chúng ta có thể định nghĩa mô hình nhƣ sau: “Mô hình là một mô tả một phần của hệ thống hoặc toàn bộ hệ thống được viết bởi ngôn ngữ hình thức” [3]. “Ngôn ngữ hình thức là ngôn ngữ với mẫu được xác định rõ ràng và ngữ nghĩa phù hợp với việc biên dịch tự động bởi máy tính”[3]. 5 TIEU LUAN MOI download : skknchat@gmail.3 Mô hình đƣợc viết bởi một ngôn ngữ và mô tả hệ thống [3] 2.
Ngôn ngữ để biểu diễn metamodel đƣợc gọi là meta- language.4 Biểu diễn khái niệm metamodel [3] Nói cách khác, metamodel của mô hình A mô tả cấu trúc hợp lệ của mô hình A. Trong chuyển đổi mô hình thì metamodel là điều kiện tiên quyết.3 Metametamodel Một Metametamodel của mô hình A là metamodel đƣợc sử dụng để mô tả metamodel của model A. Nó có thể đƣợc hiểu nhƣ ngữ pháp của một ngôn ngữ đƣợc sử dụng để mô tả ngữ pháp của ngôn ngữ A. 6 TIEU LUAN MOI download : skknchat@gmail.4 Chuyển đổi mô hình.
Trong lĩnh vực phát triển hƣớng mô hình thì chuyển đổi mô hình là trọng tâm, nó đƣợc xem nhƣ một hộp đen cung cấp các cơ chế đƣợc thiết lập nhằm cho việc tự động tạo ra và cập nhật các mô hình đích dựa trên thông tin đầu vào đƣợc biểu diễn bởi mô hình nguồn. [3] Định nghĩa về chuyển đổi mô hình: “Chuyển đổi mô hình là tập hợp các luật chuyển đổi cùng mô tả cách một mô hình tại ngôn ngữ nguồn có thể được chuyển đổi thành một mô hình ở ngôn ngữ đích” Hình 2.5 Mô tả chuyển đổi mô hình [3] 2.5 Mô hình nguồn Trong ngữ cảnh của chuyển đổi mô hình, nếu một mô hình đóng vai trò là đầu vào của bƣớc chuyển đƣợc gọi là mô hình nguồn. Mô hình nguồn phải tuân thủ metamodel nguồn. Có thể có một hoặc nhiều mô hình nguồn là đầu vào của bƣớc chuyển.6 Mô hình đích Trong ngữ cảnh của chuyển đổi mô hình, nếu một mô hình đóng vai trò là đầu ra của bƣớc chuyển đƣợc gọi là mô hình đích.
Mô hình đích phải tuân thủ metamodel đích. Có thể có một hoặc nhiều mô hình đích đƣợc sinh ra sau một bƣớc chuyển. Thuật ngữ mô hình đích thƣờng đƣợc sử dụng trong chuyển đổi mô hình sang mô hình (M2M – Model To Model).7 Ngôn ngữ chuyển mô hình Một ngôn ngữ chuyển mô hình là một tập từ vựng và một ngữ pháp đƣợc định nghĩa ngữ nghĩa tốt cho khả năng chuyển mô hình.8 Luật chuyển mô hình Theo [3] định nghĩa “Một luật chuyển đổi mô hình là sự mô tả cách một hoặc nhiều cấu trúc trong ngôn ngữ nguồn có thể được chuyển đổi thành một hoặc nhiều cấu trúc trong ngôn ngữ đích”. Một luật chuyển đổi mô hình là thực thể nhỏ nhất trong chuyển mô hình.
Nó mô tả cách một phần của mô hình nguồn có thể đƣợc chuyển thành một phần của mô hình đích. Một luật chứa một mẫu nguồn và một mẫu đích, đối với một phần xuất hiện của mẫu nguồn trong mô hình nguồn sẽ có ánh xạ tƣơng ứng với một phần của mẫu đích trong mô hình đích. 7 TIEU LUAN MOI download : skknchat@gmail.9 Ánh xạ Ánh xạ là các đặc tả cho một cơ chế chuyển đổi các phần tử của một mô hình đƣợc xây dựng tuân theo một metamodel cụ thể này sang các phần tử của một mô hình đƣợc xây dựng tuân theo một metamodel khác.