This site is from a past semester! The current version will be here when the new semester starts.

Week 7 [Fri, Sep 22nd] - Tutorial

1 Exercise on Requirements: PR Tracker

  1. 10 minutes Write the answers to the following questions. You can write your answers in a local document file (e.g., a Word doc) first; when done, paste a screenshot in the workspace document. Writing the answer directly in the workspace document might result in too much lag.

    Question adapted from a past exam paper.

    Pull Request Tracker (PRT) is a desktop application meant to help tutors of a Software Engineering course deal with GitHub PRs more efficiently (compared to the GitHub Web interface). For example, it will help tutors find and review PRs from their mentees easily. It will help the managers of the course (e.g., professor, head TA) to easily keep track of how tutors are dealing with mentee PRs. PRT will communicate with GitHub using the GitHub API.

    1. Write 1 must-have and 1 nice-to-have user stories, covering user types tutor and manager.
    2. Write at least 1 , related to performance/scalability and/or usability.
    3. Give at least 1 terms worth recording in the glossary.
    4. Complete the following use case. Give at least one extension. Note that the tutor should give comments in the order of PR size (i.e., give comments to smaller PRs first). Assume the following use cases exists already: U1. Sort PRs by a criterion, U2. Add comments to a PR

    System: PRT
    Use Case: U3. Add comments to mentee PRs
    Actor: ...
    Precondition: ...

    ...

  2. Check a peer answer (provided by the tutor) for the bugs listed below and discuss, as directed by the tutor.

Admin tP Grading → DG Bugs → User Story → Possible Bugs

Problems in User Stories. Examples:

  • Incorrect format
  • All three parts are not present
  • The three parts do not match with each other
  • Important user stories missing

Admin tP Grading → DG Bugs → NFR → Possible Bugs

Problems in NFRs. Examples:

  • Not really a Non-Functional Requirement
  • Not scoped clearly (i.e., hard to decide when it has been met)
  • Not reasonably achievable
  • Highly relevant NFRs missing

Admin tP Grading → DG Bugs → Glossary → Possible Bugs

Problems in Glossary. Examples:

  • Unnecessary terms included
  • Important terms missing

Admin tP Grading → DG Bugs → Use Case → Possible Bugs

Problems in Use Cases. Examples:

  • Important use cases missing (a use case is important if it involves a user interaction that is worthy of documenting e.g., it has multiple extensions -- this is not the same as the feature being important)
  • Formatting/notational errors
  • Incorrect step numbering
  • Unnecessary UI details mentioned
  • Missing/unnecessary steps
  • Missing extensions

2 Refine your DG after the tutorial

  • After the tutorial, if applicable, refine the relevant sections of your own DG based on what you learned from the tutorial activities.
    Note: Ideally, you should have completed iteration v1.1 already. In that case, this DG refinement can be done as part of a subsequent iteration (e.g., v1.2)