3 lectures 50 minutes each and one lab per week (3-3-4)
Designation: Required Course
Course Level: Undergraduate
Prerequisite(s) by Topic:
- Computer hardware and software
- Object-oriented programming
- Object-oriented design
- Software development process
Study of software engineering process models, requirements engineering process, and system models. Methods, tools, and techniques for the elicitation, analysis, and verification and validation of software requirements. Introduction to the principles of project management. Students participate in a group project on software requirements.
Leffingwell and D. Widrig, Managing Software Requirements: A Use Case Approach, 2nd Ed., Addison Wesley, 2003
Reference(s) and Other Material:
- Suzanne Robertson and James Robertson, Mastering the Requirements Process, Addison-Wesley, 1999.
- Gerald Kotonya and Ian Sommerville, Requirements Engineering: Processes and Techniques, John Wiley, 1998.
- Ian Sommerville and Pete Sawyer, Requirements Engineering: A good practice guide, John Wiley, 1997
- Understand the role and scope of requirements engineering.
- Know and apply appropriate methods, techniques and tools to elicit, document and manage requirements.
- Be able to define a system that satisfies the requirements.
- Learn how to work in teams.
- Introduction to the software lifecycle and the requirements problem.
- The challenge of requirements elicitation and requirements management.
- The six team skills.
- The five steps in problem analysis.
- Understanding the user and stakeholder needs and the features of a product or system.
- Techniques for eliciting the requirements: interviewing, workshops, brainstorming and idea reduction and storyboarding.
- Defining the system: A use case primer and UML, organizing requirements information and the vision document.
- Managing the scope: establishing project scope and engaging the customers in the project management.
- Refining the system definition: software requirements, use cases refinement, developing the supplementary specification, and ambiguity and specificity.
- Building the right system: from use cases to implementation, tracing requirements, managing changes, and assessing requirements quality in iterative development.
- Agile requirements methods and prescription for requirements management.