Skip to content

Lecture 1 ​

Waterfall Model ​

The waterfall model is an approach to the process of a software project, it can be broken down into the following sequential steps:

null

The waterfall model is characterized by being:

  • Very structured (sequential)
  • Emphasis is placed on the documentation in every software development step.

Advantages

  • Requirements are known before starting the design.
  • The design of the whole system is known before building the components.
  • There are reviews at the end of each phase to enhance customer involvement.
  • Extensive Documentation. (may be an advantage)

Disadvantages

  • Requirements must be clear and consistent.
  • Prone to delays.
  • Too much documentation.
  • Hard to estimate the progress in the project.+ Milestones based on documentation
  • Large efforts on integration and testing at the end.
  • We can’t demonstrate system features until the end.
  • Unfriendly to changes in the requirements.
  • Unfriendly to customer involvement.

Agile ​

Agile is a Philosophy or Paradigm of software development. Various Models fall under agile:

  • RAD
  • UP
  • SCRUM
  • XP

Agile has sprints of fixed durations. At the end of each sprint a new version of the product can be deployed.

agile

Values ​

The values of agile software development are:

  • Individuals and interactions over processes and tools. 👨 > 🔧
  • Working software over comprehensive documentation. 💽 > 📘
  • Customer collaboration over contract negotiation. 🔃 > 📃
  • Responding to change over following a plan. ➿ > ➡️

Principles ​

The principles of agile software development are:

  • Customer satisfaction by early and continuous delivery of valuable software.
  • Welcome changing requirements, even in late development.
  • Deliver working software frequently (weeks rather than months)
  • Close, daily cooperation between business people and developers
  • Face-to-face conversation is the best form of communication (co-location)
  • Working software is the primary measure of progress

Requirements Engineering ​

Requirements Analysis ​

Difficult Because:

  • It is not clear what the system should do, or what the stakeholders want.
  • It is not clear what technical challenges will come up and how to address these.
  • It is difficult for the developer to understand the customer if they do not share domain knowledge.

WARNING

Impossible to do correctly if essential stakeholders are not involved.

The Inquiry Cycle ​

null

Agile Requirements ​

Between Sprint n-1 and Sprint n requirements are reconsidered.

  1. Evaluate the current version.
  2. Requirement discovery activity.
  3. Adapt and re-prioritize requirements.
  4. Freeze Requirements for next sprint.

Levels of Requirements ​

  • Goal Level
    • Example: "The system shall allow the hotel to handle an increase of 15 % in bookings without adding staff"
  • Business Level
    • Example: "The system will support the receptionist to prepare for the arrival of a tourist bus"
  • System Level
    • Example: "The system shall be able to record that a room is occupied for repair in a specific period"
  • Design Level:
    • "The system shall implement the information model defined by the class diagram in appendix X"

Types of Requirements ​

  • Constraints
    • Example: budget, due date, etc...
  • Functional Requirements
    • Typically user stories.
  • Quality Requirements

User Stories ​

User Story Syntax

  • As a role I want goal|desire
  • As a role I want goal|desire, so that benefit

Example:

As a customer I want to buy a theatre ticket online with my credit card.

Components of a user story: ​

  • A short piece of text describing and representing the user story.
  • Conversations between stakeholders to exchange perspectives on the user story.
  • Acceptance criteria.

User Stories vs. Use Cases: ​

They describe roughly the same thing: an end user interacting with the system. Use cases are higher level, because user stories can be decomposed.

  • Use Case is UML
  • User Story is Agile
  • Purposes:
    • Use case: give high level overview of system functionalities.
    • User story: describe a specific interaction from the perspective of a user.

Decomposing user stories: ​

A way to get user stories is to start with a high level story and decompose it:

For example Starting with:

  • As a customer I want to buy a theatre ticket online with my credit card. Can be refined or decomposed a more detailed user stories:
  • As a customer I want to log in to the theatre system.
  • As a customer I want to select places for a performance.
  • As a customer I want to buy selected tickets with my credit card.

Acceptance Criteria ​

  • Acceptance criteria are formulated as tests, specifying cases the function should allow or not allow.
  • It is Not a list of tests describing whether the implementation was done correctly.

Example:

  • As a customer I want to buy the tickets with my credit card:
    • Test with valid visa card (pass) meets criteria
    • Test with expired visa card (fail) because expired
    • Test with ING bank pass (fail) because not a credit card

User Story Examples ​

Good:

  • As a cashier I want to sell a set of tickets at the box office
  • As administrative staff, I want to process an order form for theatre tickets
  • As a cashier I want to print a duplicate ticket, so that customers who forgot to bring their tickets still can visit the performance

Bad:

  • As a theatre director I want the administrative staff to process order forms for theatre tickets
  • As a cashier, I want the printing of duplicate tickets to be simple and self-explanatory
  • As a customer I want to pay with my credit card only if it is a real credit card (nota bank pass) and it has not expired

User Stories Evaluation ​

INVEST is an acronym for a set of guidelines to follow to create good user stories:

  • Independent: the stories can be developed in any order.
  • Negotiable: the details can be negotiated between the team and user or client.
  • Valuable: the story should provide value to the "user" in the user story. If the story does not have discernable value it should not be done.
  • Estimable: The time needed to implement should be roughly estimable.
  • Small: The story should be small enough to be implemented in one sprint.
  • Testable: the development team should be able to write acceptance criteria which can be used to determine when the story is "done".

Scenarios, Personas ​

Useful tools when the focus is on requirements discovery, rather than requirements specification.

Persona

an imaginary person (could be based on real people) who is a prototypical user of the system to be designed.

Persona example:

Jessica Brown

  • age 26
  • Born in Guatemala, lives in Groningen
  • No Partner, No kids
  • Marketing manager at LifeRips
  • Speaks English, Spanish, Dutch
  • Likes travelling

DILO

Day-in-the-life-of A DILO scenario shows how the use of the system is incorporated in a persona's daily activities.

Requirements discovery techniques: ​

  • Brainstorming
  • Interview
  • Workshop
  • Focus Group
  • Documents
  • Observation
  • Studying similar companies or products
  • Prototyping