A Unified View Approach to Software Development Automation

Tìm hiểu phương pháp tiếp cận khung nhìn hợp nhất (Unified View) để tự động hóa phát triển phần mềm. Giải pháp tối ưu cho quy trình làm việc hiệu quả, giảm thiểu lỗi.

Trường đại học

Vietnam National University, Hanoi

Chuyên ngành

Công Nghệ Thông Tin

Người đăng

Ẩn danh

Thể loại

Luận Án Tiến Sĩ

2020

193
4
0

Phí lưu trữ

45 Point

Mục lục chi tiết

1. CHƯƠNG 1: INTRODUCTION

1.1. Domain-Driven Design Challenges

1.2. 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. Using Annotation in MBSD

2.9. Domain-Driven Software Development with aDSL

2.9.1. DDD with aDSL

2.9.2. Behavioural Modelling with UML Activity Diagram

2.9.3. Software Module Design

2.9.4. Module-Based Software Architecture

3. CHƯƠNG 3: UNIFIED DOMAIN MODELLING WITH ADSL

3.1. Essential State Space Constraints

3.2. Essential Behaviour Types

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

3.4. Static Semantics of DCSL

3.4.1. State Space Semantics

3.4.2. Behaviour Space Semantics

3.4.3. Behaviour Generation for DCSL Model

3.5. Dynamic Semantics of DCSL

3.6. Unified Domain Model

3.6.1. Expressing UDM in DCSL

3.6.2. UD Modelling Patterns

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

4.1. An Abstract Software Model

4.2. Instance-based GUI

4.3. Module Configuration Domain

4.3.1. One Master Module Configuration

4.3.2. The ‘Configured’ Containment Tree

4.3.3. Customising Descendant Module Configuration

4.4. MCCL Language Specification

4.4.1. Structural Consistency between MCC and Domain Class

4.5. Module-Based Software Construction

4.6. Case Study: ProcessMan

4.6.1. Case and Subject Selection

4.6.2. Data Collection and Analysis

4.6.3. Required Coding Level

4.6.4. Evaluation of Module-Based Software Construction

4.6.4.1. Module Generativity Framework
4.6.4.2. Analysis of MCCGen

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 ModuleEnrolmentMgmt

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. Tự động hóa phát triển phần mềm dựa trên mô hình Tổng quan 55 ký tự

Trong hai thập kỷ qua, phát triển phần mềm dựa trên mô hình (MBSD) đã trở thành một lĩnh vực nghiên cứu quan trọng. MBSD tập trung vào việc phát triển phần mềm một cách có hệ thống từ các trừu tượng, hay còn gọi là mô hình, của miền vấn đề. Điều này mang lại nhiều lợi ích như giải quyết vấn đề dễ dàng hơn, cải thiện chất lượng, tăng năng suất và khả năng tái sử dụng. Hai phương pháp phát triển nổi bật thuộc MBSD 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 cải thiện khả năng tái sử dụng và năng suất bằng cách xây dựng các mô hình phần mềm cấp cao (không phụ thuộc nền tảng) và áp dụng chúng vào các nền tảng khác nhau. DDD tập trung vào việc sử dụng mô hình để giải quyết sự phức tạp trong các yêu cầu của miền.

1.1. Vai trò của Model Driven Software Engineering MDSE

MDSE, như Czarnecki đã chỉ ra, là một loại phát triển phần mềm tạo sinh (GSD). Lợi ích chính của MDSE là cải thiện đáng kể khả năng tái sử dụng và năng suất trong việc tạo ra phần mềm cho các nền tảng triển khai khác nhau. Điều này đạt được bằng cách xây dựng các mô hình phần mềm cấp cao (độc lập với nền tảng) trước và sau đó áp dụng hiệu quả các mô hình này cho một nền tảng mới để tạo ra phần mềm cho nó. Bước áp dụng này sử dụng rộng rãi các tài sản có thể tái sử dụng, bao gồm khung phần mềm, thành phần, kiến trúcmô hình. Việc sử dụng MDA một cách có hệ thống giúp tăng tốc độ phát triển và giảm chi phí.

1.2. Ưu điểm của Domain Driven Design DDD trong phát triển

Trong khi mục tiêu của MDSE là rộng lớn và bao quát, DDD tập trung cụ thể hơn vào vấn đề làm thế nào để sử dụng hiệu quả mô hình để giải quyết sự phức tạp vốn có trong các yêu cầu miền. Mục tiêu của DDD là phát triển phần mềm dựa trên các mô hình miền không chỉ mô tả chính xác miền mà còn khả thi về mặt kỹ thuật để triển khai. Theo Evans, ngôn ngữ lập trình hướng đối tượng (OOPL) đặc biệt phù hợp để sử dụng với DDD. Điều này không có gì đáng ngạc nhiên, vì Booch đã chỉ ra hai lý do chính tại sao OOPL sẽ tạo ra các mô hình miền vốn có tính biểu cảm và khả thi.

II. Vấn đề Thách thức trong thiết kế hướng miền DDD 57 ký tự

Phương pháp DDD hiện tại bao gồm một tập các nguyên tắc để xây dựng một mô hình miền ở dạng khả thi cho việc 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 (OOPL): (i) những thành phần 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à (ii) 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.

2.1. Thiếu tính biểu đạt trong mô hình miền OOPL

Một trong những thách thức chính trong việc áp dụng DDD trong các nền tảng OOPL là xác định những thành phần 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. Các nhà phát triển thường gặp khó khăn trong việc xác định phạm vi của mô hình, dẫn đến việc bỏ sót các chi tiết quan trọng hoặc bao gồm các chi tiết không liên quan. Điều này có thể dẫn đến các mô hình không chính xác hoặc không đầy đủ, gây khó khăn cho việc phát triển phần mềm chất lượng cao.

2.2. Khó khăn trong xây dựng phần mềm từ mô hình miền

Một thách thức khác là xây dựng một cách hiệu quả phần mềm từ mô hình miền. Các nhà phát triển thường phải đối mặt với những khó khăn trong việc chuyển đổi mô hình thành mã có thể thực thi được, đặc biệt là khi mô hình phức tạp hoặc liên quan đến nhiều công nghệ khác nhau. Điều này có thể dẫn đến sự không nhất quán giữa mô hình và mã, gây khó khăn cho việc bảo trì và mở rộng phần mềm. Cần có các công cụ và kỹ thuật để tự động hóa quá trình này.

III. aDSL Giải pháp tự động hóa phát triển phần mềm 59 ký tự

Luận án này đề xuất sử dụng ngôn ngữ chuyên biệt miền dựa trên ghi chú (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. aDSL cho phép các chuyên gia miền và đội ngũ kỹ thuật tập trung vào việc xây dựng mô hình miền, thay vì lo lắng về các kỹ thuật thiết kế ngôn ngữ. Đây là một ứng dụng của tính năng chú thích của chế độ...

3.1. Giới thiệu về Annotation Based Domain Specific Language aDSL

aDSL là một loại ngôn ngữ DSL sử dụng các chú thích (annotation) để thêm thông tin vào mã nguồn. Điều này cho phép các nhà phát triển xác định các quy tắc và ràng buộc cụ thể cho một miền nhất định. aDSL có thể được sử dụng để tự động hóa các tác vụ khác nhau, chẳng hạn như tạo mã, kiểm tra và xác thực. Ưu điểm của aDSL bao gồm giảm sự phức tạp của mã, cải thiện khả năng bảo trì và tăng năng suất.

3.2. Lợi ích của aDSL trong xây dựng mô hình miền hợp nhất

aDSL cho phép biểu diễn một mô hình miền hợp nhất thiết yếu bằng cách sử dụng các chú thích để xác định các khái niệm và mối quan hệ miền. Điều này giúp đơn giản hóa quá trình mô hình hóa và đảm bảo rằng mô hình chính xác và đầy đủ. Hơn nữa, aDSL có thể được sử dụng để tạo mã tự động từ mô hình, giảm thiểu nhu cầu viết mã thủ công và giảm nguy cơ lỗi.

3.3. Tạo phần mềm mô đun từ mô hình miền sử dụng aDSL

Sử dụng aDSL cho phép xây dựng phần mềm có tính mô-đun từ mô hình miền. Bằng cách sử dụng các chú thích để xác định các thành phần và giao diện của phần mềm, aDSL giúp tạo ra các mô-đun có thể tái sử dụng và dễ bảo trì. Điều này có thể cải thiện đáng kể năng suất phát triển và chất lượng phần mềm.

IV. DCSL Ngôn ngữ đặc tả lớp miền aDSL chi tiết 58 ký tự

Luận án đề xuất một aDSL, tên là ngôn ngữ đặc tả lớp miền (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. DCSL giúp định nghĩa rõ ràng các siêu mô hình và các ràng buộc.

4.1. Cấu trúc và chức năng của Domain Class Specification Language DCSL

DCSL bao gồm một tập các chú thích được sử dụng để 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. Các chú thích này cho phép các nhà phát triển xác định các thuộc tính, phương thức và mối quan hệ của lớp miền một cách rõ ràng và ngắn gọn. DCSL cũng hỗ trợ xác định các ràng buộc và quy tắc xác thực để đảm bảo tính nhất quán và chính xác của dữ liệu miền.

4.2. Xây dựng mô hình hóa miền hợp nhất với DCSL

Luận án đề 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. Điều này cho phép các nhà phát triển tạo ra một mô hình duy nhất bao gồm cả cấu trúc và hành vi của miền.

4.3. Áp dụng DCSL vào các luồng hoạt động UML cơ bản

Để 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. Các mẫu này cung cấp hướng dẫn cụ thể về cách sử dụng DCSL để biểu diễn các luồng hoạt động UML, giúp các nhà phát triển dễ dàng áp dụng DCSL vào các dự án thực tế.

V. MCCL Ngôn ngữ lớp cấu hình mô đun hiệu quả 53 ký 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 (MCCL), dùng để thiết kế các lớp cấu hình mô-đun (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.

5.1. Mục tiêu và ứng dụng của Module Configuration Class Language MCCL

MCCL được sử dụng để thiết kế các lớp cấu hình mô-đun (MCCs) trong một kiến trúc phần mềm dựa trên mô-đun. MCCL cung cấp một cách tiêu chuẩn để xác định các cấu hình mô-đun, giúp dễ dàng tạo và quản lý các biến thể khác nhau của phần mềm. Điều này đặc biệt hữu ích trong các ứng dụng phức tạp, nơi có nhiều tùy chọn cấu hình khác nhau.

5.2. Khả năng tái sử dụng của MCC trong Module Based Software Architecture

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. Điều này giúp giảm thiểu sự trùng lặp mã và cải thiện khả năng bảo trì. Bằng cách sử dụng MCC, các nhà phát triển có thể nhanh chóng tạo ra các phiên bản phần mềm tùy chỉnh cho các khách hàng hoặc môi trường khác nhau.

5.3. Quan hệ giữa MCC và domain class

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. Khi có thay đổi về domain class, nó sẽ ảnh hưởng trực tiếp đến các MCC liên quan, đòi hỏi cập nhật và đồng bộ để đảm bảo tính nhất quán và khả năng tương thích. Cần có các cơ chế và quy trình quản lý thay đổi hiệu quả để giải quyết vấn đề này và duy trì tính ổn định của hệ thống.

VI. Đánh giá và ứng dụng thực tiễn của phương pháp 54 ký tự

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.

6.1. Giới thiệu jDomainApp

jDomainApp là một khung phần mềm được phát triển trong nghiên cứu này, bao gồm các công cụ cho DCSL, MCCL và các bộ sinh mã liên quan. Khung phần mềm này cung cấp một nền tảng để xây dựng và triển khai các ứng dụng dựa trên mô hình miền. jDomainApp giúp đơn giản hóa quá trình phát triển và cho phép các nhà phát triển tập trung vào việc mô hình hóa miền thay vì các chi tiết kỹ thuật triển khai.

6.2. Case study thực tế Quản lý quy trình tổ chức

Tính thực tiễn của phương pháp được trình bày thông qua một trường hợp nghiên cứu phức tạp liên quan đến quản lý quy trình tổ chức. Bằng cách áp dụng DCSLMCCL vào trường hợp này, luận án chứng minh rằng phương pháp có thể được sử dụng để xây dựng các ứng dụng thực tế với độ phức tạp cao.

6.3. Module Generativity Framework đánh giá hiệu quả

Bên cạnh case study, luận án còn đánh giá DCSL từ khía cạnh một ngôn ngữ đặc tả 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. Việc đánh giá hiệu quả của MCCL tập trung vào tính tạo sinh của mô-đun thông qua các chỉ số hiệu suất và khả năng tái sử dụng. Từ đó chỉ ra những ưu điểm của MCCL trong việc phát triển phần mềm.

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

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

Vietnam National University VNU University of Engineering and Technology A Unified View Approach to Software Development Automation Doctor of Philosophy Dissertation in Information Technology Hanoi - 2020 ĐẠI HỌC PHƯƠNG PHÁP TIẾP CẬN KHUNG NHÌN HỢP NHẤT CHO TỰ ĐỘNG HÓA PHÁT TRIỂN PHẦN MỀM LUẬN ÁN TIẾN SĨ NGÀNH CÔNG NGHỆ THÔNG TIN Hà Nội - 2020 Vietnam National University, Hanoi VNU University of Engineering and Technology A Unified View Approach to Software Development Automation 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 PHƯƠNG PHÁP TIẾP CẬN KHUNG NHÌN HỢP NHẤT CHO TỰ ĐỘNG HÓA PHÁT TRIỂN PHẦN MỀM Chuyên ngành: Kỹ thuật Phần mềm Mã số: 9480103.01 LUẬN ÁN TIẾN SĨ NGÀNH CÔNG NGHỆ THÔNG TIN NGƯỜI HƯỚNG DẪN KHOA HỌC: 1. Nguyễn Việt Hà 2.

Đặng Đức Hạnh Hà Nội – 2020 Declaration I hereby 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: (i) what constitues an essentially expressive domain model and (ii) 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 jDomainApp, 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)): (i) những thành phần 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à (ii) 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 đề 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 đề 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 tả 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 tảng OOPL.

Mặt khác, phương pháp trở nên đầy đủ 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 v List of Figures vii List of Tables ix 1 Introduction 1 1.2 Domain-Driven Design Challenges .2 Research Aim and Objectives. 12 2 State of the Art 13 2.1 Model-Driven Software Engineering .2 Domain-Specific Language .3 Meta-Modelling with UML/OCL .4 Domain-Driven Design .5 Model-View-Controller Architecture .6 Comparing and Integrating MDSE with DDD .7 A Core Meta-Model of Object-Oriented Programming Language .8 Using Annotation in MBSD .2 Domain-Driven Software Development with aDSL .1 DDD with aDSL .2 Behavioural Modelling with UML Activity Diagram .3 Software Module Design .4 Module-Based Software Architecture.

45 3 Unified Domain Modelling with aDSL 46 3.1 Essential State Space Constraints .2 Essential Behaviour Types .1 Expressing the Pre- and Post-conditions of Method .4 Static Semantics of DCSL .1 State Space Semantics .

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

A Unified View Approach to Software Development Automation là nghiên cứu đề xuất một góc nhìn tổng thể và thống nhất để tự động hóa toàn bộ vòng đời phát triển phần mềm. Tài liệu trình bày mô hình tích hợp các công cụ tự động hóa xuyên suốt từ giai đoạn phân tích yêu cầu, thiết kế kiến trúc, lập trình, cho đến kiểm thử và triển khai — thay vì xử lý từng bước rời rạc như cách tiếp cận truyền thống. Cách nhìn thống nhất này giúp giảm thiểu sai sót do thiếu nhất quán giữa các giai đoạn, đồng thời tăng khả năng tái sử dụng và khả năng mở rộng của hệ thống. Một trong những thành phần cốt lõi của pipeline tự động hóa chính là kiểm thử — các kỹ sư có thể tham khảo thêm công trình về kiểm thử tự động giai đoạn cài đặt để hiểu sâu hơn về cách triển khai thực tế. Đây là tài liệu không thể thiếu cho kỹ sư phần mềm, kiến trúc sư hệ thống và nhà nghiên cứu muốn xây dựng quy trình DevOps hiện đại.