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

CSE360 Flipped Lecture 4

CSE360 Flipped Lecture 4

Introduction to Software Engineering
Requirements Engineering
(202009)

Javier Gonzalez-Sanchez
PRO

June 04, 2020
Tweet

More Decks by Javier Gonzalez-Sanchez

Other Decks in Programming

Transcript

  1. CSE 360
    Introduction to Software Engineering
    Lecture 04: Requirements Engineering
    Dr. Javier Gonzalez-Sanchez
    [email protected]
    javiergs.engineering.asu.edu | javiergs.com
    PERALTA 230U
    Office Hours: By appointment

    View Slide

  2. Javier Gonzalez-Sanchez | CSE360 | Summer 2020 | 2
    Announcements
    • Exercise 03 will open after the lecture, it is due as
    usual, the day before our next lecture (UML Class
    Diagrams)
    • First Midterm Exam
    Week 7 (September 29 / October 1)
    • Second Midterm Exam could be
    Week 12 (November 3 / November 5)

    View Slide

  3. Previously

    View Slide

  4. Javier Gonzalez-Sanchez | CSE360 | Summer 2020 | 4
    Requirements
    mary raj …
    john jane …
    Ira O
    X
    -
    Product Requirement Task
    As a (role),
    I want (feature),
    So that (benefit)

    View Slide

  5. Requirements

    View Slide

  6. Javier Gonzalez-Sanchez | CSE360 | Summer 2020 | 6
    Requirements Engineering

    View Slide

  7. Javier Gonzalez-Sanchez | CSE360 | Summer 2020 | 7
    Concepts
    necessities
    requirements

    View Slide

  8. Javier Gonzalez-Sanchez | CSE360 | Summer 2020 | 8
    Requirements are:
    § Atomic
    § Unambiguous (Comprehensible, Coherent )
    § Consistent
    § Verifiable
    § Traceable
    § Prioritized

    View Slide

  9. Javier Gonzalez-Sanchez | CSE360 | Summer 2020 | 9
    Concepts
    necessities
    requirements
    functional
    requirement
    non-functional
    requirement

    View Slide

  10. Javier Gonzalez-Sanchez | CSE360 | Summer 2020 | 10
    Functional Requirement
    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.

    View Slide

  11. Javier Gonzalez-Sanchez | CSE360 | Summer 2020 | 11
    Examples
    • 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.
    What about
    • A video game?
    • Canvas?
    • MyASU?
    • Facebook App?

    View Slide

  12. Javier Gonzalez-Sanchez | CSE360 | Summer 2020 | 12
    Non-functional Requirement
    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.

    View Slide

  13. Javier Gonzalez-Sanchez | CSE360 | Summer 2020 | 13
    Types of Non-Functional Requirements

    View Slide

  14. Javier Gonzalez-Sanchez | CSE360 | Summer 2020 | 14
    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 Slide

  15. Javier Gonzalez-Sanchez | CSE360 | Summer 2020 | 15
    Examples (Constraints)
    • Should comply FERPA regulations.
    • Software is developed keeping downward compatibility
    intact.
    What about
    • Pac-man?
    • Canvas?
    • MyASU?

    View Slide

  16. Test Yourselves

    View Slide

  17. Javier Gonzalez-Sanchez | CSE360 | Summer 2020 | 17
    Test Yourselves
    1. The system must be able to capture federal and state tax table
    information.
    2. The system must provide the ability to merge two
    accounts/records where one account is for the same person
    with an incorrect social security number by allowing the user to
    click the incorrect, make the changes to the correct account,
    and then delete the incorrect account automatically after an
    account has been locked for this purpose
    3. Right after the game gets started, a dialog will show up to
    prompt the player enter his/her name.
    4. The player rolls a dice by clicking on a button labeled “role
    dice”. A dialog pops-up to indicate the value of the dice roll. In
    this game, there are two six-faced dice.

    View Slide

  18. Javier Gonzalez-Sanchez | CSE360 | Summer 2020 | 18
    Test Yourselves
    1. The system must be able to capture federal and state tax table
    information.
    2. The system must provide the ability to merge two
    accounts/records where one account is for the same person
    with an incorrect social security number by allowing the user to
    click the incorrect, make the changes to the correct account,
    and then delete the incorrect account automatically after an
    account has been locked for this purpose
    3. Right after the game gets started, a dialog will show up to
    prompt the player enter his/her name.
    4. The player rolls a dice by clicking on a button labeled “role
    dice”. A dialog pops-up to indicate the value of the dice roll. In
    this game, there are two six-faced dice.
    F
    F
    F
    F

    View Slide

  19. Javier Gonzalez-Sanchez | CSE360 | Summer 2020 | 19
    Test Yourselves
    5. The system shall allow a user to interface with it through mouse
    events on buttons and drop down boxes and keyboard events
    on text fields.
    6. All code development shall be done with the Java
    programming language.
    7. Modified data in a database should be updated for all users
    accessing it within 2 seconds
    8. The system shall be accessible to people with disabilities in
    accordance with the Americans with Disabilities Act of 1990.

    View Slide

  20. Javier Gonzalez-Sanchez | CSE360 | Summer 2020 | 20
    Test Yourselves
    5. The system shall allow a user to interface with it through mouse
    events on buttons and drop down boxes and keyboard events
    on text fields.
    6. All code development shall be done with the Java
    programming language.
    7. Modified data in a database should be updated for all users
    accessing it within 2 seconds
    8. The system shall be accessible to people with disabilities in
    accordance with the Americans with Disabilities Act of 1990.
    NF
    NF
    NF
    NF

    View Slide

  21. Javier Gonzalez-Sanchez | CSE360 | Summer 2020 | 21
    Test Yourselves
    7. All monetary amounts must be accurate to two decimal places
    (integrity).
    8. The new product shall be easy to use by adult members (age
    18 to 80) of the public who may only have one hand free.
    9. No piece of text that might be displayed to a user shall reside in
    program source code. Every piece of text that a user might see
    must be modifiable without changing source code. That is, no
    user-visible text will be “hard-coded.”
    10.The payment subsystem design is based on the payment
    module from the ALPHA product line. The PAGO system should
    not be modified unless absolutely necessary.

    View Slide

  22. Javier Gonzalez-Sanchez | CSE360 | Summer 2020 | 22
    Test Yourselves
    7. All monetary amounts must be accurate to two decimal places
    (integrity).
    8. The new product shall be easy to use by adult members (age
    18 to 80) of the public who may only have one hand free.
    9. No piece of text that might be displayed to a user shall reside in
    program source code. Every piece of text that a user might see
    must be modifiable without changing source code. That is, no
    user-visible text will be “hard-coded.”
    10.The payment subsystem design is based on the payment
    module from the ALPHA product line. The PAGO system should
    not be modified unless absolutely necessary.
    NF
    NF
    NF
    NF

    View Slide

  23. Requirement Specification

    View Slide

  24. To be continued…

    View Slide

  25. Javier Gonzalez-Sanchez | CSE360 | Summer 2020 | 25
    Homework
    Complete This Week’s Hybrid Activities

    View Slide

  26. Javier Gonzalez-Sanchez | CSE360 | Summer 2020 | 26
    References
    Chapter 4

    View Slide

  27. CSE360 – Introduction to Software Engineering
    Javier Gonzalez-Sanchez
    [email protected]
    Fall 2020
    Disclaimer. These slides can only be used as study material for the class CSE360 at ASU. They cannot be distributed or used for another purpose.

    View Slide