On a pursuit for perfecting an undergraduate requirements engineering course
Introduction
It is well-known that engineering of requirements is not a simple task. To prepare students for a successful software engineering career, requirements engineering is strongly emphasized in the Rose-Hulman Institute of Technology curriculum. This paper describes the development of a junior year course in Requirements Engineering, a course which is mandatory for both Computer Science (CS) and Software Engineering (SE) majors.
The need of such a course is supported by the philosophy of impedance matching undergraduate student learning with their entry and exit points. Most in the field agree that incoming students do better if they recognize college as an extension of their learning in high school. Similarly, most CS programs offer a capstone course in the senior year to ease students’ entry into professional life after graduation. Engineering schools try to maximize job fit at graduation. While there are additional program goals, like inspiring students to pursue engineering work, and improving professional practices via delivering students with new capabilities, the systems concept of matching students as inputs and outputs continues to have face validity in curriculum decisions. At Rose-Hulman, 90% of CS and SE majors go straight into software development work, so preparation for this career is the prime mission.
Leaders in the software industry sport slogans like, “We hire for technical skills but promote for people skills.” Indeed, recruiting organizations may hire for the former largely because differences there are easier to detect in interviews. Computer science departments, in contrast, are clearly prejudiced against the value of “soft skills,” often relegating all teaching of these to humanities departments. This bias is passed along to students, who tend to acquire a sense that only technical abilities have inherent significance.
At Rose-Hulman, courses in the CS and SE majors are experiential, and students believe they “know something” when they can do it. Thus, when the Requirements Engineering course was invented, students had to do work which simulated real world settings. This course has been updated, from 2003 onward, to reflect both the experiences from teaching the subject and the research support for courses of this type. For example, research support provided the emphasis placed on the recommendations of Macaulay and Mylopoulos, that requirements be seen to be conflicting and changeable, and that justification and traceability be insisted upon as arbiters (Macaulay and Mylopoulos, 1995). In Section 2, current research in requirements education is summarized.
Table 1 highlights the stages of the course’s development. During different eras, the course alternated between having students tackle larger or smaller requirements elicitation projects. The crucial dimension of “where the client came from” also varied over time. For example, in 2015 students were allowed to form their own companies and be entrepreneurs, quite a distance from having instructors or actors role-play the client, or from using real clients who wanted a real project done. In 2011–2014 the “Integrated” team formation had entire classes of 20 or more working on the same project, divided into sub-teams.
Section 3 describes the thought that went into each of these varying approaches. The section describes the basic pedagogical mechanisms and the pros and cons of the outcomes. Section 4 describes the evolution of assessment in the course. Section 5 evaluates data collected at the time the classes were taught. Section 6 revisits the validity of the results, and Section 7 concludes the paper.
Section snippets
Related work
This section describes studies backing the current format of the authors’ RE course (“the RE course”), studies in support of earlier versions of the course, and studies showing approaches of others in teaching RE.
Teaching approaches
This section discusses the evolution of the course and different teaching approaches. Table 2 summarizes the pros and cons of the approaches.
Assessment
This section describes how student assessment work evolved over the years. In the early years of the course, rubric-based grading was applied. As the burden of creating relevant rubrics for new types of assignments grew, it moved to a points-based, no-zero grading policy. An attempt was then made to address problems with each method of grading by piloting Nilson’s ”specifications-based grading” (Nilson and Stranny, 2014) in the most recent version of the course.
Evaluation
To open this discussion, it is necessary that one must be bold enough to try different flavors of a course, which might have different advantages and disadvantages, in order to have alternatives whose results one can compare. One must also persist in including assessment material, so that each progressive change can serve as a baseline for the next.
Two forms of course assessment were conducted, of the various versions of the requirements engineering course. The first form of assessment was
Threats to validity
One of the threats to validity is the viability of student journaling, the process used as a setup for student evaluations at the end of the course. In theory, recording at the time is much preferred to relying on recollections. However, in the world today, any blogging-type activity also puts students into the same “set” in which they do social media commentary. This cannot be ignored as a cause of what is seen in the results. Even if students are provided with guidance and training, the
Conclusion
At this point in the evolution of the course, it is tempting to conclude that realistic, problem-based learning approaches for a first course in requirements, present difficult situations for both students and instructors. Instructors have opted, instead, for a scripted course for which the challenges can be still strong but better controlled.
Instructors are pleased with the recent adoption of a flipped classroom in this course. Here, the format motivates students to study material on their
Chandan Rupakheti is an Associate Professor in the Computer Science and Software Engineering department at Rose-Hulman Institute of Technology. Chandan’s teaching and research interests lie in areas of Software Engineering such as Program Analysis, Software Architecture and Design, and DevOps. Chandan is also a practicing architect and does consulting works for industries in Indianapolis and Chicago areas. At Rose-Hulman, Chandan has worked extensively in revamping Software Engineering courses
References (56)
- et al.
Requirements engineering: making the connection between the software developer and customer
Inf. Softw. Technol.
(2000) - et al.
Supporting quantitative reasoning of non-functional requirements: a process-oriented approach
Proceedings of the ICSSP
(2012) - et al.
Software Architecture in Practice
(2012) Impact of organizational structure on distributed requirements engineering processes: lessons learned
Proceedings of the GSD
(2006)- et al.
Software requirements negotiation: some lessons learned
Proceedings of the ICSE
(1998) - et al.
Teaching requirements engineering to an unsuspecting audience
SIGCSE Bull.
(2006) - et al.
Sysml-based requirement modeling environment for multicore embedded system
Proceedings of the SAC
(2010) - et al.
Applying customer development for software requirements in a startup development program
SoftStart
(2017) - et al.
Large team projects in software engineering courses
SIGCSE Bull.
(2005) Personal ethnography
Commun. Monogr.
(1996)
A pattern language for use case modeling
Proceedings of the MODELSWARD
Autoethnography: a tool for practice and education
Proceedings of the CHINZ
The many faces of operationalization in goal-oriented requirements engineering
Proceedings of the APCCM
Requirements engineering challenges in multi-site software development organizations
Requir. Eng.
Training to capture software requirements by role playing
Proceedings of the TEEM
Rapid requirements checks with requirements smells: two case studies
Proceedings of the RCoSE
Teaching requirements engineering with virtual stakeholders without software engineering knowledge
Proceedings of the REET
Software Runaways
How not to prepare for a consulting assignment, and other ugly consultancy truths
Commun. ACM
Requirements engineering using appreciative inquiry for an online community of caregivers of children with autism
Proceedings of the SAC
Requirements and architecture modeling in software engineering courses
Proceedings of the ECSAW
Patterns to build the magic backlog
Proceedings of the EuroPLoP
A reflection on agile requirements engineering: solutions brought and challenges posed
Proceedings of the XP
Managing Software Requirements: A Use Case Approach
Introducing accessibility requirements through external stakeholder utilization in an undergraduate requirements engineering course
Proceedings of the ICSE
Requirements engineering: an educational dilemma
Automat. Softw. Eng.
Creative requirements: invention and its role in requirements engineering
Proceedings of the ICSE
Problems in requirements engineering education: a survey
Proceedings of the FIT
Cited by (0)
Chandan Rupakheti is an Associate Professor in the Computer Science and Software Engineering department at Rose-Hulman Institute of Technology. Chandan’s teaching and research interests lie in areas of Software Engineering such as Program Analysis, Software Architecture and Design, and DevOps. Chandan is also a practicing architect and does consulting works for industries in Indianapolis and Chicago areas. At Rose-Hulman, Chandan has worked extensively in revamping Software Engineering courses such as Requirements Engineering, Software Design, Software Architecture, and Formal Methods.
Mark Hays is an Assistant Professor of Computer Science and Software Engineering at Rose-Hulman Institute of Technology. Prior to joining Rose-Hulman, he worked for IBM Software Group for eight years. His work emphasizes computer-aided software engineering, particularly to automate common software testing, debugging, and requirements tracing tasks. While the shifting software landscape requires him to regularly reevaluate his favorite CASE tools, his love for Chicago-style pizza remains timeless.
Sriram Mohan is an Associate Professor in the Computer Science and Software Engineering Department at Rose-Hulman. During his time at Rose-Hulman, Sriram has served as a consultant in Hadoop and NoSQL systems and has helped a variety of clients in the Media, Insurance, and Telecommunication sectors. Sriram maintains an active research profile in data science and education research that has led to over 30 publications or presentations. At Rose-Hulman, Sriram has focused on incorporating reflection, and problem based learning activities in the Software Engineering curriculum. Sriram has led the revamp of the entire software engineering program at Rose-Hulman.
Stephen Chenoweth Steve came to Rose-Hulman from a career working for computer and telecom vendors. This included doing requirements and systems engineering, software development, project and resource management, and internal consulting. Throughout that career, he also taught and worked on educational projects, including online education. At NCR, Steve was one of four architects who designed the first point of sale system using peer-to-peer networks of PC-based machines. At AT&T and Lucent, Steve taught systems architecture, did architectural consulting and led architecture reviews of new systems. At Rose-Hulman Steve is active in promoting academic change and working to match educational programs to the needs of software professionals over their careers.
Amanda Stouder graduated from Rose-Hulman Institute of Technology with a Bachelor’s Degree in Computer Science and Software Engineering. Amanda’s career has centered on custom software development, with a focus on requirements engineering and verification testing, including working in the FDA regulated space on projects supporting multiple clients with differing needs. Amanda chose to pursue teaching as a Visiting Professor of CSSE at Rose-Hulman while continuing consulting work through her own company. She has continued to do requirements, software development, and testing through her company while teaching these concepts, now as an Assistant Professor for the Practice of CSSE.