4.2 Environment of the SRS
It is important to consider the part that the SRS plays in the total project plan, which is defined in IEEE Std
610.12-1990. The software may contain essentially all the functionality of the project or it may be part of a
larger system. In the latter case typically there will be an SRS that will state the interfaces between the
system and its software portion, and will place external performance and functionality requirements upon
the software portion. Of course the SRS should then agree with and expand upon these system requirements.
IEEE Std 1074-1997 describes the steps in the software life cycle and the applicable inputs for each step.
Other standards, such as those listed in Clause 2, relate to other parts of the software life cycle and so may
complement software requirements.
Since the SRS has a specific role to play in the software development process, the SRS writer(s) should be
careful not to go beyond the bounds of that role. This means the SRS
a) Should correctly define all of the software requirements. A software requirement may exist because
of the nature of the task to be solved or because of a special characteristic of the project.
b) Should not describe any design or implementation details. These should be described in the design
stage of the project.
c) Should not impose additional constraints on the software. These are properly specified in other
documents such as a software quality assurance plan.
Therefore, a properly written SRS limits the range of valid designs, but does not specify any particular
design.