Chương I Cơ sở lý thuyết cho chuyển mô hình Chương này giới thiệu về mô hình, ưu điểm của việc phát triển hướng mô hình và lý thuyết cho chuyển mô hình. Giới thiệu một số ngôn ngữ chuyển mô hình phần mềm .1 Phát triển hướng mô hình Phát triển hướng mô hình (MDD) là hướng tiếp cận xem xét việc xây dựng chương trình là hoạt động chuyển đổi từ mô hình này sang mô hình khác. Ở hướng tiếp cận đối tượng, tất cả đều quy về đối tượng. Còn ở hướng tiếp cận MDD thì tất cả đều quy về mô hình.
Một số ưu điểm trong phát triển hướng mô hình [10]: - Phát triển phần mềm nhanh hơn: Trong MDD các mô hình của một ứng dụng phần mềm được xác định trên một mức độ trừu tượng cao hơn so với các ngôn ngữ lập trình truyền thống. Mô hình này tự động chuyển đổi thành một ứng dụng phần mềm làm việc bằng cách tạo ra mã hoặc biên dịch /thực thi mô hình. Khi mô hình được sử dụng trên một mức độ trừu tượng cao sẽ nhanh hơn nhiều so với cùng một mô hình thể hiện trong mã. Nói cách khác: mỗi phần tử trong mô hình đại diện cho nhiều dòng mã.
Do đó, có thể xây dựng nhiều chức năng hơn trong cùng một thời gian. - Chi phí-hiệu quả hơn: MDD có chi phí và hiệu quả hơn. Lý do đầu tiên đó là MDD thực hiện nhanh hơn do đó sẽ đưa ra thị trường nhanh hơn. Lý do thứ hai là có thể làm với chi phí thấp hơn.
Điều này tất nhiên phụ thuộc vào chi phí học các phương pháp tiếp cận MDD và các chi phí để phát triển hoặc mua các công cụ. Nó cũng phụ thuộc vào mô hình kinh doanh. Thay đổi và duy trì các ứng dụng xây dựng bằng cách sử dụng một cách tiếp cận MDD cũng là hiệu quả chi phí. Nó là dễ dàng hơn để hiểu được hành vi của một ứng dụng bằng cách đọc các mô hình cao cấp.
Ngoài ra nó là nhanh hơn để thêm chức năng hoặc thay đổi chức năng hiện có bằng cách sử dụng một ngôn ngữ cấp cao. - Tăng chất lượng phần mềm: Một phần mềm ứng dụng được quy định cụ thể trong một mô hình cấp cao được thực hiện bởi một cơ cấu hoặc chuyển đổi thành mã, chất lượng (kỹ thuật) của ứng dụng phụ thuộc vào cấu trúc sinh ra. Do đó, chất lượng có thể tăng lên rất nhiều bởi vì chúng ta có thể phát triển bởi những người tốt nhất. Hơn nữa, tất cả các thực hành tốt nhất tìm hiểu sẽ được 2 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com áp dụng cho các dự án xây dựng bằng cách sử dụng công cụ MDD.
Trong trường hợp mua một công cụ MDD, nó có thể chứa các thực thi tốt nhất bởi vì nó được xây dựng dựa trên kiến thức của tất cả các dự án xây dựng bởi công cụ MDD trong quá khứ. - Ít bị lỗi hơn: Việc kiểm thử phần mềm sẽ tốn rất nhiều thời gian và chuyên môn. MDD đảm bảo rằng bạn có thể tập trung vào kiểm tra các chức năng của ứng dụng, tức là chấp nhận thử nghiệm. Vấn đề kỹ thuật đã được đảm bảo bằng cách thử nghiệm các công cụ MDD, ví dụ về các vấn đề cơ sở hạ tầng có liên quan hoặc các lỗ hổng bảo mật trong công nghệ.
- Kiểm chứng có ý nghĩa: Ngay cả các chức năng chính nó là ít bị lỗi khi sử dụng một cách tiếp cận MDD, bởi vì kiểm chứng thực có ý nghĩa có thể được thực hiện trên các mô hình cao cấp. Khi sử dụng các ngôn ngữ lập trình truyền thống, bạn sẽ có một số cú pháp kiểm tra trong IDE của bạn và thậm chí có thể phân tích một số mã tĩnh. Tuy nhiên, do tính phổ quát của các ngôn ngữ lập trình này không thực sự giúp bạn tránh các lỗi chức năng. Khi sử dụng một cách tiếp cận MDD xác nhận tên miền cụ thể có thể được thực hiện tại thời điểm thiết kế.
- Biểu diễn hệ thống bằng tri thức miền : MDD thi hành một sự tách biệt các mối quan tâm và kỹ năng. Chuyên gia miền có thể tập trung vào việc mô hình hóa các miền, trong khi chuyên viên kỹ thuật tập trung vào xây dựng các công cụ cần thiết cho MDD. Xây dựng các ứng dụng phức tạp không chỉ cho lập trình tốt nữa. MDD có thể giới thiệu các ký hiệu thích hợp (ví dụ như văn bản, đồ họa, bảng) để trao quyền cho các chuyên gia tên miền.
- Lập trình tiên tiến cho phép tập trung trên các công cụ cứng: với MDD, các nhà phát triển tiên tiến làm công việc ít lặp đi lặp lại. Họ có thể tập trung vào các khía cạnh sáng tạo của công việc của họ. Ví dụ, họ có thể tập trung vào việc xây dựng các công cụ MDD. Họ cũng có thể cố vấn các nhà phát triển cơ sở hoặc chuyên gia tên miền, hoặc họ có thể chọn các phần cứng xây dựng ứng dụng.
- Cầu nối khoảng cách giữa công nghệ và công nghệ thông tin(CNTT): Liên kết kinh doanh-IT là một vấn đề khi nói về xây dựng phần mềm. MDD có thể mang lại cho kinh doanh và CNTT gần nhau hơn trong các cách sau: thứ nhất, chuyên gia miền (hoặc các nhà phân tích kinh doanh) trực tiếp tham gia trong quá trình phát triển. Thứ hai, CNTT (một ứng dụng phần mềm) được xác định trên một mức độ cao hơn nhiều. Các mô hình này càng nhiều càng có thể khai báo và định nghĩa trong các khái niệm miền.
Thứ ba, MDD phát triển 3 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com nhanh hơn phần mềm có thể được xây dựng trong các lần lặp lại ngắn hơn và do đó có phù hợp hơn cho mục đích (do thông tin phản hồi nhanh chóng của các doanh nghiệp, người dùng cuối cùng). Thứ tư, việc xác định các biến đổi rõ ràng giữa một mô hình của một tổ chức và một mô hình của một hệ thống CNTT. - Dễ thích ứng với những thay đổi trong các yêu cầu nghiệp vụ. Một trong những vấn đề của phát triển phần mềm là yêu cầu kinh doanh thường xuyên thay đổi nhanh hơn so với các hệ thống phần mềm hỗ trợ.
Tuy nhiên, MDD có thể cung cấp một giải pháp bởi vì nó làm cho phát triển phần mềm nhanh hơn , nó cũng dẫn đến dễ dàng hơn để thay đổi các ứng dụng. - Dễ thích ứng với những thay đổi trong công nghệ. Thay đổi công nghệ theo nhau nhanh hơn và nhanh hơn. Hãy suy nghĩ về những điều như Java EE, SOA / soba, webservices, REST, SCA, OSGi, và gần đây hạn chế trong công nghệ khi ứng dụng điện toán đám mây (ví dụ như cấu trúc cơ sở dữ liệu ).
MDD đảm bảo bạn không phải thay đổi mô hình ứng dụng của bạn khi bạn muốn di chuyển ứng dụng của bạn với các công nghệ khác. Điều duy nhất mà cần phải thay đổi là bộ tạo (hoặc bộ thông dịch). Sau khi thay đổi các mã bộ tạo (hoặc thêm các tùy chọn mã bổ sung ) tất cả các mô hình ứng dụng trực tiếp có thể được chuyển đổi thành mã cho công nghệ mới. - Thực sự thực thi kiến trúc: Các công ty thường xác định các nguyên tắc kiến trúc.
Ứng dụng phần mềm phải tuân thủ những nguyên tắc này, nhưng làm thế nào để kiểm tra hoặc thi hành tuân thủ khi tất cả các mã được tạo ra bằng tay? Khi sử dụng MDD ứng dụng phần mềm được đảm bảo thực hiện đúng với kiến trúc được lựa chọn. Bạn thực sự có thể chuẩn hóa IT của bạn bởi vì nguyên tắc kiến trúc được thực thi trong các công cụ MDD 1.1 Khái niệm về mô hình Để hiểu rõ hơn về MDD, sau đây sẽ đưa ra một số khái niệm trong MDD như [3], [10]: - Model: mô hình là cách biểu diễn hệ thống được đơn giản giúp hiểu hơn về hệ thống. Mô hình thường được diễn đạt trong một ngôn ngữ đặc tả miền cụ thể hay ngôn ngữ mô hình hóa chung UML. Mô hình được biểu diễn bằng ký hiệu đồ họa.
- Metamodel: Một metamodel của một mô hình X miêu tả cấu trúc của mô hình X theo kiểu hợp lệ. Một metamodel có thể được so sánh với cú pháp trong thiết kế ngôn ngữ. Metamodel được đinh nghĩa chính xác như là điều kiện tiên quyết cho chuyển mô hình. 4 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.1: Ví dụ về hệ thống phân cấp metamodel bốn lớp của UML[3] - Metametamodel: một metametamodel của mô hình X là metamodel được sử dụng để miêu tả metamodel của model X.
Nó có thể được so sánh với ngữ pháp của một ngôn ngữ, cái mà được sử dụng để miêu tả ngữ pháp của ngôn ngữ X. Nền tảng được thiết lập tốt và tiêu chuẩn cho việc metametamodel tồn tại như MOF hay Ecore. MOF là một chuẩn của OMG cho việc định nghĩa metamodel. MOF có hai phiên bản: Complete MOF(CMOF) và Essential MOF (EMOF).
Một cài đặt của EMOF được sử dụng phổ biến là Ecore, định nghĩa bởi Eclipse Modeling Framework (EMF) Ví dụ trong hình 1.1 chúng ta có các cấp độ của model. Mức M0 là cấp độ dữ liệu người dung, M1 là mô hình dữ liệu ở cấp độ M0. Cấp M2 là mô hình cấp trên của M1, do đó thường được gọi là một metamodel. Cấp M3 được tổ chức một mô hình thông tin của M2 và thường được gọi là metametamodel.2 Các chuẩn hướng tiếp cận MDD Hướng tiếp cận MDD vẫn đang được phát triển và được sử dụng rộng rãi trong ngành công nghiệp phần mềm.
Hiện nay có nhiều tổ chức tham gia nghiên cứu để thành lập một chuẩn riêng như: MDA (Model Driven Architecture) của tổ chức OMG, MIC (Model Intergrated Computing) của nhóm ISIS đại học Vanderbilt, SF (Software Factories) của công ty Microsoft, và một số chuẩn 5 LUAN VAN CHAT LUONG download : add luanvanchat@agmail. Trong các chuẩn đó, MDA của OMG được công bố rộng rãi, phát triển rất mạnh trong giới nghiên cứu. Hơn nữa còn được ứng dụng để tạo ra rất nhiều công cụ hỗ trợ trong quá trình xây dựng phần mềm, các công cụ này được phát triển rất nhanh trên môi trường Eclipse [10].3 Kiến trúc MDA MDA do tổ chức OMG đề xuất năm 2000. MDA là một hướng tiếp cận xem việc xây dựng phần mềm là việc chuyển đổi từ mô hình này sang mô hình khác.
MDA được đề xuất bắt nguồn từ nhu cầu tồn tại rất lâu là: làm rõ và đặc tả các tác vụ hệ thống, cái nào phụ thuộc vào nền tảng, cái nào không phụ thuộc nền tảng, đồng thời chia ra các mức độ phụ thuộc vào nền tảng.