A Hybrid Design Methodology for an Introductory Software Engineering Course with Integrated Mobile Application Development
Vignesh Subbian, Carla Purdy · 2020
Abstract A Hybrid Design Methodology for an Introductory Software Engineering Course with Integrated Mobile Application DevelopmentAbstract: This paper discusses an experimental version of a core undergraduate softwareengineering course at the University of _______ (U__). EECE 3XXXC – Software Engineeringis a 4-credit hour undergraduate course with an integrated laboratory component. It is a requiredcourse for all computer science and computer engineering students. Traditionally, this courseconsisted of in-class lectures, and laboratory projects that required students to develop softwarefor a serious game based on a discrete-event simulation model using Java. The course designprocess was built on the waterfall model, integrated with important concepts from extremeprogramming (XP), including test-driven development using three levels of design and testing(system, black box, and glass box) and an onsite customer. When U__ recently converted theiracademic calendar from quarters (10 weeks) to semesters (15 weeks), the additional instructiontime provided an opportunity to revisit and expand the design process model of the course. Inaddition to the existing features of the course that allow effective instruction in contemporarysoftware engineering principles, the experimental version of the course incorporated thefollowing variations:1. the laboratory project now involves open-source mobile application development;2. the hybrid design methodology (waterfall and XP) is further explored by incorporating two or more development cycles into the project, while additional classroom activities furthers understanding of connections between the development process and application needs;3. five active-learning sessions are included to enable reflection on past co-operative education or internship experiences and relate them to classroom learning. The objective of this novel pedagogical strategy, which we call UnLecture, is to bridge the gap between software engineering practice and computing education.This experimental version of the course was offered during the summer 2013 semester. Thispaper will describe course design, pedagogical methods, and assessment results from thisoffering of the course. The course design provides simple solutions to effectively integrate thehybrid design methodology, mobile application development, and active learning techniques. Itis anticipated that this work will be especially useful for first time course developers and/orinstructors interested in migrating from general-purpose/web application based softwareengineering courses to mobile application-based courses. Furthermore, the paper will address thefollowing aspects from a classroom instruction perspective: (1) the importance of structureddesign and requirements analysis in building secure and reliable software systems, (2) thebenefits and pitfalls of using XP in a classroom setting, and (3) the need to introduce conceptsimportant for secure and safety-critical systems into introductory software engineering courses.