Number of Lectures
This course focuses on the process and techniques for discovering and eliciting requirements. Students will learn to analyze and validate requirements, including user’s needs and goals, and apply use-case analysis. Requirements will be viewed in the context of stakeholders, users, system engineers, project managers, and developers. Students also learn how to specify and measure external qualities: performance, reliability, availability, safety, security, etc., before working on user requirements documentation. Students will be exposed to various types of systems: embedded systems, consumer systems, web-based systems, business systems, scientific systems, and others.
This course covers the following topics:
Understand user’s requirements, elicit requirements using a variety of techniques, organize and prioritize requirements, apply analysis techniques such as: needs analysis, goal analysis, and use case analysis; validate requirements according to criteria such as feasibility, clarity, freedom from ambiguity, etc., understand functional and non-functional requirements for different types of systems using formal and informal techniques, specify and measure quality attributes, negotiate among different stakeholders in order to agree on a set of requirements, detect and resolve feature interaction; document user requirements as well as system and software specifications.