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

CSC308 Lecture 17

CSC308 Lecture 17

Software Engineering I
Requirement Engineering
(202211)

Javier Gonzalez-Sanchez
PRO

October 31, 2022
Tweet

More Decks by Javier Gonzalez-Sanchez

Other Decks in Programming

Transcript

  1. jgs CSC 308 Software Engineering I Lecture 17: Software Requirements

    Dr. Javier Gonzalez-Sanchez [email protected] users.csc.calpoly.edu/~javiergs | javiergs.com Building 14 -227 Office Hours: By appointment
  2. jgs Concepts

  3. jgs Fall 2022 | 00000010 Concepts necessities requirements functional requirement

    non-functional requirement
  4. jgs Fall 2022 | 00000010 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.
  5. jgs Fall 2022 | 00000010 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? • Facebook App?
  6. jgs Fall 2022 | 00000010 INVEST in good requirements §

    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
  7. jgs Fall 2022 | 00000010 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.
  8. jgs Fall 2022 | 00000010 Types of Non-Functional Requirements

  9. jgs Fall 2022 | 00000010 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
  10. jgs Fall 2022 | 00000010 Examples (Constraints) § Should comply

    FERPA regulations. § Software is developed keeping downward compatibility intact.
  11. jgs Fall 2022 | 00000010 Functional vs Non-Functional NON-Functional Functional

    Functional Functional
  12. jgs Specification

  13. jgs Fall 2022 | 00000010 Strategy Plan-based Agile

  14. jgs Fall 2022 | 00000010 Requirements Product Requirement Task As

    a (role), I want (feature), So that (benefit)
  15. jgs Fall 2022 | 00000010 Requirements Product Requirement Task As

    a (role), I want (feature), So that (benefit)
  16. jgs Use Case Diagram A Graphical Notation

  17. jgs Fall 2022 | 00000010 UML Diagrams

  18. jgs Fall 2022 | 00000010 Diagram a) Actors b) Use

    Cases a) Relationships child father base addition extension base << include >> << extend >>
  19. jgs Fall 2022 | 00000010 Diagram | Example Nurse Medical

    receptionist Manager Register patient View personal info. View record Generate report Export statistics Doctor Edit record Setup consultation
  20. jgs Fall 2022 | 00000010 Inclusion § 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. base addition
  21. jgs Fall 2022 | 00000010 Example

  22. jgs Fall 2022 | 00000010 Extension § 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». base extension
  23. jgs Fall 2022 | 00000010 Example

  24. jgs Fall 2022 | 00000010 Include vs Extends

  25. jgs Fall 2022 | 00000010 Questions

  26. jgs

  27. jgs CSC 308 Software Engineering I Lab 17: Tools: Astah

    Dr. Javier Gonzalez-Sanchez [email protected] users.csc.calpoly.edu/~javiergs | javiergs.com Building 14 -227 Office Hours: By appointment
  28. jgs We need Tools

  29. jgs Fall 2022 | 00000010 Let’s Work astah.net/downloads/ astah.net/support/astah-pro/user-guide/class-diagrams/

  30. jgs Fall 2022 | 00000010 Lab § Use Astah to

    create a UML class diagram. § The diagram could be for any of our systems. § The goal is for you to use the Tool. It is an individual lab
  31. 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.