Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Definition:
The Supplementary Specifications capture the system requirements that are not captured
in the use cases or other documents. Such requirements include:
Legal and regulatory requirements and application standards.
Quality attributes of the system to be built, including usability, reliability,
performance and supportability requirements.
Other requirements such as operating systems and environments, compatibility
requirements, and design constraints.
Usability
Usability should include all of those requirements that affect usability. Examples:
Specify the required training time for a normal users and power users to become
productive at particular operations.
Specify measurable task times for typical tasks or base usability requirements of
the new system on other systems that the users know and like.
Specify requirements to conform to common usability standards e.g., GUI
standards published by Microsoft for Windows XP.
Reliability
Requirements for reliability of the system should be specified here. Suggestions:
Availability specify % of time available (xx. xx%), hours of use, maintenance
access, degraded mode operations etc.
Accuracy specify precision (resolution) and accuracy (by some known standard)
that is required in the systems output.
Maximum bugs or defect rate usually expressed in terms of bugs/KLOC
(thousands of lines of code), or bugs per function-point.
Bugs or defect rate categorized in terms of minor, significant, and critical bugs:
the requirement(s) must define what is meant by a critical bug (e.g., complete
loss of data, complete inability to use certain parts of the functionality of the
system).
Performance
The performance characteristics of the system should be outlined in this section.
Include specific response times. Where applicable, reference related Use Cases by name.
Response time for a transaction (average, maximum)
Throughput (e.g., transactions per second)
Capacity (e.g., the number of customers or transactions the system can
accommodate)
Degradation modes (what is the acceptable mode of operation when the system has
been degraded in some manner)
Resource utilization: memory, disk, communications, etc.
Supportability
This section indicates any requirements that will enhance the supportability or
maintainability of the system being built, including coding standards, naming
conventions, class libraries, maintenance access, maintenance utilities.
Design Constraints
This section should indicate any design constraints on the system being built.
Design constraints represent design decisions that have been mandated and must be adhered to.
Example: software languages, software process requirements, prescribed use of
developmental tools, architectural and design constraints, purchased components, class libraries,
etc.
Online User Documentation and Help System Requirements
It describes the requirements, if any, for on-line user documentation, help
systems, help about notices, etc.
Purchased Components
It describes any purchased components to be used with the system , any applicable
licensing or usage restrictions, and any associated compatibility/interoperability or interface
standards.
Interfaces
This section defines the interfaces that must be supported by the application. It
should contain adequate specificity, protocols, ports and logical addresses, etc, so that the
software can be developed and verified against the interface requirements.
i)User Interfaces
Describe the user interfaces that are to be implemented by the software.
ii) Hardware Interfaces
This section defines any hardware interfaces that are to be supported by the
software, including logical structure, physical addresses, expected behavior, etc.
iii) Software Interfaces
This section describes software interfaces to other components of the software
system. These may be purchased components, components reused from another
application, or components being developed for subsystems outside of the scope of this
SRS, but with which this software application must interact.
iv) Communication Interfaces
Describe any communications interfaces to other systems or devices such as local
area networks, remote serial devices, etc.
Licensing Requirements
Define any licensing enforcement requirements or other usage restriction
requirements that are to be exhibited by the software.
Legal, Copyright and Other Notices
Other Requirements
Each transaction must include the following information:
Use case-outline:
A use case typically includes the following information:
Name: The name of the use case
Brief Description: A brief description of the role and purpose of the use case
Flow of Events: A textual description of what the system does in regard to a use case
scenario (not how specific problems are solved by the system). Write the description so
that the customer can understand it. The flows can include a basic flow, alternative flows,
and subflows.
Special Requirements: A textual description that collects all of the requirements of the
use case that are not considered in the use-case model, but that must be taken care of
during design or implementation (for example, non-functional requirements)
Preconditions: A textual description that defines a constraint on the system when the use
case starts
Post-conditions: A textual description that defines a constraint on the system when the
use case ends
Extension points: A list of locations within the flow of events of the use case at which
additional behavior can be inserted by using the extend-relationship
In an automated teller machine shown in Figure 1, the Bank Customer can withdraw cash from
an account, transfer funds between accounts, or deposit funds to an account. These correspond to
specific goals that the actor has in using the system.
each use case will contain several flows, including one "Basic Flow of Events" and several
"Alternative Flows".
The Basic Flow of Events specifies the interactions between the actor(s) and the system for the
ideal case, where everything goes as planned, and the actor's goal (the observable result of value)
is met. The basic flow represents the main capability provided by the system for this use case.
As the name implies, Alternative Flows specify alternative interactions associated with the same
goal.
Closely related to use cases is the concept of a scenario. A scenario is a specific flow of events,
for a specific set of inputs to the system, states of the system, and states of the system's
environment. Scenarios are closely related to test cases.
Do not describe the details of the user interface, unless it is necessary to understand the
behavior of the system. Specifying user interface details too early will limit design
options.
Describe the flow of events, not only the functionality. To enforce this, start every action
with "When the actor ... ".
Describe only the events that belong to the use case, and not what happens in other use
cases or outside of the system.
Detail the flow of events. Specify what happens when, for each action. Remember this
text will be used to identify test cases.
Prototyping Process:
Establish
prototype
objectives
Define
prototype
functionality
Develop
prototype
Evaluate
prototype
Prototyping
plan
Outline
definition
Executable
prototype
Evaluation
report
Applications:
Feasibility (must use)
Human Interface testing
Increases user involvement
Reduce time and cost
DSDM (Dynamic Systems Development Method)
Business prototypes (automation/mechanization)
Usability prototypes
Performance and Capacity
Proof of concept
Prototypes:
Entire application systems are integrated with the prototype so that their
functionality can be shared
Component
composition
framework
Executable
prototype
Controland
integrationcode
Prototyping Benefits:
Misunderstandings between software users and developers are exposed
Missing services may be detected and confusing services may be identified
A working system is available early in the process
The prototype may serve as a basis for deriving a system specification
The system can support user training and system testing
Improved system usability
Closer match to the system needed
Improved design quality
Improved maintainability
Reduced overall development effort
Prototyping Approaches:
Evolutionary
prototyping
Delivered
system
Outline
Requirements
Throwaway
Prototyping
Executable Prototype+
SystemSpecification
Demonstrations to end users, as well as investigations on this prototype, allows for the
design of more precise requirements as well as the evaluation of techniques to be used in
the final system.
Evolutionary prototyping used to build a model prototype (an accurate and complete
description of the system). These prototypes can be studied under various simulated
conditions.
Refinement on model prototype, concerning the actual system, is done and final system is
rolled out after testing.
Prototyping Objectives:
The objective of evolutionary prototyping is to deliver a working system to end-users
The development starts with those requirements which are best understood.
The prototyping process starts with those requirements which are poorly
understood
EVOLUTIONARY PROTOTYPING:
Must be used for systems where the requirements specification cannot be developed in
advance
Based on techniques which allow rapid system iterations
Verification is impossible as there is no specification.
Validation means demonstrating the adequacy of the system
Evolutionary Prototyping Flow:
Develop abstract
specification
Buildprototype
system
Useprototype
system
N
Deliver
system
YES
System
adequate?
Techniques for rapid system development are used such as CASE tools and 4GLs
Specialist skills are required which may not be available in all development teams
2) Maintenance problems
3) Contractual problems
Advantages of evolutionary prototyping:
Accelerated delivery of the system
Rapid delivery and deployment are sometimes more important than functionality
or long-term software maintainability
Not only is the system more likely to meet user requirements, they are more likely
to commit to the use of the system
You are always looking for new ways to improve the system.
This model increases the chance of having the client satisfied with the working system.
The model can be used even when the requirements are not defined.
Quicker delivery of the system
Disadvantages of evolutionary prototyping:
This method can be used to avoid documenting the requirements of the system.
Management is required
Long term maintenance can be expensive
Uncertain design ideas
Information can be lost through so many improvement changes
Prototypes as Specifications:
Some parts of the requirements may be impossible to prototype
THROW-AWAY PROTOTYPING:
Used to reduce requirements risk
The prototype is developed from an initial specification, delivered for experiment then
discarded
The throw-away prototype must NOT be considered as a final system
Throw Away Prototype is developed from the initial requirements but is not used for the
final project.
Written specifications of the requirements
Some developers believe that this type is a waste of time because you dont use it.
Regardless if prototype is discarded or kept for production, you must use a easy to use
language.
Prototype delivery:
Developers may be pressurised to deliver a throw-away prototype as a final
system
This is not recommended
Starting became a thing of the past. Not getting used as much now.
Spreadsheet
DB
programming
language
Report
generator
Databasemanagement system
Fourthgener ationlanguage
Datecomponent
File
Edit
Views
Layout
Options
12thJanuary2000
Rangechecking
script
Help
General
Index
3.876
Userprompt
component+
s cript
Drawcanvas
component
Treedisplay
component