Phần Mở Đầu, khi các nhà phát triển đang đối mặt với nhiều vấn đề về sự phát triển nhanh chóng và ngày càng phức tạp của các nền tảng công nghệ mới. Do đó, họ phải dành nhiều công sức và thời gian để tuỳ biến ứng dụng (thường theo cách thủ công là sửa mã nguồn) sao cho có thể hoạt động được trên các nền tảng khác nhau. Công nghệ hướng mô hình (MDE) là phương pháp tiếp cận mới giải quyết được sự phức tạp của các nền tảng khác nhau bằng cách tập trung vào diễn tả khía cạnh miền ứng dụng một cách hiệu quả. MDE hướng tới việc sử dụng các mô hình (models) như là tác nhân chính trong toàn bộ vòng đời phát triển của ứng dụng.
Và do đó, ở khía cạnh này nó cũng đồng nghĩa với thuật ngữ Phát triển hướng mô hình (MDD), và chúng ta có thể ngầm hiểu rằng khi nhắc đến MDE hay MDD là ta đang nói về “Công nghệ phát triển hướng mô hình”. MDD phát triển dựa trên ý tưởng về môi trường quản lý mô hình phần mềm có tính tự động hoá cao. Nghĩa là nó không bị phụ thuộc vào các nền tảng, và khi có nền tảng mới ra đời thì sự tự động hoá đó sẽ phát huy tác dụng, ứng dụng mới sẽ được chuyển đổi tự động từ các mô hình để tương thích với nền tảng mới. Điều đó làm tăng năng suất và thời gian phân phối sản phẩm.
Ngày nay, MDD không chỉ được ứng dụng trong lĩnh vực phần mềm mà còn ở những lĩnh vực khác như phần cứng [6] (mô hình các mạch điện tử để tạo các mạch vật lý ngoài sự can thiệp của con người), các hệ thống nhúng [10]. Phạm vi nghiên cứu được đề cập trong luận văn là lĩnh vực phần mềm, tương ứng với thuật ngữ “Công nghệ phát triển phần mềm hướng mô hình” (MDSE hay MDSD). Tiếp đó, ở Chương 3 luận văn sẽ trình bày phạm vi cụ thể hơn là miền ứng dụng Web (MDWE) với các phương pháp phát triển Web hướng mô hình, mà trọng tâm là phương pháp UWE. 1 TIEU LUAN MOI download : skknchat@gmail.1: Tập hợp miền ứng dụng và phương pháp trong MDD Như đã trình bày, mô hình (model) là điểm mấu chốt mà các phương pháp tiếp cận trong MDD hướng tới.
Trong đó mô hình phần mềm có thể được phân loại thành phi cấu trúc và cấu trúc [6], ví dụ mô hình phi cấu trúc như các mô tả bằng ngôn ngữ tự nhiên, các hình vẽ bằng công cụ đồ hoạ máy tính; mô hình cấu trúc thì có tập hợp các thành phần được định nghĩa trước và các quy tắc mà chúng tuân theo. Các quy tắc này có thể ở dạng phi hình thức (informally) hay dạng hình thức (formally). Các quy tắc được cung cấp dưới dạng hình thức được gọi là meta-model hay domain- specific language (DSL- ngôn ngữ phụ thuộc miền) hay modeling language (ngôn ngữ mô hình hoá), và được sử dụng bởi các phương pháp mô hình hoá khác nhau. Trên thị trường hiện tại có nhiều kiến trúc hướng mô hình (xem Hình 1.1) mà MDD tuân theo như MDA (chuẩn hoá bởi OMG sử dụng MOF), Software Factories 1 (phát triển bởi Microsoft sử dụng DSL), EMF (được tích hợp với Eclipse sử dụng Ecore), DSM (sử dụng DSL, phát triển bởi MetaCase 2 với công cụ MetaEdit+), vân vân.
Tuy nhiên, ở Chương này luận văn chỉ tập trung vào phân tích kiến trúc MDA. Kiến trúc tương tự với MDA, chỉ khác biệt một số điểm là EMF sẽ được đề cập ở Chương 2. Cả hai kiến trúc này đang được áp dụng rộng rãi bởi nhiều tổ chức hiện nay.2 Ứng dụng MDA trong quy trình phát triển phần mềm Mục này sẽ giải thích tại sao MDA có thể khắc phục được những nhược điểm mà các phương pháp truyền thống đang gặp phải. Về mặt bản chất, MDA không phải là quy trình phát triển phần mềm, và tư tưởng của MDA có thể áp dụng cho bất kỳ quy trình nào.
Cụ thể chúng ta sẽ so sánh phương pháp sử dụng MDA với phương pháp phát triển truyền thống trong quy trình phát triển theo mô hình thác nước.html 2 https://metacase.com/ 2 TIEU LUAN MOI download : skknchat@gmail.1 Phát triển phần mềm theo phương pháp truyền thống Đối với việc xây dựng những hệ thống nhỏ, ít tốn kém thì việc áp dụng các phương pháp truyền thống vẫn còn hữu dụng, tuy nhiên đối với việc xây dựng những hệ thống lớn, đòi hỏi phải đáp ứng nhiều tính năng từ phía người dùng, thì việc áp dụng các phương pháp này về lâu về dài sẽ gây nhiều khó khăn cho nhà phát triển. Yêu cầu Tài liệu dạng văn bản Phân tích Tài liệu dạng văn bản, biểu đồ Thiết kế Tài liệu dạng văn bản, biểu đồ Lập trình Mã nguồn Kiểm thử Mã nguồn Triển khai Hình 1.2: Phương pháp phát triển phần mềm truyền thống Hình trên minh họa các pha phát triển của mô hình thác nước, các pha phân tích, thiết kế mô tả các vấn đề hầu như dưới dạng văn bản, và hình ảnh minh họa là một số biểu đồ (UML) như biểu đồ ca sử dụng, biểu đồ lớp, biểu đồ hoạt động, vân vân. Đến pha lập trình thì một số vấn đề sẽ nảy sinh như nếu có những yêu cầu mới từ phía người dùng, thì thông thường nhà phát triển sẽ chú trọng nhiều hơn vào pha lập trình để đáp ứng nhanh nhu cầu của người dùng, thời gian hạn hẹp sẽ khiến nhà phát triển sao nhãng phần thiết kế, do đó khoảng cách giữa pha thiết kế và pha lập trình ngày càng lớn, tầm quan trọng của pha thiết kế sẽ giảm dần theo thời gian. Tuy việc cập nhật tài liệu sau khi lập trình có thể được giải quyết bằng các công cụ tạo tài liệu từ mã nguồn, tuy nhiên nó cũng chỉ giải quyết được việc thiết kế ở mức thấp, còn ở mức trừu tượng cao hơn như biểu diễn bằng các biểu đồ, ý nghĩa của nó thì các công cụ này không giải quyết được.
Điều này sẽ gây nhiều khó khăn cho việc kiểm thử, vận hành, bảo trì hệ thống sau này khi tài liệu thiết kế không được cập nhật đầy đủ. Ngoài vấn đề về thiết kế trên thì mô hình truyền thống này còn phải đối mặt với vấn đề khả năng tương thích ngược. Vì các công nghệ mới được phát minh theo 3 TIEU LUAN MOI download : skknchat@gmail.com thời gian một cách nhanh chóng nhằm đáp ứng các yêu cầu ngày một đa dạng của người dùng, để giải quyết những vấn đề tồn đọng trước đó, buộc các nhà phát triển phần mềm cũng phải chạy đua theo để không bị lạc hậu. Như vậy những phiên bản phần mềm mới có thể không tương thích với các công nghệ cũ, nền tảng cũ đã được dùng bởi mô hình truyền thống.2 Phát triển phần mềm theo phương pháp hướng mô hình (MDD) Phương pháp phát triển phần mềm hướng mô hình (MDSD) ít nhiều giải quyết được những vấn đề nêu trên.
Khi ứng dụng MDA vào quy trình phát triển theo mô hình thác nước, bản chất ở mỗi pha của quy trình là tài liệu được thể hiện ở dạng mô hình, và vì các mô hình này là mô hình hình thức (formal model) nên chúng có thể được hiểu bởi máy tính và được xử lý tự động. Yêu cầu Tài liệu dạng văn bản Phân tích PIM Thiết kế PSM Lập trình Mã nguồn Kiểm thử Mã nguồn Triển khai Hình 1.3: Ứng dụng MDA vào quy trình phát triển phần mềm Các mô hình được sử dụng bởi các công cụ chuyển đổi tự động từ nhiều nhà phát triển khác nhau để tạo ra các lược đồ (schemas), khung mã nguồn (code skeletons), mã tích hợp (integration code), và kịch bản triển khai (deployment scripts) cho nhiều nền tảng khác nhau được sử dụng trong một dự án. MDA định nghĩa mô hình độc lập nền (PIM), mô hình phụ thuộc nền (PSM), mô hình văn bản (Text), và cũng định nghĩa cách chúng liên kết với nhau. Một PIM được tạo ra, sau đó được chuyển đổi sang một hoặc nhiều PSM, để rồi được chuyển sang Text.
4 TIEU LUAN MOI download : skknchat@gmail.3 Những thuận lợi của kiến trúc hướng mô hình (MDA) 1.1 Chất lượng sản phẩm Điểm mấu chốt là người phát triển chú trọng vào việc phát triển PIM, vì vậy mà họ có thể làm việc một cách độc lập mà không phụ thuộc vào nền tảng đích, và có nhiều vấn đề kỹ thuật mà họ không cần quan tâm tới. Những vấn đề này sẽ tự động thêm vào bởi việc chuyển đổi từ PIM sang PSM, do đó nó sẽ cải thiện năng suất theo hai cách: Người phát triển PIM sẽ làm ít việc hơn vì những chi tiết về nền tảng đích không cần được thiết kế. Tại mức mô hình PSM và Text (mã nguồn) sẽ được viết ít hơn vì lượng lớn mã nguồn được sinh tự động từ PIM, PSM. Người phát triển có thể chuyển từ việc chú trọng vào viết mã nguồn sang việc thiết kế PIM, do đó họ sẽ để ý nhiều hơn việc giải quyết các vấn đề nghiệp vụ tại thời điểm đầu thiết kế, hay bảo trì nâng cấp phần mềm sau này, dẫn đến hệ thống sẽ phù hợp nhiều hơn với nhu cầu của người dùng, và người dùng cũng sẽ có được những tính năng tốt hơn trong khoảng thời gian ngắn hơn.2 Khả năng tương thích Ngoài ra xét đến khía cạnh tương thích ngược, thì từ một PIM có thể chuyển đổi sang nhiều PSM cho nhiều nền tảng khác nhau, do đó việc thiết kế PIM sẽ hoàn toàn tương thích với nền tảng mới sử công nghệ mới.
Mặt khác khi những công nghệ mới được phát minh trong tương lai, thì các tổ chức/công ty phần mềm cần cung cấp những công cụ chuyển đổi phù hợp, điều này cho phép chúng ta nhanh chóng triển khai hệ thống mới dựa trên nền tảng cũ (PIM).3 Khả năng tương tác PIM First First transformation transformation PSM Bridge PSM PSM Second Second transformation transformation Code Bridge Code Code Hình 1.4: Khả năng tương tác sử dụng các cầu nối trong MDA.3] 5 TIEU LUAN MOI download : skknchat@gmail.com Khi PSM được nhắm vào các nền tảng khác nhau, chúng không thể nói chuyện trực tiếp với nhau. Bằng cách nào đó chúng ta cần chuyển đổi các khái niệm từ một nền tảng thành các khái niệm được sử dụng ở nền tảng khác. Đây là những gì mà khả năng tương tác đề cập tới. MDA giải quyết vấn đề này bằng cách tạo ra các cầu nối (bridge) cần thiết giữa chúng.
Nếu chúng ta có thể chuyển đổi một PIM thành hai PSM được nhắm tới hai nền tảng, tất cả thông tin chúng ta cần để thu hẹp khoảng cách giữa hai PSM là đã có sẵn. Cụ thể, với mỗi thành phần trong PSM thứ nhất ta biết từ thành phần nào trong PIM mà nó đã được chuyển đổi.