G-E2HZ7JKCY4

Software Requirements Engineering

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:

  1. Describe the requirements engineering process
    • Domain: Cognitive (C)
    • BT Level: 1 (Remembering)
  2. Analyze and assess software requirements for the development of cost-effective and efficient technical solutions
    • Domain: Cognitive (C)
    • BT Level: 4 (Analyzing)
  3. Prepare functional and non-functional requirements, along with validation, for medium-sized software systems
    • Domain: Cognitive (C)
    • BT Level: 3 (Applying)
  4. 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.
Scroll to Top