Phương pháp tiếp cận khung hình hợp nhất trong tự động hóa phát triển phần mềm

Tài liệu nghiên cứu A unified view approach to software development automation phương pháp tiếp cận khung hình hợp nhất, tổng hợp lý thuyết và thực hành, cung cấp kiến thức chuyên

Chuyên ngành

Information Technology

Người đăng

Ẩn danh

Thể loại

Doctor of Philosophy Dissertation

2020

193
2
0

Phí lưu trữ

45 Point

Mục lục chi tiết

1. CHƯƠNG 1: INTRODUCTION

1.1. Problem Statement

1.2. Domain Driven Design Challenges

1.3. Research Aim and Objectives

2. CHƯƠNG 2: STATE OF THE ART

2.1. Model-Driven Software Engineering

2.2. Domain-Specific Language

2.3. Meta-Modelling with UML/OCL

2.4. Domain-Driven Design

2.5. Model-View-Controller Architecture

2.6. Comparing and Integrating MDSE with DDD

2.7. A Core Meta-Model of Object-Oriented Programming Language

2.8. Domain-Driven Software Development with aDSL

2.9. Behavioural Modelling with UML Activity Diagram

2.10. Module-Based Software Architecture

2.11. Unified Domain Modelling with aDSL

3. CHƯƠNG 3: ESSENTIAL STATE SPACE CONSTRAINTS AND BEHAVIOUR TYPES

3.1. Essential State Space Constraints

3.2. Essential Behaviour Types

3.2.1. Expressing the Pre- and Post-conditions of Method

3.2.2. Behaviour Space Semantics

3.2.3. Behaviour Generation for DCSL Model

3.2.4. Dynamic Semantics of DCSL

3.3. UD Modelling Patterns

4. CHƯƠNG 4: MODULE-BASED SOFTWARE CONSTRUCTION WITH ADSL

4.1. Instance-based GUI

4.2. Module Configuration Domain

4.2.1. One Master Module Configuration

4.2.2. The ‘Configured’ Containment Tree

4.2.3. Customising Descendant Module Configuration

4.2.4. MCCL Language Specification

4.3. Structural Consistency between MCC and Domain Class

5. CHƯƠNG 5: EVALUATION

5.1. Module-Based Software Construction

5.1.1. Case Study: ProcessMAN

5.1.2. Case and Subject Selection

5.1.3. Data Collection and Analysis

5.2. Evaluation of Module-Based Software Construction

5.2.1. Module Generativity Framework

6. CHƯƠNG 6: CONCLUSION

LỜI MỞ ĐẦU

BIBLIOGRAPHY

APPENDICES

A. Helper OCL Functions for DCSL’s ASM

B. MCCL Specification

B.1. Library Rules of the MCCL’s ASM

B.2. Two MCCs of Module Enrolment Management

C. DCSL Evaluation Data

C.1. Expressiveness Comparison Between DCSL and the DDD Frameworks

C.2. Level of Coding Comparison Between DCSL and the DDD Frameworks

Tóm tắt

I. Giới thiệu

Luận án tập trung vào phương pháp tiếp cận khung hình hợp nhất cho tự động hóa phát triển phần mềm, đặc biệt trong bối cảnh phát triển phần mềm dựa trên mô hình (MBSD). MBSD mang lại nhiều lợi ích như dễ dàng giải quyết vấn đề, cải thiện chất lượng, năng suất và khả năng tái sử dụng. Hai phương pháp chính được đề cập là kỹ nghệ phần mềm hướng mô hình (MDSE)thiết kế hướng miền (DDD). MDSE hướng đến việc tạo ra phần mềm từ các mô hình cấp cao, trong khi DDD tập trung vào việc sử dụng mô hình để giải quyết sự phức tạp trong yêu cầu miền. Luận án nhấn mạnh vai trò của ngôn ngữ lập trình hướng đối tượng (OOPL) trong việc triển khai DDD, đồng thời giới thiệu ngôn ngữ chuyên biệt miền dựa trên ghi chú (aDSL) như một công cụ hiệu quả để biểu diễn mô hình miền và xây dựng phần mềm mô-đun.

1.1. Thách thức trong thiết kế hướng miền

Mặc dù DDD cung cấp các nguyên lý để xây dựng mô hình miền, phương pháp này vẫn thiếu các giải pháp cụ thể để trả lời hai câu hỏi quan trọng: (1) Các thành phần nào tạo nên một mô hình miền có mức độ diễn đạt thiết yếu? (2) Làm thế nào để xây dựng phần mềm hiệu quả từ mô hình miền? Những thách thức này đặc biệt nổi bật khi áp dụng DDD trong các nền tảng OOPL. Luận án đề xuất sử dụng aDSL để khắc phục những hạn chế này, giúp biểu diễn mô hình miền một cách thống nhất và tự động hóa quá trình phát triển phần mềm.

II. Phương pháp tiếp cận

Luận án đề xuất một phương pháp tiếp cận mới dựa trên aDSL để giải quyết các thách thức trong DDD. Phương pháp này bao gồm việc phát triển ngôn ngữ đặc tả lớp miền (DCSL)ngôn ngữ lớp cấu hình mô-đun (MCCL). DCSL được sử dụng để biểu diễn các ràng buộc cấu trúc và hành vi thiết yếu của lớp miền, trong khi MCCL hỗ trợ thiết kế các lớp cấu hình mô-đun trong kiến trúc phần mềm dựa trên mô-đun. Các công cụ phần mềm được phát triển để hỗ trợ DCSLMCCL, tích hợp vào khung phần mềm J1DOMAINAPP.

2.1. Ngôn ngữ đặc tả lớp miền DCSL

DCSL là một aDSL bao gồm các ghi chú để biểu diễn các ràng buộc cấu trúc và hành vi thiết yếu của lớp miền. Các đặc trưng thiết kế được lựa chọn từ các nguồn tài liệu uy tín về kỹ nghệ phần mềm và hệ thống, tạo thành một không gian thiết kế tối giản cho lớp miền. DCSL giúp biểu diễn mô hình miền một cách thống nhất và hỗ trợ quá trình tạo mã tự động.

2.2. Ngôn ngữ lớp cấu hình mô đun MCCL

MCCL được sử dụng để thiết kế các lớp cấu hình mô-đun (MCC) trong kiến trúc phần mềm dựa trên mô-đun. Mỗi MCC cung cấp một định nghĩa dạng lớp cho một tập các cấu hình mô-đun, giúp tạo ra các biến thể của một lớp mô-đun mà không cần thay đổi thiết kế bên trong. MCCL tăng cường khả năng tái sử dụng và linh hoạt trong phát triển phần mềm.

III. Đánh giá và ứng dụng thực tiễn

Luận án đánh giá tính thực tiễn của phương pháp thông qua một nghiên cứu điển hình về quản lý quy trình tổ chức. Kết quả cho thấy DCSLMCCL giúp cải thiện hiệu quả trong việc xây dựng phần mềm mô-đun. DCSL được đánh giá là một ngôn ngữ đặc tả hiệu quả, trong khi MCCL chứng minh khả năng tạo mã tự động cao. Các công cụ được phát triển trong J1DOMAINAPP hỗ trợ quá trình phát triển phần mềm một cách toàn diện.

3.1. Nghiên cứu điển hình

Nghiên cứu điển hình áp dụng phương pháp vào một phần mềm quản lý quy trình tổ chức, chứng minh tính khả thi và hiệu quả của DCSLMCCL. Phần mềm được xây dựng từ mô hình miền một cách tự động, đảm bảo tính mô-đun và khả năng tái sử dụng.

3.2. Đánh giá hiệu quả

DCSL được đánh giá dựa trên khả năng biểu diễn mô hình miền và hỗ trợ tạo mã. MCCL được đánh giá dựa trên khả năng tạo ra các biến thể mô-đun mà không cần thay đổi thiết kế. Kết quả cho thấy phương pháp này giúp DDD trở nên cụ thể và đầy đủ hơn, đặc biệt trong các nền tảng OOPL.

21/02/2025

Trích đoạn nội dung tài liệu

Vietnam National University, Hanoi VNU University of Engineering and Technology LE MINH DUC Doctor of Philosophy Dissertation in Information Technology Hanoi - 2020 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ LÊ MINH ĐỨC LUAN AN TIEN SI NGANH CONG NGHE THONG TIN Hà Nội - 2020 Vietnam National University, Hanoi VNU University of Engineering and Technology LE MINH DUC Specialisation: Software Engineering Code: 9480103.01 Doctor of Philosophy Dissertation in Information Technology Supervisors: 1. Nguyen Viet Ha 2. Dang Duc Hanh Hanoi — 2020 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ LÊ MINH ĐỨC Chuyên ngành: Kỹ thuật Phần mềm Mã số: 9480103.01 LUẬN ÁN TIEN SI NGANH CÔNG NGHỆ THONG TIN NGUOI HUONG DAN KHOA HOC: 1. Nguyén Viét Ha 2.

Dang Duc Hanh Hà Nội - 2020 Declaration Thereby declare that the materials presented in this dissertation are my own work, conducted under the supervision of Assoc. Nguyen Viet Ha and Dr. Dang Duc Hanh, at the Faculty of Information Technology, University of Engineering and Technology, Vietnam National University, Hanoi. All the research data and results presented in this dissertation are authentic and (to the best of my knowledge) have not previously been published in any academic publications by other authors.

Le Minh Duc Abstract An important software engineering methodology that has emerged over the past twenty years is model-based software development. At the heart of this methodology lies two complementary methods: model-driven software engineering (MDSE) and domain-driven design (DDD). While the aim of MDSE is ambitiously broad, DDD’s goal is more modest and direct but not less important — to apply model-based engineering techniques to tackle the complexity inherent in the domain requirements. The state-of-the-art DDD method includes a set of principles for constructing a domain model that is feasible for implementation in a target programming language.

However, this method lacks the solutions needed to address the following important design questions facing a technical team when applying DDD in object oriented programming language (OOPL) platforms: (2) what constitues an essentially expressive domain model and (72) how to effectively construct a software from this model. The dissertation aims to address these limitations by using annotation-based domain-specific language (aDSL), which is internal to OOPL, to not only express an essential and unified domain model but generatively construct modular software from this model. First, we propose an aDSL, named domain class specification language (DCSL), which consists in a set of annotations that express the essential structural constraints and the essential behaviour of a domain class. We carefully select the design features from a number of authoritative software and system engineering resources and reason that they form a minimum design space of the domain class.

Second, we propose a unified domain (UD) modelling approach, which uses DCSL to express both the structural and behavioural modelling elements. We choose UML activity diagram language for behavioural modelling and discuss how the domain-specific constructs of this language are expressed in DCSL. To demonstrate the applicability of the approach we define the UD modelling patterns for tackling the design problems posed by five core UML activity flows. Third, we propose a 4-property characterisation for the software that are constructed directly from the domain model.

These properties are defined based on a conceptual layered software model that includes the domain model at the core, an intermediate module layer surrounding this core and an outer software layer. Fourth, we propose a second aDSL, named module configuration class language (MCCL), that is used for designing module configuration classes (MCCs) in a module-based software architecture. An MCC provides an explicit class-based definition of a set of module con- figurations of a given class of software modules. The MCCs can easily be reused to create different variants of the same module class, without having to change the module class design.

Fifth, we develop a set of software tools for DCSL, MCCL and the generators associated with these aDSLs. We implement these tools as components in a software framework, named J1DOMAINAPP, which we have developed in our research. To evaluate the contributions, we first demonstrate the practicality of our method by applying it to a relatively complex, real-world software construction case study, concerning organisational process management. We then evaluate DCSL as a design specification lan- guage and evaluate the effectiveness of using MCCL in module-based software construction.

We focus the latter evaluation on module generativity. We contend that our contributions help make the DDD method more concrete and more complete for software development. On the one hand, the method becomes more concrete with solutions that help effectively apply the method in OOPL platforms. On the other hand, the method is more complete with solutions for the design aspects that were not originally included.

Tóm tắt Trong vòng hai thập kỷ gần đây, phương pháp luận phát triển phần mềm dựa trên mô hình nổi lên là một phương pháp luận quan trọng trong kỹ nghệ phần mềm. Ở trung tâm của phương pháp luận này có hai phương pháp có tính bổ trợ nhau là: kỹ nghệ phần mềm hướng mô hình (model-driven software engineering (MDSE)) và thiết kế hướng miễn (domain-driven design (DDD)). Trong khi MDSE mang một mục tiêu rộng và khá tham vọng thì mục tiêu của DDD lại khiêm tốn và thực tế hơn, đó là tập trung vào cách áp dụng các kỹ thuật của kỹ nghệ dựa trên mô hình để giải quyết sự phức tạp vốn có trong yêu cầu miễn. Phương pháp DDD hiện tại bao gồm một tập các nguyên lý để xây dựng một mô hình miền ở dạng khả thi cho triển khai viết mã trên một ngôn ngữ lập trình đích.

Tuy nhiên phương pháp này còn thiếu các giải pháp cần thiết giúp giải đáp hai câu hỏi quan trọng mà người phát triển phần mềm thường gặp phải khi áp dụng DDD vào các nên tảng ngôn ngữ lập trình hướng đối tượng (object oriented programming language (OOPL)): (7) những thành phan nào cầu tạo nên một mô hình miền có mức độ diễn đạt thiết yếu? và (22) xây dựng một cách hiệu quả phần mềm từ mô hình miền như thé nào? Luận án này đặt mục đích khắc phục hạn chế trên của DDD bằng cách sử dụng ngôn ngữ chuyên biệt miền dựa trên ghi chú (annotation-based domain-specific language (aDSL)), được phát triển trong OOPL, để không chỉ biểu diễn một mô hình miền hợp nhất thiết yếu mà còn để xây dựng phần mềm có tính mô-đun từ mô hình miễn này. Thứ nhất, luận án đề xuất một aDSL, tên là ngôn ngữ đặc tả lớp miền (domain class specification language (DCSL)), bao gồm một tập các ghi chú để biểu diễn các ràng buộc cấu trúc thiết yếu và các hành vi thiết yếu của lớp miễn. Tác giả đã cẩn thận lựa chọn các đặc trưng thiết kế từ một số nguồn tài liệu học thuật có uy tín về kỹ nghệ phần mềm và kỹ nghệ hệ thống và lập luận rằng các đặc trưng này tạo thành một không gian thiết kế tối giản cho lớp miễn. Thứ hai, luận án dé xuất một phương thức tiếp cận mô hình hóa miền hợp nhất, trong đó sử dụng DCSL để biểu diễn các thành phần mô hình hóa cấu trúc và hành vi.

Luận án đã chọn ngôn ngữ biểu đồ hoạt động UML cho mô hình hóa hành vi và trình bày cách biểu diễn các đặc trưng chuyên biệt trạng thái của ngôn ngữ này bằng DCSL. Để chứng tỏ tính thực tiễn của cách tiếp cận, luận án định nghĩa một tập mẫu mô hình hóa miền hợp nhất cho các bài toán thiết kế liên quan trực tiếp đến năm luồng hoạt động UML cơ bản. Thứ ba, luận án dé xuất một mô tả đặc điểm gồm bốn tính chất cho phần mềm được xây dựng trực tiếp từ mô hình miền. Bốn tính chất này được định nghĩa dựa trên mô hình khái niệm phần mềm dạng phân lớp, bao gồm mô hình miễn ở lớp lõi, một lớp mô-đun trực tiếp bao quanh lớp lõi và một lớp phần mềm ở ngoài.

Thứ tư, luận án đề xuất một aDSL thứ hai, tên là ngôn ngữ lớp cấu hình mô-đun (module configuration class language (MCCL)), dùng để thiết kế các lớp cấu hình mô-đun (module configuration classes (MCCs)) trong một kiến trúc phần mềm dựa trên mô-đun. Mỗi MCC cung cấp một định nghĩa dạng lớp cho một tập các cầu hình mô-đun của một lớp mô-đun. Các MCC có thể dễ dàng sử dụng lại để tạo ra các biến thể của một lớp mô-đun mà không cần sửa thiết kế bên trong của mô-đun. Thứ năm, luận án phát triển một bộ công cụ dành cho DCSL, MCCL và các bộ sinh mã của các ngôn ngữ này, dưới dạng các thành phần của một phần mềm khung, tên là JDOMAINAPP.

Để đánh giá các kết quả trên, luận án trước hết trình diễn tính thực tiễn của phương pháp bằng cách áp dụng vào một trường hợp nghiên cứu tương đối phức tạp về phát triển phần mềm, liên quan đến quản lý quy trình tổ chức. Tiếp theo, luận án đánh giá DCSL từ khía cạnh một ngôn ngữ đặc ta và đánh giá hiệu quả việc sử dụng MCCL trong xây dựng mô-đun phần mềm một cách tự động. Chúng tôi cho rằng, các đóng góp của luận án giúp phương pháp DDD trở nên cụ thể và đầy đủ hơn. Một mặt, phương pháp trở nên cụ thể hơn với các giải pháp giúp áp dụng một cách hiệu quả vào các nền tang OOPL.

Mặt khác, phương pháp trở nên day đủ hơn với các giải pháp cho các khía cạnh thiết kế chưa được xem xét tới. Acknowledgement I would first like to thank my supervisors, Assoc. Nguyen Viet Ha and Dr. Dang Duc Hanh, for their instructions and guidance throughout my research and the development of this dissertation.

I would also like to thank all the teachers at the Faculty of Information Technology (University of Engineering and Technology, Hanoi) for the very kind support that I have received throughout my research study at the department. I am deeply grateful for my home university (Hanoi University) for providing the PhD studentship and a gracious teaching arrangement, that has enabled me to have the time to complete the required course works and research. I am also very grateful for the financial support that I have additionally received from the MOET’s 911 fund and the NAFOSTED project (grant number 102.25), led by Assoc. Nguyen Viet Ha.

I would also like to thank all of my colleagues and fellow PhD students for the many meaningful and entertaining discussions. Last but not least, I wish to thank my family for the sacrifices that they have made and for all the love and encouragement that they have given me during my PhD study. Contents Glossary Vv List of Figures vii List of Tables ix 1 Introduction 1 II ProblemSfaemen.ẶẶẶ Ặ QẶ Q SH 3 1.ẶẶẶ Q 3 112 DomainDriven Design Challenges .2 Research Aim and Objectives. ee ee ee 12 2 State of the Art 13 2.1 Model-Driven Software Engineering.2 Domain-Specifc Language.13 Meta-Modelling wiíhUMUOCL.4 Domain-Driven Design.15 Model-View-Controller Architecture.6 Comparing and Integrating MDSEwithDDD.7 A Core Meta-Model of Object-Oriented Programming Language.2_ Domain-Driven Software Development withaDSL.

Behavioural Modelling with UML Activity Diagram .4 Module-Based Software Architecture .ee 45 Unified Domain Modelling with aDSL 46 3.1 Essential State Space Constraints. Essential Behaviour Types .1 Expressing the Pre- and Post-conditions of Method .2 Behaviour Space Semantics .3 Behaviour Generation for DCSL Model .5 Dynamic Semanticsof DCSL .2 UD Modelling Patterns. ee 87 Module-Based Software Construction with aDSL 88 4.2 Instance-based GUI. eee ee ee 92 4.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ

Tài liệu "Phương pháp tiếp cận khung hình hợp nhất cho tự động hóa phát triển phần mềm" giới thiệu một cách tiếp cận mới trong việc tự động hóa quy trình phát triển phần mềm, tập trung vào việc tích hợp các khung hình (framework) để tối ưu hóa hiệu suất và giảm thiểu thời gian phát triển. Phương pháp này không chỉ giúp các nhà phát triển tiết kiệm thời gian mà còn nâng cao chất lượng sản phẩm thông qua việc chuẩn hóa quy trình và tận dụng các công cụ hiện đại. Để hiểu sâu hơn về các công nghệ liên quan, bạn có thể tham khảo Luận văn thạc sĩ khoa học máy tính sử dụng active learning trong việc lựa chọn dữ liệu gán nhãn cho bài toán speech recognition, nơi ứng dụng học máy được khai thác để tối ưu hóa quy trình. Ngoài ra, Luận văn thạc sĩ khoa học máy tính nghiên cứu các phương pháp trích xuất thông tin trong ảnh tài liệu và ứng dụng cung cấp cái nhìn sâu hơn về việc xử lý dữ liệu tự động, một yếu tố quan trọng trong tự động hóa. Cuối cùng, Luận văn thạc sĩ khoa học máy tính hỗ trợ suy luận trong điều khiển truy xuất dữ liệu gis sẽ giúp bạn hiểu rõ hơn về cách suy luận tự động được áp dụng trong các hệ thống phức tạp.