CSC 308 Lecture Notes Week 9
Requirements for File and Edit Commands
Non-Functional Requirements
-
Requirements for file and edit commands.
-
Following the requirements scenarios for the major commands of your system,
cover any remaining details of file and edit commands.
-
Put these details in one or two sections following the other functional
requirements sections.
-
For file commands, consider clearly what objects are saved to and opened from
disk.
-
For edit commands, consider clearly what objects are operated on by the cut,
copy, and paste commands.
-
Requirements for error conditions
-
Following the file and edit command section, include a section that covers
error conditions.
-
You need only summarize the error conditions you've covered already in earlier
scenarios.
-
For error conditions that have not yet been covered, show and describe the
error display screens.
-
You need only show one version of each generic error screen, listing the
different error message texts.
-
Specification of error conditions.
-
In the 308 specification methodology we do this with preconditions.
-
From the user's perspective, each clause of a precondition corresponds to an
error if the clause is not true.
-
The error conditions described in the requirements correspond directly to
violation of precondition clauses.
-
We'll discuss the formalization of this further next week.
-
Other requirements
-
Help -- not required for 308.
-
Other GUI details -- not required for 308.
-
Data entry details -- if necessary.
-
Non-functional requirements.
-
So far in CSC 308 we've focused on functional requirements specification.
-
We are answering the question "What does the system do?"
-
This goes in Section 2 of the 308 requirements specification document.
-
There are also non-functional requirements to be specified.
-
For these we answering such questions as "How well", "How much?", and "How
soon?" the system will perform, cost, and be delivered.
-
These requirements go in Section 3 of the 308 requirements specification
document.
-
The non-functional requirements address aspects of the system other than the
specific functions it performs.
-
These aspects include system performance, costs, and such general system
characteristics as reliability, security, and portability.
-
The non-functional requirements also address aspects of the system development
process and personnel.
-
Formally, a non-functional requirement is one that is not part of the program
model.
-
There are three broad categories of non-functional requirements, elaborated on
below: System-reated, Process-related, and Personnel-
related.
-
Non-functional requirements by category.
-
System-related non-functional requirements.
-
performance
-
time
-
space
-
operational environment
-
hardware platform
-
software platform
-
external software interoperability
-
standards conformance
-
general characteristics
-
reliability
-
robustness
-
accuracy of data
-
correctness
-
security
-
privacy
-
safety
-
portability
-
modifiability and extensibility
-
simplicity versus power
-
Process-related non-functional requirements.
-
development time
-
development cost
-
software life cycle constraints
-
system delivery
-
extent of deliverables
-
deliverable formats
-
installation
-
developer access to installed environment
-
phase-in procedures to replace existing system
-
standards conformance
-
reporting
-
marketing
-
pricing
-
target customer base
-
contractual requirements and other legal issues
-
Personnel-related non-functional requirements
-
for developers:
-
credentials
-
applicable licensing, certification
-
for users:
-
skill levels
-
special accessibility needs
-
training
-
The spectrum of preciseness and quantifiability in non-functional requirements.
-
Some constraints are easy to state quantifiably -- e.g., "The system will
respond within 10 seconds to a user request for local data, and within 60
seconds for a remote data request."
-
Some constraints and objectives are much harder to quantify -- e.g., the system
will be "robust" and "user friendly"
-
In 308, we are formalizing only the functional, not the non-functional
requirements.
-
Cost/benefit/risk analysis.
-
After a requirements specification is defined, it can be analyzed in terms of
the costs, benefits, and risks involved in proceeding to develop the software.
-
Computer system analysts are not necessarily qualified to produce cost/benefit
analyses alone; they typically need to consult with finance experts as well as
the potential software design/implementation team.
-
The cost/benefit analysis can be included as a part of the requirements
specification document or it can be a separate document.
-
In 308, we do not have time to address cost/benefit analysis.
index
|
lectures
|
handouts
|
examples
|
textbook
|
doc
|
grades