Uploaded by Traore Ahmed

An SRS template Adapted from IEEE 830

advertisement
An SRS template Adapted from IEEE 830
1. Introduction
overview to help the reader understand how the SRS is organized
and how to use it.
1.1 Purpose
Identify the product or application whose requirements are
specified in this document, including the revision or release
number.
1.2 Document Conventions
• Describe any standards or typographical conventions, including text
styles, highlighting, or significant notations.
• For instance, state whether the priority shown for a high-level
requirement is inherited by all its detailed requirements or whether
every functional requirement statement is to have its own priority
rating.
An SRS template Adapted from IEEE 830
1.3 Intended Audience and Reading Suggestions
• List the different readers to whom the SRS is directed.
• Suggest a sequence for reading the document that is
most appropriate for each type of reader.
1.4 Project Scope
• Short description of the software being specified and
its purpose.
• Relate the software to user or corporate goals and to
business objectives and strategies.
• If a separate vision and scope document is available,
refer to it rather than duplicating its contents here.
An SRS template Adapted from IEEE 830
1.5 References
• List any documents or other resources to which this SRS refers,
including hyperlinks to them if possible.
• These might include user interface style guides, contracts,
standards, system requirements specifications, use-case
documents, or the SRS for a related product.
• Provide enough information so that the reader can access each
reference, including its title, author, version number, date, and
source or location (such as network folder or URL).
2. Overall Description
• This section presents a high-level overview of the product and the
environment in which it will be used, the anticipated product users,
and known constraints, assumptions, and dependencies.
An SRS template Adapted from IEEE 830
2.1 Product Perspective
• Describe the product's context and origin.
• Is it the next member of a growing product family, the next version of a
mature system, a replacement for an existing application, or an entirely
new product?
• If this SRS defines a component of a larger system, state how this software
relates to the overall system and identify major interfaces between the
two.
2.2 Product Features
• List the major features the product contains or the significant functions
that it performs.
• Details will be provided in Section 3 of the SRS, so you need only a highlevel summary here. A picture of the major groups of requirements and
how they are related, such as a top-level data flow diagram, a use-case
diagram, or a class diagram, might be helpful.
An SRS template Adapted from IEEE 830
2.3 User Classes and Characteristics
• Identify the various user classes that you anticipate will use
this product and describe their pertinent characteristics.
• User classes represent a subset of the stakeholders
described in the vision and scope document.
2.4 Operating Environment
• Describe the environment in which the software will
operate, including the hardware platform, the operating
systems and versions, and the geographical locations of
users, servers, and databases.
• List any other software components or applications with
which the system must peacefully coexist.
An SRS template Adapted from IEEE 830
2.5 Design and Implementation Constraints
• Describe any factors that will restrict the options available to the
developers and the rationale for each constraint.
• Specific technologies, tools, programming languages, and databases that
must be used or avoided.
• Restrictions because of the product's operating environment, such as the
types and versions of Web browsers that will be used.
• Backward compatibility with earlier products.
• Hardware limitations such as timing requirements, memory or processor
restrictions, size, weight, materials, or cost.
• Existing user interface conventions to be followed when enhancing an
existing product.
• Standard data interchange formats such as XML.
An SRS template Adapted from IEEE 830
2.6 User Documentation
• List the user documentation components that will be delivered
along with the executable software.
• These could include user manuals, online help, and tutorials.
• Identify any required documentation delivery formats, standards, or
tools.
2.7 Assumptions and Dependencies
• An assumption is a statement that is believed to be true in the
absence of proof or definitive knowledge.
• Problems can arise if assumptions are incorrect, are not shared, or
change, so certain assumptions will translate into project risks.
• One SRS reader might assume that the product will conform to a
particular user interface convention, whereas another assumes
something different.
An SRS template Adapted from IEEE 830
• Identify any dependencies the project has on external factors
outside its control, such as the release date of the next version of
an operating system or the issuing of an industry standard.
• If you expect to integrate into the system some components that
another project is developing, you depend upon that project to
supply the correctly operating components on schedule.
3. System Features
• The template in Figure 10-1 is organized by system feature, which is
just one possible way to arrange the functional requirements.
• Other organizational options include by use case, mode of
operation, user class, stimulus, response, object class, or functional
hierarchy (IEEE 1998b).
An SRS template Adapted from IEEE 830
• Combinations of these elements are also
possible, such as use cases within user classes.
3.x System Feature X
• State the name of the feature in just a few
words, such as "3.1 Spell Check."
• Repeat subsections 3.x.1 through 3.x.3 for
each system feature.
An SRS template Adapted from IEEE 830
3.x.1 Description and Priority
• Provide a short description of the feature and
indicate whether it is of high, medium, or low
priority.
3.x.2 Stimulus/Response Sequences
• List the sequences of input stimuli (user actions,
signals from external devices, or other triggers)
and system responses that define the behaviors
for this feature.
• These stimuli correspond to the initial dialog
steps of use cases or to external system events.
An SRS template Adapted from IEEE 830
3.x.3 Functional Requirements
• Itemize the detailed functional requirements
associated with this feature.
• These are the software capabilities that must be
present for the user to carry out the feature's
services or to perform a use case.
• Describe how the product should respond to
anticipated error conditions and to invalid inputs
and actions.
• Uniquely label each functional requirement.
An SRS template Adapted from IEEE 830
4. External Interface Requirements
• According to Richard Thayer (2002), "External
interface requirements specify hardware,
software, or database elements with which a
system or component must interface...."
• This section provides information to ensure
that the system will communicate properly
with external components.
An SRS template Adapted from IEEE 830
4.1 User Interfaces
• Describe the logical characteristics of each user interface that the
system needs.
• References to GUI standards or product family style guides that are
to be followed.
• Standards for fonts, icons, button labels, images, color schemes,
field tabbing sequences, and the like.
• Screen layout or resolution constraints.
• Standard buttons, functions, or navigation links that will appear on
every screen, such as a help button.
• Shortcut keys.
• Layout standards to facilitate software localization.
• Accommodations for visually impaired users.
An SRS template Adapted from IEEE 830
• Document the user interface design details, such
as specific dialog box layouts, in a separate user
interface specification, not in the SRS.
4.2 Hardware Interfaces
• Describe the characteristics of each interface
between the software and hardware components
of the system.
• This description might include the supported
device types, the data and control interactions
between the software and the hardware, and the
communication protocols to be used.
An SRS template Adapted from IEEE 830
4.3 Software Interfaces
• Describe the connections between this product and other software
components (identified by name and version), including databases,
operating systems, tools, libraries, and integrated commercial
components.
• State the purpose of the messages, data, and control items
exchanged between the software components.
• Describe the services needed by external software components and
the nature of the inter-component communications.
• Identify data that will be shared across software components. If the
data-sharing mechanism must be implemented in a specific way,
such as a global data area, specify this as a constraint.
An SRS template Adapted from IEEE 830
4.4 Communications Interfaces
• State the requirements for any communication functions
the product will use, including e-mail, Web browser,
network communications protocols, and electronic forms.
• Define any pertinent message formatting.
• Specify communication security or encryption issues, data
transfer rates, and synchronization mechanisms.
5. Other Nonfunctional Requirements
• This section specifies nonfunctional requirements other
than external interface requirements, which appear in
section 4, and constraints, recorded in section 2.5.
An SRS template Adapted from IEEE 830
5.1 Performance Requirements
• State specific performance requirements for various system
operations.
• Explain their rationale to guide the developers in making
appropriate design choices.
• For instance, stringent database response time demands might lead
the designers to mirror the database in multiple geographical
locations for faster query responses.
• Specify the number of transactions per second to be supported,
response times, computational accuracy, and timing relationships
for real-time systems.
• You could also specify memory and disk space requirements,
concurrent user loads, or the maximum number of rows stored in
database tables.
An SRS template Adapted from IEEE 830
• Quantify the performance requirements as
specifically as possible—for example, "95
percent of catalog database queries shall be
completed within 3 seconds on a single-user
1.1-GHz Intel Pentium 4 PC running Microsoft
Windows XP with at least 60 percent of the
system resources free."
An SRS template Adapted from IEEE 830
5.2 Safety Requirements
• Safety and security are examples of quality attributes,
which are more fully addressed in section 5.4.
• In this section, specify those requirements that are
concerned with possible loss, damage, or harm that could
result from the use of the product (Leveson 1995).
• Define any safeguards or actions that must be taken, as
well as potentially dangerous actions that must be
prevented.
• Identify any safety certifications, policies, or regulations to
which the product must conform.
• Examples of safety requirements are
An SRS template Adapted from IEEE 830
• SA-1 The system shall terminate any operation within 1 second if
the measured tank pressure exceeds 95 percent of the specified
maximum pressure.
• SA-2 The radiation beam shield shall remain open only through
continuous computer control. The shield shall automatically fall into
place if computer control is lost for any reason.
5.3 Security Requirements
• Specify any requirements regarding security, integrity, or privacy
issues that affect access to the product, use of the product, and
protection of data that the product uses or creates.
• Security requirements normally originate in business rules, so
identify any security or privacy policies or regulations to which the
product must conform.
An SRS template Adapted from IEEE 830
• Alternatively, you could address these
requirements through the quality attribute called
integrity.
• Following are sample security requirements:
• SE-1 Every user must change his initially assigned
login password immediately after his first
successful login. The initial password may never
be reused.
• SE-2 A door unlock that results from a successful
security badge read shall keep the door unlocked
for 8.0 seconds.
An SRS template Adapted from IEEE 830
5.4 Software Quality Attributes
• State any additional product quality characteristics that
will be important to either customers or developers.
• These characteristics should be specific, quantitative,
and verifiable.
• Indicate the relative priorities of various attributes,
such as ease of use over ease of learning, or portability
over efficiency.
• A rich specification notation (such as Planguage)
clarifies the needed levels of each quality much better
than can simple descriptive statements.
An SRS template Adapted from IEEE 830
6. Other Requirements
• Define any other requirements that are not covered elsewhere in
the SRS.
• Examples include internationalization requirements (currency, date
formatting, language, international regulations, and cultural and
political issues) and legal requirements.
• You could also add sections on operations, administration, and
maintenance to cover requirements for product installation,
configuration, startup and shutdown, recovery and fault tolerance,
and logging and monitoring operations.
• Add any new sections to the template that are pertinent to your
project.
• Omit this section if all your requirements are accommodated in
other sections.
An SRS template Adapted from IEEE 830
Appendix A: Glossary
• Define any specialized terms that a reader needs
to know to properly interpret the SRS, including
acronyms and abbreviations.
• Spell out each acronym and provide its definition.
Appendix B: Analysis Models
• This optional section includes or points to
pertinent analysis models such as data flow
diagrams, class diagrams, state-transition
diagrams, or entity-relationship diagrams.
An SRS template Adapted from IEEE 830
Appendix C: Issues List
• This is a dynamic list of the open requirements
issues that remain to be resolved.
• Issues could include items flagged as TBD,
pending decisions, information that is needed,
conflicts awaiting resolution, and the like.
• This doesn't necessarily have to be part of the
SRS, but some organizations always attach a
TBD list to the SRS.
Download