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 |
Chia sẻ: Thục Anh | Ngày: 19/05/2022 | Lượt xem: 279 | 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