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