Nghiên cứu sơ bộ về xây dựng chương trình giảng dạy công nghệ phần mềm bằng phương pháp phát triển phần mềm hướng miền

Giáo dục về công nghệ phần mềm (CNPM) đóng vai trò quan trọng trong việc

phát triển các kiến thức nghề và học thuật của lĩnh vực CNPM. Sách chương trình khung giảng

dạy của ACM/IEEE-CS gần đây giúp cung cấp cho các nhà thiết kế chương trình giảng dạy các

hướng dẫn cập nhật và cần thiết. Tuy nhiên, vì một số lý do về lịch sử mà chương trình giảng

dạy CNPM của HANU đã được thiết kế dựa trên phiên bản cũ hơn của chương trình khung.

Trong bài báo này, tác giả nghiên cứu cách cập nhật chương trình này sử dụng phương pháp

phát triển phần mềm hướng miền. Tác giả định nghĩa phương pháp cập nhật dựa trên một

phương pháp tiếp cận hướng miền, được áp dụng để khái niệm hóa cấu trúc của chương trình

giảng dạy CNPM. Tác giả áp dụng phương pháp để chỉnh sửa ba môn học nòng cốt của

chương trình giảng dạy CNPM HANU.

pdf14 trang | Chia sẻ: Thục Anh | Ngày: 19/05/2022 | Lượt xem: 9 | Lượt tải: 0download
Nội dung tài liệu Nghiên cứu sơ bộ về xây dựng chương trình giảng dạy công nghệ phần mềm bằng phương pháp phát triển phần mềm hướng miền, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
n testing strategy - explain how development testing method is adapted to DDD C. Course module SE2 As shown in Table 5, the update does not violate the standard lecture hours of the SE2 course. The number of new lecture hours of the DDSD-specific topics is expected to take up the 4-hour revision time of the course. Although this is acceptable, it would be recommended to adjust the existing course topics (e.g. by increasing the overlapping contents with the DDSD topics), so that the additional lecture hour time would be 126 reduced. This type of adjustment is expected because SE2 is a brand new course. Table 5: DDSD-specific update to the SE2 course No Course topic Lecture hour As-is DDSD-Specific As-is New 1 Introduction to software architecture - The concept of software architecture - 4 2 Software development life cycle - Lifecycle and process models - Software project management - Software product lines - Lifecycle and process models: (+) DDSD process model [6]–[8] (0.25) - Software product lines: (+) Applying DDSD to develop software product lines (0.25) 4 0.5 3 Architecture styles - Overall architecture: hierarchical, client- server, cloud-based, peer-to-peer - Program-level architecture: control- based, dataflow, object-oriente - Model-Driven Architecture - Frame & Middleware Architecture - Overall architecture: (+) Fundamental architecture styles for DDSD [9], [13] (0.25) 4 0.25 4 Advanced UML design techniques - Concurrency and distribution - Some popular data types - UML design diagrams: sequence diagram, activity diagram, state chart - 4 5 Design patterns - Structural patterns: Bridge, Composite, Decorator, Façade, Flyweight - Behavioral patterns: Observer, Command, Visitor, Strategy, Chain of responsibility, State - Creational patterns: Abstract factory, Factory method, Prototype, Builder, Singleton (+) DDD patterns [9], [12] (2) 4 2 6 Software design for reuse - Specification for API design - Component-based development (+) Module-based software development with DDSD [6], [7] (1) 2 0.75 7 Configuration management - Version control systems: local version control, centralised and distributed version control - Build management systems - Bug and issue tracking systems - 2 8 Quality assurance - Software metrics: cost and reliability models (+) QA issues with domain modelling and DDSD (0.5) 2 0.5 127 - Software quality assurance: principles of software testing, other methods of program verification Total 26 4 Table 6: Descriptions of the DDD-specific topics for SE2 No DDSD-Specific topic Description 2 (+) DDSD process model [6]–[8] (+) Applying DDSD to develop software product lines - introduce the DDSD process model from previous work. Demonstrate with the DomainAppTool - explain how DDSD can be adapted to produce software product lines. Demonstrate with the DomainAppTool 3 (+) Fundamental architecture styles for DDSD [9], [13] - Highlight the architecture styles that are suitable for DDD 5 (+) DDD patterns [9], [12] - explain the core DDD patterns proposed by Evans - introduce the patterns proposed by this paper’s author [16] - demonstrate the patterns using DomainAppTool 6 (+) Module-based software development with DDSD [6], [7] - explain module-based software development in DDSD that uses a module-based software architecture (recently proposed by this paper’s author) 8 (+) QA issues with domain modelling and DDSD - explain how the QA issues are applied to domain modelling and DDSD V. EVALUATION Technically, our evaluation seeks to answer the following questions about the research work presented in this paper: 1. Is the method presented in Section 0 correct? 2. Is SEC-HANU suitable for integrating DDSD into? 3. Was the method correctly executed? 4. Are the additional DDSD topics suitable for the course modules? 5. Is the updated SEC-HANU model feasible for teaching? The answers to the first two questions can be obtained from our discussion given in Section 0, where we discussed why we selected and scoped our method for integrating DDSD into SEC-HANU. For the first question, a previous work on SECF shows that modelling can be applied to model SECF. Our method applied model matching and merging theories to update a curriculum model. For the second question, we argued in Section III.B.2) how SEC-HANU, although designed based on the previous SECF 2004 version, is still a valid model for the current SECF. 128 The answers to the third and fourth questions come from the revision that we carried out in Section IV. It quite clearly showed that we systematically and sequentially analysed the topic plan of each of the three course models mentioned in the method. The as-in topics were used as the base for identifying and incrementally adding the DDSD- specific topics, where suitable. The suitability of each DDSD topic as an add-on to an as-is topic was determined based on a combination of the author’s experiences in teaching and in DDSD research and curriculum design. Indeed, DDSD was proposed and defined in recent work [6]–[8] by this paper’s author. The answer to the fifth question can be obtained qualitatively and/or quantitatively. Qualitatively, the feasibility of the updated SEC-HANU model comes from the (1) feasibility of DDSD as a software development method and (2) DDSD’s suitability for teaching. The former has been argued and demonstrated in the recent work [6]–[8]. The latter has recently been demonstrated in a course book [14] (written by this paper’s author) for teaching DDSD in the SS2 course module. Quantitatively, answer to the fifth question can be obtained from actually applying the model in teaching and then collecting and analysing the feedbacks from both the teaching staff and the students. We plan to perform this in future work. VI. CONCLUSION This paper presented the result of a preliminary study on implementing SE curriculum using the domain driven software development (DDSD). We scoped our study to the HANU’s SE curriculum and studied how DDSD is applied to update three core courses of this curriculum. The update concerns identifying and adding more up- to-date SE topics to the existing syllabi of these courses. We based the update method a recent model-driven approach to conceptualise the ACM/IEEE-CS SE curriculum structure. Our plan for future work includes: (1) adjusting the SE2 course of the HANU’s SE curriculum to increase the overlapping content with DDSD (this helps reduce the additional teaching time), (2) performing quantitative assessment of the updated courses by conducting experimental teaching and obtaining feedbacks from the students and teaching staff, (3) applying DDSD to update the remaining courses of the HANU’s SE curriculum. REFERENCES [1] R. J. LeBlanc and et al., “Software Engineering 2004: Curriculum Guidelines for Undergraduate Degree Programs in Software Engineering,” IEEE Computer Society, 2006. [2] M. Ardis, D. Budgen, G. W. Hislop, J. Offutt, M. Sebern, and W. Visser, “SE 2014: Curriculum Guidelines for Undergraduate Degree Programs in Software Engineering,” Computer, vol. 48, no. 11, pp. 106–109, Nov. 2015, doi: 129 10.1109/MC.2015.345. [3] D. M. Le, “Nghiên cứu và Xây dựng Khung chương trình đào tạo Nhập môn Kỹ sư phần mềm,” in Proc. Annual Faculty Research Conf., Hanoi University, 2013. [4] P. Bunyakiati and C. Phipathananunth, “Checking Software Engineering Curricula with Respect to SE2014 Curriculum Guidelines,” in Proc. 2017 Int. Conf. on Management Engineering, Software Engineering and Service Sciences, New York, NY, USA, 2017, pp. 44–48, doi: 10.1145/3034950.3034982. [5] D. Budgen, “Applying the SE2014 Curriculum Model,” in Proc. 2015 IEEE 28th Conf. on Software Engineering Education and Training, USA, 2015, pp. 17–20, doi: 10.1109/CSEET.2015.12. [6] D. M. Le, D.-H. Dang, and V.-H. Nguyen, “Generative Software Module Development for Domain-Driven Design with Annotation-Based Domain Specific Language,” Inf. Softw. Technol., vol. 120, pp. 106–239, Apr. 2020, doi: 10.1016/j.infsof.2019.106239. [7] D. M. Le, D.-H. Dang, and V.-H. Nguyen, “On Domain Driven Design Using Annotation-Based Domain Specific Language,” J. Comput. Lang. Syst. Struct., vol. 54, pp. 199–235, 2018, doi: https://doi.org/10.1016/j.cl.2018.05.001. [8] D. M. Le, “A Unified View Approach to Software Development Automation,” Vietnam National University, Hanoi University of Engineering and Technology, Hanoi, 2019. [9] E. Evans, Domain-Driven Design: Tackling Complexity in the Heart of Software. Addison-Wesley Professional, 2004. [10] P. A. Bernstein and S. Melnik, “Model Management 2.0: Manipulating Richer Mappings,” in Proc. 2007 ACM SIGMOD Intl. Conf. on Management of data, Beijing, China, Jun. 2007, pp. 1–12, doi: 10.1145/1247480.1247482. [11] D. M. Le, D.-H. Dang, and H. T. Vu, “jDomainApp: A Module-Based Domain-Driven Software Framework,” in Proc. 10th Int. Symp. on Information and Communication Technology (SOICT), 2019, doi: https://doi.org/10.1145/3368926.3369657. [12] S. Millett and N. Tune, Patterns, Principles, and Practices of Domain-Driven Design. John Wiley & Sons, 2015. [13] V. Vernon, Implementing Domain-Driven Design, 1st ed. Upper Saddle River, NJ: Addison-Wesley Professional, 2013. [14] D. M. Le, Object-Oriented Domain-Driven Software Development with DomainAppTool: A Software Engineering CourseBook. Hanoi: Hanoi University, 2019. [15] I. Sommerville, Software Engineering, 9th ed. Pearson, 2011. [16] D. M. Le, D.-H. Dang, and V.-H. Nguyen, “Domain-Driven Design Patterns: A Metadata-Based Approach,” in Proc. 12th Int. Conf. on Computing and Communication Technologies (RIVF), Nov. 2016, pp. 247–252, doi: https://doi.org/10.1109/RIVF.2016.7800302.

Các file đính kèm theo tài liệu này:

  • pdfnghien_cuu_so_bo_ve_xay_dung_chuong_trinh_giang_day_cong_ngh.pdf
Tài liệu liên quan