=Paper=
{{Paper
|id=Vol-3062/paper05
|storemode=property
|title=Applying Software Engineering to Teach Online Project-Based Software Engineering Courses
|pdfUrl=https://ceur-ws.org/Vol-3062/Paper05_SEED.pdf
|volume=Vol-3062
|authors=Duc Minh Le
|dblpUrl=https://dblp.org/rec/conf/apsec/Le21
}}
==Applying Software Engineering to Teach Online Project-Based Software Engineering Courses==
Applying Software Engineering to Teach
Online Project-Based Software Engineering Courses
Duc Minh Le
Department of Information Technology, Swinburne Vietnam, FPT University
Abstract
Software engineering (SE) courses are facing increased challenges from emerging online learning platforms.
Teaching project-based SE (PBSE), however, remains complex because SE development itself is complex,
broad and requires constant practice to master. In this work, we propose to apply SE to teach online PBSE
courses. We present the instructional design model of PBSE course, which revolves around an iterative
software development model that uses a software framework to help students practise software development.
We discuss our experience in applying the course model to a recent PBSE course. The course was delivered in
a hybrid mode in order to adapt to the frequent Covid-19 lockdowns in Hanoi, Vietnam. The course uses
an integrated LMS consisting of the Google and GitHub classroom platforms. The former helps manage the
student class and teaching materials, the latter helps students learn to collaboratively work on and manage a
software project online.
Keywords
educational technologies and tools, software engineering method, online teaching method
1. Introduction semesterwide project as a main teaching component.
It is often used in advanced course levels to provide
Software engineering (SE) is challenging because it students with an opportunity to apply a software
involves not only the state-of-the-art engineering development process to solve real-world complex
principles but knowledge about human and organ- problems.
isational behaviours. Software development there- Teaching PBSE courses is hard because SE devel-
fore requires a wide range of technical and social opment itself is complex, broad and requires con-
skillsets. The main challenges with SE education stant practice to master. In this paper, we discuss
are to provide learners with not only the knowledge our proposal to apply SE to online PBSE courses.
but an authentic context in which they can prac- We define an instructional design model of PBSE
tice what they learn. Access to the latter has been course, which is supported by an iterative software
particularly difficult under the recent Covid-19 cri- development model. Software development practice
sis, because most of the human and organisational is made more productive with the help of a software
activities have been performed online. framework. We apply this course model in a recent
Inspite of these, it is interesting to observe from PBSE course, which was taught in a hybrid mode
recent studies [1, 2] how SE education can relatively (offline and online) to adapt to the frequent Covid-
easily be adapted to online teaching. It can be 19 lockdowns in Hanoi, Vietnam. We reflect on
argued that the “non-physical” nature of SE [3] some of the lessons learnt through this course, espe-
helps make it more suitable for online technology cially concerning the support relationship between
adoption than other engineering disciplines. This software development cycle and the instructional
of course should not be taken for granted and SE design cycle of PBSE course and how this can be
course designers need to proactively research and leveraged to improve the course design. The rest
apply suitable methods, techniques and tools to of the paper is structured as follows. Section 2
prepare their courses for online technology adoption. discusses the instructional design of online PBSE
Of particular relevance to our work is project- course. Section 3 presents a our experience report
based SE (PBSE) course. A PBSE course uses a with a recent PBSE course. Section 4 concludes the
paper.
Proceedings of 4th Software Engineering Education
Workshop (SEED 2021) co-located with APSEC 2021,
06-Dec, 2021, Taipei, Taiwan
duclm20@fe.edu.vn (D. M. Le) 2. Instructional Design
0000-0001-7654-1127 (D. M. Le)
© 2021 Copyright for this paper by its authors. Use
permitted under Creative Commons License Attribu-
Raiser & Dempsey [4] define instructional design as
tion 4.0 International (CC BY 4.0). “. . . a system of procedures for developing education
CEUR Workshop Proceedings (CEUR-
and training materials in a consistent and reliable
CEUR
http://ceur-ws.org
Workshop ISSN 1613-0073
Proceedings
WS.org)
30
Figure 1: (RHS) An iterative instructional design model of online PBSE course (adapted from [4]), supported by
(LHS) an iterative software development model.
fashion”. In this section, we discuss the instructional topics and assessment items. The implementation
design model of an online PBSE course. phase concerns with the actual delivery of the course
in a given teaching period. The evaluation phase
2.1. Pedagogical Approach involves carrying out the assessment items (both for-
mative and summative) and, based on the results,
The underlying pedagogical theory of our design ap- reflect on whether the course has met its target
proach is constructivism [4]. It is applied to PBSE objectives.
as follows: (1-active) student’s self-construction of Through the lense of constructivism, we observed
a software that solves problems, (2-authentic) using that in a PBSE the teacher’s activities in two phases,
authentic, real-world problem solving and (3-social) namely develop and implement, involve defining
students collaboratively work on and manage soft- only an overall framework and the core content. The
ware construction. In a PBSE course, students are remainder of the content are actually contributed by
constructivists who use various models to concep- students, as they construct their software to solve
tualise, design and eventually write the software problems. This observation led us to the instruc-
code in a target programming language. Models tional design model shown in Fig. 1. The figure
are particularly useful in earlier phases of the SE shows the instructional design submodel (IDM) (on
process, when the software concepts are still being the RHS) and an iterative software development
shaped and potentially complex design rules need submodel (SDM) (on the LHS). SDM [3] consists of
to be made precise in an incremental manner. four main phases, which are performed iteratively to
incrementally construct software prototypes. The
2.2. Iterative Instructional Design Model arrows depict the relationships between the two sub-
models as well as the those between the components
In the popular instructional design model named of SDM.
ADDIE [4], the instructional design process is itera- Arrow ① clearly shows how IDM guides SDM. The
tive and consists of 5 main phases: analyse, design, main actor of the IDM is teacher, while the main
development, implement and evaluate. The analyse actors in SDM are students. Conversely, arrow ②
phase involves analysing the course requirements to shows how SDM provides student-constructed con-
determine the learning objectives. The design phase tent for the two phases (develop and implement) of
creates a detailed structure of the course, which in- IDM. These phases are highlighted in the figure with
cludes the topics and their teaching sequence, and a filled circle and are enclosed in an overlay filled
the assessment strategies. The develop phase con- oval. More than just the content, however, SDM
sists in developing the materials for the defined
31
provides SE techniques and tools that help perform LO4. Apply the software framework with the cho-
the two phases more effectively. In particular, the sen method to develop software in a group
figure highlights the use of version control system project.
(VCS) and learning management system (LMS). In
the develop phase, both the VCS and LMS are used LO5. Apply a distributed VCS system to collab-
by the teacher to author the contents needed for oratively work on and manage a software
the course. In the implement phase, the software- project.
related deliverables are distributed and shared on The above objectives are defined in a manner that
the VCS, while other course contents are delivered is not dependent on the technological platforms or
though the LMS. programming languages used to implement the soft-
Within the SDM, arrow (A) shows the role of ware. They are thus can be used as a guide to
a software framework in helping to carry out the define objectives for PBSE courses at different lev-
SDM’s phases more effectively. Software frame- els. For lower-level courses, more specific objectives
work [3] helps make more informed and practical would be added to narrow the scope, focusing on a
decisions about the structure of the software models certain language or platform. For more advanced
that are created. Equipped with software genera- courses, the objectives can be used as such to pro-
tion capabilities, framework can help build software vide an open scope for students to learn how to
considerably faster. Arrow (B) represents the use make technological decisions.
of LMS to manage the delivery of the contents re- Objective LO1 should be carried out first in the
lated to the SDM. Some LMSes provide plugins that course in order to learn the software framework that
support the execution of source code and provide will be used for software development in the project.
feedbacks. More generally, LMS is used as a shared The choice of framework depends on the software
system for course delivery. Arrow (C) illustrates development state-of-the-art and on the suitability
the integration between LMS and VCS. Arrow (D) to the software development method. The remain-
depicts the various outputs that are produced by ing objectives aim to execute the SDM with the
students when they perform activities in the SDM. help of the software framework in group project.
Among the outputs include software source code as
well as other artefacts (e.g. requirement definition
and design documents). 2.4. Learning Activities
As shown in Fig. 1, both IDM and SDM are it- We categorise learning activities into two groups
eratively performed but with their own cycles. An based on the scope: (I) inside class and (O) outside
SDM’s cycle typically consists in several develop- class:
ment iterations, which are defined in the course’s
teaching plan and performed by the students to A1. (O) Study the relevant coursebook chapters
carry out their software projects. An IDM’s cycle about the software framework and VCS
occurs per one course delivery, at the conclusion of
A2. (I) Collaboratively work on the chapter exer-
which the course design is revised and improved for
cises about the framework and VCS
the next delivery.
A3. (O) Collaboratively research a real-world prob-
2.3. Learning Objectives lem to solve
Based on the IDM of PBSE course presented above, A4. (O) Iteratively and collaboratively construct
we define the following learning objectives for the and manage software code and other deliver-
course: ables using the distributed VCS
LO1. Study a software framework for developing A5. (I) Present project progress in weekly seminars
software. to obtain feedbacks from peers and teacher
LO2. Investigate and define a real-world problem. A6. (O) Write technical documentation for the soft-
ware. Reflect on what has been learnt.
LO3. Apply an iterative software development
method to plan, analyse, design, implement, Most of the learning activities are performed out-
and test a software solution for a defined side class in order to prepare for the class activities.
problem. For studying the framework, a coursebook 1 should
1
coursebook is either formally written or a collection of
relevant technical online documentations.
32
made available. There are typically no formal lec-
tures in the course. Instead, in-class activities are
designed to help student groups perform hands-on
work on software development and for them to get
feedbacks from peers and the teacher.
We observe that all of these activities can be
conducted online via the LMS and a suitable VCS.
Software development activities are carried out in
an IDE (e.g. Eclipse, NetBeans, IntelliJ, etc.) and
the deliverables are stored directly into the VCS.
2.5. Software Framework
It is a common practice to use a software framework
in order to develop software faster. The productivity
improvement is particularly higher in complex soft-
ware, where similar design structures can be repeat-
edly applied to create different parts of the software.
As shown in Fig. 1, we propose to use a software
framework in order to help students practise and
carry out software development more effectively. Figure 2: The Gclassroom’s roster for class SS207. It
It is essential that the software framework sup- is used to create and is synchronised with the GitHub
ports not only the design modelling decisions but classroom roster shown in Fig. 3.
also those that are made earlier in modelling the
domain concepts. Frameworks that implement the
domain-driven design (DDD) philosophy are par-
ticularly suited for this purpose. In DDD [5, 6],
3. An Advanced PBSE Course at
domain models are treated as the “heart” of soft- Hanoi University
ware. DDD software frameworks (such as [7, 8, 9]),
thus, have an important benefit of supporting do- In this section, we briefly discuss an implementation
main modelling natively in a target programming of the IDM defined in the previous section for an
language. We will discuss in Section 3 an example advanced PBSE course.
software framework, named jDomainApp [9], and
how is used in a PBSE course delivery. 3.1. PBSE Course
The PBSE course, named Special Subject 2 (SS2), is
2.6. Integrating LMS with VCS for part of the Software Engineering major of the 3-year
PBSE Bachelor of IT program of the Faculty of IT (Hanoi
University, Vietnam). It is an advanced software
It is essential for the LMS of a PBSE course to
engineering course that was taught in the Spring-
have some level of integration with the VCS. At
2021 semester (the second semester of the second
the minimum, the integration should allow students
year). The student class was named SS207 and had
to have the same identities when they login to use
26 students. All students had previously completed
both systems.
2 3 an introduction software engineering course. The
For example, Google Classroom and Meeting
4 course adopted Java as the programming language
form an LMS, while GitHub classroom is a VCS. It
for software development.
was reported in [10] that GitHub classroom supports
In previous semesters, this course was conducted
a feature that enables the import and synchroni-
in the standard offline (face-to-face) mode. How-
sation of the class roster with Google Classroom.
ever, during the Spring-2021 semester, Hanoi was
This becomes a type of shared identity management
undergoing two successive Covid-19 lock-downs and
service for both the LMS and VCS. We will show
so we had to switch between offline and online teach-
shortly in Section 3 how this feature is used in an
ings twice in this semester. Fortunately, our previ-
online PBSE course.
ous experience with other Covid-19 lockdowns had
2
https://classroom.google.com helped us in our preparation for the course. In
3
https://meet.google.com the preparation, we looked for suitable online plat-
4
https://classroom.github.com
33
Figure 3: GitHub classroom setup: (1-LHS) the class roster (synched with Google classroom), (2-RHS) student
project groups. The GitHub repository of each group (e.g. “project−ss207−g6”) is named after the assignment
name (“Project”) and the group name (“SS207−G6”).
forms (including LMS and VCS) and implemented and that it supports Gclassroom integration. The
the course on these platforms. In the period of the integration is enabled via the class roster feature,
semester where the course was delivered face-to-face,
such that students are identified on GitHub by their
the platforms also proved valuable for students and accounts on Gclassroom. The teacher divided stu-
their groups to perform the outside class activitiesdents into groups and asked the group leaders to
and be ready for the in-class discussion. create their assignment groups in GitHub classroom
when they join. Other group members simply chose
3.2. LMS the right group to join. All group members then
had access to a GitHub group’s workspace, which
The university adopted the Google Workspace for allows them to create shared repositories and man-
Education product suite5 , which includes Google age projects. The LHS of Fig. 3 shows the GitHub
Classroom (Gclassroom) as the LMS and other util- Classroom’s roster for class SS207. It was imported
ity tools (e.g. Meet) that support online classroom from the Gclassroom’s roster shown in Fig. 2. Again,
operations. Fig. 2 shows the Gclassroom’s class for privacy reasons only the course group name pre-
roster of the student class SS207. Each student fixes are shown, the student names are hidden. The
name is prefixed with the name of a course group RHS of the figure shows 9 student groups that were
(e.g. “CNTT−2C−18”), to which the student belongs created for the project assignment of the course.
and stays with the student throughout the program. For administrative reasons, group G1 had to be
For privacy reason, only the course group prefixes divided into two smaller groups midway through
are shown in Fig. 2, the student names are hidden. the semester to create group G1A. The original and
new groups each had 2 students. Other groups had
3.3. VCS 3 or 4 students.
We chose GitHub classroom as the VCS because it
is based on GitHub – a popular distributed VCS –
3.4. jDomainApp Software Framework
The software framework used in the SS2 course is a
5
https://edu.google.com/products/ custom-made Java software framework, named jDo-
workspace-for-education
34
Figure 4: Developing a software using jDomainApp and the Eclipse IDE: the Git repository name of each student
group (e.g. “project−ss207−g6” highlighted in the “Git Repositories” tab) matches the group name shown in
Fig. 3.
mainApp, that we developed in previous work [11, three core Java annotations that are provided by the
12, 9]. We developed this framework to bring the jDomainApp software framework: DAttr, DAssoc
DDD philosophy [5] into teaching and as a testbed and DOpt. The former two annotations are used to
for new research ideas. describe an associative domain field, while the third
jDomainApp adopts the MVC software architec- annotation describes a domain operation.
ture [3] and supports a module-based design. Each
module is constructed as an MVC module that 3.5. Lessons Learnt
wraps around a domain class in the domain model.
jDomainApp’s automation capability allows stu- In this section, we briefly reflect on some of the
dents to focus on developing just the domain model. lessons learnt from our delivery of the SS2 course
A basic GUI-based software (including a Swing UI reported above. The first three lessons demonstrate
and a database model) is generated and executed a strong support relationship between SDM and
automatically. This helps significantly shorten the IDM in a PBSE course and how the SDM leverage
development cycle, freeing students from the bur- can further be explored to enhance the IDM of the
den of constructing a software from the domain course. Although the lessons’ impacts would be
model and, thus, allowing them to concentrate on stronger in the online mode, the lessons are helpful
designing and testing the model. Fig. 4 shows a for improving the course design in general.
screenshot of the Eclipse IDE that demonstrates
1. Student performance and feedbacks after each
how jDomainApp was used to write a domain class
SDM’s iteration in the software project provide
in a student code project. The domain class in ques-
a key input for the IDM’s evaluate phase to
tion is named Delivery, which is part of a model
assess (and, if needed, make adjustments to) the
describing a Hotel Management application domain.
learning objectives and teaching plan.
The code project was imported from the group’s Git
repository (listed at the bottom of the figure) and 2. LMS-VCS integration is essential for online
is presented on the “Package Explorer” tab. The PBSE course.
Java code of the Delivery class shows the following
3. GitHub’s repository statistics (such as project
35
contributors6 ) could be used to track and deter- them for feedbacks. Our plan for future work, there-
mine a student’s code contribution (and individ- fore, is to conduct a formal implementation of the
ual mark) in the project. IDM in a PBSE course and to obtain and analyse
the student feedbacks about its effectiveness.
4. Pre-recorded videos of code demonstration
would be provided to students to complement
the coursebook. This is reported in [13] as being Acknowledgment
effective for SE courses.
The author would like to thank the Faculty of IT at
5. Automation capability of software framework Hanoi University for their support during the deliv-
plays an important role in enhancing the stu- ery of the SS2 course. The author wishes to thank
dents experience with the SDM. The automa- all students of the SS207 class for their patience and
tion scope needs to at least cover (1) domain active participation in the course, especially during
modelling, (2) design model verification and (3) the Covid-19 lockdown.
software testing (test case construction and test-
ing automation). These are part of our on-going
research with jDomainApp. References
6. Project requirements would be made more chal- [1] T. Kanij, J. Grundy, Adapting Teaching of
lenging (and thus differentiate student groups) a Software Engineering Service Course Due
by including framework-related problems. These to COVID-19, in: Proc. IEEE 32nd Conf
concern solutions that overcome existing limita- on Software Engineering Education and Train-
tions the framework. ing (CSEE T), 2020, pp. 1–6. doi:10.1109/
CSEET49119.2020.9206204, iSSN: 2377-570X.
7. Problem context authenticity would be en- [2] M. Barr, S. W. Nabir, D. Somerville, Online
hanced with the use of the “live” clients, who Delivery of Intensive Software Engineering Ed-
provide actual user requirements for the soft- ucation during the COVID-19 Pandemic, in:
ware. Proc. IEEE 32nd Conf on Software Engineering
Education and Training (CSEE T), 2020, pp.
4. Conclusion 1–6. doi:10.1109/CSEET49119.2020.9206196,
iSSN: 2377-570X.
In this paper, we discussed a concrete instructional [3] I. Sommerville, Software Engineering, 10th ed.,
design model (IDM) of online PBSE course. The Pearson, Boston, 2015.
IDM is based on a well-founded instructional design [4] R. A. Reiser, J. V. Dempsey, Trends and Issues
model and is extended with an iterative software in Instructional Design and Technology, 4th
development model (SDM). SDM incorporates a ed., Pearson Education, 2017.
software framework to help students practice soft- [5] E. Evans, Domain-Driven Design: Tackling
ware development more effectively through its soft- Complexity in the Heart of Software, Addison-
ware construction automation capabilities. Another Wesley Professional, 2004.
key feature of the IDM is an LMS that supports [6] S. Millett, N. Tune, Patterns, Principles, and
the integration of a version control system. This Practices of Domain-Driven Design, John Wi-
system is needed for effective online and collabora- ley & Sons, 2015.
tive software artefact management. We discussed [7] Apache-S.F, Apache Isis, 2021. URL: http://
our experience in applying the IDM to an advanced isis.apache.org/.
PBSE course that was conducted during a recent [8] Javier Paniza, OpenXava, 2021. URL: http:
Covid-19 lockdown in Hanoi, Vietnam. The lessons //openxava.org/.
learnt point to a strong support relationship be- [9] D. M. Le, D.-H. Dang, H. T. Vu, jDo-
tween the SDM and the IDM and that the SDM mainApp: A Module-Based Domain-Driven
leverage should be explored further to improve the Software Framework, in: Proc. 10th Int. Symp.
course. It is unfortutenate that, by the time that on Information and Communication Technol-
we wrote this paper the course students had moved ogy (SOICT), ACM, 2019, pp. 399–406.
on to other courses and we were not able to contact [10] N. Woodthorpe, Use GitHub Classroom
with Canvas, Google Classroom, or your
6 own tools, 2019. URL: https://github.blog/
https://docs.github.com/en/repositories/
viewing-activity-and-data-for-your-repository/ 2019-08-13-use-github-classroom-with-your-own-tools/.
viewing-a-projects-contributors
36
[11] D. M. Le, D.-H. Dang, V.-H. Nguyen, On Do-
main Driven Design Using Annotation-Based
Domain Specific Language, Computer Lan-
guages, Systems & Structures 54 (2018) 199–
235.
[12] D. M. Le, D.-H. Dang, V.-H. Nguyen, Genera-
tive Software Module Development for Domain-
Driven Design with Annotation-Based Domain
Specific Language, Information and Software
Technology 120 (2020) 106–239.
[13] E. Choi, Applying Inverted Classroom to Soft-
ware Engineering Education, IJEEEE 3 (2013).
doi:10.7763/IJEEEE.2013.V3.205.
37