notations. requirements documentation typical parts of requirements document functional requirements...

35
Notations

Upload: joseph-payne

Post on 18-Jan-2016

225 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Notations. Requirements Documentation Typical parts of Requirements Document Functional requirements Behavior of the software system Nonfunctional requirements

Notations

Page 2: Notations. Requirements Documentation Typical parts of Requirements Document Functional requirements Behavior of the software system Nonfunctional requirements

2

Requirements Documentation

• Typical parts of Requirements Document• Functional requirements

• Behavior of the software system

• Nonfunctional requirements • Quality characteristics of software system

• Diagrams

Page 3: Notations. Requirements Documentation Typical parts of Requirements Document Functional requirements Behavior of the software system Nonfunctional requirements

3

Outline

• Use Case diagram• Unified Modeling Language (UML) • Entity Relationship Diagram (ERD)• Dataflow diagram• Message Sequence diagram• State chart• Putting it all together

Page 4: Notations. Requirements Documentation Typical parts of Requirements Document Functional requirements Behavior of the software system Nonfunctional requirements

4

Use Case Diagrams

• Stick man for users• Ovals for use cases (UCs)

• Italicize “abstract” use cases

• Simple arrows when a UC “calls” another• Open arrowheads for specialization

• Similar to the role that subclassing plays in OO

Page 5: Notations. Requirements Documentation Typical parts of Requirements Document Functional requirements Behavior of the software system Nonfunctional requirements

5

Use Case Diagrams

backcountry skier

Use Case #2:Clarify Location

and Time

Use Case #1:Report

Avalanche

Page 6: Notations. Requirements Documentation Typical parts of Requirements Document Functional requirements Behavior of the software system Nonfunctional requirements

6

backcountry skier

Use Case #2:Clarify Location

and Time

Use Case #1:Report

Avalanche

avalanche forecaster

Use Case #3:View Recent

Avalanche Activity

Use Case #3b:View by Location

Use Case #3a:View by Time

Page 7: Notations. Requirements Documentation Typical parts of Requirements Document Functional requirements Behavior of the software system Nonfunctional requirements

7

Outline

• Use Case diagram• Unified Modeling Language (UML) • Entity Relationship Diagram (ERD)• Dataflow diagram• Message Sequence diagram• State chart• Putting it all together

Page 8: Notations. Requirements Documentation Typical parts of Requirements Document Functional requirements Behavior of the software system Nonfunctional requirements

8

Unified Modeling Language (UML)

• One box per kind of entity, listing attributes• Italicize abstract entities, attributes

• Lines without arrowheads show references• Similar to member variables in OO• Labeled with cardinality (multiplicity)

• Integers, ranges, or asterisk (for unlimited)

• Lines with open arrowheads for specialization• Lines with regular arrowheads can be used to indicate

dependencies• Usually omitted in requirements’ class diagrams

Page 9: Notations. Requirements Documentation Typical parts of Requirements Document Functional requirements Behavior of the software system Nonfunctional requirements

9

UML

User+ username

Avy report+ user+ time (datetime)+ location (geocode)+ details (string)

Avy Entry+ user+ when (datetime)+ where (geocode)+ details (string)

Clarification+ when (datetime)+ where (geocode)+ details (string)

Avy view+ Avy report

Table view (time)+ HTML

Google map view+ JavaScript

1

*

1

0..1

1

*

*

*

system boundary

Page 10: Notations. Requirements Documentation Typical parts of Requirements Document Functional requirements Behavior of the software system Nonfunctional requirements

10

Outline

• Use Case diagram• Unified Modeling Language (UML) • Entity Relationship Diagram (ERD)• Dataflow diagram• Message Sequence diagram• State chart• Putting it all together

Page 11: Notations. Requirements Documentation Typical parts of Requirements Document Functional requirements Behavior of the software system Nonfunctional requirements

11

Entity-Relationship Diagrams (ERDs)

• One box per kind of entity• List entities on branches• Lines with a diamond show relationships

• Diamond label indicates role of relationships

• Numbers or variables on lines show cardinality

Page 12: Notations. Requirements Documentation Typical parts of Requirements Document Functional requirements Behavior of the software system Nonfunctional requirements

12

ERD

1

n

1

0..1 1

r

pq

User

Avy report

Avy entry

Clarification

Avy view

Table view (time)Google map view

writes

yields

shows

asks for

Page 13: Notations. Requirements Documentation Typical parts of Requirements Document Functional requirements Behavior of the software system Nonfunctional requirements

13

Outline

• Use Case diagram• Unified Modeling Language (UML) • Entity Relationship Diagram (ERD)• Dataflow diagram• Message Sequence diagram• State chart• Putting it all together

Page 14: Notations. Requirements Documentation Typical parts of Requirements Document Functional requirements Behavior of the software system Nonfunctional requirements

14

Dataflow Diagram

• Each oval is a “function” provided by system• Each inward arrow is a parameter (labeled)• Each outward arrow is an output (labeled)

• Each rectangle is an actor• A person, place, or thing that can do stuff and/or initiate events

• Each “half-rectangle” is a data store• Best practices: separate dataflow diagram for each use case

Page 15: Notations. Requirements Documentation Typical parts of Requirements Document Functional requirements Behavior of the software system Nonfunctional requirements

15

skierreport

raw messageDB

interpret

clarify

avy reportsDB

send clarification

geocoder

map view

table view

viewer

avy info

clarification message

message

message

message

location

geocode

report

raw messag

e

clarification message

report

report

map

html table

Dataflow Diagram

Page 16: Notations. Requirements Documentation Typical parts of Requirements Document Functional requirements Behavior of the software system Nonfunctional requirements

16

Break Time!!!

Page 17: Notations. Requirements Documentation Typical parts of Requirements Document Functional requirements Behavior of the software system Nonfunctional requirements

17

Outline

• Use Case diagram• Unified Modeling Language (UML) • Entity Relationship Diagram (ERD)• Dataflow diagram• Message Sequence diagram• State chart• Putting it all together

Page 18: Notations. Requirements Documentation Typical parts of Requirements Document Functional requirements Behavior of the software system Nonfunctional requirements

18

Message Sequence Diagram

• One box per entity involved• If you have two users interacting with each other, then you would have

two boxes• Each box has a dashed line, showing its “lifetime”, which can end if an

object is destroyed

• Arrows show messages• Also, draw an arrow back if there’s a return value

• Conditionals are written with brackets [ ]• Loops can be enclosed in a shaded box

Page 19: Notations. Requirements Documentation Typical parts of Requirements Document Functional requirements Behavior of the software system Nonfunctional requirements

[geocode != null]

19

Message Sequence Diagram

User System Database

avy report

Request to clarify[if geocode == null]

Geocoder

Geocode

create report

location info

Page 20: Notations. Requirements Documentation Typical parts of Requirements Document Functional requirements Behavior of the software system Nonfunctional requirements

20

Outline

• Use Case diagram• Unified Modeling Language (UML) • Entity Relationship Diagram (ERD)• Dataflow diagram• Message Sequence diagram• State chart• Putting it all together

Page 21: Notations. Requirements Documentation Typical parts of Requirements Document Functional requirements Behavior of the software system Nonfunctional requirements

21

State Charts

• Shows change over time• One box per state• Arrows show a possible state transition

• Annotated to indicate under what conditions the transition occurs

• Filled circle shows where you “start”• Nested filled circle shows where you “stop”

Page 22: Notations. Requirements Documentation Typical parts of Requirements Document Functional requirements Behavior of the software system Nonfunctional requirements

22

State Charts

raw avy report (just text)

in database

Geocoded (geocode != null)

record avy info

geocoding fails

geocoding succeeds

receive message

done

Page 23: Notations. Requirements Documentation Typical parts of Requirements Document Functional requirements Behavior of the software system Nonfunctional requirements

23

Outline

• Use Case diagram• Unified Modeling Language (UML) • Entity Relationship Diagram (ERD)• Dataflow diagram• Message Sequence diagram• State chart• Putting it all together

Page 24: Notations. Requirements Documentation Typical parts of Requirements Document Functional requirements Behavior of the software system Nonfunctional requirements

24

Requirements Documentation

• Requirements definition– Unstructured text: functional & non-functional requirements– Use case descriptions– Class diagrams or ERDs showing external entities

• Requirements specification– Unstructured text: functional & non-functional requirements– Dataflow diagram– Message sequence diagrams or state charts

Page 25: Notations. Requirements Documentation Typical parts of Requirements Document Functional requirements Behavior of the software system Nonfunctional requirements

25

Examples: Support drug and alcohol counseling

http://cf.polarishealth.com/demo/start_demo.html

Page 26: Notations. Requirements Documentation Typical parts of Requirements Document Functional requirements Behavior of the software system Nonfunctional requirements

26

Requirements Definition: Functional Requirements

• Before each counseling visit, each counselee takes a survey• After each survey, the system prints a report showing the

counselee’s progress• Administrative assistants can add counselees and their

counselors to the system

Requirements definition: written from external viewpoint; system is like a “black box”

Page 27: Notations. Requirements Documentation Typical parts of Requirements Document Functional requirements Behavior of the software system Nonfunctional requirements

27

Requirements Definition: Non-functional Requirements

• Each survey will be short enough for an average user to complete within 10 minutes.

• Progress reports will each be 2 pages or less.• The system will print progress reports within 2 minutes of a

survey’s completion.• Users can take a survey using a Windows machine that has a

Pentium II 550 MHz CPU, with 0.5 GB of RAM.

Requirements definition: written from external viewpoint; system is like a “black box”

Page 28: Notations. Requirements Documentation Typical parts of Requirements Document Functional requirements Behavior of the software system Nonfunctional requirements

28

Use Case #1: Survey and Report

• Actor: Counselee• Precondition: Counselee registered in system• Postconditions:

• Counselee progress data is recorded in system• Report is printed for use by counselor

• Flow of events:• Counselee logs in (lastname + PIN)• System collects survey data from counselee• System prints report

Page 29: Notations. Requirements Documentation Typical parts of Requirements Document Functional requirements Behavior of the software system Nonfunctional requirements

29

Class Diagram (UML)

Counselor+ reports

Counselee+ counselor+ surveys

Survey+ questions (String [])+ answers (int [])+ counselee

1

*

User+ lastname (string)+ PIN (int)

1

*

Report+ surveys+ counselor

**

1

*

System boundary

Page 30: Notations. Requirements Documentation Typical parts of Requirements Document Functional requirements Behavior of the software system Nonfunctional requirements

30

Requirements Specification: Functional Requirements

• The system will provide screens so that when counselee and counselor data are entered into the system, these data are transferred to a database or other permanent storage.

• When survey data arrive, they will be saved and a report will be output to the printer.

Requirements specification: written from system’s viewpoint, involving internal details of system

Page 31: Notations. Requirements Documentation Typical parts of Requirements Document Functional requirements Behavior of the software system Nonfunctional requirements

31

Requirements Specifications: Non-Functional Requirements

• 95% of the code will be platform-independent (Java or platform-independent JavaScript).

• The system will record completed surveys in the database within 30 seconds; reports will be sent to the printer within 30 seconds and emerge within 60 seconds.

Requirements specification: written from system’s viewpoint, involving internal details of system

Page 32: Notations. Requirements Documentation Typical parts of Requirements Document Functional requirements Behavior of the software system Nonfunctional requirements

32

Dataflow Diagram (Use Case #1)

Survey DB

Survey

Surveyanswers

HealthInformation

patient’sanswers (ever)

Counselee

Counselor

Create reportPostscript

PrinterPick up Printout

Printout

Authenticate

User ID

Last name & PIN

Page 33: Notations. Requirements Documentation Typical parts of Requirements Document Functional requirements Behavior of the software system Nonfunctional requirements

33

Message Sequence Diagram (Use Case #1)

[survey complete]

Counselee Server Database

Log in

Printer

Present question

Answer question

Record answers

Get report data

Send report to printer

Page 34: Notations. Requirements Documentation Typical parts of Requirements Document Functional requirements Behavior of the software system Nonfunctional requirements

34

A Few Comments

• These are just the basic diagrams.• Sufficient for our homework, exams, and probably 90% of what you’ll see

after graduation• Fancier versions of these diagrams do exist

• It’s OK to draw diagrams by hand• As long as you respect the notation

Page 35: Notations. Requirements Documentation Typical parts of Requirements Document Functional requirements Behavior of the software system Nonfunctional requirements

35

Next Steps

• Get started on your Requirements homework• Email me if you have questions• Better yet, come to office hours!

• Every team member should contribute!!

• Next lecture: Prototyping