Upgrade to Pro — share decks privately, control downloads, hide ads and more …

CSC308 Lecture 23

CSC308 Lecture 23

Software Engineering I
Requirements
(202303)

Javier Gonzalez-Sanchez

March 12, 2023
Tweet

More Decks by Javier Gonzalez-Sanchez

Other Decks in Programming

Transcript

  1. jgs
    CSC 308
    Software Engineering 1
    Lecture 23:
    Software Requirements
    Dr. Javier Gonzalez-Sanchez
    [email protected]
    www.javiergs.com
    Building 14 -227
    Office Hours: By appointment

    View full-size slide

  2. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 2
    Complete your
    Course Evaluations
    Closes March 17

    View full-size slide

  3. jgs
    Previously …

    View full-size slide

  4. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 4
    Agile in Action
    Burndown
    Chart

    View full-size slide

  5. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 5
    Product Backlog

    View full-size slide

  6. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 6
    Stories and Tasks
    … move the pacman
    … show the pacman
    … move a ghost
    … show a ghost
    … show power pills
    stories tasks (new)
    … show a maze

    View full-size slide

  7. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 7
    Storyboarding
    MOVE
    EAT
    SHOW
    DETECT
    COLLISION
    MOVE/
    HUNT
    SHOW
    SHOW/
    CREATE
    SCORE
    HANDLING
    WINNER
    DETECTOR
    MOVE/
    HUNT

    View full-size slide

  8. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 9
    Concepts
    necessities
    requirements
    functional
    requirement
    non-functional
    requirement

    View full-size slide

  9. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 10
    a) May state what (reactions, behaviours, or services) the system
    should not do.
    b) services the system should provide,
    c) how the system should react to particular inputs, and
    d) how the system should behave in particular situations.
    Functional Requirement

    View full-size slide

  10. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 11
    § Search option given to user to search from various invoices.
    § User should be able to mail any report to management.
    § Users can be divided into groups and groups can be given separate rights.
    Examples
    What about
    • A video game?
    • Canvas?
    • Facebook App?

    View full-size slide

  11. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 12
    § Independent – loosely coupled with one another
    § Negotiable – Stories are what and why , not how ( 99% ).
    § Valuable – for the customer!
    § Estimatable – Effort/Cost of design, build, and test.
    § Small (sized appropriately)
    § Testable – pass or fail
    INVEST in good requirements

    View full-size slide

  12. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 13
    Non-functional requirements
    a) Constraints on the services or functions offered by the system,
    such as
    Standards to apply, development platform, timing constraints,
    constraints on the development process, etc.
    b) Quality attributes, such as
    performance specifications, robustness, usability, etc.
    Non-functional Requirement

    View full-size slide

  13. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 14
    Types of Non-Functional Requirements

    View full-size slide

  14. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 15
    Examples (Quality)
    Property Measure
    Speed • Processed transactions/second
    • User/event response time
    • Screen refresh time
    Size • Mbytes
    • Number of ROM chips
    Ease of use • Training time
    • Number of help frames
    Reliability • Mean time to failure
    • Probability of unavailability
    • Rate of failure occurrence
    • Availability
    Robustness • Time to restart after failure
    • Percentage of events causing failure
    • Probability of data corruption on failure
    Portability • Percentage of target dependent statements
    • Number of target systems

    View full-size slide

  15. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 16
    § Should comply FERPA regulations.
    § Software is developed keeping downward compatibility intact.
    Examples (Constraints)

    View full-size slide

  16. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 17
    Functional vs Non-Functional
    NON-Functional
    Functional
    Functional
    Functional

    View full-size slide

  17. jgs
    Specification

    View full-size slide

  18. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 19
    Strategy
    Plan-based Agile

    View full-size slide

  19. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 20
    Requirements
    Product Requirement Task
    As a (role),
    I want (feature),
    So that (benefit)

    View full-size slide

  20. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 21
    Requirements
    Product Requirement Task
    As a (role),
    I want (feature),
    So that (benefit)

    View full-size slide

  21. jgs
    Use Case Diagram
    A Graphical Notation

    View full-size slide

  22. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 23
    UML Diagrams

    View full-size slide

  23. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 24
    a) Actors
    b) Use Cases
    a) Relationships
    Diagram
    child father
    base addition
    extension base
    << include >>
    << extend >>

    View full-size slide

  24. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 25
    Diagram | Example
    Nurse
    Medical receptionist
    Manager
    Register
    patient
    View
    personal info.
    View record
    Generate
    report
    Export
    statistics
    Doctor
    Edit record
    Setup
    consultation

    View full-size slide

  25. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 26
    § Show that behavior of the included use case (addition) is inserted into
    the behavior of the including (base) use case.
    § A dashed line with an open arrowhead directed from the including use
    case (base) to the included (addition) use case. The arrow is labeled with the
    keyword «include».
    § The include relationship is used to (1) simplify large use case by splitting it into
    several use cases, (2) extract common parts of the behaviors of two or more
    use cases.
    Inclusion
    base addition

    View full-size slide

  26. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 27
    Example

    View full-size slide

  27. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 28
    § Extending use case defines optional behavior that is not necessarily
    meaningful by itself.
    § Extend relationship is shown as a dashed line with an open arrowhead
    directed from the extending use case to the extended (base) use case.
    The arrow is labeled with the keyword «extend».
    Extension
    base extension

    View full-size slide

  28. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 29
    Example

    View full-size slide

  29. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 30
    Include vs Extends

    View full-size slide

  30. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 31
    Questions

    View full-size slide

  31. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 32
    Office Hours
    Tuesday and Thursday 3 - 5 pm
    But an appointment required
    Sent me an email – [email protected]

    View full-size slide

  32. jgs
    CSC 308
    Software Engineering 1
    Lab 23:
    Use Case Diagram
    Dr. Javier Gonzalez-Sanchez
    [email protected]
    www.javiergs.com
    Building 14 -227
    Office Hours: By appointment

    View full-size slide

  33. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 35
    § What are the Use Cases (stories) that can be used to describe your final
    project?
    § Which are the actors?
    § Is there inheritance, including, or extending relationships?
    § Draw a UML Use Case Diagram.
    Lab

    View full-size slide

  34. jgs
    Javier Gonzalez-Sanchez | CSC 308 | Winter 2023 | 36
    Let’s Work

    View full-size slide

  35. jgs
    CSC 308 Software Engineering I
    Javier Gonzalez-Sanchez, Ph.D.
    [email protected]
    Fall 2022
    Copyright. These slides can only be used as study material for the class CSC308 at Cal Poly.
    They cannot be distributed or used for another purpose.

    View full-size slide