Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 229 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
229
Dung lượng
4,65 MB
Nội dung
Vietnam National University, Hanoi VNU University of Engineering and Technology LE MINH DUC A Unified View Approach to Software Development Automation 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 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 - Vietnam National University, Hanoi VNU University of Engineering and Technology LE MINH DUC A Unified View Approach to Software Development Automation Specialisation: Software Engineering Code: 9480103.01 Doctor of Philosophy Dissertation in Information Technology Supervisors: Assoc Prof., Dr Nguyen Viet Ha Dr Dang Duc Hanh Hanoi – ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ LÊ MINH ĐỨ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: PGS TS Nguyễn Việt Hà TS Đặng Đức Hạnh Hà Nội – Declaration I hereby declare that the materials presented in this dissertation are my own work, conducted under the supervision of Assoc Prof., Dr 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 language 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 tat Trong vịng hai th p ký gan đây, phương pháp lu n phát trien phan mem dụa mơ hình noi lên m t phương pháp lu n quan trong kỹ ngh phan mem Ő trung tâm phương pháp lu n có hai phương pháp có tính bo tro là: kỹ ngh phan mem hưóng mơ hình (model-driven software engineering (MDSE)) thiet ke hưóng mien (domain-driven design (DDD)) Trong MDSE mang m t mục tiêu r ng tham vong mục tiêu DDD lại khiêm ton thục te hơn, t p trung vào cách áp dụng kỹ thu t kỹ ngh dụa mơ hình đe giải quyet sụ phức tạp von có yêu cau mien Phương pháp DDD hi n bao gom m t t p nguyên lý đe xây dụng m t mô hình mien ỏ dạng khả thi cho trien khai viet mã m t ngơn ngữ l p trình đích Tuy nhiên phương pháp thieu giải pháp can thiet giúp giải đáp hai câu hỏi quan mà ngưòi phát trien phan mem thưòng g p phải áp dụng DDD vào nen tảng ngôn ngữ l p trình hưóng đoi tưong (object oriented programming language (OOPL)): (i) thành phan cau tạo nên m t mơ hình mien có mức đ dien đạt thiet yeu? (ii) xây dụng m t cách hi u phan mem từ mơ hình mien the nào? Lu n án đ t mục đích khac phục hạn che DDD bang cách sử dụng ngôn ngữ chuyên bi t mien dụa ghi (annotation-based domain-specific language (aDSL)), đưoc phát trien OOPL, đe không bieu dien m t mơ hình mien hop nhat thiet yeu mà cịn đe xây dụng phan mem có tính mơ-đun từ mơ hình mien Thứ nhat, lu n án đe xuat m t aDSL, tên ngôn ngữ đ c tả lóp mien (domain class specification language (DCSL)), bao gom m t t p ghi đe bieu dien ràng bu c cau trúc thiet yeu hành vi thiet yeu lóp mien Tác giả can th n lụa chon đ c trưng thiet ke từ m t so nguon tài li u hoc thu t có uy tín ve kỹ ngh phan mem kỹ ngh h thong l p lu n rang đ c trưng tạo thành m t không gian thiet ke toi giản cho lóp mien Thứ hai, lu n án đe xuat m t phương thức tiep c n mơ hình hóa mien hop nhat, sử dụng DCSL đe bieu dien thành phan mơ hình hóa cau trúc hành vi Lu n án chon ngôn ngữ bieu đo hoạt đ ng UML cho mơ hình hóa hành vi trình bày cách bieu dien đ c trưng chuyên bi t trạng thái ngôn ngữ bang DCSL Đe chứng tỏ tính thục tien cách tiep c n, lu n án định nghĩa m t t p mȁu mơ hình hóa mien hop nhat cho toán thiet ke liên quan trục tiep đen năm luong hoạt đ ng UML Thứ ba, lu n án đe xuat m t mô tả đ c điem gom bon tính chat cho phan mem đưoc xây dụng trục tiep từ mơ hình mien Bon tính chat đưoc định nghĩa dụa mơ hình khái ni m phan mem dạng phân lóp, bao gom mơ hình mien ỏ lóp lõi, m t lóp mơ-đun trục tiep bao quanh lóp lõi m t lóp phan mem ỏ Thứ tư, lu n án đe xuat m t aDSL thứ hai, tên ngơn ngữ lóp cau hình mơ-đun (module configuration class language (MCCL)), dùng đe thiet ke lóp cau hình mơ-đun (module configuration classes (MCCs)) m t kien trúc phan mem dụa mô-đun Mői MCC cung cap m t định nghĩa dạng lóp cho m t t p cau hình mơ-đun m t lóp mơ-đun Các MCC có the de dàng sử dụng lại đe tạo bien the m t lóp mơ-đun mà khơng can sửa thiet ke bên môđun Thứ năm, lu n án phát trien m t b công cụ dành cho DCSL, MCCL b sinh mã ngôn ngữ này, dưói dạng thành phan m t phan mem khung, tên JDOMAINAPP Đe đánh giá ket trên, lu n án trưóc het trình dien tính thục tien phương pháp bang cách áp dụng vào m t trưòng hop nghiên cứu tương đoi phức tạp ve phát trien phan mem, liên quan đen quản lý quy trình to chức Tiep theo, lu n án đánh giá DCSL từ khía cạnh m t ngơn ngữ đ c tả đánh giá hi u vi c sử dụng MCCL xây dụng mô-đun phan mem m t cách tụ đ ng Chúng tơi cho rang, đóng góp lu n án giúp phương pháp DDD trỏ nên cụ the đay đủ M t m t, phương pháp trỏ nên cụ the vói giải pháp giúp áp dụng m t cách hi u vào nen tảng OOPL M t khác, phương pháp trỏ nên đay đủ vói giải pháp cho khía cạnh thiet ke chưa đưoc xem xét tói Acknowledgement I would first like to thank my supervisors, Assoc Prof 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.03-2015.25), led by Assoc Prof 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 ... important software engineering research area over the last two decades is what we would generally call model-based software development (MBSD) – the idea that a software can and should systematically... 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... DSL, page 36 ASM Abstract Syntax Meta-model, page 17 AtOP Attribute-Oriented Programming, page 35 BISL Behaviour Interface Specification Language, page 35 CSM Concrete Syntax Meta-model, page 17