Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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)

Slide 3

Slide 3 text

Previously

Slide 4

Slide 4 text

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)

Slide 5

Slide 5 text

Requirements

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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.

Slide 11

Slide 11 text

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?

Slide 12

Slide 12 text

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.

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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?

Slide 16

Slide 16 text

Test Yourselves

Slide 17

Slide 17 text

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.

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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.

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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.

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

Requirement Specification

Slide 24

Slide 24 text

To be continued…

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

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.