Elsevier

Journal of Systems and Software

Volume 144, October 2018, Pages 366-381
Journal of Systems and Software

On a pursuit for perfecting an undergraduate requirements engineering course

https://doi.org/10.1016/j.jss.2018.07.008Get rights and content

Highlights

  • Exactly mimicking real-world settings is not always an ideal way to teach requirements.

  • A flipped classroom works better in teaching requirements than lecture driven formats.

  • A project-based course incurs overhead, but provides richer experiences to students.

  • A project-based course affords students meaningful experiences in dealing with change.

  • A project-based course provides meaningful experiences in dealing with ambiguity.

Abstract

Requirements Engineering (RE) is an essential component of any software development cycle. Understanding and satisfying stakeholder needs and wants is the difference between the success and failure of a product. However, RE is often perceived as a “soft” skill by students and is often ignored by students who prioritize the learning of coding, testing, and algorithmic thinking. This view contrasts with the industry, where “soft” skills are instead valued equal to any other engineering ability. A key challenge in teaching RE is that students who are accustomed to technical work have a hard time relating to something that is non-technical. Furthermore, students are rarely afforded the opportunity to practice requirements elicitation and management skills in a meaningful way while learning the RE concepts as an adjunct to other content. At Rose-Hulman, several project-based approaches have been experimented with in teaching RE, and these have evolved over time. In this paper, the progress of teaching methodologies is documented to capture the pros and cons of these varied approaches, and to reflect on what worked and what did not in teaching RE to undergraduate engineering students.

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)

  • H. Saiedian et al.

    Requirements engineering: making the connection between the software developer and customer

    Inf. Softw. Technol.

    (2000)
  • A. Affleck et al.

    Supporting quantitative reasoning of non-functional requirements: a process-oriented approach

    Proceedings of the ICSSP

    (2012)
  • L. Bass et al.

    Software Architecture in Practice

    (2012)
  • B. Berenbach

    Impact of organizational structure on distributed requirements engineering processes: lessons learned

    Proceedings of the GSD

    (2006)
  • B. Boehm et al.

    Software requirements negotiation: some lessons learned

    Proceedings of the ICSE

    (1998)
  • D. Callele et al.

    Teaching requirements engineering to an unsuspecting audience

    SIGCSE Bull.

    (2006)
  • C.-H. Chang et al.

    Sysml-based requirement modeling environment for multicore embedded system

    Proceedings of the SAC

    (2010)
  • R. Chanin et al.

    Applying customer development for software requirements in a startup development program

    SoftStart

    (2017)
  • D. Coppit et al.

    Large team projects in software engineering courses

    SIGCSE Bull.

    (2005)
  • L. Crawford

    Personal ethnography

    Commun. Monogr.

    (1996)
  • A.M.R. da Cruz

    A pattern language for use case modeling

    Proceedings of the MODELSWARD

    (2014)
  • S.J. Cunningham et al.

    Autoethnography: a tool for practice and education

    Proceedings of the CHINZ

    (2005)
  • F. Dalpiaz et al.

    The many faces of operationalization in goal-oriented requirements engineering

    Proceedings of the APCCM

    (2014)
  • D. Damian et al.

    Requirements engineering challenges in multi-site software development organizations

    Requir. Eng.

    (2003)
  • P. Delatorre et al.

    Training to capture software requirements by role playing

    Proceedings of the TEEM

    (2016)
  • H. Femmer et al.

    Rapid requirements checks with requirements smells: two case studies

    Proceedings of the RCoSE

    (2014)
  • G. Gabrysiak et al.

    Teaching requirements engineering with virtual stakeholders without software engineering knowledge

    Proceedings of the REET

    (2010)
  • R. Glass

    Software Runaways

    (1998)
  • R.L. Glass

    How not to prepare for a consulting assignment, and other ugly consultancy truths

    Commun. ACM

    (1998)
  • C.H. Gonzales et al.

    Requirements engineering using appreciative inquiry for an online community of caregivers of children with autism

    Proceedings of the SAC

    (2009)
  • T.G. Grbac et al.

    Requirements and architecture modeling in software engineering courses

    Proceedings of the ECSAW

    (2015)
  • L.B. Hvatum et al.

    Patterns to build the magic backlog

    Proceedings of the EuroPLoP

    (2015)
  • I. Inayat et al.

    A reflection on agile requirements engineering: solutions brought and challenges posed

    Proceedings of the XP

    (2015)
  • D. Leffingwell et al.

    Managing Software Requirements: A Use Case Approach

    (2003)
  • S. Ludi

    Introducing accessibility requirements through external stakeholder utilization in an undergraduate requirements engineering course

    Proceedings of the ICSE

    (2007)
  • L. Macaulay et al.

    Requirements engineering: an educational dilemma

    Automat. Softw. Eng.

    (1995)
  • N. Maiden et al.

    Creative requirements: invention and its role in requirements engineering

    Proceedings of the ICSE

    (2006)
  • R.N. Memon et al.

    Problems in requirements engineering education: a survey

    Proceedings of the FIT

    (2010)
  • 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.

    View full text