Introducing Requirements Engineering In An Undergraduate Software Engineering Curriculum: Lessons Learned

Deepti Suri · 2020

Requirements Engineering (RE) is the process of determining, analyzing, documenting, validating and maintaining the services and constraints of the systems that needs to be designed.Research indicates that on a typical software project, the percentage of time spent on RE and Design, Implementation, and Testing are 40%, 20% and 40% respectively, whereas for successful projects these numbers are 60, 15 and 25%.Because of the high importance of RE in the design of software systems, the need to introduce RE as a required course in the undergraduate Software Engineering (SE) and Computer Science (CS) curricula is getting more attention.This paper summarizes the author's experiences in developing and teaching a RE course to juniors in the new Software Engineering degree program offered at Milwaukee School of Engineering (MSOE).One of the major issues holding back broad acceptance of RE in the software industry today is the widespread belief that major effort in software development lies in programming and testing.Our students have similar perceptions and beliefs and like some seasoned practitioners, are more interested in "how" to solve problems instead of discovering "what" to solve, i.e. gathering the requirements.This paper details how working on "real" industrial projects with external clients for the first time in unfamiliar domains, spending an entire term writing documents (instead of programming), being cognizant of ethical issues, and having to deal with ambiguous and conflicting customer requirements made this course very different and challenging for students.The challenges faced by the instructor in developing and teaching this course are also summarized.

Read the paper · More papers on PaperTik