Developing Requirements: Timing: 50 Minutes
Developing Requirements: Timing: 50 Minutes
Developing Requirements
Timing: 50 minutes
Question:
New
development A B
green field project
Evolution of
existing system
C D
Functional requirements
• Describe what the system should do
Non-functional requirements
• Constraints that must be adhered to during development
h) F
Roll A Die
Gambler
E.g. Bad Use Case: Log In (the goal is not really to log in!)
E.g. Good Use Case: Authentic User
Notation:
Process Sale
Gambler
UWO Computer Science Use Case Diagrams 18
– Non-Human Actors: External systems that communicate with
the system being designed
• e.g. Credit Card Authorization, Web Server
• Ignore internal components, only model external other
systems as actors, not internal parts of your system. For
example, your internal database should NOT be an actor.
• Notation:
• <<Actor>>
Credit Card Authorization System
Or
•
Register in Course
Add Course Offering
Enter Grade
for Course
Student
Professor Actor
Event Organizer
Disadvantages
• Might cause UML designers to start looking to early for
common functionality rather than just identifying the use
cases.
• Not as easy to read for non-UML users so it may make
diagrams more confusing for users
Note: the arrow goes from the more exceptional case to the
normal case
Customer
• <<include>> use when one use case one cannot live without the other
use case. The use case must include another use case. The one use
case can NOT be completed without the other use case.
—For example when you create an order you always must verify
name. NOTE: used to be called <<Uses>>
• <<extend>> use when one use case can live without the other in some
instances. The use case will extend to another use case to do some
stuff occasionally but not always.
—For example, you can create an order but if the order is for a new
customer you may have to do additional check which you do not
have to do for existing customers. In that case you can have an
extend use case.
Book site
Camper
Add Site
1. The clerk enters the video 2. The system displays the name
id number of the movie of the movie and the
to be rented. number of copies available
3. The clerk enters the
customer id number 4. The system displays the
5. The clerk enters the customers name.
customers credit card 7. Reports card is
6. The system sends the card accepted.
number number to the credit card
authorization system and
8.The clerk confirms the waits for confirmation
checking out of the 9. The system displays that the
movie video was rented and
displays the return date
Pre Condition: At Step 1 of main course, the actor enters a movie where
all the copies have been rented
Post Condition: Video is not rented to the customer
Pros • knows exactly what is • can roughly gage how long it will
needed take to write the code
Examples:
As a customer I want to see the most popular blu-ray
discs sold so that I can order one or many of them
As a customer I want to sort the most sold blu-rays by
price so that I can see the expensive ones first.
Good site with tips on User Stories:
Too formal / too much detail. Product owners with good intentions
often try to write extremely detailed user stories. If a team sees
a story at iteration planning that looks like an IEEE
requirements document, they'll often assume that all the details
are there and they'll skip the detailed conversation.
Technical tasks masquerading as stories. A lot of the power of Agile
comes from having a working increment of software at the end
of each iteration. If your stories are really just technical tasks,
you often don't end up with working software at the end of each
iteration, and you lose flexibility in prioritization.
Skipping the conversation. Stories are intentionally vague before
iteration planning. If you skip the acceptance criteria
conversation, you'll risk moving in the wrong direction, missing
edge cases or overlooking customer needs.
From this site: https://help.rallydev.com/writing-great-user-story
DEVELOPER!