Course Information

18-658: Software Requirements and Interaction Design

Units:

Description:

Good software systems should be engineered with usefulness and usability in mind. How can we define software systems addressing real users' needs while achieving superior user experience?

This course addresses this challenge by drawing from two disciplines, requirements engineering and interaction design, in an integrated fashion. Students learn a systematic approach to requirements elicitation, envisioning, and just-in-time elaboration, while leveraging design-based ideation and validation.

Students apply this knowledge in the context of a semester-long project. Their goal is to define a set of concrete requirements for and create prototypes of a new software system. The system should address a real problem, satisfy real stakeholders' needs, and provide a delightful user experience. Students leverage a variety of models and notations for specifying functional requirements, quality attributes, and design constraints. They leverage storyboarding and prototyping for designing the interactions between the users and the system. Students collaborate closely with real stakeholders in different settings for requirements elicitation, solution validation, and usability testing.

Please note that this course is intended for ECE master students with a concentration in Software Engineering and will satisfy the "Software Engineering and Design" course area requirement.