mid

Perfect — let’s use these past papers as practice, and I’ll give you the answers + the “why” (the way your professor expects).


Question 1A (MCQ) — Answers

  1. Testing individual components/units of code
    c) Unit Testing
    Why: unit testing = testing one small “unit” (function/class/module) alone.

  2. Agile framework with time-boxed iterations called sprints
    a) Scrum
    Why: Scrum works in sprints (usually 1–4 weeks).

  3. Primary role of a Product Owner in Agile
    c) Defining product features and prioritizing the backlog
    Why: PO decides what to build first (priority).

  4. NOT a software validation technique
    c) Code reviews
    Why: code review is mainly verification (“did we build it correctly?”), not validation (“did we build the right thing for users?”).

  5. Best definition of software verification
    b) Checking if the software meets specified requirements
    Why: verification = meets specs/requirements.

  6. “User story” in Agile refers to
    b) A concise description of a feature from the end-user’s perspective
    Why: user story format is like: “As a ___, I want ___ so that ___.”

  7. Primary goal of software validation
    a) Ensuring the software meets business needs
    Why: validation = meets user/business needs.

  8. Best describes Agile methodology
    b) A flexible, iterative approach that emphasizes collaboration and adaptability

  9. Activity typically associated with software validation
    c) User acceptance testing
    Why: UAT is literally users confirming it meets their needs.

(You had “validation goal” asked twice on the sheet — it’s still (a) both times.)


Question 1B (True/False) — Answers + tiny reasoning

  1. Stakeholder definition includes “actively contributes to validation”
    False
    Stakeholder = anyone affected / interested. They may help validate, but not always.

  2. If stakeholders don’t conflict, no need for RE practices
    False
    You still need elicitation, documentation, validation, etc.

  3. Multi-level requirements is a major systems-of-systems challenge
    True

  4. During elicitation consider things inside & outside system/context boundaries
    True
    You consider system boundary + environment/context while eliciting.

  5. Waterfall assumes all requirements can be elicited at the beginning
    True

  6. Effort in RE is inversely proportional to the risk one is willing to take
    True
    If you accept more risk → you invest less effort; if you want less risk → invest more effort.

  7. System requirements can be functional, quality, constraints
    True

  8. Assess shared understanding by validating all explicitly specified requirements
    False
    Validating explicit requirements helps, but shared understanding is usually checked via workshops, reviews, prototypes, scenario walkthroughs, etc.

  9. Reaction time and cultural issues should be documented in requirements specs
    True
    Reaction time = performance; cultural issues = usability/localization constraints.

  10. Personas are real individuals selected to test/validate directly
    False
    Personas are fictional archetypes, based on research.


Question 2 (System Design – UML) — Training system for Java certification

A) List the main use cases (1 pt)

Actors mentioned: User, Tutor, Exam-Reviewer
Main use cases that must exist:

User (Learner)

  • Request Quiz

  • Take Quiz / Answer Questions

  • Request Hint

  • Submit Quiz

  • View Score / Feedback

Tutor

  • Add/Manage Questions

  • Add/Manage Hints

Exam-Reviewer

  • Review/Certify Question (Approve/Reject)

(Optionally: Login/Register, but not required unless your course always includes it.)


B) “Make a use case diagram” (2 pts) — what it should look like (text version)

Actors:

  • User

  • Tutor

  • Exam-Reviewer

System boundary: “Training System”

Use cases inside the system:

  • Request Quiz

  • Generate Quiz

  • Select Questions (from DB)

  • Compose Quiz

  • Take Quiz

  • Submit Answers

  • Rate Answers / Calculate Score

  • Provide Hint

  • Add Question

  • Add Hint

  • Review/Certify Question

  • Approve Question / Reject Question

Good UML relationships (the ones professors love):

  • Request Quiz <<include>> Generate Quiz

  • Generate Quiz <<include>> Select Questions

  • Generate Quiz <<include>> Compose Quiz

  • Take Quiz <<include>> Submit Answers

  • Submit Answers <<include>> Rate Answers / Calculate Score

  • Request Hint <<extend>> Take Quiz (because hint is optional, only if user asks)

Tutor:

  • Tutor — (association line) — Add Question / Add Hint

Exam-Reviewer:

  • Exam-Reviewer — Review/Certify Question

  • Review/Certify Question <<include>> Approve or Reject (or you can model approve/reject as alternative outcomes instead of extra use cases)


C) “Give details about one element in the use case” (1 pt)

Pick ONE use case and write a mini-spec. Here’s a strong example you can copy:

Use Case: Request Quiz
  • Primary Actor: User

  • Preconditions: User is on the system (optionally logged in) and questions exist in the database and are certified.

  • Main Flow:

    1. User selects “Request Quiz”.

    2. System asks for quiz settings (topic, number of questions, difficulty).

    3. System selects appropriate questions from database.

    4. System composes the quiz.

    5. System displays the quiz to the user.

  • Alternative Flow (A1: Not enough questions):

    • System informs user and suggests reducing number of questions or changing topic/difficulty.

  • Postconditions: A quiz session is created and ready for answering.

(That’s exactly the style many SE/UML midterms want.)


Question 3A — UML Use Case Diagram (T/F)

From the ATM diagram shown:

  1. “Transaction is an abstract superclass for Withdrawal, Inquiry, Deposit, Transfer and Invalid PIN.”
    False
    Invalid PIN is shown as <<extend>>, not a subclass/generalization.

  2. “The relation between Invalid PIN and Transaction does not conform to UML.”
    False
    <<extend>> from “Invalid PIN” to “Transaction” is acceptable (optional behavior when PIN is wrong).

  3. “Use case should clarify direction of data transfer to/from Central Database.”
    False
    Use case diagram doesn’t show data flow directions (that’s not its job).

  4. “Central Database should be outside the ATM system box, keep connections.”
    True
    External systems should be actors outside the system boundary.

  5. “Relation between Customer and GUI is not permitted in UML use case syntax.”
    True
    Actor-to-actor links aren’t standard; actors connect to use cases (and GUI usually isn’t an actor if it’s part of the system).

  6. “Relations connecting Operator, GUI and Bank to ATM System are missing arrows.”
    False
    Associations in use case diagrams are normally plain lines (no arrows needed).


Question 3B — Functional requirements? (T/F)

  1. Available in English, German, French
    False (Non-functional: localization/internationalization)

  2. Allow user to search for books by author and title
    True (Functional feature)

  3. Provide list of previously ordered books
    True (Functional feature)

  4. Support minimum 1000 transactions per hour
    False (Non-functional: performance)

  5. Available to all users 24/7
    False (Non-functional: availability)

  6. Allow user to remove books from cart at any moment
    True (Functional feature)


If you want, send me one page at a time (clear photo), and I’ll turn it into:

  • a clean answer key

  • plus “exam-style wording” you can write in the booklet (especially for UML/requirements questions).