DSL - Các công cụ phát triển Giảng viên : Trần Hạnh Nhi Sinh viên : Vũ Thị Mỹ Hằng Nguyễn Thành Thoại Anh Quelles stratégies de modélisation : d’UML aux Domain-Specific Languages (DSL) ? Visual Studio 2005 apporte de nouveaux designers permettant de générer et manipuler du code, à partir de vues conceptuelles de plus haut niveau : les modèles. Grâce à un outillage sous forme de SDK, Microsoft offre la possibilité d’étendre ceux existants. Ce SDK sera complété par un produit permettant de créer soi-même, relativement simplement, ses propres modèles, designers graphiques, validateurs, et générateur de code : les DSL Tools. Cette session, illustrée par un exemple de mise en œuvre des DSL Tools, fera le point sur cette technologie : • Qu’est ce que les DSL ? • Est-ce la fin d’UML ? • Qu’est ce que les DSL Tools ? • Qu’en attendre techniquement et économiquement ? • Qu’elles en sont les limites techniques actuelles ? • Dans quelles conditions et comment les intégrer à une chaine de développement ? TechEd 2002
Các công cụ hỗ trợ phát triển Giới thiệu DSL Định nghĩa Ví dụ Ưu điểm và hạn chế DSL khi so sánh với GPL Các bước xây dựng một DSL Các công cụ hỗ trợ phát triển Tổng quan về các công cụ Microsoft DSL Tool Eclipse MetaEdit+ So sánh các công cụ Quelles stratégies de modélisation : d’UML aux Domain-Specific Languages (DSL) ? Visual Studio 2005 apporte de nouveaux designers permettant de générer et manipuler du code, à partir de vues conceptuelles de plus haut niveau : les modèles. Grâce à un outillage sous forme de SDK, Microsoft offre la possibilité d’étendre ceux existants. Ce SDK sera complété par un produit permettant de créer soi-même, relativement simplement, ses propres modèles, designers graphiques, validateurs, et générateur de code : les DSL Tools. Cette session, illustrée par un exemple de mise en œuvre des DSL Tools, fera le point sur cette technologie : • Qu’est ce que les DSL ? • Est-ce la fin d’UML ? • Qu’est ce que les DSL Tools ? • Qu’en attendre techniquement et économiquement ? • Qu’elles en sont les limites techniques actuelles ? • Dans quelles conditions et comment les intégrer à une chaine de développement ? Jeudis de l'objet - 30 mars 2006 TechEd 2002
Định nghĩa – Ví dụ Domain Specific Language (DSL) là một ngôn ngữ lập trình hoặc đặc tả được thiết kế cho việc giải quyết các vấn đề thuộc một lĩnh vực chuyên biệt nào đó nhưng không thể xử lý các vấn đề nằm ngoài ngữ cảnh của nó. Một số ví dụ YACC GraphViz SQL XSLT Quelles stratégies de modélisation : d’UML aux Domain-Specific Languages (DSL) ? Visual Studio 2005 apporte de nouveaux designers permettant de générer et manipuler du code, à partir de vues conceptuelles de plus haut niveau : les modèles. Grâce à un outillage sous forme de SDK, Microsoft offre la possibilité d’étendre ceux existants. Ce SDK sera complété par un produit permettant de créer soi-même, relativement simplement, ses propres modèles, designers graphiques, validateurs, et générateur de code : les DSL Tools. Cette session, illustrée par un exemple de mise en œuvre des DSL Tools, fera le point sur cette technologie : • Qu’est ce que les DSL ? • Est-ce la fin d’UML ? • Qu’est ce que les DSL Tools ? • Qu’en attendre techniquement et économiquement ? • Qu’elles en sont les limites techniques actuelles ? • Dans quelles conditions et comment les intégrer à une chaine de développement ? Jeudis de l'objet - 30 mars 2006 TechEd 2002
Jeudis de l'objet - 30 mars 2006
Ưu điểm và hạn chế DSL vs.GPL Thể hiện cái nhìn cụ thể, rõ ràng về vấn đề trong lĩnh vực tiếp cận. Mức độ trừu tượng hóa cao. Dễ dàng trong việc xây dựng code. Gia tăng chất lượng, độ tin cậy, tính linh động và khả năng bảo trì. Hạn chế Chi phí xây dựng một DSL. Chi phí huấn luyện user sử dụng DSL. Chỉ giới hạn trong lĩnh vực nhất định. Không hiệu quả khi cần tiếp cận tổng quát hóa. Jeudis de l'objet - 30 mars 2006
Các bước xây dựng DSL Thu thập kiến thức nghiệp vụ và các vấn đề cần giải quyết trong lĩnh vực cần tiếp cận. Tổ chức lại các thông tin đã thu thập. Xây dựng mô hình chuyên biệt cho vấn đề. Xây dựng thiết kế của DSL. Xây dựng bộ phát sinh riêng cho DSL. Bổ sung các ràng buộc cho DSL. Test và Deploy DSL. Jeudis de l'objet - 30 mars 2006
Các công cụ hỗ trợ Author of DSL (Architecte) User of DSL (Developper) End-user create Package DSL generate Framework SDK DSL Tools Code, Doc Files of config Framework produce Application Framework SDK Jeudis de l'objet - 30 mars 2006 Jeudis de l'objet - 30 mars 2006 7 / 53
Microsoft DSL Tool Công cụ của Microsoft tích hợp VS cho phép dễ dàng xây dựng kiến trúc một DSL Các mô hình được hợp thức hóa Hỗ trợ generate code Code được generate có thể compile dễ dàng Một số hỗ trợ khác Drag & Drop Debugger Etc … Jeudis de l'objet - 30 mars 2006 8 / 53 TechEd 2002 TechEd 2002 8
Microsoft DSL Tool TechEd 2002 TechEd 2002 9 Jeudis de l'objet - 30 mars 2006 9 / 53 TechEd 2002 TechEd 2002 9
Microsoft DSL Tool TechEd 2002 TechEd 2002 10 Jeudis de l'objet - 30 mars 2006 10 / 53 TechEd 2002 TechEd 2002 10
Microsoft DSL Tool TechEd 2002 TechEd 2002 11 Jeudis de l'objet - 30 mars 2006 11 / 53 TechEd 2002 TechEd 2002 11
Eclipse Tools Eclipse Modeling Framework (EMF) Graphical Modeling Framework (GMF) MOFScript Tool Jeudis de l'objet - 30 mars 2006 12 / 53 TechEd 2002 TechEd 2002 12
Eclipse Modeling Framework (EMF) A modeling framework and code generation facility Specify metamodels and managing (creating, editing, saving, loading) models instances A Java implamentation of the Ecore metamodel Jeudis de l'objet - 30 mars 2006 13 / 53
Graphical Modeling Framework (GMF) Provides a generative component and runtime infracstructure for developing graphical editors base on EMF and GEF Jeudis de l'objet - 30 mars 2006 14 / 53
MOFScript Tool - An implementation of the MOFScript model to text transformation language Jeudis de l'objet - 30 mars 2006 TechEd 2002 TechEd 2002 15
So sánh: Microsoft DSL Tools và Eclipse Tools Tiêu chuẩn đánh giá Metamodeling Facilities Model Persistency Graphical Notation Development Tools Model to Model Transformation Tools Model to Text Transformation Tools Jeudis de l'objet - 30 mars 2006 16 / 53 TechEd 2002 TechEd 2002 16
So sánh: Microsoft DSL Tools và Eclipse Tools Jeudis de l'objet - 30 mars 2006 Jeudis de l'objet - 30 mars 2006 17 / 53
Tham khảo www.wikipedia.org TechEd 2002 TechEd 2002 18 Jeudis de l'objet - 30 mars 2006 18 / 53 TechEd 2002 TechEd 2002 18