Software Requirements Engineering
Course Code: SE-201
Credit Hours: 3 (2+1)
Prerequisites: Software Engineering
Course Learning Outcomes (CLOs):
By the end of the course, students will be able to:
- Describe the requirements engineering process
- Domain: Cognitive (C)
- BT Level: 1 (Remembering)
- Analyze and assess software requirements for the development of cost-effective and efficient technical solutions
- Domain: Cognitive (C)
- BT Level: 4 (Analyzing)
- Prepare functional and non-functional requirements, along with validation, for medium-sized software systems
- Domain: Cognitive (C)
- BT Level: 3 (Applying)
- Document effective software requirements in Software Requirements Specification (SRS) with clear and unambiguous language
- Domain: Cognitive (C)
- BT Level: 3 (Applying)
Weekly Breakdown with Reading Material, Assignments, Lab Work, and Lab Assignments:
Week 1:
- Topic: Introduction to Requirements Engineering
- Reading: Chapter 1 of Requirements Engineering by Hull et al.
- Assignment: Write a brief report on the importance of requirements engineering in software projects (2-3 pages).
- Lab Work: No lab work this week.
- Lab Assignment: N/A
Week 2:
- Topic: Classification of Requirements
- Reading: Chapter 2 of Requirements Engineering by Hull et al.
- Assignment: Identify and classify requirements (functional, non-functional) from a real-world software project example.
- Lab Work: Introduction to a requirements management tool (e.g., IBM DOORS or Jira).
- Lab Assignment: Create a requirements document using the tool based on a case study.
Week 3:
- Topic: Requirements Engineering Process
- Reading: Chapter 3 of Requirements Engineering by Hull et al.
- Assignment: Analyze a given project to identify stages of the requirements process and their outcomes.
- Lab Work: Elicitation techniques: Stakeholder interviews simulation.
- Lab Assignment: Conduct and document a stakeholder interview based on a project scenario.
Week 4:
- Topic: Requirement Quality Characteristics
- Reading: Chapter 4 of Software Requirements by Wiegers & Beatty (Quality requirements).
- Assignment: Evaluate requirements from a case study for completeness, consistency, and traceability.
- Lab Work: Requirements review and quality assessment.
- Lab Assignment: Review a set of requirements and identify areas for improvement in terms of quality.
Week 5:
- Topic: Software Requirements in Systems Engineering
- Reading: Chapter 5 of Requirements Engineering by Hull et al.
- Assignment: Analyze the interaction between requirements and architecture in a real-world system (e.g., ATM software).
- Lab Work: Map requirements to system architecture components.
- Lab Assignment: Create a mapping between a set of requirements and system modules for a small project.
Week 6:
- Topic: Requirements Evolution and Traceability
- Reading: Chapter 6 of Software Requirements by Wiegers & Beatty (Requirements change and traceability).
- Assignment: Prepare a report on the importance of traceability and how to manage evolving requirements.
- Lab Work: Hands-on with traceability matrices using a tool like IBM DOORS or Trello.
- Lab Assignment: Develop a traceability matrix for a provided case study.
Week 7:
- Topic: Requirement Prioritization and Trade-off Analysis
- Reading: Chapter 7 of Requirements Engineering by Hull et al.
- Assignment: Perform a trade-off analysis on conflicting requirements and justify the priority of each.
- Lab Work: Prioritizing requirements using MoSCoW or another prioritization technique.
- Lab Assignment: Apply a prioritization method on a given set of requirements.
Week 8:
- Topic: Midterm Exam
- Reading: Review Chapters 1-7 of Requirements Engineering and Software Requirements.
- Assignment: No new assignment; focus on preparation for the midterm.
- Lab Work: No lab work this week.
- Lab Assignment: N/A
Week 9:
- Topic: Requirement Elicitation Techniques (Part 1)
- Reading: Chapter 8 of Software Requirements by Wiegers & Beatty.
- Assignment: Prepare elicitation questions for a case study (interview, surveys).
- Lab Work: Elicitation simulation using interviews and surveys.
- Lab Assignment: Conduct and document an interview for requirements elicitation.
Week 10:
- Topic: Requirement Elicitation Techniques (Part 2)
- Reading: Chapter 9 of Software Requirements by Wiegers & Beatty (Prototyping, JAD).
- Assignment: Analyze the effectiveness of different elicitation techniques for a specific project.
- Lab Work: Conducting Joint Application Development (JAD) sessions for requirements gathering.
- Lab Assignment: Organize and document a JAD session based on a project scenario.
Week 11:
- Topic: Specification and Documentation (Part 1)
- Reading: Chapter 10 of Requirements Engineering by Hull et al.
- Assignment: Draft initial functional and non-functional requirements for a software project.
- Lab Work: Hands-on with Software Requirements Specification (SRS) templates.
- Lab Assignment: Create a draft SRS for a medium-sized software system.
Week 12:
- Topic: Specification and Documentation (Part 2)
- Reading: Chapter 11 of Software Requirements by Wiegers & Beatty.
- Assignment: Document unambiguous requirements for a given project scenario.
- Lab Work: Writing clear and testable requirements.
- Lab Assignment: Refine the SRS draft and improve the quality of the documented requirements.
Week 13:
- Topic: Requirements Validation
- Reading: Chapter 12 of Requirements Engineering by Hull et al.
- Assignment: Analyze a set of requirements and conduct a validation review.
- Lab Work: Conducting walkthroughs and inspections.
- Lab Assignment: Perform a validation exercise on a peer group’s requirements.
Week 14:
- Topic: Requirements Engineering in Agile Methods
- Reading: Chapter 13 of Software Requirements by Wiegers & Beatty (Agile methodologies).
- Assignment: Write a report on how agile methodologies impact requirements engineering.
- Lab Work: Adapting requirements engineering for iterative development.
- Lab Assignment: Modify a traditional requirements document for an agile project.
Week 15:
- Topic: Requirements Management
- Reading: Chapter 14 of Requirements Engineering by Hull et al.
- Assignment: Discuss the challenges in managing requirements in acquisition and product organizations.
- Lab Work: Hands-on with a requirements management tool for managing evolving requirements.
- Lab Assignment: Update a requirements document to reflect changing project requirements.
Week 16:
- Topic: Final Presentations & Course Review
- Reading: Review all chapters from Requirements Engineering and Software Requirements.
- Assignment: Final group project: Present the SRS for a medium-sized software system.
- Lab Work: Group project presentations and peer review.
- Lab Assignment: Submit the final SRS and present it to the class.
Assessment:
- Assignments: 20%
- Quizzes: 10%
- Midterm Exam: 20%
- Final Exam: 30%
- Semester Project (SRS Documentation and Presentation): 20%
Textbook:
- Requirements Engineering by Elizabeth Hull, Ken Jackson, and Jeremy Dick, 3rd Ed., Springer-Verlag London Limited, 2011.
Reference Materials:
- Software Requirements by Karl Wiegers and Joy Beatty, 3rd Ed., Microsoft Press, 2013.
- Requirements Engineering and Management for Software Development Projects by Murali Chemuturi, Springer New York, 2013.