Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

jgs Previously …

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

jgs Concepts

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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?

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

jgs Specification

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

jgs Use Case Diagram A Graphical Notation

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

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 >>

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

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

Slide 32

Slide 32 text

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]

Slide 33

Slide 33 text

jgs

Slide 34

Slide 34 text

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

Slide 35

Slide 35 text

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

Slide 36

Slide 36 text

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

Slide 37

Slide 37 text

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.