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.
              
                                            
                                
            
 
            
                 14 trang
14 trang | 
Chia sẻ: Thục Anh | Lượt xem: 423 | Lượt tải: 0 
              
            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:
 nghien_cuu_so_bo_ve_xay_dung_chuong_trinh_giang_day_cong_ngh.pdf nghien_cuu_so_bo_ve_xay_dung_chuong_trinh_giang_day_cong_ngh.pdf