|
|
| Date Posted:
5/16/2008 8:53:49 AM
Status:
Live |
|
|
Asker's Rating:
Somewhat Helpful
|
|
Response:
For Question no 3:
An SRS is basically an organization's understanding (in
writing) of a
customer or potential client's system
requirements and dependencies at a
particular point in
time (usually) prior to any actual design or
development
work. It's a two-way insurance policy that assures that
both
the client and the organization understand the other's
requirements
from that perspective at a given point in
time.
The SRS document itself states in precise and explicit
language those
functions and capabilities a software system
(i.e., a software application,
an eCommerce Web site, and so
on) must provide, as well as states any
required constraints by
which the system must abide. The SRS also functions
as a
blueprint for completing a project with as little cost growth
as
possible. The SRS is often referred to as the "parent"
document because all
subsequent project management documents,
such as design specifications,
statements of work, software
architecture specifications, testing and
validation plans, and
documentation plans, are related to it.
It's important to note that an SRS contains functional and
nonfunctional
requirements only; it doesn't offer design
suggestions, possible solutions to
technology or business
issues, or any other information other than what
the
development team understands the customer's system requirements
to
be.
A well-designed, well-written SRS accomplishes four major
goals:
- It provides feedback to the customer. An SRS is the
customer's assurance
that the development organization
understands the issues or problems to be
solved and the
software behavior necessary to address those
problems.
Therefore, the SRS should be written in natural language
(versus
a formal language, explained later in this
article), in an unambiguous manner
that may also include
charts, tables, data flow diagrams, decision tables,
and so
on.
- It decomposes the problem into component parts. The
simple act of writing
down software requirements in a
well-designed format organizes information,
places borders
around the problem, solidifies ideas, and helps break
down
the problem into its component parts in an orderly
fashion.
- It serves as an input to the design specification. As
mentioned
previously, the SRS serves as the parent document
to subsequent documents,
such as the software design
specification and statement of work. Therefore,
the SRS
must contain sufficient detail in the functional
system
requirements so that a design solution can be devised.
- It serves as a product validation check. The SRS also
serves as the
parent document for testing and validation
strategies that will be applied to
the requirements for
verification.
SRSs are typically developed during the first stages of
"Requirements
Development," which is the initial product
development phase in which
information is gathered about what
requirements are needed--and not. This
information-gathering
stage can include onsite visits, questionnaires,
surveys,
interviews, and perhaps a return-on-investment (ROI) analysis
or
needs analysis of the customer or client's current business
environment. The
actual specification, then, is written after
the requirements have been
gathered and analyzed.
Technical Writers be Involved with SRS
Unfortunately, much of the time, systems architects and
programmers write
SRSs with little (if any) help from the
technical communications
organization. And when that assistance
is provided, it's often limited to an
edit of the final draft
just prior to going out the door. Having technical
writers
involved throughout the entire SRS development process can
offer
several benefits:
- Technical writers are skilled information gatherers,
ideal for eliciting
and articulating customer requirements.
The presence of a technical writer on
the
requirements-gathering team helps balance the type and
amount of
information extracted from customers, which can
help improve the SRS.
- Technical writers can better assess and plan
documentation projects and
better meet customer document
needs. Working on SRSs provides technical
writers with an
opportunity for learning about customer
needs
firsthand--early in the product development process.
- Technical writers know how to determine the questions
that are of concern
to the user or customer regarding ease
of use and usability. Technical
writers can then take that
knowledge and apply it not only to the
specification and
documentation development, but also to user
interface
development, to help ensure the UI (User Interface) models
the
customer requirements.
- Technical writers, involved early and often in the
process, can become an
information resource throughout the
process, rather than an information
gatherer at the end of
the process.
In short, a requirements-gathering team consisting solely of
programmers,
product marketers, systems analysts/architects,
and a project manager runs
the risk of creating a specification
that may be too heavily loaded with
technology-focused or
marketing-focused issues. The presence of a technical
writer on
the team helps place at the core of the project those user
or
customer requirements that provide more of an overall balance
to the
design of the SRS, product, and documentation.
A sample of a more detailed SRS outline
|
1. Scope
|
1.1 Identification.
Identify the system and the software to which
this document applies,
including, as applicable,
identification number(s),
title(s),
abbreviation(s), version number(s), and
release
number(s).
1.2 System overview.
State the purpose of the system or subsystem
to which this document
applies.
1.3 Document overview.
Summarize the purpose and contents of this
document.
This document comprises six sections:
- Scope
- Referenced documents
- Requirements
- Qualification provisions
- Requirements traceability
- Notes
Describe any security or privacy considerations
associated with its
use.
|
|
2. Referenced Documents
|
2.1 Project documents.
Identify the project management system
documents here.
2.2 Other documents.
2.3 Precedence.
2.4 Source of documents.
|
|
3. Requirements
|
This section shall be divided into paragraphs to
specify the Computer
Software Configuration Item (CSCI) requirements, that is, those
characteristics
of the CSCI that are conditions for its acceptance.
CSCI
requirements are software requirements
generated to satisfy the system
requirements
allocated to this CSCI. Each requirement shall be
assigned a
project-unique identifier to support
testing and traceability and shall be
stated in
such a way that an objective test can be defined
for it.
3.1 Required states and modes.
3.2 CSCI capability requirements.
3.3 CSCI external interface requirements.
3.4 CSCI internal interface requirements.
3.5 CSCI internal data requirements.
3.6 Adaptation requirements.
3.7 Safety requirements.
3.8 Security and privacy requirements.
3.9 CSCI environment requirements.
3.10 Computer resource requirements.
3.11 Software quality factors.
3.12 Design and implementation constraints.
3.13 Personnel requirements.
3.14 Training-related requirements.
3.15 Logistics-related requirements.
3.16 Other requirements.
3.17 Packaging requirements.
3.18 Precedence and criticality
requirements.
|
|
4. Qualification Provisions
|
To be determined. |
|
5. Requirements Traceability
|
To be determined. |
|
6. Notes
|
This section contains information of a general
or explanatory nature that
may be helpful, but is
not mandatory.
6.1 Intended use.
This Software Requirements specification shall
...
6.2 Definitions used in this document.
Insert here an alphabetic list of definitions
and their source if
different from the declared
sources specified in the
"Documentation
standard."
6.3 Abbreviations used in this
document.
Insert here an alphabetic list of the
abbreviations and acronyms if
not identified in the declared sources specified in the
"Documentation
Standard."
6.4 Changes from previous issue.
Will be "not applicable" for the initial
issue.
Revisions shall identify the method used to
identify changes from the
previous issue.
|
|
|
|
|
If you post one question/problem, I will provide 1 input/answer. If you put "x" questions/problems, I will provide"x" inputs/answers. In both cases, appropriate ratings are appreciated for every input. Thanks.
|
|
|