A customer, you say? Making requirements engineering fun!

Requirements engineering gets little attention in CS education, but it is a critical and integral part of software engineering. A challenge that students face once they graduate from college is how to map the abstract concepts of requirements engineering that they learned in school to their “on-the-job” demands.

Sriram Mohan of Rose-Hulman Institute of Technology provided valuable insight into a new learning model of teaching software requirements to students at the SIGCSE 2011 Special Session on Software Engineering. Instead of using a purely lecture-based course, Rose-Hulman implemented an innovative, 3-tier learning model that gave students hands-on and first-hand experience in designing software requirements. It can be taught as 1) a stand-alone course in requirements 2) as part of a software engineering course 3) as part of a senior capstone project.

Tier 1: “In-class Elicitation”
This tier involves using mock projects, such as developing an application that uses Twitter for in-class communication. Essentially, the mock projects should be a topic that students can get excited about!

Tier 2: “Elicitation via Homework Projects based on a simple scenario”
These homework projects include multiple steps that range from a problem statement, to use cases, and supplementary specs.

Tier 3: “Elicitation through team-based Junior Design Project”
The class is broken into student teams, which pick their projects. They are connected with a real client, with whom they must meet with weekly. Students need to show prototypes to their customers early and often. Each team also has a project manager (the TA).
The students also analyze requirements case studies and identify key reasons for a project’s success or failure.

This learning model is extremely refreshing. By connecting students with real customers, team structure, and a project manager, it makes the students’ learning experience active rather than passive. The learning model also prepares students well for what they will encounter once they graduate.

Check out Rose-Hulman Institute of Technology here, and follow them on Twitter @RoseHulman
For more complete information about compiler optimizations, see our Optimization Notice.