<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="en">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">Applying Software Engineering to Teach Online Project-Based Software Engineering Courses</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Minh</forename><surname>Duc</surname></persName>
							<affiliation key="aff0">
								<orgName type="department" key="dep1">Department of Information Technology</orgName>
								<orgName type="department" key="dep2">Swinburne Vietnam</orgName>
								<orgName type="institution">FPT University</orgName>
							</affiliation>
						</author>
						<author>
							<persName><surname>Le</surname></persName>
							<affiliation key="aff0">
								<orgName type="department" key="dep1">Department of Information Technology</orgName>
								<orgName type="department" key="dep2">Swinburne Vietnam</orgName>
								<orgName type="institution">FPT University</orgName>
							</affiliation>
						</author>
						<title level="a" type="main">Applying Software Engineering to Teach Online Project-Based Software Engineering Courses</title>
					</analytic>
					<monogr>
						<idno type="ISSN">1613-0073</idno>
					</monogr>
					<idno type="MD5">00F71682BF5E7DCF2EC32FF8D93A17C8</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-23T22:26+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<textClass>
				<keywords>
					<term>educational technologies and tools</term>
					<term>software engineering method</term>
					<term>online teaching method (D. M. Le) 0000-0001-7654-1127 (D. M. Le)</term>
				</keywords>
			</textClass>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>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.</p></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1.">Introduction</head><p>Software engineering (SE) is challenging because it involves not only the state-of-the-art engineering principles but knowledge about human and organisational behaviours. Software development therefore requires a wide range of technical and social skillsets. The main challenges with SE education are to provide learners with not only the knowledge but an authentic context in which they can practice what they learn. Access to the latter has been particularly difficult under the recent Covid-19 crisis, because most of the human and organisational activities have been performed online.</p><p>Inspite of these, it is interesting to observe from recent studies <ref type="bibr" target="#b0">[1,</ref><ref type="bibr" target="#b1">2]</ref> how SE education can relatively easily be adapted to online teaching. It can be argued that the "non-physical" nature of SE <ref type="bibr" target="#b2">[3]</ref> helps make it more suitable for online technology adoption than other engineering disciplines. This of course should not be taken for granted and SE course designers need to proactively research and apply suitable methods, techniques and tools to prepare their courses for online technology adoption.</p><p>Of particular relevance to our work is projectbased SE (PBSE) course. A PBSE course uses a semesterwide project as a main teaching component. It is often used in advanced course levels to provide students with an opportunity to apply a software development process to solve real-world complex problems.</p><p>Teaching PBSE courses is hard because SE development itself is complex, broad and requires constant practice to master. In this paper, we discuss our proposal to apply SE to online PBSE courses. We define an instructional design model of PBSE course, which is supported by an iterative software development model. Software development practice is made more productive with the help of a software framework. We apply this course model in a recent PBSE course, which was taught in a hybrid mode (offline and online) to adapt to the frequent Covid-19 lockdowns in Hanoi, Vietnam. We reflect on some of the lessons learnt through this course, especially concerning the support relationship between software development cycle and the instructional design cycle of PBSE course and how this can be leveraged to improve the course design. The rest of the paper is structured as follows. Section 2 discusses the instructional design of online PBSE course. Section 3 presents a our experience report with a recent PBSE course. Section 4 concludes the paper. fashion". In this section, we discuss the instructional design model of an online PBSE course.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.1.">Pedagogical Approach</head><p>The underlying pedagogical theory of our design approach is constructivism <ref type="bibr" target="#b3">[4]</ref>. It is applied to PBSE as follows: (1-active) student's self-construction of a software that solves problems, (2-authentic) using authentic, real-world problem solving and (3-social) students collaboratively work on and manage software construction. In a PBSE course, students are constructivists who use various models to conceptualise, design and eventually write the software code in a target programming language. Models are particularly useful in earlier phases of the SE process, when the software concepts are still being shaped and potentially complex design rules need to be made precise in an incremental manner.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.2.">Iterative Instructional Design Model</head><p>In the popular instructional design model named ADDIE <ref type="bibr" target="#b3">[4]</ref>, the instructional design process is iterative and consists of 5 main phases: analyse, design, development, implement and evaluate. The analyse phase involves analysing the course requirements to determine the learning objectives. The design phase creates a detailed structure of the course, which includes the topics and their teaching sequence, and the assessment strategies. The develop phase consists in developing the materials for the defined topics and assessment items. The implementation phase concerns with the actual delivery of the course in a given teaching period. The evaluation phase involves carrying out the assessment items (both formative and summative) and, based on the results, reflect on whether the course has met its target objectives.</p><p>Through the lense of constructivism, we observed that in a PBSE the teacher's activities in two phases, namely develop and implement, involve defining only an overall framework and the core content. The remainder of the content are actually contributed by students, as they construct their software to solve problems. This observation led us to the instructional design model shown in Fig. <ref type="figure" target="#fig_0">1</ref>. The figure shows the instructional design submodel (IDM) (on the RHS) and an iterative software development submodel (SDM) (on the LHS). SDM <ref type="bibr" target="#b2">[3]</ref> consists of four main phases, which are performed iteratively to incrementally construct software prototypes. The arrows depict the relationships between the two submodels as well as the those between the components of SDM.</p><p>Arrow ① clearly shows how IDM guides SDM. The main actor of the IDM is teacher, while the main actors in SDM are students. Conversely, arrow ② shows how SDM provides student-constructed content for the two phases (develop and implement) of IDM. These phases are highlighted in the figure with a filled circle and are enclosed in an overlay filled oval. More than just the content, however, SDM provides SE techniques and tools that help perform the two phases more effectively. In particular, the figure highlights the use of version control system (VCS) and learning management system (LMS). In the develop phase, both the VCS and LMS are used by the teacher to author the contents needed for the course. In the implement phase, the softwarerelated deliverables are distributed and shared on the VCS, while other course contents are delivered though the LMS.</p><p>Within the SDM, arrow (A) shows the role of a software framework in helping to carry out the SDM's phases more effectively. Software framework <ref type="bibr" target="#b2">[3]</ref> helps make more informed and practical decisions about the structure of the software models that are created. Equipped with software generation capabilities, framework can help build software considerably faster. Arrow (B) represents the use of LMS to manage the delivery of the contents related to the SDM. Some LMSes provide plugins that support the execution of source code and provide feedbacks. More generally, LMS is used as a shared system for course delivery. Arrow (C) illustrates the integration between LMS and VCS. Arrow (D) depicts the various outputs that are produced by students when they perform activities in the SDM. Among the outputs include software source code as well as other artefacts (e.g. requirement definition and design documents).</p><p>As shown in Fig. <ref type="figure" target="#fig_0">1</ref>, both IDM and SDM are iteratively performed but with their own cycles. An SDM's cycle typically consists in several development iterations, which are defined in the course's teaching plan and performed by the students to carry out their software projects. An IDM's cycle occurs per one course delivery, at the conclusion of which the course design is revised and improved for the next delivery.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.3.">Learning Objectives</head><p>Based on the IDM of PBSE course presented above, we define the following learning objectives for the course:</p><p>LO1. Study a software framework for developing software.</p><p>LO2. Investigate and define a real-world problem.</p><p>LO3. Apply an iterative software development method to plan, analyse, design, implement, and test a software solution for a defined problem.</p><p>LO4. Apply the software framework with the chosen method to develop software in a group project.</p><p>LO5. Apply a distributed VCS system to collaboratively work on and manage a software project.</p><p>The above objectives are defined in a manner that is not dependent on the technological platforms or programming languages used to implement the software. They are thus can be used as a guide to define objectives for PBSE courses at different levels. For lower-level courses, more specific objectives would be added to narrow the scope, focusing on a certain language or platform. For more advanced courses, the objectives can be used as such to provide an open scope for students to learn how to make technological decisions.</p><p>Objective LO1 should be carried out first in the course in order to learn the software framework that will be used for software development in the project. The choice of framework depends on the software development state-of-the-art and on the suitability to the software development method. The remaining objectives aim to execute the SDM with the help of the software framework in group project. Most of the learning activities are performed outside class in order to prepare for the class activities. For studying the framework, a coursebook 1 should made available. There are typically no formal lectures 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.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.4.">Learning Activities</head><p>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.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.5.">Software Framework</head><p>It is a common practice to use a software framework in order to develop software faster. The productivity improvement is particularly higher in complex software, where similar design structures can be repeatedly applied to create different parts of the software. As shown in Fig. <ref type="figure" target="#fig_0">1</ref>, we propose to use a software framework in order to help students practise and carry out software development more effectively.</p><p>It is essential that the software framework supports not only the design modelling decisions but also those that are made earlier in modelling the domain concepts. Frameworks that implement the domain-driven design (DDD) philosophy are particularly suited for this purpose. In DDD <ref type="bibr" target="#b4">[5,</ref><ref type="bibr" target="#b5">6]</ref>, domain models are treated as the "heart" of software. DDD software frameworks (such as <ref type="bibr" target="#b6">[7,</ref><ref type="bibr" target="#b7">8,</ref><ref type="bibr" target="#b8">9]</ref>), thus, have an important benefit of supporting domain modelling natively in a target programming language. We will discuss in Section 3 an example software framework, named jDomainApp <ref type="bibr" target="#b8">[9]</ref>, and how is used in a PBSE course delivery.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.6.">Integrating LMS with VCS for PBSE</head><p>It is essential for the LMS of a PBSE course to have some level of integration with the VCS. At the minimum, the integration should allow students to have the same identities when they login to use both systems. For example, Google Classroom<ref type="foot" target="#foot_2">2</ref> and Meeting<ref type="foot" target="#foot_3">3</ref> form an LMS, while GitHub classroom<ref type="foot" target="#foot_4">4</ref> is a VCS. It was reported in <ref type="bibr" target="#b9">[10]</ref> that GitHub classroom supports a feature that enables the import and synchronisation of the class roster with Google Classroom. This becomes a type of shared identity management service for both the LMS and VCS. We will show shortly in Section 3 how this feature is used in an online PBSE course. </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.">An Advanced PBSE Course at Hanoi University</head><p>In this section, we briefly discuss an implementation of the IDM defined in the previous section for an advanced PBSE course.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.1.">PBSE Course</head><p>The PBSE course, named Special Subject 2 (SS2), is part of the Software Engineering major of the 3-year Bachelor of IT program of the Faculty of IT (Hanoi University, Vietnam). It is an advanced software engineering course that was taught in the Spring-2021 semester (the second semester of the second year). The student class was named SS207 and had 26 students. All students had previously completed an introduction software engineering course. The course adopted Java as the programming language for software development.</p><p>In previous semesters, this course was conducted in the standard offline (face-to-face) mode. However, during the Spring-2021 semester, Hanoi was undergoing two successive Covid-19 lock-downs and so we had to switch between offline and online teachings twice in this semester. Fortunately, our previous experience with other Covid-19 lockdowns had helped us in our preparation for the course. In the preparation, we looked for suitable online plat- forms (including LMS and VCS) and implemented the course on these platforms. In the period of the semester where the course was delivered face-to-face, the platforms also proved valuable for students and their groups to perform the outside class activities and be ready for the in-class discussion.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.2.">LMS</head><p>The university adopted the Google Workspace for Education product suite<ref type="foot" target="#foot_5">5</ref> , which includes Google Classroom (Gclassroom) as the LMS and other utility tools (e.g. Meet) that support online classroom operations. Fig. <ref type="figure" target="#fig_2">2</ref> shows the Gclassroom's class roster of the student class SS207. Each student name is prefixed with the name of a course group (e.g. "CNTT−2C−18"), to which the student belongs and stays with the student throughout the program. For privacy reason, only the course group prefixes are shown in Fig. <ref type="figure" target="#fig_2">2</ref>, the student names are hidden.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.3.">VCS</head><p>We chose GitHub classroom as the VCS because it is based on GitHub -a popular distributed VCS -and that it supports Gclassroom integration. The integration is enabled via the class roster feature, such that students are identified on GitHub by their accounts on Gclassroom. The teacher divided students into groups and asked the group leaders to create their assignment groups in GitHub classroom when they join. Other group members simply chose the right group to join. All group members then had access to a GitHub group's workspace, which allows them to create shared repositories and manage projects. The LHS of Fig. <ref type="figure" target="#fig_3">3</ref> shows the GitHub Classroom's roster for class SS207. It was imported from the Gclassroom's roster shown in Fig. <ref type="figure" target="#fig_2">2</ref>. Again, for privacy reasons only the course group name prefixes are shown, the student names are hidden. The RHS of the figure shows 9 student groups that were created for the project assignment of the course. For administrative reasons, group G1 had to be divided into two smaller groups midway through the semester to create group G1A. The original and new groups each had 2 students. Other groups had 3 or 4 students.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.4.">jDomainApp Software Framework</head><p>The software framework used in the SS2 course is a custom-made Java software framework, named jDo-Figure <ref type="figure">4</ref>: 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. <ref type="figure" target="#fig_3">3</ref>.</p><p>mainApp, that we developed in previous work <ref type="bibr" target="#b10">[11,</ref><ref type="bibr" target="#b11">12,</ref><ref type="bibr" target="#b8">9]</ref>. We developed this framework to bring the DDD philosophy <ref type="bibr" target="#b4">[5]</ref> into teaching and as a testbed for new research ideas.</p><p>jDomainApp adopts the MVC software architecture <ref type="bibr" target="#b2">[3]</ref>  </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.5.">Lessons Learnt</head><p>In this section, we briefly reflect on some of the lessons learnt from our delivery of the SS2 course reported above. The first three lessons demonstrate a strong support relationship between SDM and IDM in a PBSE course and how the SDM leverage can further be explored to enhance the IDM of the course. Although the lessons' impacts would be stronger in the online mode, the lessons are helpful for improving the course design in general.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1.">Student performance and feedbacks after each</head><p>SDM's iteration in the software project provide a key input for the IDM's evaluate phase to assess (and, if needed, make adjustments to) the learning objectives and teaching plan.</p><p>2. LMS-VCS integration is essential for online PBSE course.</p><p>3. GitHub's repository statistics (such as project contributors <ref type="foot" target="#foot_6">6</ref> ) could be used to track and determine a student's code contribution (and individual mark) in the project.</p><p>4. Pre-recorded videos of code demonstration would be provided to students to complement the coursebook. This is reported in <ref type="bibr" target="#b12">[13]</ref> as being effective for SE courses.</p><p>5. Automation capability of software framework plays an important role in enhancing the students experience with the SDM. The automation scope needs to at least cover (1) domain modelling, (2) design model verification and (3) software testing (test case construction and testing automation). These are part of our on-going research with jDomainApp.</p><p>6. Project requirements would be made more challenging (and thus differentiate student groups) by including framework-related problems. These concern solutions that overcome existing limitations the framework.</p><p>7. Problem context authenticity would be enhanced with the use of the "live" clients, who provide actual user requirements for the software.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.">Conclusion</head><p>In this paper, we discussed a concrete instructional design model (IDM) of online PBSE course. The IDM is based on a well-founded instructional design model and is extended with an iterative software development model (SDM). SDM incorporates a software framework to help students practice software development more effectively through its software construction automation capabilities. Another key feature of the IDM is an LMS that supports the integration of a version control system. This system is needed for effective online and collaborative software artefact management. We discussed our experience in applying the IDM to an advanced PBSE course that was conducted during a recent Covid-19 lockdown in Hanoi, Vietnam. The lessons learnt point to a strong support relationship between the SDM and the IDM and that the SDM leverage should be explored further to improve the course. It is unfortutenate that, by the time that we wrote this paper the course students had moved on to other courses and we were not able to contact them for feedbacks. Our plan for future work, therefore, is to conduct a formal implementation of the IDM in a PBSE course and to obtain and analyse the student feedbacks about its effectiveness.</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head>Figure 1 :</head><label>1</label><figDesc>Figure 1: (RHS) An iterative instructional design model of online PBSE course (adapted from [4]), supported by (LHS) an iterative software development model.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head></head><label></label><figDesc>We categorise learning activities into two groups based on the scope: (I) inside class and (O) outside class: A1. (O) Study the relevant coursebook chapters about the software framework and VCS A2. (I) Collaboratively work on the chapter exercises about the framework and VCS A3. (O) Collaboratively research a real-world problem to solve A4. (O) Iteratively and collaboratively construct and manage software code and other deliverables using the distributed VCS A5. (I) Present project progress in weekly seminars to obtain feedbacks from peers and teacher A6. (O) Write technical documentation for the software. Reflect on what has been learnt.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_2"><head>Figure 2 :</head><label>2</label><figDesc>Figure 2: The Gclassroom's roster for class SS207. It is used to create and is synchronised with GitHub classroom roster shown in Fig. 3.</figDesc><graphic coords="4,302.87,85.49,217.33,204.56" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_3"><head>Figure 3 :</head><label>3</label><figDesc>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").</figDesc><graphic coords="5,355.52,84.79,146.66,229.52" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_4"><head></head><label></label><figDesc>and supports a module-based design. Each module is constructed as an MVC module that wraps around a domain class in the domain model. jDomainApp's automation capability allows students to focus on developing just the domain model. A basic GUI-based software (including a Swing UI and a database model) is generated and executed automatically. This helps significantly shorten the development cycle, freeing students from the burden of constructing a software from the domain model and, thus, allowing them to concentrate on designing and testing the model. Fig. 4 shows a screenshot of the Eclipse IDE that demonstrates how jDomainApp was used to write a domain class in a student code project. The domain class in question is named Delivery, which is part of a model describing a Hotel Management application domain. The code project was imported from the group's Git repository (listed at the bottom of the figure) and is presented on the "Package Explorer" tab. The Java code of the Delivery class shows the following three core Java annotations that are provided by the jDomainApp software framework: DAttr, DAssoc and DOpt. The former two annotations are used to describe an associative domain field, while the third annotation describes a domain operation.</figDesc></figure>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" xml:id="foot_0">Raiser &amp; Dempsey<ref type="bibr" target="#b3">[4]</ref> define instructional design as ". . . a system of procedures for developing education and training materials in a consistent and reliable</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="1" xml:id="foot_1">coursebook is either formally written or a collection of relevant technical online documentations.</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="2" xml:id="foot_2">https://classroom.google.com</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="3" xml:id="foot_3">https://meet.google.com</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="4" xml:id="foot_4">https://classroom.github.com</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="5" xml:id="foot_5">https://edu.google.com/products/ workspace-for-education</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="6" xml:id="foot_6">https://docs.github.com/en/repositories/ viewing-activity-and-data-for-your-repository/ viewing-a-projects-contributors</note>
		</body>
		<back>

			<div type="acknowledgement">
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Acknowledgment</head><p>The author would like to thank the Faculty of IT at Hanoi University for their support during the delivery of the SS2 course. The author wishes to thank all students of the SS207 class for their patience and active participation in the course, especially during the Covid-19 lockdown.</p></div>
			</div>

			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<analytic>
		<title level="a" type="main">Adapting Teaching of a Software Engineering Service Course Due to COVID-19</title>
		<author>
			<persName><forename type="first">T</forename><surname>Kanij</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Grundy</surname></persName>
		</author>
		<idno type="DOI">10.1109/CSEET49119.2020.9206204</idno>
	</analytic>
	<monogr>
		<title level="m">Proc. IEEE 32nd Conf on Software Engineering Education and Training (CSEE T)</title>
				<meeting>IEEE 32nd Conf on Software Engineering Education and Training (CSEE T)</meeting>
		<imprint>
			<date type="published" when="2020">2020</date>
			<biblScope unit="page" from="1" to="6" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<analytic>
		<title level="a" type="main">Online Delivery of Intensive Software Engineering Education during the COVID-19 Pandemic</title>
		<author>
			<persName><forename type="first">M</forename><surname>Barr</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><forename type="middle">W</forename><surname>Nabir</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Somerville</surname></persName>
		</author>
		<idno type="DOI">10.1109/CSEET49119.2020.9206196</idno>
	</analytic>
	<monogr>
		<title level="m">Proc. IEEE 32nd Conf on Software Engineering Education and Training (CSEE T)</title>
				<meeting>IEEE 32nd Conf on Software Engineering Education and Training (CSEE T)</meeting>
		<imprint>
			<date type="published" when="2020">2020</date>
			<biblScope unit="page" from="1" to="6" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<monogr>
		<title level="m" type="main">Software Engineering</title>
		<author>
			<persName><forename type="first">I</forename><surname>Sommerville</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2015">2015</date>
			<pubPlace>Pearson, Boston</pubPlace>
		</imprint>
	</monogr>
	<note>10th ed.</note>
</biblStruct>

<biblStruct xml:id="b3">
	<monogr>
		<author>
			<persName><forename type="first">R</forename><forename type="middle">A</forename><surname>Reiser</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">V</forename><surname>Dempsey</surname></persName>
		</author>
		<title level="m">Trends and Issues in Instructional Design and Technology</title>
				<imprint>
			<publisher>Pearson Education</publisher>
			<date type="published" when="2017">2017</date>
		</imprint>
	</monogr>
	<note>4th ed.</note>
</biblStruct>

<biblStruct xml:id="b4">
	<monogr>
		<title level="m" type="main">Domain-Driven Design: Tackling Complexity in the Heart of Software</title>
		<author>
			<persName><forename type="first">E</forename><surname>Evans</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2004">2004</date>
			<publisher>Addison-Wesley Professional</publisher>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<monogr>
		<author>
			<persName><forename type="first">S</forename><surname>Millett</surname></persName>
		</author>
		<author>
			<persName><forename type="first">N</forename><surname>Tune</surname></persName>
		</author>
		<title level="m">Patterns, Principles, and Practices of Domain-Driven Design</title>
				<imprint>
			<publisher>John Wiley &amp; Sons</publisher>
			<date type="published" when="2015">2015</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<monogr>
		<author>
			<persName><forename type="first">-</forename><forename type="middle">S</forename><surname>Apache</surname></persName>
		</author>
		<ptr target="http://isis.apache.org/" />
		<title level="m">Apache Isis</title>
				<imprint>
			<date type="published" when="2021">2021</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<monogr>
		<author>
			<persName><forename type="first">Javier</forename><surname>Paniza</surname></persName>
		</author>
		<ptr target="http://openxava.org/" />
		<title level="m">OpenXava</title>
				<imprint>
			<date type="published" when="2021">2021</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b8">
	<analytic>
		<title level="a" type="main">jDo-mainApp: A Module-Based Domain-Driven Software Framework</title>
		<author>
			<persName><forename type="first">D</forename><forename type="middle">M</forename><surname>Le</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D.-H</forename><surname>Dang</surname></persName>
		</author>
		<author>
			<persName><forename type="first">H</forename><forename type="middle">T</forename><surname>Vu</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. 10th Int. Symp. on Information and Communication Technology (SOICT)</title>
				<meeting>10th Int. Symp. on Information and Communication Technology (SOICT)</meeting>
		<imprint>
			<publisher>ACM</publisher>
			<date type="published" when="2019">2019</date>
			<biblScope unit="page" from="399" to="406" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b9">
	<monogr>
		<author>
			<persName><forename type="first">N</forename><surname>Woodthorpe</surname></persName>
		</author>
		<ptr target="https://github.blog/2019-08-13-use-github-classroom-with-your-own-tools/" />
		<title level="m">Use GitHub Classroom with Canvas, Google Classroom, or your own tools</title>
				<imprint>
			<date type="published" when="2019">2019</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b10">
	<analytic>
		<title level="a" type="main">On Domain Driven Design Using Annotation-Based Domain Specific Language</title>
		<author>
			<persName><forename type="first">D</forename><forename type="middle">M</forename><surname>Le</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D.-H</forename><surname>Dang</surname></persName>
		</author>
		<author>
			<persName><forename type="first">V.-H</forename><surname>Nguyen</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Computer Languages, Systems &amp; Structures</title>
		<imprint>
			<biblScope unit="volume">54</biblScope>
			<biblScope unit="page" from="199" to="235" />
			<date type="published" when="2018">2018</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b11">
	<analytic>
		<title level="a" type="main">Generative Software Module Development for Domain-Driven Design with Annotation-Based Domain Specific Language</title>
		<author>
			<persName><forename type="first">D</forename><forename type="middle">M</forename><surname>Le</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D.-H</forename><surname>Dang</surname></persName>
		</author>
		<author>
			<persName><forename type="first">V.-H</forename><surname>Nguyen</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Information and Software Technology</title>
		<imprint>
			<biblScope unit="volume">120</biblScope>
			<biblScope unit="page" from="106" to="239" />
			<date type="published" when="2020">2020</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b12">
	<analytic>
		<title level="a" type="main">Applying Inverted Classroom to Software Engineering Education</title>
		<author>
			<persName><forename type="first">E</forename><surname>Choi</surname></persName>
		</author>
		<idno type="DOI">10.7763/IJEEEE.2013.V3.205</idno>
	</analytic>
	<monogr>
		<title level="j">IJEEEE</title>
		<imprint>
			<biblScope unit="volume">3</biblScope>
			<date type="published" when="2013">2013</date>
		</imprint>
	</monogr>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
